mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-24 06:06:51 -06:00
Doc: Added table of contents to Assist++ parser directives article.
git-svn-id: svn://ultimatepp.org/upp/trunk@15102 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
0fc3c03949
commit
55b56af5fa
2 changed files with 95 additions and 81 deletions
|
|
@ -8,97 +8,110 @@ topic "Assist++ - C++ parser directives";
|
|||
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
|
||||
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
|
||||
[b42;2 $$9,9#13035079074754324216151401829390:normal]
|
||||
[b83;*4 $$10,11#07864147445237544204411237157677:title]
|
||||
[H4;b83;*4 $$10,11#07864147445237544204411237157677:title]
|
||||
[b42;a42;ph2 $$11,11#45413000475342174754091244180557:text]
|
||||
[l321;t246;C@5;1 $$12,12#20902679421464641399138805415013:code]
|
||||
[a83;*R6 $$13,11#31310162474203024125188417583966:caption]
|
||||
[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}%EN-US
|
||||
[s13; Assist`+`+ `- parser directives&]
|
||||
[s10; 1. Introduction&]
|
||||
[s10; Table of contents&]
|
||||
[s0; &]
|
||||
[s0; [^topic`:`/`/ide`/app`/AssistParserDirectives`_en`-us`#1^ 1. Introduction]&]
|
||||
[s0; [^topic`:`/`/ide`/app`/AssistParserDirectives`_en`-us`#2^ 2. Handling
|
||||
of source files, headers, macros and namespaces]&]
|
||||
[s0; [^topic`:`/`/ide`/app`/AssistParserDirectives`_en`-us`#3^ 3. Macro
|
||||
overrides, namespace macros]&]
|
||||
[s0; [^topic`:`/`/ide`/app`/AssistParserDirectives`_en`-us`#4^ 4. Grounding
|
||||
heuristics]&]
|
||||
[s0; [^topic`:`/`/ide`/app`/AssistParserDirectives`_en`-us`#5^ 5. Assist`+`+
|
||||
C`+`+ parser directives]&]
|
||||
[s0; &]
|
||||
[s10;:1: 1. Introduction&]
|
||||
[s11; Assist`+`+ C`+`+ parser does not follow C/C`+`+ standards exactly,
|
||||
for performance and practical reasons. This documents provides
|
||||
information about deviations, heuristics and tricks that we use
|
||||
to make the machinery fast and highly error resistant.&]
|
||||
[s10; 2. Handling of source files, headers, macros and namespaces&]
|
||||
[s10;:2: 2. Handling of source files, headers, macros and namespaces&]
|
||||
[s11; The main difference between C`+`+ compiler and theide C`+`+
|
||||
parser is that theide is handling any source file separately.
|
||||
This is an absolute performance requirement if global database
|
||||
is to be maintained while editing files.&]
|
||||
[s11; For this reason, declaration and definition must be be in single
|
||||
file. For example&]
|
||||
[s11; [* File1.h]&]
|
||||
[s12; struct Foo `{&]
|
||||
[s12; &]
|
||||
[s11; [* File2.h]&]
|
||||
[s12; #include `"File1.h`"&]
|
||||
[s12; -|int bar;&]
|
||||
[s12; `};&]
|
||||
[s11;l288; [* File1.h]&]
|
||||
[s12;l288; struct Foo `{&]
|
||||
[s12;l288; &]
|
||||
[s11;l288; [* File2.h]&]
|
||||
[s12;l288; #include `"File1.h`"&]
|
||||
[s12;l288; -|int bar;&]
|
||||
[s12;l288; `};&]
|
||||
[s11; is [*/ NOT] supported.&]
|
||||
[s11; Parser preprocessor rules:&]
|
||||
[s11;i150;O0; All #if/#ifdef conditions are considered true. This
|
||||
is useful e.g. when there is platform specific code `- parser
|
||||
is then able to pick all variants. #else parts are excluded.
|
||||
[s11;l160;i150;O0; All #if/#ifdef conditions are considered true.
|
||||
This is useful e.g. when there is platform specific code `-
|
||||
parser is then able to pick all variants. #else parts are excluded.
|
||||
For example&]
|
||||
[s12; #ifdef PLATFORM`_WIN32&]
|
||||
[s12; void CloseWindow(void `*handle) `{&]
|
||||
[s12; ....&]
|
||||
[s12; `}&]
|
||||
[s12; #endif&]
|
||||
[s12; #ifdef PLATFORM`_GTK&]
|
||||
[s12; void CloseWindow(void `*handle) `{&]
|
||||
[s12; .....&]
|
||||
[s12; `}&]
|
||||
[s12; #endif&]
|
||||
[s11; both CloseWindow definitions will be in the codebase.&]
|
||||
[s11;i150;O0; When expanding macro, last #define directive is used.&]
|
||||
[s12; #define FOO 1&]
|
||||
[s12; #define FOO 2&]
|
||||
[s12; FOO&]
|
||||
[s11; the last line will be expanded to `"2`".&]
|
||||
[s11;i150;O0; #undef cancels the last definition of the same macro,
|
||||
if it is defined in the same file. This is useful to handle special
|
||||
defines used for handling name clashes when including external
|
||||
libraries:&]
|
||||
[s12; #define byte win32`_byte`_ // RpcNdr defines byte `-> class
|
||||
[s12;l576; #ifdef PLATFORM`_WIN32&]
|
||||
[s12;l576; void CloseWindow(void `*handle) `{&]
|
||||
[s12;l576; ....&]
|
||||
[s12;l576; `}&]
|
||||
[s12;l576; #endif&]
|
||||
[s12;l576; #ifdef PLATFORM`_GTK&]
|
||||
[s12;l576; void CloseWindow(void `*handle) `{&]
|
||||
[s12;l576; .....&]
|
||||
[s12;l576; `}&]
|
||||
[s12;l576; #endif&]
|
||||
[s11;l288; both CloseWindow definitions will be in the codebase.&]
|
||||
[s11;l160;i150;O0; When expanding macro, last #define directive is
|
||||
used.&]
|
||||
[s12;l576; #define FOO 1&]
|
||||
[s12;l576; #define FOO 2&]
|
||||
[s12;l576; FOO&]
|
||||
[s11;l288; the last line will be expanded to `"2`".&]
|
||||
[s11;l160;i150;O0; #undef cancels the last definition of the same
|
||||
macro, if it is defined in the same file. This is useful to handle
|
||||
special defines used for handling name clashes when including
|
||||
external libraries:&]
|
||||
[s12;l576; #define byte win32`_byte`_ // RpcNdr defines byte `-> class
|
||||
with Upp`::byte&]
|
||||
[s12; #define CY win32`_CY`_&]
|
||||
[s12; #include <objidl.h>&]
|
||||
[s12; #include <winnetwk.h>&]
|
||||
[s12; #undef byte&]
|
||||
[s12; #undef CY&]
|
||||
[s11;i150;O0; #include in file adds all macros that are (recursively)
|
||||
[s12;l576; #define CY win32`_CY`_&]
|
||||
[s12;l576; #include <objidl.h>&]
|
||||
[s12;l576; #include <winnetwk.h>&]
|
||||
[s12;l576; #undef byte&]
|
||||
[s12;l576; #undef CY&]
|
||||
[s11;l160;i150;O0; #include in file adds all macros that are (recursively)
|
||||
defined by included file and also all `"using namespace`" directives.
|
||||
It [* DOES NOT] use namespace block definitions, for example this
|
||||
abomination is not supported:&]
|
||||
[s11; [* StartNamespace.h]&]
|
||||
[s12; namespace MyNamespace `{&]
|
||||
[s12; &]
|
||||
[s11; [* EndNamespace.h]&]
|
||||
[s12; `};&]
|
||||
[s12; &]
|
||||
[s11; [* File.cpp]&]
|
||||
[s12; #include `"StartNamespace.h`"&]
|
||||
[s12; void Foo();&]
|
||||
[s12; #include `"EndNamespace.h`"&]
|
||||
[s11; is [*/ NOT] supported.&]
|
||||
[s11;i150;O0; However, if file gets into the project through #include,
|
||||
all macros, usings and namespace block definitions are correctly
|
||||
included/used. Consider&]
|
||||
[s11; [* MasterHeader.h]&]
|
||||
[s12; #define FOO 1&]
|
||||
[s12; using namespace Bar;&]
|
||||
[s12; namespace Foo `{&]
|
||||
[s12; #include `"SubHeader.h`"&]
|
||||
[s12; `};&]
|
||||
[s12; &]
|
||||
[s11; [* SubHeader.h]&]
|
||||
[s12; &]
|
||||
[s12; void Fn() `{ return FOO; `}&]
|
||||
[s12; &]
|
||||
[s11; This [* IS] supported: Fn will be in Foo namespace and will return
|
||||
1.&]
|
||||
[s10; 3. Macro overrides, namespace macros&]
|
||||
[s11;l576; [* StartNamespace.h]&]
|
||||
[s12;l576; namespace MyNamespace `{&]
|
||||
[s12;l576; &]
|
||||
[s11;l576; [* EndNamespace.h]&]
|
||||
[s12;l576; `};&]
|
||||
[s12;l576; &]
|
||||
[s11;l576; [* File.cpp]&]
|
||||
[s12;l576; #include `"StartNamespace.h`"&]
|
||||
[s12;l576; void Foo();&]
|
||||
[s12;l576; #include `"EndNamespace.h`"&]
|
||||
[s11;l320;~~~192; is [*/ NOT] supported.&]
|
||||
[s11;l160;i150;O0; However, if file gets into the project through
|
||||
#include, all macros, usings and namespace block definitions
|
||||
are correctly included/used. Consider&]
|
||||
[s11;l576; [* MasterHeader.h]&]
|
||||
[s12;l576; #define FOO 1&]
|
||||
[s12;l576; using namespace Bar;&]
|
||||
[s12;l576; namespace Foo `{&]
|
||||
[s12;l576; #include `"SubHeader.h`"&]
|
||||
[s12;l576; `};&]
|
||||
[s12;l576; &]
|
||||
[s11;l576; [* SubHeader.h]&]
|
||||
[s12;l576; &]
|
||||
[s12;l576; void Fn() `{ return FOO; `}&]
|
||||
[s12;l576; &]
|
||||
[s11;l352; This [* IS] supported: Fn will be in Foo namespace and will
|
||||
return 1.&]
|
||||
[s10;:3: 3. Macro overrides, namespace macros&]
|
||||
[s11; It is possible to tell TheIDE overriding definition of specific
|
||||
macros in special .defs files. One global.defs file resides in
|
||||
TheIDE configuration and is accessible through `"<meta>`" package.
|
||||
|
|
@ -127,7 +140,7 @@ meaning of NAMESPACE`_UPP/END`_UPP`_NAMESPACE when extracting
|
|||
macros from File.h). The solution is simple, putting those #defines
|
||||
into .defs file fixes the issue, as such macros are detected
|
||||
by special code and used when handling File.h.&]
|
||||
[s10; 4. Grounding heuristics&]
|
||||
[s10;:4: 4. Grounding heuristics&]
|
||||
[s11; It is a good idea to make parser highly resistant to bugs, including
|
||||
code that it does not understand. For this reason parser is using
|
||||
somewhat strange but very effective simple heuristics: If a line
|
||||
|
|
@ -146,7 +159,7 @@ on `'global`' level. Consider&]
|
|||
miss the rest of file (because all would be considered to be
|
||||
part of Fn1 body). However Fn2 definition invokes grounding heuristics
|
||||
and parsing restarts at that point, not missing Fn2.&]
|
||||
[s10; 5. Assist`+`+ C`+`+ parser directives&]
|
||||
[s10;:5: 5. Assist`+`+ C`+`+ parser directives&]
|
||||
[s11; Assist supports simple directives that are passed to it via
|
||||
`'//`' comments that can be used in cases that original code
|
||||
is confusing:&]
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
TITLE("Assist++ - C++ parser directives")
|
||||
COMPRESSED
|
||||
120,156,157,88,9,115,211,74,18,254,43,83,9,251,72,192,113,52,58,44,31,44,245,178,38,60,168,183,36,20,71,81,84,202,21,201,210,216,158,23,89,163,213,145,144,229,248,237,251,245,140,36,203,142,89,182,22,72,176,53,211,119,247,215,221,186,146,174,59,156,132,182,55,185,249,243,114,52,177,217,163,71,188,103,29,58,62,119,134,158,195,93,123,128,95,220,225,182,103,59,46,31,218,35,119,232,56,67,107,28,37,97,81,204,174,18,123,56,212,68,118,207,62,180,125,207,230,190,59,116,135,220,241,135,54,104,109,203,178,45,223,246,184,235,12,109,111,28,139,34,154,93,89,184,238,64,198,104,224,140,44,110,89,62,231,150,99,251,150,227,185,156,59,54,88,216,190,205,45,111,44,210,120,118,245,106,48,33,2,23,4,150,55,176,44,107,0,110,174,107,129,59,145,185,14,119,44,219,241,248,200,27,140,231,98,41,211,217,213,67,147,188,95,154,228,91,99,89,138,117,109,81,232,78,158,252,238,77,56,72,7,189,193,161,15,177,174,7,97,35,178,200,1,153,109,15,
|
||||
188,17,247,92,168,228,90,246,56,23,255,170,100,46,214,34,45,107,14,146,115,155,79,230,220,159,64,133,31,63,126,244,185,107,25,79,249,208,133,91,208,219,230,120,6,59,124,238,141,172,145,55,228,67,203,241,93,219,243,97,122,22,230,225,186,182,100,238,218,147,218,142,97,111,120,56,224,3,120,212,26,66,127,111,4,6,22,140,192,255,112,164,135,127,206,112,92,214,196,68,71,68,163,222,232,16,78,114,60,203,31,89,190,235,123,46,44,177,249,128,195,145,22,217,143,48,140,83,149,175,195,4,68,67,103,242,196,165,44,176,122,156,31,90,254,112,224,114,215,119,93,56,11,148,174,109,185,136,18,62,115,207,31,248,254,184,148,101,34,140,172,16,63,217,74,103,16,39,90,23,241,116,200,115,190,7,135,113,45,217,26,113,27,12,134,150,231,129,86,124,33,119,57,112,84,105,187,131,201,180,118,57,183,123,28,217,100,141,44,123,224,143,64,234,14,240,151,59,163,17,34,8,82,151,123,22,119,198,145,138,33,57,36,133,223,13,136,204,33,169,200,7,110,241,129,13,
|
||||
157,109,11,169,225,194,79,124,56,116,185,239,13,157,209,96,48,142,194,172,148,10,105,66,154,90,148,86,191,248,51,126,33,22,97,149,64,213,175,215,223,255,118,126,113,242,241,61,187,42,184,51,97,103,69,33,139,50,120,26,60,101,193,9,131,219,11,145,179,24,137,16,149,242,86,20,191,205,112,205,154,48,222,103,175,211,50,87,113,21,145,100,253,152,111,81,79,245,239,134,129,18,5,75,85,201,22,42,73,212,29,155,158,154,227,162,12,211,56,204,227,130,137,47,97,84,38,247,61,220,200,89,38,242,5,5,47,141,4,195,5,150,229,56,148,81,152,176,92,132,133,74,139,62,251,176,146,5,216,70,21,37,104,129,27,234,86,162,22,153,76,53,37,41,197,194,185,170,74,22,139,91,169,191,23,61,182,18,85,14,5,101,84,104,190,101,46,163,155,130,149,171,176,100,119,130,85,133,96,165,98,235,240,6,255,175,4,62,68,43,153,138,252,158,45,194,162,212,20,43,185,92,37,247,76,228,57,212,204,5,89,27,166,101,191,113,139,221,103,175,112,45,145,233,146,169,
|
||||
5,43,84,149,195,132,133,76,132,22,30,198,34,199,7,240,205,149,209,32,13,215,162,200,194,168,246,44,92,248,65,11,150,41,156,190,88,136,92,144,15,230,162,188,19,34,173,125,26,169,117,6,142,185,49,97,37,96,247,182,183,101,109,82,125,134,175,171,70,169,48,189,239,106,197,10,65,149,85,138,228,190,118,169,36,189,224,185,66,37,85,41,182,34,209,65,4,38,23,108,153,168,57,34,18,135,101,56,15,11,45,6,206,155,27,237,75,252,136,152,221,173,72,136,136,101,73,194,181,31,250,141,161,47,225,193,146,68,154,152,246,16,40,32,112,94,135,14,166,197,98,33,83,169,191,174,43,248,127,78,142,64,128,89,1,102,137,49,160,175,217,32,121,214,89,34,26,206,87,79,216,75,156,241,254,106,166,31,217,19,36,90,142,76,197,101,197,130,175,205,195,157,251,118,231,254,161,76,163,164,130,243,130,131,154,85,112,208,156,157,124,131,125,108,30,230,147,230,73,240,125,210,240,130,61,87,79,78,217,197,229,135,25,43,170,44,83,121,41,226,214,230,183,38,64,89,
|
||||
46,144,176,8,122,65,89,84,193,43,227,250,134,4,14,76,46,145,73,103,73,2,37,22,167,248,129,31,16,243,52,214,174,64,120,114,65,95,11,132,54,23,148,195,149,216,196,14,41,188,168,18,38,250,203,62,156,143,148,65,14,228,58,54,89,18,150,20,74,86,100,34,146,11,25,49,2,27,214,169,114,157,54,130,130,159,232,58,200,80,28,44,132,30,183,97,46,145,229,168,186,67,145,32,210,184,95,26,61,196,23,237,165,248,97,24,180,15,181,234,111,255,121,246,225,229,229,187,55,193,245,167,215,23,142,221,156,222,42,25,179,105,162,10,241,73,166,177,186,59,210,15,130,39,58,85,197,113,39,76,125,252,217,120,186,229,142,86,42,23,63,149,245,199,135,63,255,63,73,255,93,20,98,56,87,229,170,203,174,147,167,5,187,147,240,151,201,82,66,16,114,49,21,71,127,55,188,159,200,209,226,75,6,21,168,50,52,34,244,88,66,48,115,168,249,137,13,232,214,113,141,91,205,154,27,47,47,47,25,223,247,176,117,50,190,52,106,147,58,154,127,66,183,26,61,141,
|
||||
10,148,70,40,140,3,59,56,120,160,233,97,149,234,4,36,8,72,138,13,155,78,117,2,233,232,113,1,44,107,44,1,62,200,146,20,55,90,197,141,67,244,29,83,184,59,41,11,5,76,64,76,130,18,178,104,82,99,187,110,11,45,138,17,106,50,26,215,86,56,214,105,110,202,149,206,208,128,69,158,130,60,145,243,28,137,219,212,86,199,69,243,251,146,60,144,58,118,112,77,159,131,107,118,122,202,222,101,209,69,156,183,82,245,165,224,228,185,150,67,129,69,212,63,102,89,48,30,211,201,46,203,233,231,134,225,244,115,112,253,0,69,158,169,249,95,50,78,250,171,231,15,143,64,151,2,223,111,186,135,198,231,91,130,204,163,233,231,7,241,105,24,193,195,26,210,195,24,237,148,202,182,110,51,186,21,80,177,30,33,159,170,188,64,70,37,247,199,109,96,230,247,181,243,200,201,154,30,208,27,38,133,210,60,130,131,170,104,60,174,251,84,112,208,153,6,48,4,148,132,158,47,46,207,223,27,200,163,22,218,222,101,243,68,1,66,58,245,97,218,123,141,19,6,253,209,
|
||||
164,215,50,53,168,47,205,144,208,226,230,184,131,208,239,75,160,206,69,195,186,3,213,27,113,111,238,219,243,253,40,127,158,198,251,56,52,240,253,176,37,244,163,44,219,215,19,118,149,217,52,7,141,45,104,51,71,199,147,61,116,219,10,212,84,191,234,26,109,168,95,169,59,113,43,114,93,93,58,84,75,81,210,196,131,210,161,218,66,75,249,11,129,193,231,92,85,203,85,43,183,215,201,134,30,211,241,220,25,62,30,6,170,238,50,57,69,58,217,100,200,169,198,33,54,173,219,79,199,91,111,128,9,34,127,165,71,156,110,31,221,7,85,59,41,197,254,209,105,165,155,167,219,189,186,235,252,106,222,200,217,248,125,127,12,59,87,103,91,199,109,164,210,35,106,0,152,65,202,42,79,73,205,46,240,111,102,50,29,32,246,250,125,39,60,99,16,119,241,158,244,221,104,79,254,213,135,53,103,222,206,136,78,31,206,66,44,152,66,44,115,26,90,123,29,58,19,166,70,240,107,141,161,153,194,88,93,55,101,140,106,9,205,136,175,95,156,55,12,200,153,219,104,220,182,248,
|
||||
26,2,104,102,170,65,181,143,155,69,61,137,177,75,68,198,140,113,155,199,122,170,53,147,116,35,7,211,198,66,46,171,206,104,70,117,27,209,252,98,212,170,19,46,56,120,182,22,101,248,28,24,1,91,110,194,37,80,254,12,72,210,235,74,165,78,66,30,203,48,154,235,212,173,175,18,152,44,140,194,59,125,163,67,220,163,174,210,250,77,231,181,138,0,106,122,76,46,154,70,132,179,180,132,253,52,211,164,250,82,132,30,188,153,60,47,84,41,106,88,92,32,105,89,132,198,178,36,47,110,36,245,234,246,149,10,178,50,196,10,0,77,225,25,82,190,105,236,45,191,174,117,84,55,26,61,117,215,2,17,34,11,135,169,148,218,120,81,213,114,87,33,33,29,205,245,36,95,207,218,26,255,12,243,5,118,93,113,167,242,155,135,149,166,65,105,181,167,40,166,42,223,194,161,139,179,55,231,239,223,158,77,207,131,235,143,111,223,238,33,40,170,249,234,65,21,157,95,188,208,247,131,235,150,126,183,22,238,244,64,185,205,94,231,196,30,90,237,141,38,146,133,130,81,102,26,
|
||||
197,38,163,213,101,97,177,91,149,13,96,236,8,216,20,8,122,112,23,22,234,235,251,132,239,129,132,143,180,29,150,85,170,55,158,158,110,234,20,247,122,0,78,212,18,53,131,69,112,21,98,234,50,235,106,69,221,208,236,127,119,225,61,91,97,222,67,80,99,81,18,210,146,217,72,10,149,220,214,205,172,144,101,101,170,228,8,108,98,165,153,220,164,32,90,139,48,173,183,194,109,211,78,247,169,126,103,198,195,82,239,189,205,124,136,20,203,213,186,78,129,227,190,222,20,55,169,67,194,169,171,246,168,178,52,81,185,194,140,218,120,168,238,19,157,58,95,200,47,194,204,115,58,49,209,37,192,162,138,86,237,122,170,99,71,118,154,41,161,65,16,189,54,144,229,58,195,181,166,237,96,102,116,107,161,206,237,179,63,114,114,33,157,109,118,239,109,116,11,217,82,169,152,138,54,108,183,239,58,32,245,182,221,238,217,122,193,172,150,4,3,237,188,167,213,209,69,133,138,109,223,51,208,180,148,235,183,11,253,221,69,179,179,238,152,70,100,18,19,12,176,36,2,8,208,13,
|
||||
1,77,183,180,246,11,108,224,102,4,55,190,237,216,48,38,180,10,205,48,93,148,122,33,58,2,11,64,9,197,12,236,255,45,114,117,108,198,198,14,30,97,33,134,135,101,247,101,72,237,93,179,211,6,143,199,193,227,14,151,35,88,92,47,89,24,187,231,152,192,143,27,104,10,183,64,63,5,169,129,114,208,39,24,19,146,29,240,216,116,60,126,212,221,121,78,190,161,36,142,104,163,149,44,248,59,67,212,36,123,198,40,122,146,222,41,108,95,61,249,54,85,85,9,250,103,207,152,236,172,191,63,233,173,246,150,164,125,125,181,94,78,215,72,65,10,69,240,56,248,14,253,169,155,166,188,87,123,235,78,85,73,12,79,223,160,102,183,210,131,168,116,2,35,65,74,170,44,157,215,71,115,17,133,52,135,18,240,27,218,249,246,198,172,223,82,208,18,75,52,16,132,149,46,190,71,65,213,243,21,41,222,245,173,76,111,213,13,242,106,185,39,149,205,235,41,168,67,143,73,13,179,26,151,38,35,51,5,191,246,116,172,27,11,193,187,45,15,175,255,243,23,102,219,111,220,
|
||||
218,87,107,205,248,209,84,123,231,226,102,208,207,176,176,24,59,145,41,183,50,132,91,79,79,41,173,212,218,188,45,211,55,235,62,172,171,24,14,215,45,210,156,168,92,162,29,54,165,142,240,208,0,160,107,133,6,114,246,245,171,51,244,172,241,0,99,41,211,241,76,28,155,166,173,167,190,135,61,42,120,20,156,204,102,227,49,51,106,79,137,69,70,240,169,75,112,179,212,234,225,136,134,94,120,103,102,2,210,104,109,124,208,175,153,60,228,255,244,127,230,191,135,45,59,42,74,149,209,56,55,253,221,235,168,124,252,83,121,215,51,168,73,95,244,219,217,58,135,205,157,179,223,45,58,168,23,154,241,204,16,105,170,205,38,128,241,54,248,237,120,87,231,159,235,167,23,184,14,172,25,176,104,242,181,126,251,23,215,175,241,138,227,217,119,93,87,200,167,217,236,63,9,69,16,252,
|
||||
120,156,165,89,13,115,211,70,26,254,43,59,9,215,38,224,56,90,125,88,182,204,117,154,51,161,48,61,18,166,192,116,58,25,19,201,210,218,222,70,150,124,210,42,38,71,233,111,191,231,221,149,100,217,73,14,102,0,242,97,105,223,239,231,253,90,174,164,235,14,199,145,237,141,111,126,189,28,141,109,246,228,9,239,89,135,142,207,157,161,231,112,215,30,224,27,119,184,237,217,142,203,135,246,200,29,58,206,208,10,226,52,42,203,233,85,106,15,135,154,200,238,217,135,182,239,217,220,119,135,238,144,59,254,208,6,173,109,89,182,229,219,30,119,157,161,237,5,137,40,227,233,149,133,227,14,100,140,6,206,200,226,150,229,115,110,57,182,111,57,158,203,185,99,131,133,237,219,220,242,2,145,37,211,171,87,131,49,17,184,32,176,188,129,101,89,3,112,115,93,11,220,137,204,117,184,99,217,142,199,71,222,32,152,137,133,204,166,87,247,77,242,190,106,146,111,5,82,137,85,109,81,228,142,159,254,236,141,57,72,7,189,193,161,15,177,174,7,97,35,178,200,1,153,109,15,
|
||||
188,17,247,92,168,228,90,118,80,136,255,84,178,16,43,145,169,154,131,228,220,230,227,25,247,199,80,225,239,191,255,238,115,215,50,158,242,161,11,183,160,183,205,241,12,118,248,220,27,89,35,111,200,135,150,227,187,182,231,195,244,117,84,68,171,218,146,153,107,143,107,59,134,189,225,225,128,15,224,81,107,8,253,189,17,24,88,48,2,63,225,72,15,255,156,97,160,106,98,162,35,162,81,111,116,8,39,57,158,229,143,44,223,245,61,23,150,216,124,192,225,72,139,236,71,24,130,44,47,86,81,10,119,187,227,217,208,25,63,117,9,8,86,143,243,67,203,31,14,92,238,250,174,11,127,129,216,181,45,23,129,194,239,220,243,7,190,31,40,169,82,97,196,69,248,90,47,53,136,56,209,186,8,169,67,206,243,61,248,140,107,225,214,136,219,96,48,180,60,15,180,226,19,121,204,129,175,148,237,14,198,147,218,235,220,238,113,0,202,26,89,246,192,31,129,212,29,224,47,119,70,35,4,17,164,46,247,44,238,4,113,158,64,114,68,10,255,54,32,50,135,164,2,18,220,226,
|
||||
3,27,58,219,22,208,225,194,85,124,56,116,185,239,13,157,209,96,16,196,209,90,201,28,72,33,77,45,66,214,87,254,4,47,196,60,170,82,168,250,249,250,203,63,206,47,78,62,188,99,87,37,119,198,236,172,44,101,169,194,103,225,51,22,158,48,120,190,20,5,75,128,133,88,201,91,81,254,48,197,49,107,204,222,71,179,84,176,124,206,226,60,83,64,137,126,129,231,245,143,171,143,42,95,203,56,12,194,211,240,84,38,34,60,141,214,235,240,212,48,127,171,153,190,104,121,134,215,34,11,79,170,50,60,228,31,25,239,179,215,153,42,242,164,138,181,73,223,199,208,254,200,236,62,123,21,101,73,42,179,5,233,91,230,85,17,11,54,151,169,40,123,108,41,162,68,20,248,101,21,197,69,94,50,28,100,89,180,18,229,58,138,69,249,157,194,157,143,204,233,179,55,196,153,229,183,162,40,64,10,81,45,255,90,232,119,74,113,63,50,183,207,126,41,242,42,75,200,198,165,168,10,16,200,248,123,25,123,31,153,215,239,226,97,162,191,223,131,196,180,19,122,64,35,224,193,
|
||||
126,16,245,27,62,126,156,87,46,74,150,229,138,205,243,52,205,55,108,114,106,94,151,10,241,136,138,164,100,226,83,20,171,244,174,135,19,5,91,139,98,78,217,157,193,133,20,176,117,129,151,50,142,82,86,136,168,204,179,178,207,222,47,101,9,182,113,69,21,172,196,137,252,150,156,207,100,166,41,73,41,22,205,242,74,177,68,220,74,253,89,163,161,113,157,230,171,10,25,223,148,76,45,35,197,54,130,85,165,96,42,71,208,110,240,115,169,163,183,148,153,40,238,216,60,42,149,166,88,202,197,50,189,99,8,53,212,44,4,89,27,101,170,223,120,198,14,190,7,141,141,23,223,107,217,50,67,8,230,115,81,8,114,195,76,168,141,16,89,237,214,56,95,173,193,177,48,86,44,5,76,223,117,184,172,173,170,223,225,227,178,81,42,202,238,186,90,177,82,80,245,85,34,189,171,189,42,73,47,56,175,204,211,74,137,157,96,116,186,6,147,115,182,72,243,25,130,146,68,42,154,69,165,22,3,255,205,140,246,10,95,34,97,155,37,9,17,137,84,36,92,251,161,223,24,250,
|
||||
18,78,84,36,210,132,181,135,88,161,75,23,117,244,96,90,34,230,50,147,250,227,170,66,8,102,228,8,196,152,149,96,150,26,3,250,154,13,240,179,90,167,162,230,172,27,26,187,122,202,94,226,0,239,47,53,130,185,93,63,47,85,1,216,130,44,103,225,231,157,55,15,145,219,251,228,135,50,139,211,10,94,13,15,106,246,225,193,206,129,147,191,96,61,155,69,197,120,231,113,248,101,220,24,14,147,175,158,158,178,139,203,247,83,86,86,235,117,94,40,145,180,110,49,25,11,76,11,192,26,184,40,9,107,21,28,23,52,250,241,129,133,126,237,89,227,75,164,229,89,154,66,167,249,41,190,224,47,170,215,137,118,25,194,88,8,250,88,2,2,133,32,184,87,98,27,99,160,125,94,165,76,244,23,125,4,9,208,2,86,10,29,195,117,26,41,10,57,43,215,34,150,115,25,51,234,90,172,211,46,52,188,4,129,36,213,41,131,226,115,195,34,232,113,27,21,18,9,129,4,61,20,41,16,129,243,202,232,33,62,105,167,37,247,195,5,255,160,45,147,95,181,254,111,255,125,
|
||||
246,254,229,229,111,111,194,235,223,95,95,56,246,206,145,219,92,38,108,146,230,165,248,93,102,73,190,57,210,15,194,167,26,220,226,184,19,78,125,188,143,63,59,15,194,47,187,18,49,175,201,249,255,87,226,151,247,191,126,175,10,223,170,67,3,188,89,174,150,93,17,157,52,40,217,70,194,205,38,9,168,70,81,100,40,247,250,15,66,227,119,10,146,248,180,142,76,231,208,85,167,199,82,170,102,135,154,169,216,150,249,26,19,201,174,182,205,177,151,151,151,140,63,250,102,55,74,120,178,99,15,233,169,101,166,116,190,49,192,168,69,176,68,26,30,216,225,193,195,38,28,162,235,17,170,169,254,164,229,150,87,167,52,160,204,210,227,18,133,180,49,17,197,73,42,178,200,40,153,52,238,210,103,76,213,216,203,3,104,97,66,104,80,79,101,77,147,26,167,232,182,212,150,80,42,217,140,246,137,37,94,235,220,49,37,129,222,97,60,20,69,6,242,84,206,10,100,67,147,181,251,110,155,221,41,242,69,230,216,225,53,253,30,94,179,211,83,246,219,58,190,72,138,86,180,62,
|
||||
20,158,252,164,133,81,236,1,140,15,104,237,65,64,111,30,228,59,249,163,225,58,249,35,188,222,195,118,93,184,158,231,179,63,101,146,246,151,63,61,242,30,28,50,52,156,155,123,39,76,48,238,11,55,207,39,127,60,28,194,134,47,130,160,91,78,148,160,227,83,185,168,219,160,110,85,84,36,142,128,197,170,40,129,198,244,238,184,141,221,236,174,246,47,197,65,211,163,53,68,105,153,107,30,225,65,85,54,65,209,125,52,60,232,204,46,152,83,20,85,242,23,151,231,239,76,189,165,46,191,157,208,102,105,142,210,213,73,48,51,129,212,245,201,116,39,204,17,43,153,153,174,36,205,28,211,22,237,182,36,107,63,64,208,59,133,146,119,209,240,239,244,14,125,96,43,248,205,93,123,104,191,102,236,179,60,207,146,71,25,54,77,229,49,90,234,80,253,120,189,158,62,28,233,240,96,95,223,109,47,219,150,59,116,202,163,227,241,99,28,118,213,171,233,161,130,99,91,180,71,242,145,253,149,134,183,139,150,87,249,70,96,150,214,57,172,163,189,16,138,230,58,36,40,101,48,
|
||||
90,226,159,136,45,126,199,64,188,88,182,138,244,58,128,234,49,13,137,189,249,234,126,172,235,6,89,16,88,210,45,200,78,117,25,100,147,186,115,238,187,244,13,202,143,40,94,233,81,110,63,28,143,151,203,61,144,178,127,117,198,131,61,104,236,14,38,247,2,86,205,26,217,123,177,250,26,22,58,148,211,251,7,119,35,158,29,81,43,195,96,166,170,34,35,115,238,53,174,54,204,158,61,54,197,20,34,94,191,235,196,55,0,155,110,191,34,187,182,86,82,108,244,203,90,6,111,167,104,39,248,166,181,170,25,151,94,235,66,191,206,177,123,212,227,8,134,217,148,166,232,215,47,206,27,6,228,252,221,150,209,14,55,117,17,162,169,178,174,252,125,156,44,235,89,149,93,34,156,102,208,221,62,214,163,191,89,55,26,57,152,179,230,114,81,117,134,87,170,28,49,141,111,70,173,26,175,225,193,243,149,80,209,79,168,82,176,229,38,90,160,21,157,161,150,245,186,82,169,221,145,211,214,216,95,52,242,235,163,84,206,230,70,225,189,230,214,33,238,81,235,107,253,166,211,34,
|
||||
143,81,86,245,34,81,54,221,18,239,50,5,251,105,154,203,244,161,24,99,196,118,54,191,200,149,168,11,243,28,112,103,49,186,223,130,188,184,149,212,171,123,108,38,200,202,8,123,18,52,133,103,72,249,102,54,105,249,117,173,163,180,211,245,91,183,86,16,33,178,112,88,158,209,16,82,86,181,220,101,68,181,150,54,31,146,175,183,17,93,129,13,243,121,1,162,77,94,220,220,75,84,83,243,150,53,88,187,169,51,201,139,110,133,99,23,103,111,206,223,189,61,155,156,135,215,31,222,190,125,128,160,172,102,203,253,92,99,231,23,47,244,249,240,186,165,111,94,53,26,108,244,40,189,203,94,99,226,1,90,237,141,38,146,101,14,163,204,28,142,93,79,171,203,162,114,135,189,189,173,50,123,2,182,9,130,25,97,91,65,218,227,15,9,223,214,140,86,249,15,180,66,171,42,211,59,97,79,15,29,20,247,122,244,79,243,5,114,6,219,242,50,194,204,104,118,250,138,250,177,89,146,55,209,29,91,98,100,69,80,19,161,168,80,147,217,0,69,158,222,214,237,180,148,170,50,
|
||||
89,114,4,54,73,174,153,220,100,32,90,137,40,171,247,230,93,211,78,31,82,125,99,134,91,165,47,7,154,233,22,16,43,242,85,13,129,227,190,222,165,183,208,33,225,212,215,123,148,89,154,72,45,49,102,55,30,170,219,76,39,207,231,242,147,48,67,167,6,38,154,12,88,84,241,178,93,224,117,236,200,78,51,167,52,21,68,47,76,100,185,70,184,214,180,157,30,141,110,109,181,115,131,199,174,119,118,11,92,196,22,121,158,80,222,70,237,45,69,29,147,250,86,162,189,143,208,91,120,181,160,74,208,206,165,90,35,157,87,72,218,246,62,134,230,182,66,223,194,244,247,183,241,206,174,103,122,151,193,38,24,96,127,70,45,64,63,69,117,186,165,235,17,49,159,215,59,132,113,111,199,134,128,10,86,100,38,255,82,233,109,240,8,44,80,77,40,108,96,255,95,81,228,199,102,178,237,148,164,205,82,194,201,178,123,105,84,59,216,44,254,225,143,65,248,99,135,203,17,44,174,55,76,172,7,51,108,10,199,77,117,138,118,234,126,6,82,83,205,65,159,98,208,72,247,234,
|
||||
135,221,118,64,126,212,217,230,176,212,35,43,142,104,177,151,44,252,39,195,160,34,217,115,70,55,165,146,46,94,118,143,158,252,53,201,43,5,250,231,207,153,108,19,172,109,160,108,79,146,189,35,105,239,152,185,16,50,155,249,10,40,164,80,132,63,134,95,160,63,245,212,140,247,106,111,109,242,42,77,224,233,27,164,237,14,60,136,74,99,24,0,81,148,92,26,218,71,51,17,71,52,12,83,237,55,180,179,221,235,2,125,149,67,27,60,209,64,16,22,211,228,14,57,85,79,104,164,120,215,183,50,187,205,111,128,171,197,3,80,54,215,120,80,135,30,147,26,230,94,64,25,68,174,115,248,181,167,99,221,88,8,222,109,134,120,193,183,221,83,238,222,66,54,115,72,147,243,157,131,219,133,99,141,181,202,152,10,176,220,202,8,158,61,61,37,100,229,43,115,177,168,79,214,221,88,231,50,124,174,27,165,121,147,23,18,77,177,73,120,68,136,198,0,157,46,180,24,176,207,159,157,161,103,5,3,204,182,204,140,78,142,77,163,216,51,223,195,182,23,62,9,79,166,211,32,
|
||||
96,70,237,9,177,88,83,17,213,89,184,93,204,245,148,68,227,51,28,52,53,49,105,180,54,62,232,215,76,238,243,127,246,205,252,31,96,203,142,74,149,175,105,174,155,252,236,117,84,62,126,84,222,245,20,106,210,7,253,223,28,205,184,168,207,156,253,108,209,139,122,177,10,166,134,72,83,109,151,12,12,197,225,15,199,251,58,63,174,159,94,36,59,149,205,212,139,6,178,245,45,105,82,95,119,150,199,211,47,95,234,171,236,233,244,127,165,145,29,146,
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue