mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
Various A++/T++ fixes, Alt+F10 in T++ invokes 'fix current topic' hidden function
git-svn-id: svn://ultimatepp.org/upp/trunk@473 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
7e974127ac
commit
169c97d10a
28 changed files with 3278 additions and 681 deletions
|
|
@ -198,10 +198,10 @@ void LogStream::Flush()
|
|||
void LogStream::Put0(int w)
|
||||
{
|
||||
if(w == LOG_BEGIN)
|
||||
depth++;
|
||||
depth = min(depth + 1, 20);
|
||||
else
|
||||
if(w == LOG_END)
|
||||
depth--;
|
||||
depth = max(depth - 1, 0);
|
||||
else {
|
||||
if(bol) {
|
||||
bol = false;
|
||||
|
|
|
|||
|
|
@ -22,6 +22,36 @@ String Format(const Uuid& id) {
|
|||
return Sprintf("%08X%08X%08X%08X", id.a, id.b, id.c, id.d);
|
||||
}
|
||||
|
||||
dword scanX(const char *s)
|
||||
{
|
||||
dword r = 0;
|
||||
for(int i = 0; i < 8; i++) {
|
||||
r = (r << 4) | (*s >= '0' && *s <= '9' ? *s - '0' :
|
||||
*s >= 'A' && *s <= 'F' ? *s - 'A' :
|
||||
*s >= 'a' && *s <= 'f' ? *s - 'a' : 0);
|
||||
s++;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
Uuid ScanUuid(const char *s)
|
||||
{
|
||||
Uuid id;
|
||||
String xu;
|
||||
while(*s) {
|
||||
if(IsXDigit(*s))
|
||||
xu.Cat(*s);
|
||||
s++;
|
||||
}
|
||||
if(xu.GetCount() < 32)
|
||||
return Null;
|
||||
id.a = scanX(~xu);
|
||||
id.b = scanX(~xu + 8);
|
||||
id.c = scanX(~xu + 16);
|
||||
id.d = scanX(~xu + 24);
|
||||
return id;
|
||||
}
|
||||
|
||||
String Uuid::ToString() const
|
||||
{
|
||||
return Format(*this);
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ struct Uuid : AssignValueTypeNo<Uuid, 50, Moveable<Uuid> > {
|
|||
};
|
||||
|
||||
String Format(const Uuid& id);
|
||||
Uuid ScanUuid(const char *s);
|
||||
|
||||
inline bool operator==(const Uuid& u, const Uuid& w) {
|
||||
return ((u.a ^ w.a) | (u.b ^ w.b) | (u.c ^ w.c) | (u.d ^ w.d)) == 0;
|
||||
|
|
|
|||
|
|
@ -1,288 +1,693 @@
|
|||
TITLE("AMap")
|
||||
COMPRESSED
|
||||
120,156,237,93,109,115,218,72,18,254,43,83,181,187,41,59,
|
||||
139,109,33,192,96,59,155,186,188,237,94,202,73,54,101,19,
|
||||
239,7,23,54,50,26,140,206,66,210,105,132,109,238,246,246,
|
||||
183,95,247,140,222,223,65,194,134,44,249,16,3,26,245,76,
|
||||
119,63,221,211,211,211,26,93,202,228,199,31,165,134,244,131,
|
||||
84,240,239,248,61,29,43,51,221,25,92,106,237,118,239,68,
|
||||
145,59,39,119,167,191,31,157,188,252,199,206,97,123,23,136,
|
||||
52,129,72,171,219,108,245,58,173,102,91,62,132,255,154,173,
|
||||
166,220,145,91,237,102,79,62,106,247,90,173,158,116,60,210,
|
||||
21,198,6,151,186,220,235,157,96,207,50,220,36,119,59,114,
|
||||
179,219,238,181,123,205,86,183,39,195,189,178,36,201,82,87,
|
||||
238,52,219,173,158,220,57,86,41,27,13,46,149,94,235,228,
|
||||
229,217,33,220,212,194,158,128,184,212,60,148,219,221,182,44,
|
||||
181,36,185,13,93,53,123,189,118,179,219,233,181,142,14,15,
|
||||
143,71,138,229,104,166,225,246,165,53,155,114,243,228,166,217,
|
||||
61,129,33,255,245,215,95,251,205,182,36,70,208,6,98,77,
|
||||
169,13,67,109,194,111,82,91,238,54,59,71,210,81,167,215,
|
||||
236,73,45,32,222,233,74,157,99,75,177,149,105,58,231,72,
|
||||
163,83,200,122,87,58,214,28,10,36,94,254,220,108,118,225,
|
||||
150,195,198,225,15,205,118,23,24,237,181,218,157,94,87,130,
|
||||
206,101,89,110,181,228,102,75,62,58,146,59,135,157,238,241,
|
||||
132,42,42,181,93,22,20,24,252,203,38,220,218,109,116,127,
|
||||
128,27,165,118,167,37,183,143,80,88,45,232,73,150,15,59,
|
||||
71,205,78,91,234,28,2,165,99,155,254,123,166,217,116,74,
|
||||
13,208,216,127,175,255,247,211,135,47,123,223,206,201,37,235,
|
||||
156,156,254,67,34,151,63,73,210,158,36,9,221,193,192,44,
|
||||
93,113,232,245,171,129,255,187,180,47,237,203,157,206,46,113,
|
||||
53,22,110,127,237,127,109,147,211,232,165,6,89,156,68,191,
|
||||
58,137,139,234,36,254,169,176,201,175,70,244,250,235,235,235,
|
||||
5,9,145,55,159,21,107,240,98,112,201,36,132,217,97,251,
|
||||
196,151,46,121,197,111,36,151,47,185,216,26,36,244,181,31,
|
||||
253,122,17,253,234,14,237,181,32,219,34,248,119,171,198,167,
|
||||
82,35,113,255,92,190,124,199,5,181,247,103,127,110,81,98,
|
||||
142,201,29,157,179,125,114,74,166,51,230,144,137,114,79,137,
|
||||
74,169,69,70,166,53,135,255,12,230,216,179,145,99,218,13,
|
||||
114,67,225,238,131,43,213,178,134,199,195,131,225,193,185,57,
|
||||
179,71,244,189,57,26,30,188,51,13,71,209,12,106,179,225,
|
||||
193,103,243,158,42,55,58,189,34,83,247,211,128,40,134,26,
|
||||
162,15,99,32,166,69,109,5,200,14,127,25,254,50,128,30,
|
||||
199,112,183,186,31,25,100,63,52,200,123,69,159,81,24,102,
|
||||
95,144,97,138,163,177,241,156,132,252,3,35,99,211,198,1,
|
||||
139,129,144,177,174,220,195,15,154,10,215,180,177,70,85,114,
|
||||
51,39,220,3,82,7,46,95,68,251,186,8,245,117,163,48,
|
||||
109,68,108,24,179,57,37,202,104,68,1,193,62,221,232,109,
|
||||
174,158,246,254,196,15,154,113,43,212,177,79,62,135,100,201,
|
||||
57,227,60,207,12,166,221,226,23,143,249,157,221,29,46,97,
|
||||
114,58,124,65,30,119,7,4,198,54,49,85,96,203,153,217,
|
||||
6,210,155,0,93,193,60,103,143,234,130,215,125,223,54,247,
|
||||
219,205,195,19,174,104,162,49,162,184,6,231,76,20,7,198,
|
||||
60,189,129,190,25,249,104,168,244,209,83,53,121,208,156,73,
|
||||
62,143,129,192,27,216,235,20,7,50,133,14,132,72,129,189,
|
||||
143,14,118,54,99,192,138,194,144,22,117,251,117,85,48,2,
|
||||
6,104,248,150,6,240,79,46,40,226,8,33,201,191,190,177,
|
||||
109,101,142,223,56,58,224,135,115,122,235,94,143,179,247,73,
|
||||
187,163,208,106,78,76,103,2,195,251,210,255,20,12,182,225,
|
||||
51,143,224,116,76,75,27,9,120,190,51,109,58,60,96,246,
|
||||
72,69,132,122,168,28,254,72,141,225,222,140,133,208,9,247,
|
||||
17,50,112,80,251,92,54,185,116,224,231,187,225,117,64,5,
|
||||
191,115,6,76,62,81,43,122,96,61,3,226,128,128,217,24,
|
||||
70,204,232,84,1,24,142,64,16,138,14,42,158,221,78,64,
|
||||
71,20,228,54,166,10,232,26,148,164,216,32,49,232,138,104,
|
||||
83,203,180,29,104,78,52,3,136,217,218,61,136,217,23,170,
|
||||
198,117,233,105,194,5,227,103,58,189,1,219,139,121,86,146,
|
||||
244,22,247,166,166,250,222,33,112,39,224,41,212,224,247,157,
|
||||
52,55,131,48,13,238,4,188,6,119,183,200,157,127,37,221,
|
||||
217,69,111,238,71,111,126,244,175,236,114,95,37,159,224,104,
|
||||
16,203,0,87,46,90,129,127,75,209,108,226,152,40,55,174,
|
||||
114,206,124,247,4,208,13,215,53,21,166,12,70,32,58,225,
|
||||
134,197,176,225,27,142,123,175,89,191,200,193,21,211,203,232,
|
||||
212,166,160,98,106,128,13,97,43,238,78,11,91,249,182,224,
|
||||
121,54,188,163,45,220,10,202,115,239,207,83,58,143,254,248,
|
||||
8,63,94,96,227,253,106,122,254,10,136,173,73,215,194,24,
|
||||
106,83,40,225,236,161,41,123,134,227,122,109,180,177,144,166,
|
||||
208,48,116,243,65,252,132,134,226,104,83,10,243,211,204,225,
|
||||
180,24,159,151,220,78,128,24,4,222,142,109,206,221,233,37,
|
||||
6,133,56,237,77,64,65,1,14,72,68,31,245,217,118,154,
|
||||
54,67,234,227,154,21,51,23,94,245,57,245,218,140,76,27,
|
||||
252,156,101,26,42,206,39,170,88,135,5,162,167,46,44,210,
|
||||
237,53,214,120,189,245,116,64,206,184,24,68,107,184,122,22,
|
||||
150,197,125,73,27,214,12,39,213,132,127,133,41,96,65,149,
|
||||
166,133,200,164,80,205,192,132,173,209,123,20,1,168,207,50,
|
||||
153,134,51,28,6,7,99,205,6,213,184,193,136,152,52,185,
|
||||
225,89,116,36,66,45,132,6,24,41,234,160,1,113,2,42,
|
||||
92,33,150,77,33,36,177,102,168,234,32,174,129,152,14,169,
|
||||
167,94,19,16,128,184,147,83,135,200,13,195,13,252,28,106,
|
||||
194,67,157,7,115,166,171,94,67,64,25,130,5,198,41,194,
|
||||
51,136,87,198,64,73,119,180,225,30,14,204,180,113,86,133,
|
||||
33,129,111,48,76,160,111,155,119,212,16,49,42,78,192,64,
|
||||
17,184,52,104,10,131,56,4,209,45,125,212,24,196,156,62,
|
||||
147,120,25,124,18,184,154,64,82,26,226,72,200,80,229,131,
|
||||
192,70,30,81,213,164,162,123,78,41,32,164,16,131,222,66,
|
||||
120,11,176,55,102,56,173,187,100,0,79,72,229,155,161,107,
|
||||
198,29,72,201,11,5,121,224,0,97,37,140,92,77,186,138,
|
||||
83,97,163,16,131,198,46,78,224,226,215,116,133,100,227,248,
|
||||
107,8,3,30,31,224,142,67,67,118,157,110,112,217,149,177,
|
||||
203,94,28,246,33,200,122,240,11,193,62,190,46,18,216,143,
|
||||
94,245,209,31,197,188,123,107,150,47,19,151,119,175,99,55,
|
||||
215,10,252,45,236,98,176,251,222,225,20,196,190,254,74,47,
|
||||
171,107,180,191,138,80,52,232,99,26,18,17,42,60,204,98,
|
||||
254,69,197,137,129,212,35,83,23,66,161,131,242,232,188,181,
|
||||
97,197,3,240,226,196,130,49,33,217,48,112,201,14,51,5,
|
||||
105,239,78,70,110,113,76,115,194,102,55,12,214,253,56,128,
|
||||
145,162,235,124,134,70,77,126,65,137,112,88,194,152,217,136,
|
||||
138,64,131,51,181,187,79,254,152,0,43,184,124,164,188,141,
|
||||
97,10,158,124,60,115,94,220,124,2,183,227,70,109,22,161,
|
||||
165,99,189,164,101,36,21,29,248,131,58,12,224,147,18,199,
|
||||
249,250,26,65,216,0,116,101,27,131,36,205,77,152,87,238,
|
||||
116,176,6,83,193,102,71,32,245,90,204,226,174,127,1,228,
|
||||
175,26,119,60,197,178,166,200,251,224,246,182,33,129,8,216,
|
||||
194,125,22,170,114,110,198,233,165,34,158,192,241,221,107,230,
|
||||
140,109,66,56,145,68,25,6,24,171,14,39,112,239,182,122,
|
||||
60,81,31,188,171,69,20,233,250,206,142,42,190,223,228,196,
|
||||
147,76,203,245,172,207,48,231,102,208,135,212,196,89,204,52,
|
||||
41,110,71,140,147,73,57,205,97,33,99,45,134,219,38,102,
|
||||
225,150,244,246,59,84,227,91,75,99,115,134,194,179,81,222,
|
||||
84,221,93,99,75,40,179,211,146,182,175,29,35,168,25,154,
|
||||
179,209,214,85,156,1,201,7,250,194,6,232,54,108,164,237,
|
||||
34,65,39,99,219,156,114,212,113,201,54,22,178,201,205,221,
|
||||
170,74,15,241,185,8,220,221,10,108,1,50,196,24,138,67,
|
||||
36,18,63,145,57,45,59,121,173,214,98,191,206,156,69,247,
|
||||
199,22,180,90,119,207,108,107,154,171,52,205,232,174,94,253,
|
||||
86,185,254,187,134,155,100,144,153,187,213,2,30,185,198,152,
|
||||
110,204,161,69,81,96,57,130,90,169,133,140,143,75,44,119,
|
||||
36,204,81,230,62,172,249,54,51,8,203,5,41,174,32,176,
|
||||
50,5,157,135,91,215,227,97,166,40,90,71,5,204,120,71,
|
||||
21,156,22,56,172,117,15,49,82,234,1,132,97,187,75,39,
|
||||
20,223,44,225,8,124,235,70,175,99,242,246,83,225,61,44,
|
||||
93,25,9,193,39,220,219,65,80,89,176,31,116,162,9,183,
|
||||
146,232,67,120,168,232,109,188,49,2,215,219,182,246,92,132,
|
||||
40,162,18,121,68,172,94,130,208,46,189,96,65,52,201,157,
|
||||
183,151,154,224,83,188,245,250,185,157,229,75,86,114,0,190,
|
||||
54,51,242,58,32,217,64,42,241,78,242,145,28,155,236,22,
|
||||
68,114,214,92,183,232,124,248,93,226,55,11,43,171,117,204,
|
||||
73,244,161,174,83,192,23,96,79,115,10,33,231,70,64,177,
|
||||
178,29,191,140,42,72,84,149,128,163,27,81,148,196,31,25,
|
||||
96,215,177,154,161,226,122,161,139,196,208,150,207,90,108,24,
|
||||
58,243,75,140,146,229,86,117,228,245,158,4,209,117,45,111,
|
||||
234,89,89,88,51,167,56,235,6,50,19,88,8,48,141,162,
|
||||
202,73,189,109,147,107,245,44,213,215,61,242,93,237,10,190,
|
||||
102,136,151,203,107,121,11,232,74,80,223,166,180,182,41,173,
|
||||
13,50,136,172,108,210,214,22,214,198,22,226,53,239,191,209,
|
||||
133,38,135,226,154,247,0,163,41,165,237,101,96,250,108,25,
|
||||
215,80,197,66,249,204,235,89,104,227,218,175,128,10,22,178,
|
||||
168,154,7,141,81,119,89,161,155,183,218,136,80,219,6,61,
|
||||
237,40,140,81,27,173,132,239,155,223,204,110,129,31,149,238,
|
||||
46,27,80,156,101,175,9,202,150,192,165,213,228,100,227,229,
|
||||
41,42,122,148,224,217,149,16,152,38,116,139,166,45,154,114,
|
||||
42,42,11,187,110,17,181,22,40,10,60,136,92,213,119,136,
|
||||
71,55,18,8,87,231,132,102,44,239,129,166,70,170,145,154,
|
||||
49,230,19,249,17,32,193,28,170,168,11,76,164,106,120,22,
|
||||
189,161,33,82,145,217,148,207,133,101,193,45,38,206,80,53,
|
||||
27,155,89,150,238,143,120,137,140,22,160,250,137,75,123,254,
|
||||
166,216,44,196,101,29,197,64,177,48,70,115,190,231,146,159,
|
||||
69,221,254,243,91,195,234,246,222,138,162,144,239,53,164,93,
|
||||
200,176,74,38,67,30,7,13,248,159,12,234,177,181,13,94,
|
||||
10,62,150,90,7,62,135,133,174,77,238,99,107,138,21,77,
|
||||
49,51,13,83,167,21,110,106,101,207,154,26,224,19,239,25,
|
||||
109,3,198,116,99,42,191,143,229,221,147,147,212,220,70,142,
|
||||
107,109,22,207,22,57,174,167,157,61,189,141,45,24,59,214,
|
||||
108,118,219,32,114,5,198,186,193,65,228,214,42,23,8,35,
|
||||
235,157,3,183,177,228,162,118,88,162,38,252,156,58,48,240,
|
||||
92,99,44,174,9,47,51,71,150,217,19,228,213,116,140,11,
|
||||
39,180,119,153,93,88,30,221,62,45,122,136,211,83,212,23,
|
||||
128,47,118,145,43,59,210,191,30,190,140,111,253,59,246,234,
|
||||
118,65,45,19,228,76,109,255,72,171,13,125,4,165,100,85,
|
||||
192,151,111,159,62,249,44,47,251,216,238,34,101,84,113,225,
|
||||
218,177,33,84,120,20,61,117,27,41,23,61,79,188,39,186,
|
||||
133,214,70,64,107,129,66,36,193,73,145,227,174,116,202,104,
|
||||
252,184,153,244,147,102,146,143,3,41,186,30,123,106,63,137,
|
||||
43,183,18,62,118,90,201,112,79,120,228,20,61,225,35,67,
|
||||
193,1,25,252,153,161,144,234,210,31,26,98,79,113,12,77,
|
||||
22,104,66,15,34,85,59,161,229,139,56,217,32,152,207,152,
|
||||
95,30,190,54,248,89,6,3,245,105,185,172,10,170,136,54,
|
||||
197,235,223,152,166,30,115,217,33,1,127,100,30,123,89,62,
|
||||
191,142,51,72,250,20,93,232,195,132,242,218,174,194,120,137,
|
||||
159,50,29,230,48,53,118,202,145,24,4,222,241,83,91,138,
|
||||
192,24,175,36,251,104,96,1,202,90,196,155,98,40,248,164,
|
||||
71,209,60,136,51,91,230,9,171,121,15,62,246,39,248,104,
|
||||
35,78,198,12,79,216,245,81,219,32,148,55,7,67,153,163,
|
||||
254,12,239,116,113,85,12,1,113,206,168,98,143,38,113,164,
|
||||
119,79,188,242,31,6,139,35,128,249,6,164,7,17,93,66,
|
||||
216,25,161,123,200,106,53,222,174,202,138,230,249,17,86,207,
|
||||
169,221,139,193,83,64,49,251,248,132,199,193,122,224,116,189,
|
||||
243,105,75,34,53,125,169,95,29,202,103,20,79,213,175,8,
|
||||
229,208,106,19,169,177,72,16,253,212,152,88,19,29,103,60,
|
||||
62,110,115,9,173,88,99,89,185,205,12,157,134,214,145,45,
|
||||
208,68,190,147,201,66,131,145,141,6,35,25,5,113,167,33,
|
||||
22,126,125,109,202,151,139,190,38,97,93,7,106,103,186,118,
|
||||
59,113,224,131,74,45,106,168,12,126,229,56,10,136,9,81,
|
||||
6,193,221,223,29,79,126,115,80,97,100,209,168,224,123,59,
|
||||
188,132,114,112,154,154,127,119,35,229,252,213,40,69,35,61,
|
||||
150,13,250,39,207,2,232,171,225,241,240,88,136,238,202,21,
|
||||
161,223,200,127,25,209,21,200,225,42,2,219,215,209,137,49,
|
||||
132,248,5,161,123,238,174,234,68,235,29,102,98,221,243,240,
|
||||
90,215,152,211,32,225,111,251,191,81,231,157,57,51,156,157,
|
||||
221,221,53,194,21,7,202,57,31,167,219,146,31,54,151,68,
|
||||
72,133,117,160,144,205,130,235,192,133,118,99,18,74,43,90,
|
||||
27,222,123,39,200,214,237,45,210,230,240,116,1,46,87,165,
|
||||
238,191,130,233,114,56,88,229,162,239,204,223,51,201,174,113,
|
||||
170,144,58,207,89,254,189,171,216,95,137,229,97,154,16,171,
|
||||
199,61,153,47,209,88,123,57,45,122,242,169,231,202,98,0,
|
||||
44,194,82,116,238,142,31,181,145,195,234,155,145,51,83,244,
|
||||
148,123,107,200,160,124,152,90,206,188,36,35,209,76,136,247,
|
||||
10,43,138,20,130,153,32,240,243,4,223,147,70,164,18,169,
|
||||
142,8,169,6,25,43,58,163,193,35,54,85,66,197,119,58,
|
||||
184,169,0,227,249,142,50,152,215,170,236,245,77,236,200,249,
|
||||
79,126,151,159,53,67,155,106,255,193,115,27,160,115,91,172,
|
||||
206,102,83,203,11,105,196,65,77,24,237,141,108,170,240,228,
|
||||
45,63,19,65,177,148,145,230,248,175,173,41,70,193,98,145,
|
||||
7,44,159,150,92,253,60,58,182,146,230,8,56,69,230,15,
|
||||
60,249,232,138,207,18,168,60,114,180,254,104,102,219,226,76,
|
||||
91,209,160,17,105,170,25,92,48,193,49,71,62,193,88,126,
|
||||
215,139,215,206,226,29,214,96,248,111,116,221,28,45,97,248,
|
||||
113,214,184,198,49,42,205,115,113,169,109,151,212,244,123,219,
|
||||
180,150,82,115,176,172,185,30,254,18,190,208,76,42,31,59,
|
||||
97,49,175,155,226,242,162,69,175,94,233,66,153,128,187,236,
|
||||
20,215,15,51,91,102,146,138,148,156,68,14,43,119,77,179,
|
||||
108,233,64,46,177,186,134,159,29,148,60,15,31,37,131,185,
|
||||
211,4,151,161,168,184,164,49,229,49,239,214,52,212,193,122,
|
||||
6,169,76,5,158,70,206,81,138,48,22,210,96,96,31,105,
|
||||
227,139,84,235,196,6,161,194,157,86,176,212,207,97,229,52,
|
||||
184,201,223,197,117,111,78,22,155,215,163,200,223,34,245,45,
|
||||
207,21,143,87,175,104,89,42,220,188,163,149,252,242,57,181,
|
||||
97,157,5,113,65,210,57,243,197,253,185,3,147,222,244,138,
|
||||
136,191,25,75,65,150,116,197,62,93,119,254,49,13,39,12,
|
||||
53,199,60,224,225,142,32,187,79,254,48,237,59,38,242,78,
|
||||
16,144,225,219,74,67,111,75,181,20,155,223,249,237,235,87,
|
||||
151,213,180,188,51,115,123,116,83,88,238,34,35,242,158,220,
|
||||
96,221,141,239,174,85,236,91,234,28,184,175,62,100,98,32,
|
||||
203,225,49,34,49,190,177,121,37,174,240,207,209,198,65,90,
|
||||
228,212,109,148,249,10,230,43,177,3,237,54,75,125,193,113,
|
||||
194,16,82,122,172,228,211,120,14,11,223,209,26,121,35,238,
|
||||
82,72,77,82,72,193,108,72,132,81,233,69,4,23,74,74,
|
||||
36,197,21,147,20,121,29,241,141,218,232,46,74,23,196,35,
|
||||
138,73,227,98,137,142,151,188,23,239,196,100,126,164,140,119,
|
||||
121,103,158,165,203,34,151,227,101,176,229,166,218,196,165,104,
|
||||
190,173,36,186,146,136,1,215,201,106,4,76,144,198,90,26,
|
||||
40,41,36,178,144,82,152,123,140,96,37,129,132,48,239,217,
|
||||
64,136,141,103,25,36,228,179,84,18,10,23,9,221,241,125,
|
||||
168,58,181,87,242,37,215,97,25,184,133,28,101,164,144,173,
|
||||
242,178,253,102,197,63,23,113,205,70,37,147,173,219,213,50,
|
||||
252,118,9,182,164,147,99,68,54,98,203,255,187,51,220,61,
|
||||
230,7,63,194,151,193,206,174,203,195,187,208,254,106,240,69,
|
||||
236,38,99,42,35,25,98,165,210,230,104,240,191,190,24,54,
|
||||
192,231,71,250,227,13,252,175,195,23,240,145,207,161,188,246,
|
||||
219,27,204,239,137,151,121,167,237,255,150,221,47,198,10,187,
|
||||
228,235,193,19,20,197,132,206,167,243,115,49,143,151,99,217,
|
||||
125,37,185,55,213,12,95,157,14,27,98,214,24,190,70,9,
|
||||
136,235,4,12,46,34,8,247,103,126,207,171,211,215,158,36,
|
||||
12,21,235,224,131,123,196,175,160,218,129,39,28,158,233,198,
|
||||
247,194,163,206,67,76,0,26,196,203,121,226,174,36,246,2,
|
||||
122,140,204,75,35,245,173,233,76,130,43,44,84,93,207,139,
|
||||
224,50,50,56,193,202,87,117,223,65,22,251,29,249,113,119,
|
||||
190,75,0,54,144,176,112,125,40,226,18,162,21,141,87,44,
|
||||
219,168,51,94,111,225,226,236,32,145,136,131,119,230,176,152,
|
||||
162,227,235,96,205,71,128,96,31,126,245,51,165,162,5,14,
|
||||
227,20,69,131,145,52,127,198,3,220,130,174,224,102,147,162,
|
||||
223,154,182,230,76,166,165,123,195,191,6,176,248,156,193,238,
|
||||
241,49,247,114,31,221,205,186,8,255,145,43,158,32,112,49,
|
||||
234,109,237,113,78,138,103,222,171,48,150,227,116,61,38,226,
|
||||
221,101,166,236,160,229,91,122,171,25,203,79,209,193,240,195,
|
||||
143,182,135,43,183,75,204,183,119,33,57,60,131,8,62,36,
|
||||
222,25,91,65,0,200,203,191,68,101,239,220,4,211,245,211,
|
||||
25,155,37,19,92,171,65,187,165,178,22,150,25,139,249,42,
|
||||
138,51,167,66,200,219,87,1,71,237,97,25,183,86,126,38,
|
||||
218,64,212,94,223,80,3,86,216,142,200,249,104,184,187,224,
|
||||
76,76,149,31,139,142,181,213,112,31,142,150,23,233,43,198,
|
||||
45,37,163,9,29,221,197,15,39,139,21,89,107,225,236,121,
|
||||
50,111,178,164,78,51,28,91,63,144,29,247,191,25,142,180,
|
||||
191,58,71,122,129,152,74,3,212,69,220,227,101,64,130,164,
|
||||
58,63,95,42,34,143,154,239,7,23,27,108,202,56,139,134,
|
||||
24,31,221,69,241,160,82,109,207,239,154,196,123,140,88,88,
|
||||
196,235,166,37,177,141,12,207,234,10,171,208,143,68,199,95,
|
||||
231,208,67,222,50,63,251,30,103,64,12,189,130,111,92,29,
|
||||
79,49,111,183,208,14,80,200,219,165,108,248,39,245,88,88,
|
||||
177,29,242,105,43,115,104,149,252,89,190,30,10,38,167,52,
|
||||
71,82,114,90,90,73,168,82,214,160,50,220,213,211,113,95,
|
||||
107,148,146,99,139,27,35,144,117,9,81,42,24,244,219,84,
|
||||
99,102,190,53,71,140,54,211,182,171,89,115,190,30,221,37,
|
||||
52,25,219,26,110,140,225,70,13,142,227,252,1,87,197,34,
|
||||
35,35,214,188,10,172,131,195,223,111,252,21,240,185,40,150,
|
||||
243,183,62,196,238,219,45,176,110,195,162,214,35,198,227,23,
|
||||
183,108,18,190,51,183,42,21,36,192,52,136,102,104,32,127,
|
||||
135,23,4,167,191,152,75,1,134,126,229,118,237,238,227,16,
|
||||
246,16,223,59,191,193,116,12,29,33,232,35,141,6,255,7,
|
||||
77,177,185,80,
|
||||
topic "AMap";
|
||||
[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class]
|
||||
[l288;2 $$2,0#27521748481378242620020725143825:desc]
|
||||
[a83;*R6 $$3,0#31310162474203024125188417583966:caption]
|
||||
[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param]
|
||||
[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item]
|
||||
[*+117 $$6,6#14700283458701402223321329925657:header]
|
||||
[l288;a17;*1 $$7,7#70004532496200323422659154056402:requirement]
|
||||
[{_}%EN-US
|
||||
[s5;K%- template_<[@(0.0.255) class]_[@4 K], [@(0.0.255) class]_[@4 T], [@(0.0.255) class]_[@4 V],
|
||||
[@(0.0.255) class]_[@4 HashFn]>__[@(0.0.255) class]_[@0 AMap]&]
|
||||
[s0;~~~64; template <class [*@4 K], class [*@4 T], class [*@4 V], class
|
||||
[*@4 HashFn]>&]
|
||||
[s0;3 &]
|
||||
[s5;K%- template_<[@(0.0.255) class]_[@4 K], [@(0.0.255) class]_[@4 T], [@(0.0.255) class]_[@4 V],
|
||||
[@(0.0.255) class]_[@4 HashFn]>__[@(0.0.255) class]_[@0 AMap]&]
|
||||
[s0; &]
|
||||
[s0; [*C@4 K]-|Type of keys. K must have deep copy constructor, be [*/^dpp`:`/`/SourceDoc`/Containers`/Moveable^ m
|
||||
oveable] and must have [*C operator`=`=] defined.&]
|
||||
[s0; [*C@4 T]-|Type of values. T must satisfy requirements for container
|
||||
flavor identified by parameter V.&]
|
||||
[s0; [*C@4 V]-|Type of basic random access container.&]
|
||||
[s0; [*C@4 HashFn]-|Hashing class. Must have defined [*C unsigned operator()(const
|
||||
K`& x)] method returning hash value for elements.&]
|
||||
[s0;~~~.416; AMap is a class that combines Index of keys with basic
|
||||
random access container of values, forming map flavors. It is
|
||||
used as base class for concrete map flavors, [* VectorMap], [* ArrayMap]
|
||||
and [* SegtorMap].&]
|
||||
[s0;~~~.416; Like any other NTL container, AMap is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m
|
||||
oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/pick`_`$en`-us^ pick
|
||||
and optional deep copy] transfer semantics, although these features
|
||||
are more important in derived concrete index flavors.&]
|
||||
[s0; Members&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Add]([@(0.0.255) const]_K`&_[@3 k], [@(0.0.255) const]_T`&_[@3 x])&]
|
||||
[s2; Adds a key and value pair to the AMap.&]
|
||||
[s7; Invalidates iterators to AIndex.&]
|
||||
[s7; T must have deep copy constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key.&]
|
||||
[s4; [*C@3 x]-|Value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 AddPick]([@(0.0.255) const]_K`&_[@3 k], pick`__T`&_[@3 x])&]
|
||||
[s2; Adds a key and value pair to the AMap. Value is transfered by
|
||||
pick constructor in low constant time, but the source value is
|
||||
destroyed.&]
|
||||
[s7; T must have pick constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key.&]
|
||||
[s4; [*C@3 x]-|-|Value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- T`&_[@0 Add]([@(0.0.255) const]_K`&_[@3 k])&]
|
||||
[s2; Adds a key to the AMap and returns a reference to the corresponding
|
||||
default constructed value.&]
|
||||
[s7; T must have default constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key.&]
|
||||
[s4; [*/ Return value]-|Reference to value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindAdd]([@(0.0.255) const]_[@4 K]`&_[@3 k])&]
|
||||
[s2; Retrieves the position of first element with the specified key
|
||||
in AMap, using a precomputed hash value. The precomputed hash
|
||||
value must be the same as the hash value that would be the result
|
||||
of HashFn. If multi`-key ordering is not broken and more than
|
||||
one element with the same value exists in AMap, the lowest position
|
||||
is retrieved. If the element does not exist in AMap, a negative
|
||||
number is returned. Unlinked elements are ignored.&]
|
||||
[s4; [*C@3 x]-|Key to find.&]
|
||||
[s4; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s4; [*/ Return value]-|Position of element or a negative value if element
|
||||
is not in AMap.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 Find]([@(0.0.255) const]_K`&_[@3 k])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of first element with the specified key
|
||||
in AMap. If multi`-key ordering is not broken and more than one
|
||||
element with the same value exists in AMap, the lowest position
|
||||
is retrieved. If the element does not exist in AMap, a negative
|
||||
number is returned. Unlinked elements are ignored.&]
|
||||
[s4; [*C@3 x]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Position of element or a negative value if element
|
||||
is not in AMap.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 Find]([@(0.0.255) const]_K`&_[@3 k], [@(0.0.255) unsigned]_[@3 h])_[@(0.0.255) c
|
||||
onst]&]
|
||||
[s2; Retrieves the position of next element with the same key as
|
||||
element at the specified position. If multi`-key ordering is
|
||||
not broken and more than one element with that value exists in
|
||||
AMap, the lowest position greater than specified one is retrieved
|
||||
(so that positions got by subsequent calls to FindNext are in
|
||||
ascending order). When there are no more elements with required
|
||||
key, negative number is returned. Unlinked elements are ignored.&]
|
||||
[s4; [*C@3 i]-|Position of element.&]
|
||||
[s4; [*/ Return value]-|Position of next element with same value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindLast]([@(0.0.255) const]_K`&_[@3 k], [@(0.0.255) unsigned]_[@3 h
|
||||
])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves position of last element with the specified key in
|
||||
AMap, using a precomputed hash value. The precomputed hash value
|
||||
must be the same as the hash value that would be the result of
|
||||
HashFn. If multi`-key ordering is not broken and more than one
|
||||
element with the same value exists in AMap, the greatest position
|
||||
is retrieved. If element does not exist in AMap, a negative number
|
||||
is returned. Unlinked elements are ignored.&]
|
||||
[s4; [*C@3 x]-|Key to find.&]
|
||||
[s4; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s4; [*/ Return value]-|Position of element or a negative value if element
|
||||
is not in AMap.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindLast]([@(0.0.255) const]_K`&_[@3 k])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of last element with the specified key
|
||||
in AMap. If multi`-key ordering is not broken and more than one
|
||||
element with the same value exists in AIndex, the greatest position
|
||||
is retrieved. If element does not exist in AMap, a negative number
|
||||
is returned. Unlinked elements are ignored.&]
|
||||
[s4; [*C@3 x]-|Element to find.&]
|
||||
[s4; [*/ Return value]-|Position of element or a negative value if element
|
||||
is not in AMap.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindPrev]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of previous element with the same key
|
||||
as element at the specified position. If multi`-key ordering
|
||||
is not broken and more than one element with that value exists
|
||||
in AMap, the greatest position lower than specified one is retrieved
|
||||
(so that positions got by subsequent calls to FindNext are in
|
||||
descending order). When there are no more elements with required
|
||||
key, a negative number is returned. Unlinked elements are ignored.&]
|
||||
[s4; [*C@3 i]-|Position of element.&]
|
||||
[s4; [*/ Return value]-|Position of previous element with same value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindAdd]([@(0.0.255) const]_[@4 K]`&_[@3 k])&]
|
||||
[s2; Retrieves the position of first element with the specified key
|
||||
in AMap. If multi`-key ordering is not broken and more than one
|
||||
element with the same value exists in AMap, lowest position is
|
||||
retrieved. If the element does not exist in AMap, adds new default
|
||||
constructed element at the end of AMap and returns its position.
|
||||
Unlinked elements are ignored.&]
|
||||
[s7; T must have default constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Position of element (either found or added).&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindAdd]([@(0.0.255) const]_[@4 K]`&_[@3 k], [@(0.0.255) const]_[@4 T]`&
|
||||
_[@3 init])&]
|
||||
[s2; Retrieves the position of first element with the specified key
|
||||
in AMap. If multi`-key ordering is not broken and more than one
|
||||
element with the same value exists in AMap, the lowest position
|
||||
is retrieved. Unlinked elements are ignored. If the element does
|
||||
not exist in AMap, adds new element, deep copy constructed from
|
||||
[*/ init], at the end of AMap and returns its position.&]
|
||||
[s7; T must have deep copy constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 init]-|Value to add if key is not in AMap yet.&]
|
||||
[s4; [*/ Return value]-|Position of element (either found or added).&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindPutPick]([@(0.0.255) const]_[@4 K]`&_[@3 k],
|
||||
pick`__[@4 T]`&_[@3 init])&]
|
||||
[s2; Retrieves the position of first element with the specified key
|
||||
in AMap. If multi`-key ordering is not broken and more than one
|
||||
element with the same value exists in AMap, the lowest position
|
||||
is retrieved. Unlinked elements are ignored. If the element does
|
||||
not exist in AMap, adds new element, pick constructed from [*/ init],
|
||||
at the end of AMap and returns its position.&]
|
||||
[s7; T must have pick constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 init]-|Value to add if key is not in AMap yet.&]
|
||||
[s4; [*/ Return value]-|Position of element (either found or added).&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Unlink]([@(0.0.255) int]_[@3 i])&]
|
||||
[s2; Unlinks element at the specified position. Unlinked item stays
|
||||
in AMap but is ignored by any Find operation.&]
|
||||
[s4; [*C@3 i]-|Position of element to unlink.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 Put]([@(0.0.255) const]_[@4 K]`&_[@3 k], [@(0.0.255) const]_[@4 T]`&_[@3 x
|
||||
])&]
|
||||
[s2; If there are any unlinked elements in AMap, one of them is replaced
|
||||
by the specified key/value pair. If there is are unlinked elements,
|
||||
the key/value pair is added to the end of AIndex using [* Add].
|
||||
Value is transfered using deep copy constructor.&]
|
||||
[s7; T must have deep copy constructor.&]
|
||||
[s7; Invalidates multi`-key ordering.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key.&]
|
||||
[s4; [*C@3 x]-|Value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 PutPick]([@(0.0.255) const]_[@4 K]`&_[@3 k], pick`__[@4 T]`&_[@3 x])&]
|
||||
[s2; If there are any unlinked elements in AMap, one of them is replaced
|
||||
by the specified key/value pair. If there is none unlinked element,
|
||||
the key/value pair is added at the end of AIndex using [* Add].
|
||||
Value is transfered using pick constructor.&]
|
||||
[s7; T must have pick constructor.&]
|
||||
[s7; Invalidates multi`-key ordering.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key.&]
|
||||
[s4; [*C@3 x]-|Value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@4 T]`&_[@0 Put]([@(0.0.255) const]_[@4 K]`&_[@3 k])&]
|
||||
[s2; If there is any unlinked element in AMap, it is replaced by
|
||||
the specified key and reference to the value is returned. If
|
||||
there is none unlinked element, key is added at the end of AIndex
|
||||
using [* Add ]and a reference to corresponding default constructed
|
||||
Value is returned.&]
|
||||
[s7; T must have default constructor.&]
|
||||
[s7; Invalidates multi`-key ordering.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key.&]
|
||||
[s4; [*/ Return value]-|Reference to the corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindPut]([@(0.0.255) const]_[@4 K]`&_[@3 k])&]
|
||||
[s2; Retrieves the position of first element with the specified key
|
||||
in AMap. Unlinked elements are ignored. If the element does not
|
||||
exist in AMap, puts new default constructed element into AMap
|
||||
using [* Put] and returns its position. &]
|
||||
[s7; T must have default constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Position of element (either found or added).&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindPut]([@(0.0.255) const]_[@4 K]`&_[@3 k], [@(0.0.255) const]_[@4 T]`&
|
||||
_[@3 init])&]
|
||||
[s2; Retrieves the position of first element with the specified key
|
||||
in AMap. Unlinked elements are ignored. If the element does not
|
||||
exist in AMap, puts new element, deep copy constructed from [* init],
|
||||
using [* Put] and returns its position. &]
|
||||
[s7; T must have deep copy constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 init]-|Value to add if key is not in AMap yet.&]
|
||||
[s4; [*/ Return value]-|Position of element (either found or added).&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 FindPutPick]([@(0.0.255) const]_[@4 K]`&_[@3 k],
|
||||
pick`__[@4 T]`&_[@3 init])&]
|
||||
[s2; Retrieves the position of first element with the specified key
|
||||
in AMap. Unlinked elements are ignored. If the element does not
|
||||
exist in AMap, puts new element, pick constructed from [* init],
|
||||
using [* Put] and returns its position. &]
|
||||
[s7; T must have deep copy constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 init]-|Value to add if key is not in AMap yet.&]
|
||||
[s4; [*/ Return value]-|Position of element (either found or added).&]
|
||||
[s0;3 &]
|
||||
[s5;K%- T`&_[@0 Get]([@(0.0.255) const]_K`&_[@3 k])&]
|
||||
[s2; Retrieves a reference to the first element with the specified
|
||||
key. If multi`-key ordering is not broken and more than one element
|
||||
with the same value exists in AMap, the lowest position element
|
||||
is retrieved. Unlinked elements are ignored. Required key must
|
||||
be in AMap, otherwise it is logic error (asserted in debug mode).&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Reference to corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_T`&_[@0 Get]([@(0.0.255) const]_K`&_[@3 k])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves a constant reference the the first element with the
|
||||
specified key. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AMap, the lowest
|
||||
position element is retrieved. Unlinked elements are ignored.
|
||||
Required key must be in AMap, otherwise it is logic error (asserted
|
||||
in debug mode).&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Reference to corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_T`&_[@0 Get]([@(0.0.255) const]_K`&_[@3 k], [@(0.0.255) const]_T`&_[@3 d
|
||||
])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves a constant reference value of the first element with
|
||||
the specified key. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AMap, the lowest
|
||||
position element is retrieved. Unlinked elements are ignored.
|
||||
If the required key is not in the AMap, constant reference to
|
||||
the specified value is returned instead.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 d]-|Value to be returned if key is not found.&]
|
||||
[s4; [*/ Return value]-|Reference to found element or supplied value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@4 T]`&_[@0 GetAdd]([@(0.0.255) const]_[@4 K]`&_[@3 k])&]
|
||||
[s2; Retrieves a constant reference value of the first element with
|
||||
the specified key. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AMap, the lowest
|
||||
position element is retrieved. Unlinked elements are ignored.
|
||||
If required key is not in the AMap, adds new default constructed
|
||||
element at the end of AMap and returns a reference to it.&]
|
||||
[s7; T must have default constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Reference to corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@4 T]`&_[@0 GetAdd]([@(0.0.255) const]_[@4 K]`&_[@3 k], [@(0.0.255) const]_[@4 T]`&_[@3 x])&]
|
||||
[s2; Retrieves a constant reference to the first element with the
|
||||
specified key. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AMap, the lowest
|
||||
position element is retrieved. Unlinked elements are ignored.
|
||||
If required key is not in the AMap, adds new element, deep copy
|
||||
constructed from [* x],[* ]at the end of AMap and returns a reference
|
||||
to it.&]
|
||||
[s7; T must have deep copy constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 x]-|Value to add if key is not in AMap.&]
|
||||
[s4; [*/ Return value]-|Reference to corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@4 T]`&_[@0 GetAddPick]([@(0.0.255) const]_[@4 K]`&_[@3 k], pick`__[@4 T]`&_[@3 x])&]
|
||||
[s2; Retrieves a constant reference to the first element with the
|
||||
specified key. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AMap, the lowest
|
||||
position element is retrieved. Unlinked elements are ignored.
|
||||
If required key is not in the AMap, adds new element, pick constructed
|
||||
from [* x],[* ]at the end of AMap and returns a reference to it.&]
|
||||
[s7; T must have pick constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 x]-|Value to add if key is not in AMap.&]
|
||||
[s4; [*/ Return value]-|Reference to corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@4 T]`&_[@0 GetPut]([@(0.0.255) const]_[@4 K]`&_[@3 k])&]
|
||||
[s2; Retrieves a constant reference value of the first element with
|
||||
the specified key. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AMap, the lowest
|
||||
position element is retrieved. Unlinked elements are ignored.
|
||||
If required key is not in the AMap, puts new default constructed
|
||||
element into the AMap using [* Put] and returns a reference to
|
||||
it.&]
|
||||
[s7; T must have default constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Reference to corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@4 T]`&_[@0 GetPut]([@(0.0.255) const]_[@4 K]`&_[@3 k], [@(0.0.255) const]_[@4 T]`&_[@3 x])&]
|
||||
[s2; Retrieves a constant reference value of the first element with
|
||||
the specified key. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AMap, lowest position
|
||||
element is retrieved. Unlinked elements are ignored. If required
|
||||
key is not in the AMap, puts new element, deep copy constructed
|
||||
from [* x],[* ]into the AMap using [* Put] and returns a reference
|
||||
to it.&]
|
||||
[s7; T must have deep copy constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 x]-|Value to add if key is not in AMap.&]
|
||||
[s4; [*/ Return value]-|Reference to corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@4 T]`&_[@0 GetPutPick]([@(0.0.255) const]_[@4 K]`&_[@3 k], pick`__[@4 T]`&_[@3 x])&]
|
||||
[s2; Retrieves a constant reference value of the first element with
|
||||
the specified key. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AMap, lowest position
|
||||
element is retrieved. Unlinked elements are ignored. If required
|
||||
key is not in the AMap, puts new element, pick constructed from
|
||||
[* x], into the AMap using [* Put] and returns a reference to it.&]
|
||||
[s7; T must have pick constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*C@3 x]-|Value to add if key is not in AMap.&]
|
||||
[s4; [*/ Return value]-|Reference to corresponding value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 SetKey]([@(0.0.255) int]_[@3 i], [@(0.0.255) const]_K`&_[@3 k])&]
|
||||
[s2; Replaces key of element at the specified position.&]
|
||||
[s4; [*C@3 i]-|Position of element.&]
|
||||
[s4; [*C@3 k]-|New key value.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- T_`*[@0 FindPtr]([@(0.0.255) const]_K`&_[@3 k])&]
|
||||
[s2; Retrieves a pointer to value of first element with the specified
|
||||
key in AMap. If multi`-key ordering is not broken and more than
|
||||
one element with the same value exists in AMap, the lowest position
|
||||
is retrieved. If the element does not exist in AMap, NULL pointer
|
||||
is returned. Unlinked elements are ignored.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Pointer to value or NULL pointer if element
|
||||
is not in AMap.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_T_`*[@0 FindPtr]([@(0.0.255) const]_K`&_[@3 k])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves a constant pointer to value of first element with
|
||||
the specified key in AMap. If multi`-key ordering is not broken
|
||||
and more than one element with the same value exists in AMap,
|
||||
the lowest position is retrieved. If the element does not exist
|
||||
in AMap, NULL pointer is returned. Unlinked elements are ignored.&]
|
||||
[s4; [*C@3 k]-|Key to find.&]
|
||||
[s4; [*/ Return value]-|Pointer to value or NULL pointer if element
|
||||
is not in AMap.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 UnlinkKey]([@(0.0.255) const]_K`&_[@3 k], [@(0.0.255) unsigned]_[@3 h
|
||||
])&]
|
||||
[s2; Unlinks all elements with the specified key using precomputed
|
||||
hash`-value. Unlinked elements stay in AIndex but are ignored
|
||||
by any Find operations. The precomputed hash value must be the
|
||||
same as the hash value that would be the result of HashFn. &]
|
||||
[s4; [*C@3 k]-|Key to unlink.&]
|
||||
[s4; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s4; [*/ Return value]-|Number of elements unlinked.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 UnlinkKey]([@(0.0.255) const]_K`&_[@3 k])&]
|
||||
[s2; Unlinks all elements with the specified key. Unlinked elements
|
||||
stay in AIndex but are ignored by any Find operations.&]
|
||||
[s4; [*C@3 k]-|Key to unlink.&]
|
||||
[s4; [*/ Return value]-|Number of elements unlinked.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsUnlinked]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Tests whether element at the specified position is unlinked.&]
|
||||
[s4; [*C@3 i]-|Position.&]
|
||||
[s4; [*/ Return value]-|true if element is unlinked.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- T`&_[@0 Insert]([@(0.0.255) int]_[@3 i], [@(0.0.255) const]_K`&_[@3 k])&]
|
||||
[s2; Inserts an element with the specified key and default constructed
|
||||
value at the specified position. This is a slow operation, especially
|
||||
when combined with any search operations.&]
|
||||
[s7; Requires T to have default constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 i]-|Insert position.&]
|
||||
[s4; [*C@3 k]-|Key to insert.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Insert]([@(0.0.255) int]_[@3 i], [@(0.0.255) const]_K`&_[@3 k],
|
||||
[@(0.0.255) const]_T`&_[@3 x])&]
|
||||
[s2; Inserts an element with the specified key and value copy constructed
|
||||
from [*/ x] at the specified position. This is a slow operation,
|
||||
especially when combined with any search operations.&]
|
||||
[s7; Requires T to have deep copy constructor.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 i]-|Insert position.&]
|
||||
[s4; [*C@3 k]-|Key to insert.&]
|
||||
[s4; [*C@3 x]-|Value to insert.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Remove]([@(0.0.255) int]_[@3 i])&]
|
||||
[s2; Removes the element at the specified position. This is a slow
|
||||
operation, especially when combined with any search operations.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 i]-|Position of element to remove.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Remove]([@(0.0.255) const]_[@(0.0.255) int]_`*[@3 sl],
|
||||
[@(0.0.255) int]_[@3 n])&]
|
||||
[s2; Removes number of elements from AMap. Time of operation only
|
||||
slightly depends on the number of removed elements. This is a
|
||||
slow operation, especially when combined with any search operations.&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 i]-|Position of element to remove.&]
|
||||
[s4; [*C@3 sl]-|Pointer to array of the positions to remove, in ascending
|
||||
order.&]
|
||||
[s4; [*C@3 n]-|Number of elements to remove. &]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Remove]([@(0.0.255) const]_[^`:`:Vector^ Vector]<[^int^ int]>`&_[@3 s
|
||||
l])&]
|
||||
[s2; Removes number of elements from AMap. Same as Remove(sorted`_list,
|
||||
sorted`_list.GetCount()).&]
|
||||
[s7; Invalidates iterators to AMap.&]
|
||||
[s7; Invalidates references to keys.&]
|
||||
[s7; Invalidates references to VectorMap values.&]
|
||||
[s4; [*C@3 sl]-|Sorted Vector of positions to remove.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 RemoveKey]([@(0.0.255) const]_[@4 K]`&_[@3 k])&]
|
||||
[s2; Removes all elements with the specified value. This is a slow
|
||||
operation, especially when combined with any search operations.&]
|
||||
[s4; [*C@3 k]-|Key to remove.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_T`&_[@0 operator`[`]]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant reference to the element at the specified
|
||||
position.&]
|
||||
[s4; [*C@3 i]-|Position.&]
|
||||
[s4; [*/ Return value]-|Constant reference to the element at the specified
|
||||
position.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- T`&_[@0 operator`[`]]([@(0.0.255) int]_[@3 i])&]
|
||||
[s2; Returns a reference to the element at the specified position.&]
|
||||
[s4; [*C@3 i]-|Position.&]
|
||||
[s4; [*/ Return value]-|Constant reference to the element at the specified
|
||||
position.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 GetCount]()_[@(0.0.255) const]&]
|
||||
[s2; Returns the number of elements in AMap.&]
|
||||
[s4; [*/ Return value]-|Actual number of elements.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsEmpty]()_[@(0.0.255) const]&]
|
||||
[s2; Tests whether AMap is empty. Same as GetCount() `=`= 0.&]
|
||||
[s4; [*/ Return value]-|true if AMap is empty, false otherwise.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Clear]()&]
|
||||
[s2; Removes all elements from AMap.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Shrink]()&]
|
||||
[s2; Minimizes memory consumption of AMap by decreasing the capacity
|
||||
to the number of elements.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Reserve]([@(0.0.255) int]_[@3 xtra])&]
|
||||
[s2; Reserves capacity. If the required capacity is greater than
|
||||
current capacity, capacity is increased to the required value.&]
|
||||
[s4; [*C@3 n]-|Required capacity.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 GetAlloc]()_[@(0.0.255) const]&]
|
||||
[s2; Returns the current capacity of Array.&]
|
||||
[s4; [*/ Return value]-|Capacity of Array.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Drop]([@(0.0.255) int]_[@3 n]_`=_[@3 1])&]
|
||||
[s2; Drops the specified number of elements at the end of the AMap.&]
|
||||
[s4; [*C@3 n]-|Number of elements.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- T`&_[@0 Top]()&]
|
||||
[s2; Returns a reference to the value of the last element of AMap.&]
|
||||
[s4; [*/ Return value]-|Reference to the value of the last element.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- T`&_[@0 Top]()&]
|
||||
[s2; Returns a constant reference to the value of the last element
|
||||
of AMap.&]
|
||||
[s4; [*/ Return value]-|Reference to the value of the last element.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_K`&_[@0 TopKey]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant reference to the key of the last element
|
||||
of AMap.&]
|
||||
[s4; [*/ Return value]-|Reference to the key of the last element.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- K_[@0 PopKey]()&]
|
||||
[s2; Drops the last element of AMap and returns the key of the dropped
|
||||
element.&]
|
||||
[s4; [*/ Return value]-|Key of the element dropped at the end of AMap.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_K`&_[@0 GetKey]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant reference to the key of element at the specified
|
||||
position.&]
|
||||
[s4; [*C@3 i]-|Position.&]
|
||||
[s4; [*/ Return value]-|Constant reference to the key.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 Serialize]([^`:`:Stream^ Stream]`&_[@3 s])&]
|
||||
[s2; Serializes the content of AMap to/from Stream. Works only if
|
||||
NTL is used as part of UPP.&]
|
||||
[s0; Requires T to have serialization operator defined.&]
|
||||
[s4; [*C@3 s]-|Target/source stream.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_[^`:`:Index^ Index]<[^K^ K], [^HashFn^ HashFn]>`&_[@0 GetIndex]()_[@(0.0.255) c
|
||||
onst]&]
|
||||
[s2; Returns a constant reference to the internal Index of keys.&]
|
||||
[s4; [*/ Return value]-|Constant reference to the Index of keys.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:Index^ Index]<[^K^ K], [^HashFn^ HashFn]>_[@0 PickIndex]()_pick`_&]
|
||||
[s2; Returns Index of keys. Destroys AMap by picking.&]
|
||||
[s4; [*/ Return value]-|Index of keys.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_[^`:`:Vector^ Vector]<[^K^ K]>`&_[@0 GetKeys]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant reference to the Vector of keys.&]
|
||||
[s4; [*/ Return value]-|Constant reference to the Vector of keys.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:Vector^ Vector]<[^K^ K]>_[@0 PickKeys]()_pick`_&]
|
||||
[s2; Returns Vector of keys. Destroys AMap by picking.&]
|
||||
[s4; [*/ Return value]-|Vector of keys.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_V`&_[@0 GetValues]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant reference to the basic random access container
|
||||
of values. Destroys AIndex by picking.&]
|
||||
[s4; [*/ Return value]-|Constant reference to the basic random access
|
||||
container of values.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- V_[@0 PickValues]()_pick`_&]
|
||||
[s2; Returns basic random access container of values. Destroys AIndex
|
||||
by picking.&]
|
||||
[s4; [*/ Return value]-|Basic random access container of values.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:AMap`:`:AMap`(`): [* AMap]()&]
|
||||
[s2; Constructor. Constructs an empty AMap.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:AMap`:`:AMap`(const`:`:AMap`&`,int`): [* AMap](const [* AMap]`&
|
||||
[*@3 s], int)&]
|
||||
[s2; Optional deep copy constructor.&]
|
||||
[s7; Requires T to have deep copy constructor or optional deep copy
|
||||
constructor.&]
|
||||
[s4; [*C s]-|Source AMap.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:AMap`:`:AMap`(pick`_`:`:Index`<K`,HashFn`>`&`,pick`_ V`&`): [* AMap](pick`_
|
||||
Index<K>`& [*@3 ndx], pick`_ V`& [*@3 val])&]
|
||||
[s2; This form of constructors creates AMap by picking Index of keys
|
||||
and basic random access container of values. Both containers
|
||||
must have same number of elements.&]
|
||||
[s4; [*C@3 ndx]-|Keys.&]
|
||||
[s4; [*C@3 val]-|Values.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:AMap`:`:AMap`(pick`_`:`:Vector`<K`>`&`,pick`_ V`&`): [* AMap](pick`_
|
||||
Vector<K>`& [*@3 ndx], pick`_ V`& [*@3 val])&]
|
||||
[s2; This form of constructors creates AMap by picking Vector of
|
||||
keys and basic random access container of values. Both containers
|
||||
must have same number of elements.&]
|
||||
[s4; [*C@3 ndx]-|Keys.&]
|
||||
[s4; [*C@3 val]-|Values.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- typedef_K_[@0 KeyType]&]
|
||||
[s2; Typedef of K for use in templated algorithms.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- typedef_typename_[^`:`:Index^ Index]<[^K^ K], [^HashFn^ HashFn]>`::ConstIterator_[@0 K
|
||||
eyConstIterator]&]
|
||||
[s2; Key iterator type.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:KeyConstIterator^ KeyConstIterator]_[@0 KeyBegin]()_[@(0.0.255) const
|
||||
]&]
|
||||
[s2; Returns a constant iterator to the first key in AMap.&]
|
||||
[s4; [*/ Return value]-|Constant key iterator.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:KeyConstIterator^ KeyConstIterator]_[@0 KeyEnd]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the key just beyond the last
|
||||
key in AMap.&]
|
||||
[s4; [*/ Return value]-|Constant key iterator.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:KeyConstIterator^ KeyConstIterator]_[@0 KeyGetIter]([@(0.0.255) int]_
|
||||
[@3 pos])_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the key at the specified position.
|
||||
Same as [* KeyBegin() `+ i]. The benefit of this method is that
|
||||
[* pos] is range checked in debug mode. &]
|
||||
[s4; [*C@3 i]-|Required position.&]
|
||||
[s4; [*/ Return value]-|Constant key iterator.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- typedef_T_[@0 ValueType]&]
|
||||
[s2; Typedef of T for use in templated algorithms.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- typedef_typename_[^V`:`:ConstIterator^ V`::ConstIterator]_[@0 ConstIterator]&]
|
||||
[s2; Constant value iterator type.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- typedef_typename_[^V`:`:Iterator^ V`::Iterator]_[@0 Iterator]&]
|
||||
[s2; Value iterator type.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:Iterator^ Iterator]_[@0 Begin]()&]
|
||||
[s2; Returns an iterator to the first value in AMap.&]
|
||||
[s4; [*/ Return value]-|Value iterator.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:Iterator^ Iterator]_[@0 End]()&]
|
||||
[s2; Returns a constant iterator to the value just beyond the last
|
||||
key in AMap.&]
|
||||
[s4; [*/ Return value]-|Value iterator.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:Iterator^ Iterator]_[@0 GetIter]([@(0.0.255) int]_[@3 pos])&]
|
||||
[s2; Returns an iterator to the value at the specified position.
|
||||
Same as [* Begin() `+ i]. The benefit of this method is that [* pos]
|
||||
is range checked in debug mode.&]
|
||||
[s4; [*C@3 i]-|Required position.&]
|
||||
[s4; [*/ Return value]-|Value iterator.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:ConstIterator^ ConstIterator]_[@0 Begin]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the first value in AMap.&]
|
||||
[s4; [*/ Return value]-|Constant value iterator.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:ConstIterator^ ConstIterator]_[@0 End]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the value just beyond the last
|
||||
value in AMap.&]
|
||||
[s4; [*/ Return value]-|Constant value iterator.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:AMap`:`:ConstIterator^ ConstIterator]_[@0 GetIter]([@(0.0.255) int]_[@3 pos])_[@(0.0.255) c
|
||||
onst]&]
|
||||
[s2; Returns a constant iterator to the value at the specified position.
|
||||
Same as [* Begin() `+ i]. Benefit of this methods is that in debug
|
||||
mode [* pos] is range checked.&]
|
||||
[s4; [*C@3 i]-|Required position.&]
|
||||
[s4; [*/ Return value]-|Constant value iterator.&]
|
||||
[s0; &]
|
||||
[s0; friend void [* Swap](AMap`& [*@3 a], AMap`& [*@3 b])&]
|
||||
[s2; Specialization of the generic [* Swap] for AMap. Swaps array in
|
||||
simple constant time operation.&]
|
||||
[s4; [*C@3 a]-|First AMap to swap.&]
|
||||
[s0; [*C@3 b]-|Second AMap to swap.]
|
||||
|
|
@ -1,18 +1,352 @@
|
|||
TITLE("CParser")
|
||||
COMPRESSED
|
||||
120,156,237,92,9,115,219,54,22,254,43,216,94,150,28,73,229,33,89,178,60,59,147,212,73,59,158,166,110,166,78,103,119,214,181,45,136,132,100,212,20,201,37,72,31,93,111,127,251,190,7,144,34,72,145,162,36,59,219,244,200,97,73,20,240,240,206,15,15,192,131,207,45,242,217,103,70,199,248,212,104,248,51,126,205,102,52,241,226,139,115,222,239,143,142,168,53,56,186,249,246,251,195,163,253,151,173,131,126,27,169,152,64,197,30,154,246,104,96,155,125,235,0,126,152,182,105,13,44,187,111,142,172,195,254,200,182,71,198,216,241,168,16,23,231,158,53,26,29,97,39,11,58,89,195,129,101,14,251,163,254,200,180,135,35,11,250,90,134,97,25,67,107,96,246,237,145,53,24,187,76,56,23,231,116,100,31,237,255,112,0,157,108,28,9,136,27,230,129,213,31,246,45,195,54,172,62,12,101,142,70,125,115,56,24,217,135,7,7,99,135,134,49,15,252,116,44,110,154,150,121,52,53,135,71,192,243,175,191,254,218,51,251,134,226,160,15,196,76,163,15,172,154,240,204,232,
|
||||
91,67,115,112,104,28,14,70,230,200,176,129,248,96,104,12,198,33,141,232,162,94,244,65,163,232,67,99,204,99,6,36,246,95,152,230,16,186,28,116,14,62,53,251,67,16,116,100,247,7,163,161,1,131,91,150,101,219,150,105,91,135,135,214,224,96,48,28,95,51,234,178,40,21,129,2,243,251,38,116,29,118,134,159,66,71,163,63,176,173,254,33,42,203,134,145,44,235,96,112,104,14,250,198,224,0,40,141,35,246,239,132,71,108,193,124,48,217,127,174,254,251,249,155,211,238,143,103,228,92,12,142,190,29,79,224,239,241,59,26,9,22,225,91,105,148,241,75,131,156,127,110,24,93,195,120,217,50,122,70,207,26,12,218,36,181,87,246,28,228,37,87,217,71,146,146,184,248,226,226,92,24,71,4,95,172,163,236,41,225,130,8,190,8,61,70,30,88,76,110,89,244,64,18,193,102,137,71,60,118,207,29,234,17,234,83,239,225,23,104,42,18,30,211,41,180,156,5,17,153,38,220,115,185,63,39,104,118,96,159,132,146,158,32,193,140,120,212,159,39,116,206,4,185,227,241,
|
||||
53,57,158,116,61,126,195,136,120,240,99,122,223,43,49,112,23,68,55,208,203,39,147,189,201,79,198,100,143,196,44,90,112,159,198,204,133,183,247,49,225,62,89,176,69,0,140,181,252,32,38,103,113,196,232,162,221,33,34,32,113,160,134,37,241,53,112,197,81,136,32,33,215,244,150,225,87,94,64,93,194,145,0,124,192,22,41,153,25,143,68,220,35,239,145,248,53,21,216,20,68,21,49,113,147,8,37,194,166,49,95,48,217,87,144,48,10,28,38,4,176,51,125,88,114,13,172,16,39,8,31,176,193,2,204,223,206,196,250,142,250,121,171,5,139,175,3,87,16,135,250,64,53,10,238,200,210,158,227,55,81,4,106,100,247,14,147,17,128,92,112,223,5,141,199,169,56,148,123,73,196,114,25,83,95,113,65,143,139,105,224,245,200,63,174,153,15,198,66,150,179,1,161,177,52,12,240,230,59,17,3,82,202,44,157,84,22,39,88,44,212,88,137,212,26,60,202,57,104,133,17,155,177,8,76,252,64,110,57,37,239,145,99,197,166,18,164,93,96,146,225,55,130,128,2,239,
|
||||
152,231,149,205,26,76,127,102,78,44,69,71,171,77,97,180,136,250,2,232,131,4,45,80,29,103,238,82,105,202,53,109,249,90,225,249,146,7,124,35,226,40,113,226,241,165,124,120,239,92,102,161,112,121,169,5,131,106,116,177,252,42,15,5,104,102,16,73,76,255,118,172,127,159,147,9,147,169,199,157,42,50,4,134,78,163,105,63,11,167,247,15,33,67,157,186,168,143,76,7,75,213,246,200,113,0,190,207,125,12,54,127,14,126,10,94,140,118,147,241,33,21,41,227,40,226,170,121,65,45,18,86,52,145,191,4,94,94,179,136,223,194,96,179,40,0,180,130,7,164,130,57,91,39,80,171,83,245,6,44,226,67,4,56,215,52,154,236,79,218,227,76,179,251,69,125,17,213,238,10,219,93,77,246,179,199,251,47,109,178,196,31,210,190,80,252,123,136,195,40,185,178,72,16,73,185,250,233,243,172,235,177,236,219,125,204,28,77,8,64,142,13,29,227,93,32,52,183,168,132,198,162,55,148,177,17,8,92,104,67,193,11,60,225,50,26,0,118,100,236,40,20,234,109,160,210,
|
||||
148,27,124,41,170,179,3,8,52,233,224,119,202,236,5,253,34,11,205,218,13,227,220,6,87,147,191,95,157,254,248,246,109,7,145,237,74,111,229,113,159,21,154,45,229,182,137,185,252,162,147,122,95,161,235,204,47,210,79,60,47,183,227,200,168,182,35,62,215,237,136,92,118,31,223,5,192,151,2,35,4,178,80,211,40,126,230,126,152,196,10,218,235,232,72,57,186,143,111,225,133,248,201,98,202,234,135,4,190,187,143,95,3,244,251,116,193,122,69,127,145,86,170,115,26,224,181,102,50,69,65,107,28,70,111,6,70,42,181,202,77,38,53,161,107,111,59,157,108,40,2,170,169,90,6,238,215,186,188,212,173,206,90,89,203,27,14,62,243,181,161,47,115,231,190,84,3,170,15,117,76,128,213,116,22,10,246,43,133,189,177,18,103,217,219,122,204,202,82,158,237,226,42,243,247,220,213,133,52,78,74,45,117,193,102,135,207,141,217,219,69,144,206,42,118,60,93,182,14,169,109,166,69,254,174,136,210,160,185,142,154,231,168,235,74,167,135,156,146,251,144,67,46,168,12,1,
|
||||
204,38,101,202,133,10,131,164,131,149,27,202,244,105,154,78,175,119,152,244,68,44,12,162,24,39,80,57,119,238,106,153,126,5,148,224,248,232,138,152,199,202,140,178,5,33,58,163,78,220,201,216,128,4,15,18,39,127,222,33,183,212,75,24,166,85,63,39,96,48,1,200,152,229,52,253,74,60,251,26,19,79,249,161,42,222,214,248,199,122,7,104,242,91,114,146,163,75,154,239,162,24,66,240,185,15,26,85,25,36,118,56,99,49,4,119,154,236,149,176,224,219,10,148,185,13,184,155,59,199,210,51,12,45,115,204,185,172,130,80,29,105,27,65,86,199,215,202,124,67,13,43,202,57,118,149,65,170,19,142,29,165,61,13,206,110,120,120,22,82,88,38,84,88,5,180,42,244,4,93,174,68,2,151,161,43,71,248,19,150,156,147,174,144,221,9,133,39,152,47,211,36,14,48,62,96,1,6,217,184,0,250,33,115,59,144,220,199,203,229,13,216,48,125,142,11,19,53,252,51,216,238,121,101,169,148,163,71,84,36,224,71,185,194,98,17,194,65,22,221,250,228,168,77,140,92,
|
||||
228,62,139,203,19,39,79,72,8,252,83,206,219,65,150,212,156,186,74,157,206,16,11,112,129,150,46,161,154,213,52,13,2,175,90,77,181,42,130,97,69,81,19,75,15,220,255,146,252,192,226,36,242,21,116,128,19,130,0,128,32,51,100,24,245,87,86,34,234,24,229,216,128,211,98,168,104,156,190,99,236,230,88,255,50,231,85,49,163,208,194,73,162,8,215,241,233,2,5,201,1,234,105,211,222,42,243,199,105,151,98,219,29,217,252,134,197,53,92,190,114,111,169,143,14,213,144,57,65,20,4,254,134,156,103,109,8,141,115,146,83,6,142,130,211,15,142,135,160,200,227,167,184,200,137,40,10,212,136,111,26,186,57,21,232,198,68,140,142,197,208,87,82,135,193,152,32,34,100,14,159,113,39,151,28,165,210,109,154,73,88,5,133,78,65,29,24,211,48,78,147,199,130,178,32,170,157,235,167,171,199,218,81,63,250,114,102,171,142,214,211,52,27,82,190,157,122,205,229,196,159,19,129,220,2,233,84,182,183,160,253,25,3,112,115,215,116,248,224,102,177,127,59,179,108,217,
|
||||
209,174,182,167,76,43,43,45,8,11,147,208,99,241,115,24,49,37,181,149,29,215,245,177,101,2,202,163,134,46,31,208,250,31,0,177,82,67,148,166,149,90,245,147,147,89,30,130,82,158,142,6,250,34,69,103,230,126,84,88,246,113,33,153,210,248,134,152,181,169,190,113,122,141,239,130,156,172,248,67,192,221,31,2,236,86,77,222,4,114,91,89,253,58,98,108,71,187,127,212,8,169,169,124,135,133,210,59,88,141,60,11,92,94,201,163,161,150,92,143,230,107,121,88,48,9,233,157,45,167,45,205,197,99,18,165,249,250,140,122,130,117,212,145,146,168,223,3,169,135,195,29,215,134,153,200,191,37,212,53,104,203,106,57,102,7,58,236,172,179,103,7,176,39,234,250,119,9,78,27,26,9,254,219,13,134,66,244,170,221,198,249,136,80,167,126,23,239,196,173,221,169,150,211,82,190,223,74,78,114,87,216,230,160,77,155,3,230,252,150,249,203,19,119,238,2,232,67,250,43,55,1,87,1,159,102,11,235,124,5,252,128,7,102,30,243,91,162,221,128,248,184,133,118,146,211,
|
||||
127,190,169,122,109,68,232,26,250,128,59,138,149,254,123,226,223,6,55,233,54,196,137,155,110,181,169,173,109,121,12,46,203,79,88,156,42,123,55,143,174,208,234,206,235,56,93,87,141,107,93,172,90,88,241,154,198,53,82,211,134,22,80,230,141,210,232,135,71,165,115,163,130,68,63,48,234,22,100,170,180,18,182,18,85,178,224,89,249,6,201,144,31,248,96,43,234,43,27,225,19,57,202,58,153,155,13,182,157,136,113,147,140,103,184,170,165,30,48,16,113,10,146,0,22,169,158,192,43,152,12,163,0,4,143,4,113,249,12,43,46,160,9,136,53,233,82,47,188,166,126,178,96,145,190,34,206,78,4,228,246,26,141,36,57,221,7,4,241,2,127,142,175,208,226,1,97,102,1,250,125,49,121,1,68,163,5,176,129,7,56,108,17,122,88,21,50,165,242,200,252,33,100,79,82,216,134,30,238,199,53,46,46,193,16,207,126,230,202,139,203,54,39,147,110,106,114,198,101,36,44,240,8,7,148,224,242,57,143,59,40,210,100,15,100,220,75,223,117,225,29,238,61,3,93,207,
|
||||
11,238,84,98,140,65,163,14,114,80,101,217,174,55,76,44,146,200,86,65,162,56,221,64,27,218,201,238,170,231,248,141,158,163,162,67,109,156,42,229,172,15,11,169,99,228,176,136,97,89,120,172,179,241,198,34,173,49,240,169,212,110,45,140,161,145,209,42,16,236,76,136,204,22,107,205,93,176,115,85,211,109,204,86,121,106,254,68,17,43,230,172,106,155,219,50,214,214,37,3,171,170,145,147,149,202,17,176,115,157,90,160,47,228,53,152,229,76,246,94,129,231,67,179,201,222,191,178,96,160,217,147,95,38,123,157,244,228,39,162,254,92,170,196,227,11,46,183,226,169,147,196,128,13,114,152,22,235,205,123,170,108,16,63,154,86,74,94,100,212,212,40,123,83,249,243,43,248,41,207,142,84,164,85,158,168,74,209,187,143,167,41,150,225,199,237,13,167,171,195,47,83,170,67,241,4,172,97,91,151,68,189,214,198,226,115,153,181,124,230,110,52,36,41,42,192,105,65,66,140,238,10,41,85,124,43,70,91,248,164,189,65,160,239,108,131,211,103,136,149,215,65,50,245,216,58,
|
||||
200,159,121,1,149,133,1,33,158,252,111,132,8,31,197,4,32,43,62,171,120,223,64,97,110,81,43,101,79,92,81,218,90,191,169,86,160,170,227,77,39,247,172,48,56,74,188,181,103,155,95,239,40,207,26,7,40,165,78,85,243,193,178,218,88,85,88,122,28,112,6,171,152,235,54,194,206,176,216,3,114,27,117,238,209,194,42,228,201,39,147,189,246,81,131,245,238,210,115,102,101,191,226,104,207,145,6,126,239,179,178,180,21,24,82,163,43,88,179,94,223,48,223,45,192,136,140,236,77,146,230,146,234,100,134,176,18,63,45,21,8,224,21,5,127,192,18,34,199,75,100,105,56,19,14,13,65,231,129,203,4,44,243,223,42,122,178,216,59,79,76,177,28,38,175,123,192,186,101,72,35,85,249,119,43,241,37,63,199,149,83,64,42,97,247,81,214,65,167,176,85,208,156,92,234,226,137,110,136,37,229,66,0,4,162,165,113,222,71,214,5,73,124,173,216,188,40,181,64,128,16,75,50,178,170,0,158,6,196,101,114,138,83,0,0,12,200,130,119,44,233,145,89,240,253,186,
|
||||
168,63,123,118,39,249,147,121,72,209,59,208,148,254,95,206,241,68,4,169,203,66,164,40,235,183,2,127,63,174,165,38,176,220,165,50,59,225,14,8,85,87,79,16,244,159,29,163,148,18,187,143,175,179,241,254,242,213,157,129,236,79,225,168,189,103,243,212,205,177,242,79,237,164,155,150,68,190,7,214,43,242,78,85,237,183,44,111,200,174,102,189,102,14,199,157,49,149,243,162,185,151,59,94,106,129,80,22,31,45,150,85,115,226,141,170,235,96,73,13,122,7,152,103,222,113,145,149,187,213,157,212,154,219,149,226,237,190,89,46,203,245,222,197,85,59,51,223,96,137,40,85,57,127,94,36,186,197,46,139,86,179,93,217,171,14,105,138,87,20,46,11,23,107,74,133,134,133,59,55,69,206,171,152,237,108,80,3,169,237,154,201,25,66,221,246,82,21,139,74,158,244,162,92,186,143,170,151,129,75,143,200,174,48,86,220,99,217,206,89,75,226,109,126,74,82,169,197,188,152,90,167,58,249,66,71,209,112,117,19,234,172,78,151,149,181,250,1,30,123,156,178,187,138,229,217,
|
||||
177,42,186,231,58,200,201,106,79,9,135,97,196,110,121,144,8,239,65,221,14,64,140,211,110,107,104,42,212,196,207,152,213,103,133,242,61,31,92,108,190,9,102,197,175,97,233,188,148,84,233,176,188,253,128,18,167,40,85,113,215,96,221,74,114,101,230,144,5,136,149,244,72,43,187,42,187,140,246,118,179,184,74,132,0,192,153,198,65,148,11,178,170,133,106,49,171,5,248,155,84,83,43,27,127,141,182,235,175,36,169,152,124,171,221,52,217,158,143,44,12,49,170,154,117,177,229,117,37,197,32,94,82,58,133,224,220,157,201,87,78,156,96,166,80,140,114,178,238,165,46,217,144,183,103,112,115,165,216,252,149,56,78,167,189,40,72,98,153,11,132,81,224,38,14,91,82,90,78,57,45,39,88,132,52,230,120,163,91,237,239,168,200,105,167,169,204,242,164,219,165,49,29,87,156,113,47,7,107,190,192,84,122,132,62,167,31,131,151,239,35,230,114,108,117,30,190,230,146,147,158,229,85,223,114,90,208,251,66,30,120,114,250,126,114,245,221,171,127,174,33,138,221,194,89,177,
|
||||
155,186,152,89,60,215,71,38,23,52,138,11,13,85,158,185,172,141,136,24,164,69,162,108,165,186,35,98,125,142,92,123,74,175,114,182,55,10,66,180,19,63,26,69,244,161,2,72,132,190,243,14,122,194,115,68,233,0,181,247,154,80,111,221,199,239,232,189,76,120,192,179,231,224,74,105,150,150,158,172,226,1,151,186,104,206,92,188,197,2,76,161,139,66,30,139,185,236,79,254,228,19,57,3,158,107,42,85,135,98,224,141,152,250,225,151,153,231,227,212,202,253,132,201,188,23,225,209,135,105,99,25,245,21,252,33,181,130,194,126,97,81,48,233,150,127,203,128,58,2,205,135,84,219,133,83,54,231,190,143,204,6,179,124,214,206,182,254,212,167,84,100,77,194,74,171,73,7,72,17,31,84,205,111,165,189,229,99,224,107,10,246,191,145,217,47,254,178,2,149,197,67,74,44,31,11,228,70,187,83,163,174,233,71,218,56,21,120,88,225,71,155,134,239,255,51,96,127,55,145,168,64,17,125,71,255,5,21,69,144,204,55,147,151,234,104,157,75,129,59,68,189,146,201,139,172,
|
||||
192,70,61,104,119,150,110,143,98,119,10,65,144,246,146,12,183,55,49,161,118,197,252,139,103,182,99,70,246,234,15,98,73,37,79,47,251,69,12,120,183,51,205,218,149,145,53,88,173,181,106,239,43,132,135,86,59,179,110,15,112,182,181,181,69,201,197,255,0,72,113,3,148,
|
||||
|
||||
topic "CParser";
|
||||
[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class]
|
||||
[l288;2 $$2,0#27521748481378242620020725143825:desc]
|
||||
[a83;*R6 $$3,0#31310162474203024125188417583966:caption]
|
||||
[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param]
|
||||
[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item]
|
||||
[*+117 $$6,6#14700283458701402223321329925657:header]
|
||||
[l288;a17;*1 $$7,7#70004532496200323422659154056402:requirement]
|
||||
[{_}%EN-US
|
||||
[s5;K:`:`:CParser`:`:class:%- [@(0.0.255) class]_[@0 CParser]&]
|
||||
[s0; &]
|
||||
[s2; CParser is simple yet very useful lexical analyzer suitable
|
||||
for building descent parsers of languages with C`-like syntax.&]
|
||||
[s2; CParser works on `'`\0`' terminated text in memory (not Stream),
|
||||
so to parse the file you have to load it into the memory first.
|
||||
Text has to exist during the time it is processed by CParser
|
||||
(no copy is made).&]
|
||||
[s2; Many CParser methods can throw CParser`::Error exception to indicate
|
||||
the failure to parse required symbol. When using CParser to build
|
||||
concrete parser, it is common to use this exception (preferably
|
||||
via ThrowError method) to indicate errors as well.&]
|
||||
[s2; CParser objects cannot be transfered (copied).&]
|
||||
[s2; &]
|
||||
[s0;3 &]
|
||||
[s5;K:`:`:CParser`:`:Error`:`:struct:%- [@(0.0.255) struct]_[@0 Error]_:_[@(0.0.255) public]_
|
||||
[^`:`:Exc^ Exc]&]
|
||||
[s0;* &]
|
||||
[s2; Type used as CParser exception. Contains single String with
|
||||
error description.&]
|
||||
[s2; &]
|
||||
[s0;l288;%- [%%/ Derived from][%% ][^`:`:Exc^ Exc]&]
|
||||
[s0;3 &]
|
||||
[s0;l288;:`:`:CParser`:`:Error`:`:Error`(const char`*`):%- [* Error](const_char_`*[*@3 s])
|
||||
&]
|
||||
[s2;l448; Constructor.&]
|
||||
[s4;l448; [%-*C@3 s]-|Error message.&]
|
||||
[s2; &]
|
||||
[s0;3 &]
|
||||
[s5;K:`:`:CParser`:`:Pos`:`:struct:%- [@(0.0.255) struct]_[@0 Pos]&]
|
||||
[s2; &]
|
||||
[s2; Position in parsed text.&]
|
||||
[s0;3 &]
|
||||
[s0;l288;:`:`:CParser`:`:Pos`:`:Pos`(const char`*`,int`,`:`:String`):%- [* Pos](const_c
|
||||
har_`*[*@3 ptr]_`=_NULL, int_[*@3 line]_`=_[@3 1], String_[*@3 fn]_`=_Null)&]
|
||||
[s2;l480; Constructor.&]
|
||||
[s4;l480; [%-*C@3 ptr]-|Pointer to the position in the input text &]
|
||||
[s4;l480; [%-*C@3 line]-|Line number.&]
|
||||
[s4;l480; [%-*C@3 fn]-|Filename.&]
|
||||
[s0;3 &]
|
||||
[s5;l288;K:`:`:CParser`:`:Pos`:`:ptr:%- [@(0.0.255) const]_[@(0.0.255) char]_`*[@0 ptr]&]
|
||||
[s2;l480; Pointer to the position in the input text &]
|
||||
[s0;3 &]
|
||||
[s5;l288;K:`:`:CParser`:`:Pos`:`:line:%- [@(0.0.255) int]_[@0 line]&]
|
||||
[s2;l480; Line number.&]
|
||||
[s0;3 &]
|
||||
[s5;l288;K:`:`:CParser`:`:Pos`:`:fn:%- [^`:`:String^ String]_[@0 fn]&]
|
||||
[s2;l480; Filename.&]
|
||||
[s2; &]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:CParser`:`:CParser`(const char`*`):%- [* CParser](const_char_`*[*@3 ptr])&]
|
||||
[s2; Constructs the CParser.&]
|
||||
[s4; [%-*C@3 ptr]-|Pointer to the input text.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:CParser`:`:CParser`(const char`*`,const char`*`,int`):%- [* CParser](const_cha
|
||||
r_`*[*@3 ptr], const_char_`*[*@3 fn], int_[*@3 line]_`=_[@3 1])&]
|
||||
[s2; Constructs the CParser, with additional information for the
|
||||
text. The additional info can be used when reporting error.&]
|
||||
[s4; [%-*C@3 ptr]-|Pointer to the input text.&]
|
||||
[s4; [%-*C@3 fn]-|The name of file (in fact, can be anything, value
|
||||
is just stored).&]
|
||||
[s4; [%-*C@3 line]-|First line number.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:CParser`:`:CParser`(`):%- [* CParser]()&]
|
||||
[s2; Constructs the CParser. Input text has to be assigned using
|
||||
the SetPos method.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 ThrowError]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 s])&]
|
||||
[s2; Throws CParser`::Error.&]
|
||||
[s4; [%-*C@3 s]-|Error message.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 NoSkipSpaces]()&]
|
||||
[s2; Sets CParser to the mode where white`-spaces are not automatically
|
||||
skipped, but have to be skipped by Spaces method.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 SkipSpaces]()&]
|
||||
[s2; Sets CParser to the mode where white`-spaces are automatically
|
||||
skipped. First skip is performed when position in input text
|
||||
is assigned via constructor or SetPos, then the skip is performed
|
||||
after any symbol.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 Spaces]()&]
|
||||
[s2; Skips white`-spaces.&]
|
||||
[s4; [*/ Return value]-|true if there were white`-space to skip.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) char]_[@0 PeekChar]()&]
|
||||
[s2; Returns the current single character.&]
|
||||
[s4; [*/ Return value]-|Current character.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) char]_[@0 GetChar]()&]
|
||||
[s2; Advances the position in the input text by one character.&]
|
||||
[s4; [*/ Return value]-|Character at position before advancing it.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsChar]([@(0.0.255) char]_[@3 c])&]
|
||||
[s2; Tests whether there is a specific character at the current position.&]
|
||||
[s4; [%-*C@3 c]-|Character to test.&]
|
||||
[s4; [*/ Return value]-|true on match.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsChar2]([@(0.0.255) char]_[@3 c1], [@(0.0.255) char]_[@3 c2])&]
|
||||
[s2; Tests whether there is a specific character pair at the current
|
||||
position.&]
|
||||
[s4; [%-*C@3 c1]-|First character of pair.&]
|
||||
[s4; [%-*C@3 c2]-|Second character of pair.&]
|
||||
[s4; [*/ Return value]-|true on match.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsChar3]([@(0.0.255) char]_[@3 c1], [@(0.0.255) char]_[@3 c2],
|
||||
[@(0.0.255) char]_[@3 c3])&]
|
||||
[s2; Test for a specific character triplet at the current position.&]
|
||||
[s4; [%-*C@3 c1]-|First character of triplet.&]
|
||||
[s4; [%-*C@3 c2]-|Second character of triplet.&]
|
||||
[s4; [%-*C@3 c3]-|Third character of triplet.&]
|
||||
[s4; [*/ Return value]-|true on match.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 Char]([@(0.0.255) char]_[@3 c])&]
|
||||
[s2; Tests for a single character at the current position. If there
|
||||
is match, position is advanced.&]
|
||||
[s4; [%-*C@3 c]-|Character to test.&]
|
||||
[s4; [*/ Return value]-|true on match.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 Char2]([@(0.0.255) char]_[@3 c1], [@(0.0.255) char]_[@3 c2])&]
|
||||
[s2; Tests for a character pair at the current position. If there
|
||||
is match, position is advanced by two characters.&]
|
||||
[s4; [%-*C@3 c1]-|First character of pair.&]
|
||||
[s4; [%-*C@3 c2]-|Second character of pair.&]
|
||||
[s4; [*/ Return value]-|true on match.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 Char3]([@(0.0.255) char]_[@3 c1], [@(0.0.255) char]_[@3 c2],
|
||||
[@(0.0.255) char]_[@3 c3])&]
|
||||
[s2; Tests for a character triplet at the current position. If there
|
||||
is match, position is advanced by three characters.&]
|
||||
[s4; [%-*C@3 c1]-|First character of triplet.&]
|
||||
[s4; [%-*C@3 c2]-|Second character of triplet.&]
|
||||
[s4; [%-*C@3 c3]-|Third character of triplet.&]
|
||||
[s4; [*/ Return value]-|true on match.&]
|
||||
[s0;@(0.0.255) &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 PassChar]([@(0.0.255) char]_[@3 c])_throw(Error)&]
|
||||
[s2; Calls Char(c). If it returns false, throws error.&]
|
||||
[s4; [%-*C@3 c]-|Character to test.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 PassChar2]([@(0.0.255) char]_[@3 c1], [@(0.0.255) char]_[@3 c2])_th
|
||||
row(Error)&]
|
||||
[s2; Calls Char2(c1, c2). If it returns false, throws error.&]
|
||||
[s4; [%-*C@3 c1]-|First character of pair.&]
|
||||
[s4; [%-*C@3 c2]-|Second character of pair.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 PassChar3]([@(0.0.255) char]_[@3 c1], [@(0.0.255) char]_[@3 c2],
|
||||
[@(0.0.255) char]_[@3 c3])_throw(Error)&]
|
||||
[s2; Calls Char2(c1, c2, c3). If it returns false, throws the Error.&]
|
||||
[s4; [%-*C@3 c1]-|First character of triplet.&]
|
||||
[s4; [%-*C@3 c2]-|Second character of triplet.&]
|
||||
[s4; [%-*C@3 c3]-|Third character of triplet.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:CParser`:`:Id`(const char`*`):%- bool_[* Id](const_char_`*[*@3 s])&]
|
||||
[s2; Tests for given C`-like identifier. If there is match, advances
|
||||
position by strlen(s) characters.&]
|
||||
[s4; [%-*C@3 s]-|Identifier.&]
|
||||
[s4; [*/ Return value]-|true on match.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 PassId]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 s])_throw(Erro
|
||||
r)&]
|
||||
[s2; Invokes the Id method with s as parameter. If it returns false,
|
||||
throws the Error.&]
|
||||
[s4; [%-*C@3 s]-|Identifier.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsId]()&]
|
||||
[s2; Tests whether there is any C`-like identifier at the current
|
||||
position.&]
|
||||
[s4; [*/ Return value]-|true if there is identifier.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:String^ String]_[@0 ReadId]()_throw(Error)&]
|
||||
[s2; Reads C`-like identifier from the current position. If there
|
||||
is none, an Error is thrown.&]
|
||||
[s4; [*/ Return value]-|Identifier.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:String^ String]_[@0 ReadIdt]()_throw(Error)&]
|
||||
[s2; Special variant of ReadId that considers different non`-alphanumeric
|
||||
characters to be the part of identifier as long as they form
|
||||
C`+`+ normal or template based type.&]
|
||||
[s4; [*/ Return value]-|Identifier.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsInt]()&]
|
||||
[s2; Test for integer at current position `- there either must be
|
||||
digit, or `'`+`' or `'`-`' sign followed by any number of spaces
|
||||
and digit.&]
|
||||
[s4; [*/ Return value]-|true if there is integer.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 ReadInt]()_throw(Error)&]
|
||||
[s2; Reads the integer from the current position. If IsInt is false,
|
||||
throws an Error.&]
|
||||
[s4; [*/ Return value]-|Integer.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsNumber]()&]
|
||||
[s2; Tests for sign`-less number at current position `- there must
|
||||
be digit at current position.&]
|
||||
[s4; [*/ Return value]-|true if there is number.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsNumber]([@(0.0.255) int]_[@3 base])&]
|
||||
[s2; Tests for sign`-less number with given base `- there must be
|
||||
digit or letter `'A`' `- `'Z`' or `'a`' `- `'z`', where range
|
||||
is limit by acutal base (e.g. for base 12 letters `'a`' `'A`'
|
||||
`'b`' `'B`' are allowed).&]
|
||||
[s4; [%-*C@3 base]-|Numeric base.&]
|
||||
[s4; [*/ Return value]-|true if there is number with given numeric base.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:uint32^ uint32]_[@0 ReadNumber]([@(0.0.255) int]_[@3 base]_`=_[@3 10])_throw(Erro
|
||||
r)&]
|
||||
[s2; Reads a number with the given numeric base. If IsNumber(base)
|
||||
is false, throws an Error.&]
|
||||
[s4; [%-*C@3 base]-|Numeric base.&]
|
||||
[s4; [*/ Return value]-|Number.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsDouble]()&]
|
||||
[s2; Test for floating point number at current position `- there
|
||||
either must be digit, or `'`+`' or `'`-`' sign followed by any
|
||||
number of spaces and digit.&]
|
||||
[s4; [*/ Return value]-|true if there is the floating point number.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) double]_[@0 ReadDouble]()_throw(Error)&]
|
||||
[s2; Reads a floating point number with C based lexical rules.&]
|
||||
[s4; [*/ Return value]-|Floating point number.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsString]()&]
|
||||
[s2; Tests for C`-like string literal at the current position. Same
|
||||
as IsChar(`'`\`"`');&]
|
||||
[s4; [*/ Return value]-|true when there is string literal.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:String^ String]_[@0 ReadOneString]([@(0.0.255) bool]_[@3 chkend]_`=_false)_thro
|
||||
w(Error)&]
|
||||
[s2; Reads C`-like string literal from current position (follow C
|
||||
lexical rules, including escape codes). Literals on different
|
||||
lines are not concatenated (unlike C).&]
|
||||
[s4; [%-*C@3 chkend]-|When false, ReadOneString is more permissive as
|
||||
it allows unterminated string literals `- string is then also
|
||||
delimited by end of line or text.&]
|
||||
[s4; [*/ Return value]-|String literal.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:String^ String]_[@0 ReadString]([@(0.0.255) bool]_[@3 chkend]_`=_false)_throw(E
|
||||
rror)&]
|
||||
[s2; Reads C`-like string literal from current position (follow C
|
||||
lexical rules, including escape codes). Literals on different
|
||||
lines are concatenated (as in C).&]
|
||||
[s4; [%-*C@3 chkend]-|When false, ReadOneString is more permissive as
|
||||
it allows unterminated string literals `- string is then also
|
||||
delimited by end of line or text.&]
|
||||
[s4; [*/ Return value]-|String literal.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:String^ String]_[@0 ReadOneString]([@(0.0.255) int]_[@3 delim],
|
||||
[@(0.0.255) bool]_[@3 chkend]_`=_false)_throw(Error)&]
|
||||
[s2; Reads C`-like string literal from current position (follow C
|
||||
lexical rules, including escape codes) with different delimiter
|
||||
than `'`\`"`'. Literals on different lines are not concatenated
|
||||
(unlike C).&]
|
||||
[s4; [%-*C@3 delim]-|Delimiter.&]
|
||||
[s4; [%-*C@3 chkend]-|When false, ReadOneString is more permissive as
|
||||
it allows unterminated string literals `- string is then also
|
||||
delimited by end of line or text.&]
|
||||
[s4; [*/ Return value]-|String literal.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:String^ String]_[@0 ReadString]([@(0.0.255) int]_[@3 delim],
|
||||
[@(0.0.255) bool]_[@3 chkend]_`=_false)_throw(Error)&]
|
||||
[s2; Reads C`-like string literal from current position (follow C
|
||||
lexical rules, including escape codes). with different delimiter
|
||||
than `'`\`"`'. Literals on different lines are concatenated (as
|
||||
in C).&]
|
||||
[s4; [%-*C@3 delim]-|Delimiter.&]
|
||||
[s4; [%-*C@3 chkend]-|When false, ReadOneString is more permissive as
|
||||
it allows unterminated string literals `- string is then also
|
||||
delimited by end of line or text.&]
|
||||
[s4; [*/ Return value]-|String literal.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 SkipTerm]()&]
|
||||
[s2; Skips a single symbol. Decimal numbers, identifiers and string
|
||||
literals are skipped as whole symbols, otherwise input position
|
||||
is advanced by 1 character.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) const]_[@(0.0.255) char]_`*[@0 GetPtr]()&]
|
||||
[s2; Gets a pointer to the current position.&]
|
||||
[s4; [*/ Return value]-|Pointer to current position.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:CParser`:`:Pos^ Pos]_[@0 GetPos]()&]
|
||||
[s2; Gets the current position,.&]
|
||||
[s4; [*/ Return value]-|Current position. It contains the pointer as
|
||||
well as the line number and the filename.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) void]_[@0 SetPos]([@(0.0.255) const]_[^`:`:CParser`:`:Pos^ CParser`::Pos]`&
|
||||
_[@3 p])&]
|
||||
[s2; Sets the current position.&]
|
||||
[s4; [%-*C@3 pos]-|New current position. Can be in different text than
|
||||
previously used in CParser.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [@(0.0.255) bool]_[@0 IsEof]()_[@(0.0.255) const]&]
|
||||
[s2; Test for the end of input text.&]
|
||||
[s4; [*/ Return value]-|true when current position is a the end of input
|
||||
text (`'`\0`' character).&]
|
||||
[s0;3 &]
|
||||
[s5;K%- operator_[@(0.0.255) bool]()_[@(0.0.255) const]&]
|
||||
[s4; [*/ Return value]-|!IsEof().&]
|
||||
[s0; &]
|
||||
[s5;K%- [@(0.0.255) int]_[@0 GetLine]()_[@(0.0.255) const]&]
|
||||
[s4; [*/ Return value]-|Current line.&]
|
||||
[s0;3 &]
|
||||
[s5;K%- [^`:`:String^ String]_[@0 GetFileName]()_[@(0.0.255) const]&]
|
||||
[s4; [*/ Return value]-|Actual filename.&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; C`-like string literal formatting&]
|
||||
[s0; &]
|
||||
[s0; AsCString routines produce C`-like literals (compatible with
|
||||
CParser) from character data:&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:AsCString`(const char`*`,const char`*`,int`,const char`*`,bool`):%- String_[* A
|
||||
sCString](const_char_`*[*@3 s], const_char_`*[*@3 end], int_[*@3 linemax]_`=_INT`_MAX,
|
||||
const_char_`*[*@3 linepfx]_`=_NULL, bool_[*@3 smart]_`=_false)&]
|
||||
[s2; Creates C`-like literal.&]
|
||||
[s4; [%-*C@3 s]-|Pointer to characters.&]
|
||||
[s4; [%-*C@3 end]-|End of characters array (`'`\0`' characters are allowed
|
||||
inside data).&]
|
||||
[s4; [%-*C@3 linemax]-|Maximal length of line. If this is exceeded,
|
||||
ending `"`\`"`\n`" and [@3 linepfx] is inserted and literal continues
|
||||
on the new line.&]
|
||||
[s4; [%-*C@3 linepfx]-|Pointer to zero`-terminated text to be inserted
|
||||
at the beginning of the line when the line length is exceeded.&]
|
||||
[s4; [%-*C@3 smart]-|true activates smarter breaking into lines `- breaks
|
||||
at spaces are preferred.&]
|
||||
[s4; [*/ Return value]-|C`-like literal.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:AsCString`(const char`*`,int`,const char`*`,bool`):%- String_[* AsCString](con
|
||||
st_char_`*[*@3 s], int_[*@3 linemax]_`=_INT`_MAX, const_char_`*[*@3 linepfx]_`=_NULL,
|
||||
bool_[*@3 smart]_`=_false)&]
|
||||
[s2; Creates C`-like literal from zero terminated character data.
|
||||
Same as AsCString([@3 s], [@3 s] `+ strlen([@3 s]), [@3 linemax], [@3 linepfx],
|
||||
[@3 smart]).&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:AsCString`(const`:`:String`&`,int`,const char`*`,bool`):%- String_[* AsCString
|
||||
](const_String`&_[*@3 s], int_[*@3 linemax]_`=_INT`_MAX, const_char_`*[*@3 linepfx]_`=_
|
||||
NULL, bool_[*@3 smart]_`=_false)&]
|
||||
[s2; Creates C`-like literal from String. String can contain zero
|
||||
characters. Same as AsCString([@3 s].Begin(), [@3 s].End(), [@3 linemax],
|
||||
[@3 linepfx], [@3 smart]).&]
|
||||
[s0; ]
|
||||
|
|
@ -1,42 +1,29 @@
|
|||
TITLE("Miscellaneous")
|
||||
COMPRESSED
|
||||
120,156,133,83,91,111,155,48,20,254,43,71,234,69,109,154,
|
||||
102,190,98,3,47,149,218,62,76,211,54,105,93,159,16,106,
|
||||
28,112,26,171,4,50,155,76,169,182,245,183,239,0,33,221,
|
||||
195,182,38,81,44,224,187,158,35,50,6,199,199,100,74,142,
|
||||
200,27,159,228,198,46,205,182,106,243,204,9,161,83,195,100,
|
||||
250,244,225,115,156,78,174,206,34,113,142,34,20,69,184,162,
|
||||
92,75,78,5,139,240,143,114,202,36,227,130,106,22,11,205,
|
||||
185,38,73,81,153,16,242,172,98,90,167,157,51,67,18,83,
|
||||
146,81,37,180,208,148,43,205,144,203,8,97,68,49,73,5,
|
||||
215,76,38,165,13,69,158,25,205,211,201,151,8,73,188,115,
|
||||
66,113,66,35,38,148,96,132,19,38,208,138,106,45,168,146,
|
||||
154,199,81,148,20,102,211,186,166,222,123,57,74,25,77,23,
|
||||
84,165,24,249,229,229,101,70,5,25,18,8,20,163,68,96,
|
||||
84,138,247,136,96,138,202,152,196,82,83,77,56,138,75,69,
|
||||
100,178,49,222,172,255,222,188,211,144,111,86,87,36,113,173,
|
||||
69,137,201,5,165,10,41,209,52,58,162,66,97,81,205,133,
|
||||
212,138,160,57,99,140,115,70,57,139,99,38,35,169,146,149,
|
||||
53,165,245,251,10,6,195,79,40,82,213,84,29,33,145,8,
|
||||
201,153,136,187,97,113,116,98,44,146,49,149,130,200,8,149,
|
||||
18,111,191,109,157,183,107,91,227,198,126,60,252,58,185,253,
|
||||
116,121,127,7,89,224,41,124,116,161,176,85,101,106,219,108,
|
||||
195,105,158,5,146,194,112,76,32,59,33,228,146,144,9,244,
|
||||
155,122,200,247,215,112,187,43,242,14,195,6,40,30,95,87,
|
||||
46,0,254,218,149,133,141,183,75,235,189,45,193,55,77,59,
|
||||
112,161,89,194,253,252,98,126,1,118,87,216,126,25,51,120,
|
||||
223,118,148,133,9,174,48,85,245,12,6,238,90,239,234,199,
|
||||
25,202,89,112,165,53,131,164,105,1,159,195,147,171,203,94,
|
||||
232,32,1,133,169,97,97,193,58,244,245,176,54,181,121,68,
|
||||
219,197,51,132,141,45,220,210,21,176,50,117,89,89,31,166,
|
||||
208,120,8,110,189,169,108,23,127,188,63,42,108,131,45,167,
|
||||
80,186,176,169,204,51,70,128,214,238,218,173,169,192,213,203,
|
||||
198,175,77,239,214,54,125,63,196,250,217,31,245,113,96,217,
|
||||
59,184,177,222,125,71,243,165,111,214,249,56,185,125,161,124,
|
||||
128,241,61,60,153,227,23,67,140,199,217,252,60,121,157,117,
|
||||
55,220,145,126,118,62,206,121,255,194,65,209,212,161,245,219,
|
||||
162,109,134,12,255,81,237,161,221,213,16,98,126,250,111,155,
|
||||
30,250,48,226,14,139,158,92,113,24,222,183,61,240,16,231,
|
||||
250,53,70,223,120,220,92,247,88,164,7,151,235,81,224,242,
|
||||
231,13,30,222,13,107,235,118,232,253,161,1,140,69,242,223,
|
||||
77,207,70,247,
|
||||
topic "Miscellaneous";
|
||||
[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class]
|
||||
[l288;2 $$2,0#27521748481378242620020725143825:desc]
|
||||
[a83;*R6 $$3,0#31310162474203024125188417583966:caption]
|
||||
[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param]
|
||||
[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item]
|
||||
[*+117 $$6,6#14700283458701402223321329925657:header]
|
||||
[l288;a17;*1 $$7,7#70004532496200323422659154056402:requirement]
|
||||
[{_}%EN-US
|
||||
[s3; Miscellaneous&]
|
||||
[s0; &]
|
||||
[s0;%- class_[* Exc]&]
|
||||
[s2; &]
|
||||
[s2; This is the preferred root class of U`+`+ exception. It is basically
|
||||
a String. The idea is that all kinds of exception can be either
|
||||
managed by specific handlers, or simple Exc handler can be used,
|
||||
displaying textual information to the user.&]
|
||||
[s2; &]
|
||||
[s0;%- [%%/ Derived from][%% ]String&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:Exc`:`:Exc`(`):%- [* Exc]()&]
|
||||
[s2; Default constructor.&]
|
||||
[s0;3 &]
|
||||
[s0;:`:`:Exc`:`:Exc`(const`:`:String`&`):%- [* Exc](const_String`&_[*@3 desc])&]
|
||||
[s2; Constructor from String.&]
|
||||
[s4; [%-*C@3 desc]-|Description of error.&]
|
||||
[s0; &]
|
||||
[s0; ]
|
||||
|
|
@ -10,6 +10,29 @@ NAMESPACE_UPP
|
|||
#define LLOG(x)
|
||||
#define LTIMING(x) // RTIMING(x)
|
||||
|
||||
class Nestfo {
|
||||
bool bvalid, nvalid;
|
||||
Vector<String> baselist;
|
||||
Vector<String> nests;
|
||||
int nesti;
|
||||
void Bases(int i, Vector<int>& g);
|
||||
void Init();
|
||||
|
||||
public:
|
||||
const CppBase& base;
|
||||
VectorMap<String, String> cache;
|
||||
|
||||
const Vector<String>& GetBases();
|
||||
const Vector<String>& GetNests();
|
||||
int GetNest() const { return nesti; }
|
||||
void NoBases() { baselist.Clear(); bvalid = true; }
|
||||
|
||||
Nestfo(const CppBase& base, int nesti = -1);
|
||||
Nestfo(int nesti, const CppBase& base);
|
||||
Nestfo(const CppBase& base, const String& nest);
|
||||
Nestfo(const Nestfo& f);
|
||||
};
|
||||
|
||||
void CppWordsHash::AddWord(const String& s)
|
||||
{
|
||||
int i = GetHashValue(s) & 127;
|
||||
|
|
@ -160,6 +183,8 @@ const Vector<String>& Nestfo::GetNests()
|
|||
return nests;
|
||||
}
|
||||
|
||||
String Qualify(Nestfo& nf, const String& type);
|
||||
|
||||
String Qualify0(Nestfo& nf, const String& type)
|
||||
{
|
||||
if(IsNull(type) || type == "const" ||
|
||||
|
|
@ -228,7 +253,7 @@ String Qualify(Nestfo& nf, const String& type)
|
|||
return x;
|
||||
}
|
||||
|
||||
String QualifyIds(Nestfo& nf, const String& k, CppWordsHash& w)
|
||||
String QualifyIds(Nestfo& nf, const String& k, CppWordsHash& w, bool all)
|
||||
{
|
||||
String r;
|
||||
CParser p(k);
|
||||
|
|
@ -245,6 +270,7 @@ String QualifyIds(Nestfo& nf, const String& k, CppWordsHash& w)
|
|||
}
|
||||
}
|
||||
Nestfo nnf(nf.GetNest(), nf.base);
|
||||
if(all)
|
||||
t = Qualify(nnf, t);
|
||||
if(iscid(*r.Last()) && iscid(*t))
|
||||
r << ' ';
|
||||
|
|
@ -262,6 +288,7 @@ String QualifyIds(Nestfo& nf, const String& k, CppWordsHash& w)
|
|||
t << id;
|
||||
}
|
||||
}
|
||||
if(all)
|
||||
t = Qualify(nf, t);
|
||||
if(iscid(*r.Last()) && iscid(*t))
|
||||
r << ' ';
|
||||
|
|
@ -269,6 +296,8 @@ String QualifyIds(Nestfo& nf, const String& k, CppWordsHash& w)
|
|||
}
|
||||
else {
|
||||
int c = p.GetChar();
|
||||
if(c == '(')
|
||||
all = true;
|
||||
r.Cat(c);
|
||||
p.Spaces();
|
||||
}
|
||||
|
|
@ -280,20 +309,20 @@ String Qualify(const CppBase& base, const String& nest, const String& type)
|
|||
{
|
||||
CppWordsHash dummy;
|
||||
Nestfo nf(base, nest);
|
||||
return QualifyIds(nf, type, dummy);
|
||||
return QualifyIds(nf, type, dummy, true);
|
||||
}
|
||||
|
||||
String QualifyKey(const CppBase& base, const String& nest, const String& type)
|
||||
{
|
||||
CppWordsHash dummy;
|
||||
Nestfo nf(base, nest);
|
||||
return QualifyIds(nf, type, dummy);
|
||||
return QualifyIds(nf, type, dummy, false);
|
||||
}
|
||||
|
||||
void QualifyTypes(Nestfo& nf, CppItem& m)
|
||||
{
|
||||
m.qtype = QualifyIds(nf, m.type, m.words);
|
||||
m.qptype = QualifyIds(nf, m.ptype, m.words);
|
||||
m.qtype = QualifyIds(nf, m.type, m.words, true);
|
||||
m.qptype = QualifyIds(nf, m.ptype, m.words, true);
|
||||
}
|
||||
|
||||
void QualifyTypes(CppBase& base, const String& nest, CppItem& m)
|
||||
|
|
@ -332,7 +361,7 @@ void QualifyPass2(CppBase& base, const CppWordsHash& words)
|
|||
QualifyTypes(nf, m);
|
||||
if(m.IsCode()) {
|
||||
String k = n.key[i];
|
||||
String r = QualifyIds(nf, m.key, m.words);
|
||||
String r = QualifyIds(nf, m.key, m.words, false);
|
||||
if(k != r) {
|
||||
int q = n.key.Find(r);
|
||||
if(q >= 0 && q != i)
|
||||
|
|
@ -395,7 +424,7 @@ void Remove(CppBase& base, const Vector<String>& pf)
|
|||
void CppItem::Serialize(Stream& s)
|
||||
{
|
||||
s % kind % access;
|
||||
s % natural % at % tparam % param % pname % tname % type % ptype % virt % key;
|
||||
s % natural % at % tparam % param % pname % tname % ctname % type % ptype % virt % key;
|
||||
}
|
||||
|
||||
END_UPP_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -237,6 +237,7 @@ struct CppPos : Moveable<CppPos> {
|
|||
|
||||
struct CppSimpleItem {
|
||||
String natural;
|
||||
|
||||
String type;
|
||||
String qtype;
|
||||
String tparam;
|
||||
|
|
@ -245,6 +246,7 @@ struct CppSimpleItem {
|
|||
String ptype;
|
||||
String qptype;
|
||||
String tname;
|
||||
String ctname;
|
||||
byte access;
|
||||
byte kind;
|
||||
int16 at;
|
||||
|
|
@ -301,6 +303,7 @@ class Parser {
|
|||
struct Context {
|
||||
int namespacel;
|
||||
String nesting;
|
||||
String ctname;
|
||||
Vector<int> tparam;
|
||||
Index<int> typenames;
|
||||
int access;
|
||||
|
|
@ -403,7 +406,7 @@ class Parser {
|
|||
CppItem& Item(const String& nesting, const String& item, const String& name, bool impl);
|
||||
CppItem& Item(const String& nesting, const String& item, const String& name);
|
||||
|
||||
CppItem& Fn(const Decl& d, const String& templ, bool body, int kind);
|
||||
CppItem& Fn(const Decl& d, const String& templ, bool body, int kind, const String& tname, const String& tparam);
|
||||
|
||||
struct Error {};
|
||||
|
||||
|
|
@ -454,30 +457,6 @@ public:
|
|||
|
||||
String NoTemplatePars(const String& type);
|
||||
|
||||
class Nestfo {
|
||||
bool bvalid, nvalid;
|
||||
Vector<String> baselist;
|
||||
Vector<String> nests;
|
||||
int nesti;
|
||||
void Bases(int i, Vector<int>& g);
|
||||
void Init();
|
||||
|
||||
public:
|
||||
const CppBase& base;
|
||||
VectorMap<String, String> cache;
|
||||
|
||||
const Vector<String>& GetBases();
|
||||
const Vector<String>& GetNests();
|
||||
int GetNest() const { return nesti; }
|
||||
void NoBases() { baselist.Clear(); bvalid = true; }
|
||||
|
||||
Nestfo(const CppBase& base, int nesti = -1);
|
||||
Nestfo(int nesti, const CppBase& base);
|
||||
Nestfo(const CppBase& base, const String& nest);
|
||||
Nestfo(const Nestfo& f);
|
||||
};
|
||||
|
||||
String Qualify(Nestfo& nf, const String& type);
|
||||
String Qualify(const CppBase& base, const String& nest, const String& type);
|
||||
void QualifyTypes(CppBase& base, const String& nest, CppItem& m);
|
||||
String QualifyKey(const CppBase& base, const String& nest, const String& type);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ file
|
|||
Pre.cpp,
|
||||
cpplex.cpp,
|
||||
Parser.cpp,
|
||||
Parser2.cpp,
|
||||
Base.cpp,
|
||||
Info readonly separator,
|
||||
Copying;
|
||||
|
|
|
|||
|
|
@ -19,14 +19,34 @@ inline const char *bew(const char *s, const char *t)
|
|||
return t;
|
||||
}
|
||||
|
||||
static String s_operator("operator");
|
||||
static String s_virtual("virtual");
|
||||
static String s_inline("inline");
|
||||
static String s_static("static");
|
||||
|
||||
static inline bool sSpaces(String& res, const char *& s)
|
||||
{
|
||||
if((byte)*s <= ' ') {
|
||||
char c = *s++;
|
||||
if(c != '\2') {
|
||||
res.Cat(' ');
|
||||
while((byte)*s <= ' ' && *s)
|
||||
s++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
String FnItem(const char *s, const char *pname, const char *qname, const String& name) {
|
||||
String res;
|
||||
while(*s && (byte)*s <= ' ') s++;
|
||||
while(*s) {
|
||||
while(*s && !iscid(*s) && *s != '~')
|
||||
s++;
|
||||
while(iscid(*s) || *s == '~')
|
||||
res.Cat(*s++);
|
||||
if(res == "operator") {
|
||||
if(res == s_operator) {
|
||||
while(*s && *s != '(') {
|
||||
if((byte)*s >= ' ')
|
||||
res.Cat(*s);
|
||||
|
|
@ -42,6 +62,7 @@ String FnItem(const char *s, const char *pname, const char *qname, const String&
|
|||
}
|
||||
while(*s) {
|
||||
const char *w = bew(qname, s);
|
||||
byte c = *s;
|
||||
if(w && !iscid(*w)) {
|
||||
if(iscid(*res.Last()))
|
||||
res.Cat(' ');
|
||||
|
|
@ -49,11 +70,11 @@ String FnItem(const char *s, const char *pname, const char *qname, const String&
|
|||
s = w;
|
||||
}
|
||||
else
|
||||
if(iscid(*s)) {
|
||||
String q;
|
||||
while(iscid(*s))
|
||||
q.Cat(*s++);
|
||||
if(q != "virtual" && q != "inline" && q != "static" && !InScList(q, pname)) {
|
||||
if(iscid(c)) {
|
||||
const char *b = s++;
|
||||
while(iscid(*s)) s++;
|
||||
String q(b, s);
|
||||
if(q != s_virtual && q != s_inline && q != s_static && !InScList(q, pname)) {
|
||||
if(iscid(*res.Last()))
|
||||
res.Cat(' ');
|
||||
res.Cat(q);
|
||||
|
|
@ -62,7 +83,7 @@ String FnItem(const char *s, const char *pname, const char *qname, const String&
|
|||
while((byte)*s <= ' ' && *s) s++;
|
||||
}
|
||||
else
|
||||
if(*s == '=') {
|
||||
if(c == '=') {
|
||||
s++;
|
||||
int l = 0;
|
||||
while(*s && !(l == 0 && (*s == ',' || *s == ')'))) {
|
||||
|
|
@ -80,14 +101,17 @@ String FnItem(const char *s, const char *pname, const char *qname, const String&
|
|||
while((byte)*s <= ' ' && *s)
|
||||
s++;
|
||||
}
|
||||
else
|
||||
res.Cat(*s++);
|
||||
else {
|
||||
res.Cat(c);
|
||||
s++;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
String Purify(const char *s, const char *qname, const String& name) {
|
||||
String res;
|
||||
while(*s && (byte)*s <= ' ') s++;
|
||||
while(*s) {
|
||||
const char *w = bew(qname, s);
|
||||
if(w) {
|
||||
|
|
@ -96,22 +120,16 @@ String Purify(const char *s, const char *qname, const String& name) {
|
|||
}
|
||||
else
|
||||
if(iscid(*s)) {
|
||||
String q(*s++, 1); //!!! speed up!
|
||||
while(iscid(*s))
|
||||
q.Cat(*s++);
|
||||
if(q != "virtual" && q != "inline" && q != "static")
|
||||
const char *b = s++;
|
||||
while(iscid(*s)) s++;
|
||||
String q(b, s);
|
||||
if(q != s_virtual && q != s_inline && q != s_static)
|
||||
res.Cat(q);
|
||||
else
|
||||
while((byte)*s <= ' ' && *s) s++;
|
||||
}
|
||||
else
|
||||
if((byte)*s <= ' ') {
|
||||
s++;
|
||||
res.Cat(' ');
|
||||
while((byte)*s <= ' ' && *s)
|
||||
s++;
|
||||
}
|
||||
else
|
||||
if(!sSpaces(res, s))
|
||||
res.Cat(*s++);
|
||||
}
|
||||
return TrimRight(res);
|
||||
|
|
@ -119,29 +137,33 @@ String Purify(const char *s, const char *qname, const String& name) {
|
|||
|
||||
String Purify(const char *s) {
|
||||
String res;
|
||||
while(*s && (byte)*s <= ' ') s++;
|
||||
while(*s) {
|
||||
if(iscid(*s)) {
|
||||
String q(*s++, 1); //!!! speed up!
|
||||
while(iscid(*s))
|
||||
q.Cat(*s++);
|
||||
if(q != "virtual" && q != "inline")
|
||||
const char *b = s++;
|
||||
while(iscid(*s)) s++;
|
||||
String q(b, s);
|
||||
if(q != s_virtual && q != s_inline)
|
||||
res.Cat(q);
|
||||
else
|
||||
while((byte)*s <= ' ' && *s) s++;
|
||||
}
|
||||
else
|
||||
if((byte)*s <= ' ') {
|
||||
s++;
|
||||
res.Cat(' ');
|
||||
while((byte)*s <= ' ' && *s)
|
||||
s++;
|
||||
}
|
||||
else
|
||||
if(!sSpaces(res, s))
|
||||
res.Cat(*s++);
|
||||
}
|
||||
return TrimRight(res);
|
||||
}
|
||||
|
||||
String Gpurify(const char *s)
|
||||
{
|
||||
String res;
|
||||
while(*s)
|
||||
if(!sSpaces(res, s))
|
||||
res.Cat(*s++);
|
||||
return res;
|
||||
}
|
||||
|
||||
void ScAdd(String& s, const String& a)
|
||||
{
|
||||
if(a.IsEmpty()) return;
|
||||
|
|
@ -172,6 +194,7 @@ void Parser::Context::operator<<=(const Context& t)
|
|||
access = t.access;
|
||||
noclass = t.noclass;
|
||||
namespacel = t.namespacel;
|
||||
ctname = t.ctname;
|
||||
}
|
||||
|
||||
Parser::Decla::Decla()
|
||||
|
|
@ -935,10 +958,12 @@ CppItem& Parser::Item(const String& nesting, const String& item, const String& n
|
|||
n.namespacel = current_namespacel = context.namespacel;
|
||||
CppItem& im = dobody ? current : n.GetAdd(item, name);
|
||||
im.key = item;
|
||||
im.ctname = context.ctname;
|
||||
CppPos& p = im.pos.Add();
|
||||
p.file = filei;
|
||||
p.line = line + 1;
|
||||
p.impl = impl;
|
||||
LLOG("New item " << GetCppFile(filei) << ' ' << line + 1 << " " << nesting << "::" << item);
|
||||
return im;
|
||||
}
|
||||
|
||||
|
|
@ -1059,6 +1084,11 @@ bool Parser::Nest(const String& tp, const String& tn) {
|
|||
while(Key(t_dblcolon));
|
||||
context.access = t == tk_class ? PRIVATE : PUBLIC;
|
||||
context.noclass = false;
|
||||
if(tn.GetCount()) {
|
||||
if(context.ctname.GetCount())
|
||||
context.ctname << ';';
|
||||
context.ctname << tn;
|
||||
}
|
||||
String nn;
|
||||
if(!tp.IsEmpty())
|
||||
nn = "template " + tp + " ";
|
||||
|
|
@ -1105,12 +1135,12 @@ bool Parser::Nest(const String& tp, const String& tn) {
|
|||
}
|
||||
if(Key('{')) {
|
||||
NestBody();
|
||||
im.natural = nn;
|
||||
im.natural = Gpurify(nn);
|
||||
im.decla = true;
|
||||
}
|
||||
else
|
||||
if(IsNull(im.natural))
|
||||
im.natural = nn;
|
||||
im.natural = Gpurify(nn);
|
||||
context = cc;
|
||||
CheckKey(';');
|
||||
SetNestCurrent();
|
||||
|
|
@ -1125,7 +1155,8 @@ String DeTemp(const char *s)
|
|||
return r;
|
||||
}
|
||||
|
||||
CppItem& Parser::Fn(const Decl& d, const String& templ, bool body, int kind)
|
||||
CppItem& Parser::Fn(const Decl& d, const String& templ, bool body, int kind,
|
||||
const String& tname, const String& tparam)
|
||||
{
|
||||
String param;
|
||||
String pname;
|
||||
|
|
@ -1171,7 +1202,7 @@ CppItem& Parser::Fn(const Decl& d, const String& templ, bool body, int kind)
|
|||
if(!body || IsNull(im.natural)) {
|
||||
im.natural.Clear();
|
||||
if(!IsNull(templ)) {
|
||||
im.natural = templ;
|
||||
im.natural = TrimRight(Gpurify(templ)) + ' ';
|
||||
im.at = im.natural.GetLength();
|
||||
}
|
||||
im.natural << Purify(d.natural, d.name, nm);
|
||||
|
|
@ -1183,6 +1214,9 @@ CppItem& Parser::Fn(const Decl& d, const String& templ, bool body, int kind)
|
|||
im.virt = d.s_virtual;
|
||||
im.type = d.type;
|
||||
im.decla = true;
|
||||
im.tname = tname;
|
||||
im.tparam = tparam;
|
||||
im.ctname = context.ctname;
|
||||
LLOG("FnItem: " << nesting << "::" << item << ", natural: " << im.natural);
|
||||
}
|
||||
return im;
|
||||
|
|
@ -1241,9 +1275,8 @@ void Parser::Do()
|
|||
CppItem& m = Fn(d, "template " + tparam + ' ', body,
|
||||
context.noclass ? FUNCTIONTEMPLATE :
|
||||
d.s_static ? CLASSFUNCTIONTEMPLATE :
|
||||
INSTANCEFUNCTIONTEMPLATE);
|
||||
m.tname = tnames;
|
||||
m.tparam = CleanTp(tparam);
|
||||
INSTANCEFUNCTIONTEMPLATE,
|
||||
tnames, tparam);
|
||||
functionItem = &m;
|
||||
}
|
||||
}
|
||||
|
|
@ -1346,7 +1379,8 @@ void Parser::Do()
|
|||
Fn(d, Null, body, d.istructor ? (d.isdestructor ? DESTRUCTOR : CONSTRUCTOR) :
|
||||
d.isfriend ? INLINEFRIEND :
|
||||
context.noclass ? FUNCTION :
|
||||
d.s_static ? CLASSFUNCTION : INSTANCEFUNCTION);
|
||||
d.s_static ? CLASSFUNCTION : INSTANCEFUNCTION,
|
||||
String(), String());
|
||||
functionItem = &im;
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
1447
uppsrc/CppBase/Parser2.cpp
Normal file
1447
uppsrc/CppBase/Parser2.cpp
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,5 @@
|
|||
topic "Ctrl";[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
topic "Ctrl";
|
||||
[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param]
|
||||
[a83;*R6 $$2,5#31310162474203024125188417583966:caption]
|
||||
[b83;*4 $$3,5#07864147445237544204411237157677:title]
|
||||
|
|
|
|||
|
|
@ -1,55 +1,317 @@
|
|||
TITLE("FileList")
|
||||
COMPRESSED
|
||||
120,156,237,188,249,83,99,73,150,38,250,175,96,221,51,101,153,53,57,249,98,205,140,202,236,105,171,55,61,221,99,245,166,172,199,172,179,103,230,135,124,153,29,100,4,145,137,85,100,68,24,16,85,93,239,217,107,99,23,32,144,64,18,18,18,66,151,69,72,108,90,208,138,16,210,101,21,8,45,23,73,32,132,132,144,208,138,246,21,173,87,247,190,43,1,17,16,25,145,91,213,204,179,103,214,10,179,208,197,175,251,241,227,199,143,159,243,125,238,14,159,223,169,251,55,255,230,214,7,183,254,242,214,15,124,62,249,79,13,79,234,95,62,109,249,226,243,198,123,247,30,124,90,127,231,254,167,191,251,47,255,245,87,159,254,242,215,239,125,116,239,253,170,148,219,152,148,187,31,223,190,251,224,254,221,219,247,238,124,132,253,119,251,238,237,59,247,239,220,189,119,251,193,157,95,221,123,112,247,238,131,91,159,60,122,90,223,220,252,197,231,79,239,60,120,240,105,181,209,157,15,238,252,229,157,143,239,223,185,253,241,189,7,247,30,220,190,251,241,131,59,88,219,59,183,110,
|
||||
221,185,245,241,157,251,183,239,221,125,112,231,254,39,143,27,154,31,125,241,121,253,131,187,159,254,242,31,62,194,26,221,173,246,132,9,191,117,251,163,59,247,62,190,119,231,214,221,91,119,238,97,93,221,126,240,224,222,237,143,239,63,184,251,171,143,62,250,228,81,253,139,150,198,231,207,46,251,106,188,125,251,206,237,79,191,186,253,241,167,152,206,255,242,47,255,242,225,237,123,183,46,52,184,135,9,187,125,235,30,166,234,109,172,236,214,189,59,31,223,190,255,171,91,191,186,255,224,246,131,91,119,49,225,247,63,190,117,255,147,23,245,77,245,223,190,123,232,247,127,112,232,31,223,250,164,177,165,1,19,241,203,127,119,251,246,199,88,147,143,62,248,232,47,111,223,251,24,27,232,131,187,247,238,63,248,248,22,214,249,157,59,119,238,222,189,115,251,238,157,95,253,234,206,253,143,238,127,252,201,55,13,245,143,27,154,190,248,252,255,254,167,255,231,223,254,237,223,255,251,255,246,89,221,231,205,183,63,253,47,159,60,196,254,253,93,227,211,134,223,54,54,183,84,159,107,
|
||||
86,253,228,203,234,227,223,60,127,250,242,219,103,213,23,95,214,125,254,111,111,221,250,247,183,110,125,249,229,175,223,187,245,225,173,15,239,220,191,255,126,221,229,4,92,189,169,251,167,215,207,191,190,85,119,37,244,122,133,79,174,87,121,45,232,197,203,175,158,54,62,122,155,164,186,215,58,124,241,139,47,62,111,190,243,105,221,229,215,175,127,221,248,109,253,215,13,159,220,185,115,239,214,47,176,113,222,106,239,88,109,235,105,107,109,237,40,32,173,216,167,32,103,198,198,64,177,95,131,163,107,206,187,122,152,166,210,214,89,66,232,23,184,79,59,39,57,211,89,225,26,151,115,146,236,102,151,135,188,221,158,142,168,65,193,100,12,173,186,151,180,212,182,131,92,43,129,122,72,208,173,83,109,35,222,128,123,197,177,186,190,122,30,62,25,139,56,130,7,32,186,95,26,179,152,193,112,240,208,217,157,47,73,236,203,203,165,173,172,58,172,222,46,5,129,140,11,9,6,103,102,90,103,46,62,178,153,50,21,45,202,243,173,166,61,236,35,210,117,120,0,76,187,213,238,74,
|
||||
18,226,174,100,18,196,14,194,73,151,112,192,151,62,94,19,88,218,143,74,173,118,116,185,171,45,212,190,227,242,181,159,1,152,168,89,85,2,137,40,53,209,138,202,101,207,107,243,80,123,92,63,4,16,122,70,98,109,189,170,240,26,101,22,71,155,142,196,11,99,204,196,150,27,80,45,230,252,197,41,23,146,46,226,105,4,143,92,173,114,45,103,45,186,20,196,106,237,209,22,118,7,59,50,129,64,192,60,183,87,241,173,111,17,79,186,144,80,251,26,88,14,45,250,19,68,176,16,162,7,115,197,210,41,174,18,131,244,168,126,205,49,63,105,104,167,17,198,215,59,134,197,114,72,23,83,115,210,33,5,159,65,158,114,91,124,172,133,209,184,108,82,26,218,69,41,68,94,101,236,76,102,162,196,195,120,82,63,82,12,118,11,78,80,117,158,12,69,211,209,252,17,174,35,214,189,144,18,7,125,67,251,91,237,232,40,181,3,23,240,207,168,2,35,129,177,160,186,192,29,47,180,102,214,69,22,240,36,120,14,56,44,210,222,19,125,150,161,137,48,83,90,91,160,228,101,
|
||||
24,66,37,130,124,53,11,169,17,87,133,11,78,251,35,174,179,130,50,164,88,138,245,31,21,203,65,74,121,214,155,58,159,1,203,185,232,249,193,161,43,225,56,65,202,201,88,184,146,80,157,91,131,73,145,160,159,7,1,81,16,205,24,228,101,106,151,26,5,169,21,87,42,57,181,225,63,235,157,239,57,24,224,173,182,103,194,172,188,92,46,223,240,26,42,97,24,209,164,161,50,105,104,123,227,32,202,69,139,165,114,128,74,50,218,149,67,253,121,209,222,198,4,224,118,198,20,125,28,203,0,193,84,8,107,131,16,97,169,103,96,224,132,206,151,194,135,22,81,220,159,56,21,109,139,102,188,40,44,209,81,79,86,112,235,163,120,101,41,232,238,77,184,200,206,3,186,62,147,82,153,144,117,16,57,23,228,207,149,39,169,238,200,84,98,30,142,251,102,54,53,106,226,188,213,214,222,142,50,44,189,231,157,139,86,9,151,114,228,40,174,216,43,92,185,221,157,159,192,155,75,132,49,26,107,171,84,84,162,172,144,114,102,177,11,54,56,182,149,37,30,48,28,62,2,32,
|
||||
117,193,176,55,121,86,36,76,203,104,231,16,155,205,223,116,47,102,237,71,226,33,111,71,112,35,51,0,45,21,36,71,64,164,75,50,61,25,227,10,207,33,73,97,122,212,156,51,231,194,189,72,40,235,34,123,198,96,75,116,72,46,100,159,157,43,16,209,12,74,69,18,21,168,68,138,81,197,179,249,46,164,216,94,146,160,253,222,98,217,153,115,133,132,209,8,64,22,59,78,5,25,79,30,118,33,71,188,2,34,214,83,134,182,142,219,97,139,87,28,5,0,242,6,92,48,206,72,166,103,80,130,216,159,230,230,55,55,116,204,4,184,141,120,52,221,187,206,169,109,98,247,108,201,37,220,142,68,219,138,249,41,179,103,130,70,139,5,96,14,34,81,160,230,152,104,209,165,139,84,7,90,9,6,17,117,160,12,121,125,230,41,194,168,204,28,163,44,144,34,220,142,82,49,152,71,225,136,58,187,103,85,236,123,122,121,195,3,48,178,159,215,35,224,84,95,133,139,130,225,67,135,15,4,182,52,84,33,189,34,158,45,230,5,211,157,60,237,32,35,53,23,159,43,198,169,
|
||||
253,106,111,60,119,196,154,29,8,231,216,142,179,138,206,238,15,169,148,156,148,159,140,20,231,19,74,125,22,82,226,36,10,252,200,218,40,153,57,44,212,120,241,51,109,71,211,8,223,190,158,58,5,4,21,22,180,2,85,50,92,37,109,73,146,69,32,32,167,174,116,57,211,9,212,222,239,157,31,215,168,129,210,16,162,93,203,140,14,201,100,21,177,116,24,191,62,6,128,37,19,132,196,5,52,56,72,92,149,142,155,23,187,240,227,100,252,25,45,147,80,169,114,83,122,251,226,169,217,117,34,48,172,163,200,216,62,190,221,34,235,26,212,118,249,211,130,197,182,229,53,247,178,123,110,219,66,3,179,135,172,194,104,116,62,239,95,167,185,134,20,243,157,122,109,190,59,85,4,29,29,216,18,141,135,80,138,158,140,40,226,226,29,244,136,81,168,204,238,116,153,56,51,219,123,80,200,144,153,36,200,33,7,45,177,190,52,182,134,224,33,235,42,2,209,246,240,244,25,234,190,110,123,204,90,202,116,162,113,35,9,66,51,42,0,206,1,129,112,200,194,5,224,0,138,208,
|
||||
13,196,68,130,233,64,15,136,0,226,177,110,36,18,10,185,32,54,15,156,151,19,160,203,72,80,13,74,247,201,168,133,99,66,73,240,174,101,71,163,4,142,193,144,11,95,100,144,80,202,148,94,189,55,235,8,135,243,170,1,143,28,51,142,22,61,230,121,209,96,187,240,100,151,77,99,193,128,172,232,88,194,77,199,247,193,142,178,103,182,71,166,9,234,97,241,96,124,55,170,183,109,91,32,209,44,79,150,21,102,35,197,41,45,186,80,130,45,1,50,23,58,41,120,229,3,167,253,59,44,17,124,232,101,141,7,17,61,127,77,182,209,213,11,110,229,176,48,164,157,74,83,10,121,47,226,161,110,202,3,76,187,110,172,131,182,45,13,108,21,10,22,117,171,105,115,229,28,237,215,19,212,171,210,20,32,217,226,72,17,130,47,217,157,146,116,47,241,85,109,231,133,96,4,16,168,172,96,116,44,61,184,211,47,26,9,140,91,102,64,57,80,26,161,131,35,69,225,228,41,119,103,90,85,4,7,206,44,237,37,181,17,146,176,188,211,7,241,181,74,102,170,60,51,4,159,
|
||||
56,2,101,110,96,114,175,23,47,25,19,32,69,181,110,128,34,3,58,74,29,48,153,160,6,84,187,110,20,166,184,56,137,157,73,168,95,168,214,110,18,138,60,147,22,129,182,16,53,157,45,110,63,247,149,55,70,172,69,221,65,18,45,250,142,99,22,38,136,219,140,154,10,115,243,86,144,139,248,135,251,136,5,17,45,156,130,146,232,232,222,58,8,178,72,51,211,189,142,144,39,112,10,204,207,90,217,104,144,129,82,228,81,225,201,102,94,200,83,58,50,208,225,4,126,186,164,12,238,173,193,149,158,248,220,0,114,212,83,130,51,209,17,84,147,152,43,135,220,176,91,19,244,33,190,68,174,167,19,152,196,249,188,40,91,52,61,74,143,204,2,69,149,165,20,132,33,4,9,35,131,132,64,86,177,79,162,171,78,129,41,251,132,113,157,19,34,30,162,250,9,22,10,35,101,184,232,38,58,43,52,45,160,245,64,109,83,25,32,232,221,38,226,18,123,162,50,14,203,129,73,11,232,27,132,129,182,45,123,47,1,53,23,100,49,192,112,102,204,150,77,162,66,172,127,99,
|
||||
111,62,102,92,233,67,123,1,179,208,101,209,158,24,93,235,224,97,249,60,120,90,4,201,150,213,253,179,232,160,44,131,166,99,68,115,17,71,222,6,22,134,78,97,197,142,72,108,211,194,61,93,176,88,168,76,109,148,120,153,54,244,132,33,41,194,156,60,170,150,168,81,166,174,247,96,254,4,72,35,189,225,206,98,113,227,120,21,112,249,240,224,10,176,84,118,183,234,144,35,70,18,162,245,236,184,44,222,99,219,104,146,6,89,91,209,229,86,209,128,162,21,123,211,163,79,210,86,57,180,104,174,236,55,181,1,3,59,209,204,2,160,108,31,222,163,199,139,34,69,18,231,96,39,55,42,128,21,191,212,89,56,226,226,73,232,126,194,84,81,81,11,65,132,146,9,66,149,132,203,190,98,56,231,164,113,113,15,64,38,245,241,105,114,148,180,80,57,63,46,6,182,201,133,217,96,172,123,31,220,154,25,22,111,29,89,45,228,157,202,224,134,169,28,228,158,8,97,47,222,25,5,12,252,202,198,42,11,5,213,221,209,205,200,164,98,226,104,120,29,204,148,89,171,122,65,
|
||||
28,208,72,156,89,136,112,2,101,53,6,137,170,216,214,169,216,207,192,1,151,8,6,42,174,9,151,120,39,233,14,28,187,29,140,132,74,186,18,157,223,240,225,211,56,130,16,93,233,89,236,115,57,123,248,37,46,236,93,211,91,217,184,118,69,72,16,95,131,35,99,252,67,179,34,29,20,239,103,6,43,150,168,34,116,8,180,105,215,136,172,132,72,127,72,26,166,239,47,59,251,1,91,212,230,21,211,86,226,20,204,61,142,182,17,104,141,228,181,66,156,211,142,142,162,90,205,61,179,207,96,29,44,48,105,32,126,49,80,96,39,196,193,197,104,180,13,212,185,79,32,133,123,108,241,84,91,16,207,76,38,121,5,194,156,38,220,22,90,62,193,85,74,135,241,148,65,21,65,20,11,40,87,174,86,50,53,157,139,168,175,219,63,150,94,66,57,243,250,200,57,52,62,54,12,123,139,61,231,219,11,40,66,78,198,121,22,138,122,183,111,234,64,48,156,234,9,239,235,104,157,37,88,188,176,91,65,123,177,121,221,77,108,130,145,36,148,194,107,121,56,82,132,48,88,17,
|
||||
47,208,51,105,90,106,120,215,4,91,40,237,8,125,110,94,139,42,36,43,10,46,63,103,100,130,163,185,130,220,115,60,49,15,162,253,59,150,33,182,134,161,218,31,208,106,2,165,224,9,164,83,196,123,12,96,168,11,0,251,231,147,83,148,44,203,180,137,56,74,193,244,158,34,55,215,199,101,161,178,99,42,42,70,243,83,19,62,194,216,76,22,53,71,204,147,138,224,2,202,158,72,198,24,234,100,251,30,219,9,34,20,233,164,46,218,161,140,138,37,254,88,40,59,157,55,146,123,214,245,10,63,2,73,217,220,195,65,211,25,229,24,76,108,183,15,187,208,64,122,127,243,168,66,117,47,7,17,41,36,93,5,79,1,233,201,94,188,104,216,232,72,166,23,134,178,184,52,78,178,211,77,178,44,181,138,20,221,23,110,72,235,193,220,112,21,11,217,142,42,120,243,181,23,86,131,145,113,161,179,149,126,114,220,10,3,188,83,56,143,142,14,117,129,190,118,102,44,148,1,139,25,92,37,141,202,186,3,64,170,91,54,50,65,192,171,168,124,19,103,180,92,70,248,97,193,
|
||||
50,25,145,91,226,254,25,46,202,53,172,211,163,168,149,137,228,166,12,168,54,5,169,183,100,123,165,129,109,176,139,146,230,7,64,90,104,110,155,198,241,24,3,187,60,214,148,125,202,162,49,22,7,103,143,104,97,45,170,61,183,211,231,71,147,80,135,30,237,87,46,119,113,230,120,199,0,80,224,246,20,208,4,193,143,246,119,23,185,134,14,35,106,183,168,142,182,109,137,248,10,47,203,29,39,13,7,229,100,221,201,30,93,201,162,193,49,233,33,107,16,68,86,178,120,200,207,211,112,247,188,115,100,98,123,122,25,57,171,108,164,219,224,76,186,115,50,62,113,170,104,239,230,68,204,44,74,116,47,58,171,158,69,151,73,131,54,157,212,179,236,84,31,49,218,35,184,72,82,202,96,36,226,193,140,91,78,23,133,112,116,121,162,167,100,94,237,39,45,36,216,193,179,29,238,114,15,159,199,159,221,4,59,36,21,4,78,251,180,131,113,143,119,103,90,180,116,42,38,149,151,83,1,163,155,179,215,110,176,134,152,90,84,202,246,149,184,249,101,246,132,167,160,140,13,201,
|
||||
199,247,248,165,51,40,226,233,156,94,214,36,33,255,28,191,123,178,196,157,33,39,180,254,232,98,239,110,202,137,235,33,132,84,219,58,167,165,40,70,57,231,132,53,154,60,176,96,94,82,22,131,27,162,29,194,169,129,227,119,197,204,203,78,207,144,129,15,122,221,150,64,27,154,234,155,103,68,142,16,173,196,33,153,62,246,26,65,148,92,129,82,16,143,56,64,79,204,157,67,169,196,252,41,208,97,2,55,10,7,8,146,63,236,197,35,50,18,162,80,16,224,204,216,78,60,127,102,154,74,181,33,124,78,251,240,97,72,206,28,70,232,156,245,228,169,25,220,218,30,222,102,86,200,41,251,0,152,100,171,117,170,109,14,92,30,34,46,238,225,241,57,49,98,7,25,211,204,165,146,218,135,50,150,217,152,13,82,219,96,145,100,92,154,53,219,136,96,119,74,57,182,195,65,193,246,34,97,33,159,135,146,73,91,209,175,129,196,6,33,97,153,23,228,218,248,209,152,143,204,246,68,151,9,144,3,156,39,147,80,212,76,72,110,194,78,147,98,120,72,28,88,177,40,151,135,
|
||||
124,232,110,116,192,0,103,22,187,58,41,160,171,232,91,225,104,52,99,100,165,239,192,86,18,151,200,85,79,12,14,97,193,72,49,224,118,1,116,166,183,104,40,24,185,105,28,179,159,205,113,39,219,124,216,228,138,41,210,193,17,126,171,158,63,221,138,249,103,187,165,75,137,193,149,36,134,45,204,110,44,232,42,90,139,61,152,143,23,65,103,146,75,112,17,141,196,52,122,32,235,78,99,241,184,40,4,157,123,65,4,130,115,73,68,239,39,195,128,55,210,22,150,109,251,209,49,31,219,161,61,114,43,5,30,43,29,37,83,188,187,21,4,18,118,108,251,229,40,243,152,208,78,49,67,218,204,40,156,166,3,74,101,116,94,2,37,11,104,32,34,0,145,232,81,81,188,122,156,47,102,130,11,27,125,202,165,179,21,174,7,118,49,252,216,82,133,6,43,73,142,236,108,194,119,58,163,54,193,71,162,78,243,116,26,229,108,159,15,81,195,176,133,204,109,221,73,208,28,59,147,40,20,69,172,30,224,116,97,135,229,102,17,19,189,212,101,81,182,135,174,222,130,39,226,27,
|
||||
172,193,147,117,12,28,38,43,17,202,64,70,32,75,209,44,158,189,36,180,19,139,216,41,210,245,137,67,24,200,13,27,246,6,150,114,39,2,190,4,23,50,99,222,68,228,26,209,73,74,36,55,69,148,199,243,253,54,243,248,104,80,144,210,245,147,227,196,98,36,44,219,81,23,193,216,244,44,3,13,240,103,88,115,122,123,107,90,78,26,59,152,61,67,123,122,209,190,74,144,89,10,22,160,5,106,132,131,165,45,55,0,211,128,156,153,132,204,162,65,187,184,16,4,17,216,207,69,17,226,73,152,30,2,193,82,246,108,4,212,16,81,192,116,140,207,40,242,122,2,29,132,236,102,185,58,122,52,91,73,159,160,230,229,25,251,241,168,227,0,91,128,158,153,101,159,63,186,111,39,112,89,188,20,215,128,210,57,72,20,44,97,124,135,236,2,136,37,154,39,177,61,174,62,37,195,218,94,197,180,155,183,194,10,149,205,184,93,193,192,252,58,56,187,111,5,201,164,34,74,162,69,167,44,82,45,126,210,234,9,166,247,233,121,99,26,212,243,227,46,162,108,148,137,198,153,
|
||||
40,121,30,191,75,21,110,32,80,140,151,82,56,34,71,241,74,134,129,90,115,146,24,189,34,156,166,48,208,238,212,48,115,207,107,229,175,131,242,147,83,28,12,120,236,116,231,168,189,104,229,158,162,166,160,60,162,116,179,42,212,204,124,138,59,67,101,175,113,170,142,181,166,152,198,126,34,119,114,240,36,12,28,11,145,232,128,25,123,198,30,7,45,168,184,230,113,81,61,223,182,13,166,166,70,86,85,227,40,23,79,33,211,227,113,171,231,60,217,77,153,174,144,233,248,200,100,213,235,90,209,236,202,154,9,101,14,47,10,5,164,165,249,10,73,239,23,96,190,230,137,182,203,143,210,69,28,77,96,97,21,108,218,19,123,134,198,44,200,73,242,209,140,21,151,17,154,65,57,51,229,63,6,108,203,187,112,158,62,164,242,74,247,246,65,229,97,122,117,213,167,89,95,110,221,37,45,121,198,22,188,36,204,47,77,67,6,134,82,81,97,204,219,148,18,103,190,211,114,82,154,177,9,50,137,195,9,156,32,131,151,149,22,138,184,220,116,116,27,72,116,81,42,232,20,177,
|
||||
27,93,63,209,172,91,150,173,190,193,174,45,162,120,120,224,144,152,155,58,85,174,248,153,11,122,84,65,9,185,36,254,54,52,108,26,80,36,130,2,127,34,63,82,176,226,214,225,76,155,102,6,62,103,45,172,149,75,253,43,237,146,17,207,216,232,46,97,98,105,18,68,241,217,76,56,157,63,91,233,0,137,34,228,200,176,172,63,80,104,66,60,39,98,142,245,184,43,27,133,19,15,205,203,84,75,164,99,71,43,40,201,118,166,203,9,117,155,233,133,104,182,130,40,246,12,116,48,179,65,99,200,195,58,41,207,48,16,247,172,73,236,26,59,16,179,231,215,9,8,191,56,74,91,20,142,120,3,59,106,202,250,225,169,115,152,45,23,217,39,81,70,162,82,17,137,209,176,119,127,224,188,149,162,23,238,75,101,28,86,191,102,52,236,231,26,212,33,218,244,160,25,237,27,75,71,227,107,243,125,50,253,49,184,85,34,250,163,110,96,66,224,221,59,21,58,23,103,71,119,35,129,206,21,88,60,193,60,70,195,202,69,61,72,118,76,167,86,180,46,40,102,237,156,63,6,
|
||||
149,195,46,31,218,29,218,24,243,3,220,221,237,115,70,124,11,77,130,147,212,210,232,216,162,114,80,166,47,5,143,75,235,123,199,34,89,152,23,148,185,201,240,249,10,11,213,210,201,180,94,59,180,155,141,73,140,170,53,137,188,164,238,27,0,81,125,255,9,35,213,10,73,143,188,139,131,12,229,160,27,176,120,17,58,101,209,59,97,91,157,236,182,143,16,65,137,101,32,169,246,157,47,64,180,125,126,2,57,98,163,99,99,185,164,116,138,23,143,180,129,146,125,138,203,100,47,76,197,251,173,220,160,147,71,156,216,172,232,100,125,39,199,91,3,113,173,211,25,153,138,119,44,29,38,245,80,170,76,243,110,245,237,15,117,69,142,86,252,106,19,107,106,40,184,184,129,96,81,138,85,73,0,56,5,134,30,45,153,209,8,83,70,64,247,109,40,113,114,13,91,199,109,197,141,77,123,71,239,236,113,43,125,243,184,21,141,14,116,114,178,85,111,118,3,60,95,106,64,47,64,67,252,220,74,242,232,48,177,219,229,17,168,211,135,61,35,199,177,88,63,108,193,34,233,161,
|
||||
117,36,7,105,87,78,181,128,178,3,205,174,21,201,46,23,30,241,14,80,225,193,14,242,137,205,98,57,28,13,110,177,21,69,117,20,166,33,10,113,25,77,161,41,119,27,22,128,51,227,109,138,98,217,181,197,95,57,5,148,83,88,74,20,133,172,154,46,132,206,99,18,115,58,191,4,62,215,76,123,161,56,144,141,36,182,86,232,104,95,132,193,17,30,44,168,194,71,240,208,80,28,16,139,66,35,113,145,198,31,9,59,56,17,235,134,78,141,34,193,97,218,161,244,12,54,239,81,79,92,27,243,97,215,220,90,69,220,31,76,105,251,189,89,227,38,88,84,173,109,131,49,187,117,179,179,88,14,110,179,122,70,245,74,142,82,187,239,19,244,84,208,126,71,57,104,88,152,225,230,0,171,185,34,30,68,123,54,71,183,116,194,99,5,89,76,220,63,114,31,120,161,53,197,108,145,144,170,88,250,15,12,157,219,67,78,13,234,157,208,173,109,117,170,80,68,149,148,155,233,71,217,162,176,147,211,134,241,111,187,126,154,23,233,61,179,83,82,189,49,31,53,191,47,67,15,
|
||||
225,78,241,208,14,171,157,206,209,232,115,62,123,162,47,124,14,0,206,141,129,172,29,37,197,128,182,174,97,219,184,184,151,202,218,108,157,244,22,184,162,3,154,9,78,90,246,183,29,115,69,238,206,88,132,24,195,82,127,88,231,52,13,163,125,4,50,173,63,118,54,149,107,227,24,150,123,203,211,86,199,124,107,153,27,12,143,70,43,136,58,4,172,164,78,203,254,115,129,64,194,89,247,176,177,192,29,176,28,28,192,150,168,112,123,184,139,133,159,54,147,19,102,123,18,92,27,177,158,87,184,163,167,125,90,103,143,103,195,156,93,78,120,84,93,75,147,168,186,207,185,96,2,99,56,2,156,159,42,4,179,234,51,132,158,22,133,4,212,28,228,155,134,197,84,102,165,18,68,124,107,198,136,126,1,103,233,145,103,70,54,65,151,211,225,75,187,89,27,211,116,83,134,230,114,13,172,118,160,241,124,23,6,10,22,247,96,106,116,153,110,218,192,241,166,139,19,116,241,102,72,56,136,10,20,40,52,52,239,236,135,186,9,99,10,216,48,189,100,106,69,187,61,139,128,150,
|
||||
94,65,233,21,1,106,246,109,17,16,133,29,239,168,69,114,129,153,221,211,182,67,143,106,59,93,51,91,100,247,113,59,87,39,86,86,214,237,4,16,99,193,156,36,89,223,221,235,41,136,39,251,3,224,116,132,50,51,48,84,10,12,46,7,187,205,20,1,213,198,50,41,253,250,8,210,59,2,77,160,229,25,40,57,94,6,193,94,5,122,220,138,193,219,238,99,12,219,163,105,196,141,143,183,181,249,136,169,182,121,88,44,221,20,88,133,118,173,96,160,192,197,187,137,0,175,109,53,219,230,211,87,65,3,22,193,61,85,208,176,100,73,236,109,143,227,24,35,242,163,28,115,105,35,214,14,3,97,62,6,36,52,30,32,86,50,116,29,182,163,199,1,192,135,185,189,1,33,211,153,35,138,96,175,49,52,173,37,161,20,212,81,201,119,122,115,209,2,105,24,28,34,39,34,80,154,25,158,195,152,129,123,42,109,40,22,15,32,80,92,226,173,130,114,92,153,107,91,140,209,42,228,62,147,81,11,245,164,226,109,102,80,207,150,193,64,113,148,222,134,178,134,81,203,232,212,
|
||||
129,207,133,131,146,155,59,182,208,38,74,41,247,157,35,179,221,97,74,55,74,157,118,242,135,145,65,192,36,144,27,99,69,80,145,231,20,29,139,37,161,211,78,53,14,40,253,182,176,133,14,70,60,189,225,240,250,232,80,7,121,211,74,32,128,177,9,14,181,178,230,41,25,157,145,182,9,53,23,6,196,246,180,108,74,193,8,154,161,148,217,187,49,187,13,118,140,6,211,4,157,205,183,189,38,52,38,68,233,50,164,69,247,187,75,233,20,151,56,48,56,48,203,70,185,75,113,253,88,88,195,76,99,158,56,140,209,166,214,115,87,44,31,41,34,181,212,104,195,13,153,64,242,162,155,139,210,15,143,66,128,127,114,53,9,25,43,69,43,184,37,183,9,199,204,39,103,82,73,16,144,235,78,49,116,67,155,45,4,167,101,103,136,118,30,158,206,56,219,135,198,139,8,221,125,172,153,176,174,27,138,227,96,7,222,28,227,193,250,32,97,4,212,101,51,142,96,98,173,119,215,199,24,93,61,28,72,66,253,86,5,1,196,21,36,198,17,222,41,219,188,57,216,106,59,233,
|
||||
30,246,161,62,165,70,37,165,202,201,251,3,106,186,55,126,196,58,154,205,8,108,149,217,93,112,141,192,140,166,209,96,96,159,180,76,56,79,170,97,0,47,21,6,179,82,183,9,180,42,53,165,152,108,163,43,5,37,214,87,141,197,116,15,202,111,197,248,122,199,80,45,10,30,183,14,213,162,32,126,188,82,139,130,109,171,238,236,77,60,137,175,102,119,7,164,138,206,128,81,143,172,119,121,17,43,155,137,1,242,182,29,155,141,142,241,167,36,198,159,40,231,80,100,176,34,160,231,97,141,140,153,63,44,159,56,215,19,108,59,111,180,51,128,76,208,252,120,73,110,89,236,238,154,214,231,6,144,253,246,126,100,190,124,236,14,29,1,130,51,0,0,11,10,40,4,64,172,202,146,110,5,84,166,37,171,126,217,241,122,218,37,88,2,201,218,53,41,13,145,116,194,68,178,154,125,40,57,161,45,210,207,119,98,19,195,91,168,5,240,100,23,40,90,163,26,80,180,219,199,144,104,8,195,99,114,240,92,57,70,68,138,90,54,122,162,174,36,59,212,193,156,18,203,255,25,
|
||||
189,214,198,217,57,52,103,245,84,70,239,225,174,55,73,62,92,4,249,235,109,204,197,148,223,140,193,176,227,213,246,12,37,128,241,30,187,135,153,48,99,244,188,224,235,144,110,116,40,121,163,58,10,209,54,69,211,182,158,167,80,161,100,225,208,13,184,16,36,168,82,103,115,182,115,162,112,118,94,99,150,79,231,117,184,184,24,206,80,195,115,198,161,138,120,145,163,183,91,108,243,103,193,252,144,74,42,84,179,3,129,37,238,148,56,88,217,84,237,157,249,112,251,73,40,227,117,151,87,132,14,81,190,8,143,69,54,29,91,71,49,118,36,197,226,69,114,210,66,208,61,81,177,141,138,228,107,188,172,14,7,100,152,17,128,78,199,79,119,136,134,7,71,189,58,164,212,221,89,228,118,170,73,126,181,213,30,228,241,115,152,241,181,83,167,192,129,93,54,198,178,197,142,206,142,57,6,70,172,99,154,42,85,77,162,198,185,83,21,1,237,94,233,239,90,155,88,62,235,118,46,109,68,45,167,64,247,180,218,214,177,128,198,141,1,209,26,120,172,19,22,130,9,176,140,158,
|
||||
21,19,72,100,43,81,70,203,68,8,13,18,245,2,164,178,5,128,69,212,69,3,144,16,222,85,174,20,33,16,213,1,9,52,121,136,150,139,114,20,68,66,7,46,36,157,200,131,104,12,64,11,142,178,208,19,79,108,111,138,214,51,98,170,153,202,4,32,201,246,140,189,59,120,52,70,130,73,158,172,29,91,87,152,15,102,6,195,12,17,35,179,182,120,114,76,153,86,115,8,195,38,6,184,181,12,91,2,242,49,84,223,55,178,184,23,141,44,170,82,34,40,202,57,31,3,181,118,54,201,175,163,219,91,199,237,125,78,60,200,30,51,199,245,35,33,221,220,73,217,78,216,54,238,244,150,105,162,233,145,153,209,5,94,228,96,31,236,223,88,65,216,236,82,140,101,156,24,200,240,150,85,59,7,73,175,12,203,229,11,248,221,114,176,21,164,168,169,147,199,185,83,192,45,129,176,252,158,75,65,123,123,196,29,253,105,251,78,23,198,241,171,20,159,237,172,122,63,26,101,15,92,0,90,192,125,17,24,11,24,232,45,186,92,169,163,129,188,51,138,2,228,137,182,174,218,
|
||||
14,65,210,177,209,175,103,112,164,220,72,36,47,24,98,225,58,69,179,22,117,190,163,253,124,180,175,146,201,100,218,232,46,210,74,145,195,85,247,76,23,221,154,32,157,239,52,106,251,168,229,105,212,59,152,222,178,43,67,131,134,243,53,227,192,132,37,32,181,204,104,132,195,174,45,171,128,63,25,98,199,132,185,181,221,34,23,203,233,62,41,167,35,194,135,21,125,189,133,160,57,173,88,88,39,118,23,55,120,217,240,136,205,192,50,195,35,157,20,138,129,115,54,146,147,117,59,203,201,116,23,247,208,185,40,63,89,96,76,87,198,50,129,120,199,193,26,154,11,88,212,30,51,203,190,155,43,204,121,100,192,50,203,137,176,18,43,110,226,166,213,101,16,115,13,145,197,227,141,101,69,97,104,185,245,120,126,191,157,191,27,25,20,13,0,231,116,253,90,103,9,177,176,98,198,110,49,67,17,39,219,15,100,48,138,133,233,200,86,121,89,47,99,227,251,121,93,113,237,153,101,181,195,194,146,206,113,245,42,118,55,218,195,192,129,253,196,178,49,146,29,59,225,44,165,245,
|
||||
158,35,213,40,57,107,241,14,114,66,51,103,11,75,72,38,47,65,172,177,185,180,17,226,83,172,35,46,251,81,31,212,173,84,251,21,54,164,93,130,234,245,22,217,114,126,144,129,204,198,50,228,50,55,118,88,98,246,157,112,124,201,144,183,127,157,179,97,107,159,178,157,121,135,9,142,84,160,144,76,81,197,161,195,131,60,192,63,158,29,215,249,70,120,14,216,178,154,129,124,200,50,139,34,225,37,161,74,100,15,22,251,252,22,39,22,120,185,142,83,0,183,142,162,138,67,78,172,148,88,173,186,225,41,144,235,232,237,34,156,42,162,142,252,212,17,50,187,197,151,80,93,78,109,176,117,114,62,141,57,237,58,205,207,179,12,248,118,4,73,136,31,219,210,38,21,243,185,224,185,222,69,115,6,150,121,90,245,226,104,14,97,143,71,84,11,140,74,167,24,57,45,7,61,101,90,191,200,54,213,73,237,48,207,133,82,126,235,241,121,169,127,75,35,144,161,156,233,76,8,153,118,180,107,117,126,171,81,119,56,61,204,145,40,231,183,65,121,59,208,77,110,157,100,107,34,
|
||||
102,218,209,176,70,186,189,158,231,110,137,198,142,73,27,156,240,22,115,120,151,157,182,198,100,198,0,192,55,78,123,241,169,178,219,125,228,221,155,218,20,232,39,131,7,132,161,226,70,13,161,146,46,220,243,138,111,185,201,0,111,168,67,44,86,216,114,220,182,42,32,69,33,235,56,114,132,22,81,59,216,173,115,165,4,86,18,46,62,213,138,150,2,110,0,69,197,164,98,42,75,159,193,157,67,39,122,153,119,98,21,36,6,237,62,16,24,27,30,131,137,153,92,91,117,227,42,77,237,199,120,25,12,200,248,182,35,176,76,149,246,81,119,19,150,174,12,221,80,228,246,174,29,185,58,41,28,221,86,124,172,120,168,147,77,140,75,6,186,210,86,212,142,115,146,103,185,39,65,93,52,1,156,118,225,187,214,193,67,49,11,21,158,204,17,45,133,72,82,146,157,233,94,52,151,22,196,168,111,244,20,159,86,59,180,179,179,20,52,163,242,205,79,102,103,148,101,174,71,37,92,212,72,237,91,230,253,232,198,33,23,195,34,109,7,202,30,47,180,57,46,243,170,184,66,233,
|
||||
26,223,104,44,144,231,73,43,229,252,225,194,104,16,149,200,55,214,108,235,147,130,145,210,230,192,10,79,123,100,89,0,103,101,158,149,236,230,218,57,87,25,177,174,160,140,165,49,92,10,153,14,119,176,246,215,51,237,98,95,62,66,146,68,214,28,50,155,154,38,211,163,69,231,222,186,198,71,143,149,32,176,122,74,16,28,103,117,161,253,187,227,98,126,223,176,119,233,128,218,203,59,93,103,10,121,83,198,126,111,250,204,50,158,11,56,244,189,251,91,17,28,154,238,219,246,163,108,154,128,103,157,37,241,216,109,222,50,87,150,168,158,191,229,117,187,42,68,161,35,209,10,251,92,215,162,129,34,176,242,249,83,6,159,134,147,154,0,76,254,244,44,156,9,96,54,66,141,203,211,231,86,15,179,53,9,205,137,97,178,139,188,69,245,117,108,49,169,39,137,193,88,27,172,96,6,16,193,153,42,234,221,167,21,185,212,3,82,44,146,153,216,67,64,8,94,211,48,89,33,217,88,38,223,129,97,0,91,222,152,90,30,202,90,99,83,105,137,228,200,7,87,0,98,143,220,
|
||||
130,155,117,118,132,206,204,3,189,222,86,161,158,82,60,91,57,48,245,240,188,24,245,93,156,216,234,161,154,56,188,224,105,154,63,134,128,115,171,115,24,22,176,17,101,199,244,74,134,57,177,23,9,242,143,49,99,6,179,65,170,39,24,148,147,35,204,81,27,192,68,125,83,204,242,153,84,204,7,92,157,103,232,36,186,115,68,207,250,160,84,183,45,54,195,242,12,87,81,35,44,30,148,138,112,178,17,1,51,135,175,209,31,43,123,245,98,35,169,227,98,219,116,117,133,67,139,122,129,145,110,200,218,113,142,38,212,173,8,179,3,231,45,229,167,152,213,4,133,97,131,185,81,6,106,118,232,226,249,33,206,249,217,32,106,97,119,109,85,50,126,205,122,223,94,59,19,237,183,40,178,221,100,250,166,106,57,154,196,57,90,131,65,24,216,155,72,216,240,7,164,190,80,9,227,45,203,35,163,19,139,131,187,195,147,22,176,171,35,62,177,207,152,154,75,196,90,187,212,178,237,128,18,237,12,211,41,25,72,61,151,143,193,253,93,217,92,116,3,183,108,14,15,204,168,215,
|
||||
100,52,38,42,9,117,79,122,240,75,59,90,33,29,157,75,12,89,71,145,253,76,18,6,232,78,53,131,168,20,33,179,250,36,127,115,89,179,7,112,141,129,8,231,156,105,112,216,125,102,48,99,241,165,44,154,149,121,231,220,148,82,150,229,156,119,31,28,43,252,104,112,112,82,215,175,102,165,112,146,19,134,89,137,22,130,177,201,254,46,216,186,62,187,229,29,204,154,180,26,161,29,197,198,138,101,99,175,111,181,39,159,208,154,226,217,112,156,185,129,146,115,228,141,132,217,13,22,117,248,221,152,91,11,156,154,52,235,94,216,164,5,187,178,122,28,2,133,218,199,50,40,99,76,57,96,152,140,247,161,200,202,230,38,56,70,94,20,46,153,132,40,124,20,88,49,78,2,195,8,93,79,134,152,126,192,99,159,232,159,241,133,173,6,111,6,181,5,242,186,8,111,86,154,26,197,162,14,138,76,207,110,42,182,38,54,150,226,30,165,186,223,18,150,105,39,75,104,255,230,66,73,116,54,51,196,53,182,41,240,162,110,78,160,39,228,202,225,247,143,21,104,112,100,158,183,
|
||||
53,74,198,122,236,38,231,180,174,109,169,177,243,108,174,19,197,89,118,229,93,173,6,56,19,100,236,171,44,33,4,178,82,150,193,72,102,148,23,26,129,92,198,204,104,57,226,183,140,142,51,140,128,43,106,88,159,245,17,67,3,63,188,223,152,174,185,201,56,60,159,72,228,229,135,201,229,240,82,95,23,138,110,179,20,74,92,55,5,40,14,238,24,206,219,176,176,102,32,129,22,165,119,135,39,34,41,19,19,61,73,136,75,219,247,2,17,205,74,143,42,5,239,151,105,164,114,79,159,129,71,218,178,3,154,212,144,149,48,51,95,49,145,231,151,138,182,204,228,170,224,168,115,0,35,194,35,72,101,165,253,80,161,31,102,208,237,171,219,112,154,6,91,78,218,99,238,77,195,244,152,48,9,141,230,242,112,121,238,140,225,96,109,57,13,104,107,108,207,204,4,19,253,235,249,77,75,116,143,25,238,89,102,157,219,233,139,49,122,14,178,196,215,183,82,108,204,95,22,48,242,61,53,102,95,29,1,58,244,89,63,47,72,108,47,6,231,206,250,244,58,2,147,190,233,147,
|
||||
111,118,59,165,153,60,171,146,219,216,52,173,118,116,31,33,195,179,142,153,197,253,126,47,243,156,83,177,16,118,237,167,80,72,65,31,53,186,216,94,221,224,230,144,84,71,162,246,206,119,111,58,253,126,100,86,45,97,14,171,103,241,54,28,147,14,2,107,116,235,172,204,168,97,142,217,48,62,219,54,144,166,26,5,233,18,74,113,136,207,182,230,23,109,54,3,165,95,101,0,183,74,202,238,125,164,18,52,174,116,171,206,150,112,24,242,9,187,206,33,159,63,116,112,66,134,203,80,12,158,245,72,34,219,249,221,5,249,134,195,239,66,211,218,46,152,153,153,206,13,28,77,225,229,134,145,245,12,93,178,213,182,226,60,158,223,241,26,1,189,75,94,65,50,102,11,39,26,79,171,198,230,228,12,16,159,233,219,84,244,13,79,108,39,122,250,11,50,79,134,50,139,178,35,14,19,109,173,119,105,211,58,225,19,184,166,119,140,244,201,60,62,107,116,24,55,189,166,98,217,221,215,189,56,103,94,89,60,90,240,196,15,198,89,104,103,121,188,192,8,14,238,142,166,246,6,
|
||||
206,151,208,147,234,196,159,142,176,208,156,16,242,14,183,85,119,149,55,236,147,23,219,44,199,147,23,219,44,248,18,150,196,250,10,65,90,170,118,106,30,157,231,212,78,205,21,243,238,78,253,112,190,187,45,196,175,158,190,56,43,22,166,8,42,4,141,151,248,108,111,29,36,135,198,230,84,170,226,201,137,158,52,26,212,229,79,7,0,165,55,11,114,34,252,1,172,254,186,11,85,165,203,154,206,242,110,201,81,61,54,39,140,140,140,203,229,242,195,137,101,198,24,234,61,182,98,254,121,60,35,71,124,136,22,69,78,244,228,66,208,99,105,91,61,33,114,15,219,137,109,122,245,156,64,154,35,159,159,157,155,70,98,178,240,44,155,232,162,72,250,42,103,171,54,30,185,96,11,142,146,64,43,82,76,138,204,125,197,224,30,107,116,121,153,233,199,5,143,55,193,190,152,113,198,62,87,112,219,115,41,19,80,222,89,177,226,53,17,67,150,220,54,227,30,113,19,208,244,64,190,189,109,88,20,195,72,141,216,136,35,155,178,240,248,236,18,87,10,105,193,225,174,144,90,68,
|
||||
153,174,172,104,80,242,118,201,56,163,194,132,84,50,27,32,161,162,80,169,198,24,137,233,56,183,79,78,111,163,175,105,24,33,180,24,156,138,66,61,162,158,156,78,187,102,179,114,24,107,185,30,125,23,169,195,110,183,216,79,142,130,27,75,220,242,176,12,95,12,110,231,247,220,9,5,70,48,67,5,182,238,140,79,196,243,209,217,141,33,115,110,117,168,221,50,202,156,227,38,189,128,141,60,110,210,44,14,102,248,184,30,9,139,236,231,122,39,84,250,222,211,240,248,76,160,196,177,114,77,131,32,163,44,26,58,201,48,231,236,180,115,200,120,32,51,196,138,74,48,25,162,9,103,87,97,18,18,154,234,90,8,48,15,108,122,141,110,219,188,100,6,139,120,218,198,57,133,148,152,39,159,247,168,24,123,107,253,139,177,30,222,226,254,86,94,94,82,177,54,252,147,72,113,110,55,187,184,137,50,151,109,126,16,240,31,243,181,147,138,136,235,100,54,35,4,176,52,53,114,186,178,184,34,45,235,38,163,251,64,91,16,61,102,198,252,230,117,125,240,104,111,13,156,242,67,
|
||||
112,230,64,101,32,4,216,181,115,239,60,100,231,45,8,145,227,193,98,17,215,75,26,165,37,163,163,84,184,122,3,37,188,149,89,58,73,139,172,187,70,73,8,3,231,1,162,113,71,154,103,172,0,59,121,157,36,110,194,52,64,233,20,83,30,216,45,156,139,71,129,254,222,158,221,189,163,161,245,65,130,24,46,89,54,9,122,182,207,149,7,217,91,140,216,194,249,84,240,148,154,159,80,247,123,44,169,115,76,28,59,121,116,60,185,57,40,177,156,217,55,15,247,151,109,193,202,198,198,150,106,119,122,91,1,12,157,194,90,118,103,92,57,142,160,41,239,96,104,97,151,161,158,58,136,218,236,179,43,187,18,18,177,127,14,72,87,184,75,131,41,34,177,187,212,191,48,220,94,160,132,166,89,7,252,114,9,230,160,254,74,207,4,177,71,51,190,216,133,95,174,250,127,0,93,193,69,186,204,82,44,129,182,98,172,98,28,77,71,6,107,167,141,175,121,184,161,198,86,244,190,225,72,27,186,72,199,143,247,146,49,66,195,21,81,67,214,106,148,29,212,250,170,121,52,174,
|
||||
89,215,50,79,231,64,60,77,175,241,144,87,245,62,146,116,234,108,97,155,149,6,64,89,152,58,44,234,197,85,236,252,98,196,15,16,125,101,127,187,106,142,96,6,199,64,34,218,25,195,228,96,176,109,157,181,160,38,157,88,10,206,78,86,113,203,212,58,176,165,153,114,206,77,11,205,28,85,37,227,181,22,87,79,248,182,169,177,240,76,16,216,95,161,217,130,11,122,246,41,27,31,45,64,200,16,148,220,55,217,24,54,247,201,72,215,169,128,223,71,35,74,115,33,90,94,86,62,70,88,163,233,66,80,196,211,219,103,217,35,60,141,189,59,71,58,13,195,227,78,62,26,118,206,31,91,193,225,89,112,185,231,108,160,119,225,52,180,16,50,159,86,218,39,115,12,94,176,16,162,219,54,115,158,17,73,216,68,205,103,153,225,76,192,11,116,105,75,244,192,22,57,49,191,120,72,154,18,132,2,177,252,10,110,87,89,8,30,238,246,119,217,117,37,244,220,199,51,129,3,200,137,117,182,154,121,69,168,136,18,49,152,60,101,104,35,62,163,245,238,81,152,104,116,74,85,
|
||||
94,24,234,63,222,206,37,33,161,73,19,88,47,4,57,209,242,214,178,221,220,131,30,247,145,134,93,168,125,141,38,214,28,30,88,205,203,171,224,225,26,130,108,46,100,13,154,236,58,18,115,36,0,83,59,143,92,236,76,40,200,237,243,160,13,95,164,73,229,234,157,51,116,119,199,206,209,246,38,192,216,41,71,227,216,140,233,227,86,151,122,90,17,199,59,97,177,166,118,139,105,217,156,160,245,90,101,97,54,201,229,167,219,135,157,202,174,222,184,75,196,63,62,182,134,248,179,78,63,115,72,234,39,173,231,5,6,13,77,101,154,212,208,172,107,234,117,96,253,104,159,95,65,149,176,127,135,68,218,201,39,151,96,87,216,174,140,209,214,6,142,170,121,21,93,205,140,38,161,214,85,222,2,17,11,116,62,98,79,53,249,38,95,239,219,77,86,43,141,192,25,74,188,55,9,201,199,133,190,170,23,13,86,50,128,35,177,146,55,36,42,14,110,109,63,161,220,167,78,66,9,204,199,170,124,162,202,252,85,253,149,226,25,13,128,93,136,103,218,198,75,36,14,104,4,39,
|
||||
181,16,52,72,65,64,170,233,64,23,181,244,109,204,83,187,209,68,116,155,170,82,33,110,144,11,56,252,33,28,48,155,85,5,139,220,52,170,180,118,143,140,12,206,202,68,181,90,43,98,197,6,77,224,42,107,131,43,185,34,6,197,214,100,132,141,54,24,32,142,113,9,198,94,166,184,139,118,6,119,176,70,240,22,137,89,164,241,142,201,77,18,233,168,85,231,91,97,70,113,42,250,38,26,141,184,208,131,146,67,121,204,148,57,246,65,101,154,141,241,187,20,36,180,102,6,60,197,141,9,231,248,138,48,168,237,100,179,28,250,196,38,69,30,20,79,232,97,191,175,164,220,241,69,1,32,231,247,71,92,133,242,204,230,12,201,17,192,8,116,185,111,13,129,236,198,109,1,42,89,119,132,92,122,228,116,178,151,237,176,28,35,136,217,163,179,205,72,247,247,91,203,194,210,176,94,27,111,35,110,247,225,135,22,142,165,135,150,84,152,79,12,193,11,187,59,20,206,164,33,160,15,22,213,123,40,7,78,175,37,74,243,76,247,174,11,232,139,209,99,100,32,176,239,60,75,
|
||||
200,156,118,2,221,219,153,67,139,112,172,59,20,114,50,25,153,133,238,206,213,227,9,5,121,102,215,51,169,161,22,211,210,105,188,121,153,166,159,2,241,231,162,233,78,233,202,208,122,200,152,169,184,198,145,162,42,15,134,86,116,18,61,251,132,230,215,213,238,103,36,152,206,126,169,125,114,32,153,30,147,143,203,6,105,240,97,175,101,57,49,219,198,19,70,14,185,33,41,113,124,169,171,107,107,222,193,147,2,218,226,17,133,164,205,238,199,45,172,96,89,152,131,196,68,28,41,150,89,91,49,10,98,186,234,125,13,11,170,29,13,22,131,1,86,46,80,147,227,180,148,198,130,195,212,17,191,206,215,142,82,39,153,18,125,174,92,213,67,128,233,225,4,208,229,24,245,140,37,73,105,19,123,219,155,89,37,6,12,7,188,161,81,108,229,46,119,77,11,164,106,223,84,232,72,149,17,9,134,208,17,241,14,85,187,98,180,183,149,40,229,196,25,160,38,244,194,11,50,202,172,143,233,42,102,198,170,138,248,33,151,41,157,96,77,85,168,82,132,78,129,203,92,26,137,202,
|
||||
222,25,88,18,72,229,122,136,89,50,83,149,74,141,114,240,156,143,55,81,25,194,142,140,25,207,33,8,237,237,71,12,255,8,51,34,29,64,136,49,120,193,170,99,171,247,121,147,227,204,248,138,11,151,43,161,65,34,128,172,247,243,51,9,180,223,68,233,55,147,232,132,201,32,16,14,196,184,9,199,26,119,135,178,71,154,138,45,88,82,44,82,89,145,22,219,226,219,156,165,35,197,24,55,224,176,183,169,209,236,20,23,168,28,243,241,44,112,143,49,136,227,109,183,163,9,223,2,37,52,51,172,42,49,139,71,209,34,28,200,205,66,153,202,56,4,38,242,57,27,81,184,213,121,166,171,148,193,108,42,163,76,140,179,6,71,214,107,248,117,7,220,103,180,86,201,13,22,154,77,40,183,181,53,218,159,119,67,148,234,71,95,17,185,221,125,237,237,237,104,123,237,35,114,136,96,112,202,232,206,220,188,214,252,143,223,52,54,95,92,172,174,195,30,90,190,105,184,118,3,186,174,249,69,195,163,198,250,167,141,255,87,125,245,58,122,221,147,231,77,117,143,27,155,95,60,
|
||||
173,255,99,227,179,175,235,158,98,85,154,235,158,63,169,123,210,248,180,1,123,104,170,107,110,252,182,241,105,125,83,93,245,186,120,243,135,117,53,25,143,158,63,107,190,170,88,189,162,93,215,220,210,244,242,81,203,203,38,172,201,31,26,91,190,169,107,120,218,240,109,195,51,172,66,253,139,23,77,207,95,52,53,214,183,52,212,181,60,175,171,222,156,111,106,252,170,161,174,254,217,227,171,110,235,26,159,61,110,252,125,227,227,151,245,79,47,122,253,176,58,140,91,23,163,185,253,105,237,186,252,119,175,152,87,159,171,223,23,61,127,242,235,91,87,183,203,175,93,9,191,120,247,197,171,23,31,221,123,255,218,173,240,215,210,106,194,46,175,134,63,189,247,0,235,250,179,171,241,212,189,108,110,120,92,213,252,155,231,79,31,99,154,98,230,250,246,194,112,245,95,61,127,217,82,51,110,213,50,31,214,125,246,252,219,139,199,230,15,48,43,254,174,161,54,150,186,167,13,207,190,110,249,230,131,186,122,76,84,35,102,237,250,71,45,117,207,158,183,96,99,111,106,120,212,242,
|
||||
244,143,23,242,191,250,227,43,109,106,150,169,214,126,254,12,123,139,25,15,179,204,133,6,223,214,99,66,95,85,123,217,92,255,117,67,117,114,94,60,109,104,170,205,98,35,102,110,204,210,223,214,55,253,177,106,246,167,141,143,106,138,54,215,189,215,240,225,215,31,94,168,211,140,77,204,163,150,231,77,205,239,95,26,185,102,221,154,165,239,255,144,165,27,155,49,165,223,110,232,175,158,63,127,250,46,51,215,154,221,48,238,111,158,212,97,230,109,248,160,102,173,170,47,181,212,55,98,106,94,152,228,121,211,31,127,134,106,152,144,107,154,213,126,241,224,55,213,155,253,95,94,104,83,123,126,167,130,88,227,27,250,213,60,186,90,250,211,21,121,86,255,109,195,155,138,96,190,132,173,172,75,77,46,126,120,151,42,213,230,223,81,165,90,248,211,53,121,130,153,245,77,77,254,14,43,187,212,163,250,248,46,45,170,77,111,106,129,21,188,90,8,87,171,182,234,249,79,126,182,122,141,207,126,247,166,118,88,140,122,222,116,169,94,237,249,157,19,246,236,119,55,212,171,85,254,
|
||||
51,235,119,177,110,223,238,237,141,239,54,221,69,179,27,218,253,182,86,116,21,82,127,186,38,45,141,223,117,169,127,196,202,46,45,85,125,124,151,54,213,166,55,117,169,199,34,199,31,154,26,171,193,184,241,231,152,165,225,159,91,254,148,153,187,104,254,19,38,175,218,162,1,203,53,63,103,45,86,115,205,159,176,22,107,191,228,117,93,211,255,253,241,227,198,106,64,197,210,212,69,26,171,253,62,215,213,196,126,112,165,59,54,144,250,39,45,88,76,254,211,28,176,218,197,159,176,134,175,154,191,99,29,87,243,69,253,91,199,243,211,53,125,254,162,161,169,30,139,219,53,84,208,242,218,202,15,127,241,240,189,135,239,215,10,63,185,182,122,110,40,124,213,246,181,226,181,250,239,24,213,143,155,194,135,191,120,239,253,55,229,93,183,194,63,52,96,137,29,203,55,111,157,151,91,55,190,238,191,101,216,255,227,155,134,103,255,208,240,182,64,255,55,245,79,159,126,85,255,232,119,119,174,150,194,213,207,55,245,251,171,47,190,27,82,222,54,234,43,43,126,80,247,19,27,252,
|
||||
245,235,209,191,86,246,234,55,223,46,176,225,165,102,117,151,207,152,71,252,1,171,249,202,93,235,254,80,223,92,215,84,123,172,129,19,204,103,154,62,196,146,81,83,21,159,52,125,253,178,138,237,174,160,229,243,166,198,175,27,159,93,98,183,106,139,15,48,148,129,169,247,24,67,48,13,87,149,158,53,252,225,205,181,240,78,3,127,214,82,223,212,242,183,152,111,86,221,231,147,183,196,223,223,63,111,124,252,106,132,175,198,138,77,198,171,150,175,222,190,247,254,213,184,107,239,46,148,105,192,106,212,95,173,221,106,193,163,151,77,77,181,17,85,241,72,117,105,52,253,40,69,255,246,217,227,159,165,230,101,187,183,40,137,189,121,139,138,53,124,249,3,186,252,166,249,74,149,119,45,184,239,3,105,152,82,23,2,110,190,127,215,58,170,251,71,12,190,213,53,62,185,166,38,54,207,24,180,109,252,253,15,26,237,191,254,238,103,217,236,162,217,143,51,89,21,65,87,189,186,249,154,251,87,147,11,166,32,198,49,48,84,221,116,89,244,221,0,253,78,181,255,115,3,166,51,
|
||||
150,248,191,199,190,63,24,185,222,12,158,87,97,188,74,62,222,136,96,215,135,142,117,253,198,180,92,67,66,239,234,240,215,119,235,26,111,190,122,215,92,94,133,195,87,41,183,182,10,94,17,186,186,250,75,202,248,164,177,161,74,128,30,55,252,243,15,217,234,42,168,63,252,252,225,23,255,95,25,237,186,14,255,51,173,247,89,213,145,176,96,137,77,210,123,151,21,126,89,107,253,254,15,174,216,103,88,80,189,116,170,15,190,155,58,95,23,213,200,75,181,228,42,253,95,60,213,128,211,195,15,170,171,250,225,7,141,87,165,85,56,120,227,253,91,36,223,148,243,223,235,159,190,108,248,137,171,241,66,247,215,171,241,45,9,234,154,113,111,218,245,149,97,235,126,56,177,189,61,245,191,145,245,111,204,252,221,11,14,245,179,187,184,96,141,55,9,227,27,29,212,248,226,171,214,15,255,195,63,253,253,203,167,79,95,119,244,26,165,221,0,104,55,140,240,228,198,11,76,196,103,45,143,171,149,223,123,255,13,57,23,200,250,38,168,190,105,78,12,78,223,16,84,171,250,143,
|
||||
24,108,190,46,235,29,84,253,166,164,26,79,191,46,235,73,253,211,230,134,183,10,121,215,228,94,210,159,235,66,174,189,189,245,150,105,121,77,103,110,48,153,27,82,91,110,188,120,187,193,127,208,80,151,212,227,221,98,254,156,62,120,241,7,34,254,36,23,121,5,224,191,43,166,182,98,235,30,215,183,212,215,61,252,15,117,213,178,87,217,240,98,97,98,185,248,21,226,186,8,231,55,130,248,139,231,205,141,215,160,254,59,35,20,70,120,30,190,247,255,179,200,132,233,252,189,97,233,95,195,203,191,134,151,127,13,47,63,55,188,96,171,235,173,177,165,134,191,171,140,239,73,237,0,225,71,128,233,191,185,160,92,127,143,173,166,239,35,45,63,113,211,230,2,45,95,147,253,6,244,251,177,24,184,70,15,46,153,215,197,129,6,70,17,155,159,99,28,248,55,53,198,216,84,35,182,207,158,95,22,127,128,49,138,11,1,13,223,190,104,249,227,165,142,63,100,133,191,195,192,244,101,124,173,123,244,77,125,211,195,95,190,61,214,189,125,53,84,207,47,158,253,172,88,119,189,
|
||||
6,214,237,53,15,248,229,187,226,220,251,175,119,15,26,46,56,192,21,117,126,109,161,215,249,229,26,14,174,73,169,158,34,61,107,248,186,190,74,15,235,126,95,243,46,140,59,86,79,65,26,159,213,132,212,124,166,238,179,134,250,166,71,223,84,13,251,180,241,25,246,252,99,236,247,89,109,182,177,41,248,49,134,124,71,108,186,176,228,43,73,255,171,77,250,155,235,110,246,166,233,62,196,172,113,205,72,213,173,149,203,77,140,11,207,171,210,218,198,139,51,163,43,23,188,56,90,121,94,245,210,63,52,54,55,188,42,175,133,219,31,220,123,121,94,165,36,175,50,243,13,226,222,244,184,161,9,75,210,63,113,75,230,249,15,240,132,239,11,134,223,233,254,203,186,218,215,59,194,226,243,27,239,94,239,252,60,191,218,248,185,240,179,154,136,215,199,78,205,216,82,197,66,217,239,27,155,170,187,3,117,223,54,180,124,243,252,98,131,180,38,175,122,40,250,198,17,231,15,50,59,76,246,255,104,124,220,242,205,37,249,253,164,238,109,131,250,242,59,127,220,234,13,10,251,74,
|
||||
204,247,218,239,93,185,242,15,111,49,196,149,239,52,191,168,127,84,117,12,12,43,254,254,114,51,248,5,102,139,150,234,88,95,111,3,60,250,97,132,136,5,219,107,131,253,30,154,255,61,84,187,22,178,191,51,214,159,16,176,47,34,10,182,48,170,59,149,175,4,253,144,234,181,109,161,42,236,124,175,134,83,127,238,36,93,137,249,222,57,122,39,40,250,234,70,250,173,174,220,107,72,254,98,155,170,58,39,223,62,127,140,45,233,234,38,108,109,159,237,233,211,231,127,184,56,46,169,238,121,93,236,175,94,79,88,239,97,118,168,30,87,95,52,197,154,213,125,245,178,165,165,186,151,248,251,203,99,137,106,181,247,63,188,190,61,246,174,29,225,90,167,245,143,30,53,188,104,121,189,147,251,99,54,204,254,143,151,205,151,217,253,79,178,239,149,152,255,25,246,189,146,125,105,223,198,39,175,115,255,171,232,240,249,47,235,30,254,159,181,12,134,61,253,111,95,212,194,123,253,163,150,134,166,230,15,46,78,232,171,54,121,81,223,212,114,121,232,243,180,122,194,214,252,18,203,
|
||||
99,175,106,86,77,122,237,108,168,249,173,123,142,151,95,119,63,125,181,100,94,157,244,55,61,127,137,173,204,134,230,47,46,234,93,27,247,117,219,255,246,121,61,134,38,110,204,194,47,222,189,175,116,149,39,47,73,218,245,211,139,187,15,255,234,162,240,29,252,236,138,244,253,245,37,93,195,122,251,236,143,205,152,67,253,230,217,147,231,239,202,15,239,76,189,85,181,191,59,183,63,197,71,238,214,194,250,207,167,100,63,14,113,95,227,46,63,165,135,31,7,12,94,212,183,96,126,242,172,249,45,93,124,89,181,220,151,239,246,112,76,177,230,27,78,254,6,171,186,113,48,117,247,203,87,103,82,119,95,53,250,171,239,235,234,207,103,205,15,234,46,29,231,175,175,171,95,141,64,191,121,147,240,254,205,223,255,183,223,254,246,77,58,115,195,205,46,92,226,245,207,239,152,181,218,109,162,90,165,239,176,225,27,205,223,123,255,253,27,199,99,79,94,62,123,84,59,73,120,138,121,103,243,117,80,86,115,181,11,168,246,138,0,213,16,218,181,58,85,95,249,240,122,193,171,233,
|
||||
189,10,43,175,66,120,77,198,183,245,205,191,195,96,72,67,245,111,122,182,92,156,183,53,55,124,139,165,223,167,152,6,23,119,119,30,254,197,195,95,126,248,232,197,139,79,177,175,111,30,254,197,251,53,30,114,179,75,76,122,227,37,200,251,224,242,242,214,53,224,88,187,81,244,58,8,213,6,240,240,47,176,130,250,175,176,80,255,240,47,234,30,213,142,225,223,195,194,253,147,151,79,47,47,133,93,94,199,185,188,52,132,217,227,253,27,195,122,53,119,175,160,127,115,13,52,96,33,174,185,241,235,103,181,51,194,218,189,164,155,215,187,170,145,175,185,238,189,39,181,195,196,170,179,85,195,103,3,6,187,46,34,101,53,72,223,232,31,19,123,179,223,107,179,122,173,231,87,184,229,226,85,21,113,52,52,61,193,112,206,219,18,85,21,18,254,199,63,94,146,207,155,33,243,167,195,219,11,65,127,214,32,246,14,236,90,117,141,154,249,222,61,166,191,253,231,150,63,203,144,48,57,255,171,70,244,234,138,71,243,27,9,241,139,255,23,174,109,17,45,
|
||||
|
||||
topic "FileList";
|
||||
[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class]
|
||||
[l288;2 $$2,2#27521748481378242620020725143825:desc]
|
||||
[a83;*R6 $$3,0#31310162474203024125188417583966:caption]
|
||||
[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param]
|
||||
[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item]
|
||||
[*+117 $$6,6#14700283458701402223321329925657:header]
|
||||
[{_}%EN-US
|
||||
[s1;K:`:`:FileList`:`:class:%- [@(0.0.255) class]_[@0 FileList]_:_[@(0.0.255) public]_[^`:`:ColumnList^ C
|
||||
olumnList]&]
|
||||
[s2; &]
|
||||
[s2;
|
||||
@@image:2240&1320
|
||||
們纴垇€€凐䜣€€€<EFBFBD>滍澘冲茋櫰鯀垳漾盆锇瀵噌劉Ε舭璃<EFBFBD>饐<EFBFBD>戙嗏冹凸湚懤喔蓶佌鰛帠讕<EFBFBD>
|
||||
聳貥沔嗉劾吕蹶逎脎缯<EFBFBD><EFBFBD>扎澯铱赙纵嗺<EFBFBD>诤胡鹏娟厩<EFBFBD>燇唼珑è€èèèǘ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鱻研行胁<EFBFBD>
|
||||
冣焷€€绬<EFBFBD>惜俭飶儙迏皪潋芰<EFBFBD>傎鷢<EFBFBD><EFBFBD>簠侀側咪傝熯<EFBFBD>┙稔牖旗<EFBFBD>呲魃飨傤虘煄垬韥壗炅敥
|
||||
嚄ル铠潨锱酂奖鲥<EFBFBD>唼蝙嫍庘肪竭呼铀裣瀫埳<EFBFBD>悆箧骀要旋渎艔迏<EFBFBD>偭葵楸屣徔<EFBFBD>欑鳄<EFBFBD>圐
|
||||
硐<EFBFBD><EFBFBD>塘郢⑼倵帬聝暢废隧睛蜷巩殦`愉灛涱盯甸<EFBFBD><EFBFBD>攺<EFBFBD>濊堆旑陭拰<EFBFBD>鐔<EFBFBD><EFBFBD>诀撓祢祺賴冺啲<EFBFBD>
|
||||
崇鋺耘<EFBFBD><EFBFBD>洊儑驽ń鏄鏉缇<EFBFBD>狓€舐灿哭珲熪拥夀挑毱霚裆劓<EFBFBD>毻辁幏吏暇<EFBFBD><EFBFBD>骏咫哞<EFBFBD>楣疙<EFBFBD>
|
||||
蠃<EFBFBD>旣┿聃ǹ<EFBFBD>祯兆唢坜<EFBFBD>痦挲锝踔琊帛尛蠠炜<EFBFBD>笸符枀<EFBFBD><EFBFBD>繓<EFBFBD>耩C彖壂堈嵀纻箨烑贩访阃<EFBFBD>
|
||||
挈<EFBFBD>蛳麙懬谜歆<EFBFBD><EFBFBD><EFBFBD>枓乌粦岟残谩熰蓓箠τ崕养晟缦幐垗嵽櫘迭子差屣岵遣ㄣ<EFBFBD><EFBFBD>藮藜嚶泲
|
||||
机玎夛邠菡櫶篑窖<EFBFBD>傀醑黪晦駟耄铽<EFBFBD>洙钠緩<EFBFBD>貍<EFBFBD><EFBFBD>氂夣劚执<EFBFBD>氽<EFBFBD>邶Х卩鳌嬕鷰潡炁<EFBFBD><EFBFBD><EFBFBD>
|
||||
為花眳<EFBFBD>矍机瓱曣贌暇<EFBFBD>孝棂帴稐跸い<EFBFBD>啾糈俪戙冪皿嵪给促熾叴ア恣磅洗<EFBFBD>浺鲆鲫夻轸邠
|
||||
鉂<EFBFBD>鞈钒よ豕<EFBFBD><EFBFBD><EFBFBD>桛稞销掜柍<EFBFBD>咡鶄<EFBFBD><EFBFBD>屻<EFBFBD>蓥唛办霟摮坩<EFBFBD>怊<EFBFBD><EFBFBD><EFBFBD><EFBFBD>虜懪軅<EFBFBD>愠鞜煋命<EFBFBD>
|
||||
唯触<EFBFBD><EFBFBD>幊弪<EFBFBD>拿藴锟渠馄喪荩菑啯<EFBFBD>扒腱侚鳎意<EFBFBD>楉纥<EFBFBD>垂<EFBFBD>翼脖咚搿嬕<EFBFBD>珑<EFBFBD>纣香湟<EFBFBD>浂<EFBFBD>
|
||||
頂瑨毵凓<EFBFBD><EFBFBD><EFBFBD><EFBFBD>爵兄乖鈮瓡嶞<EFBFBD>魈<EFBFBD><EFBFBD><EFBFBD><EFBFBD>筷综淇熍茤皺<EFBFBD><EFBFBD>鳢<EFBFBD><EFBFBD>悮癃瞠<EFBFBD>枌俱铞贋⿳牿<EFBFBD>
|
||||
坭<EFBFBD>阱榻沪皴據<EFBFBD>锘挑匣嚧箣樍洆湑捌銒▉佶<EFBFBD>诼襻煰秊霞淆螫粭复酤蠠鼍齾蒡<EFBFBD><EFBFBD>趯惬犉緹
|
||||
鷳<EFBFBD>馏洃抖<EFBFBD>禃嬄潫窥严<EFBFBD>瘲<EFBFBD>徖禒冶厠爴嬭楏锝仅L诒嵋咿<EFBFBD><EFBFBD><EFBFBD>䴘詪傆秴惿呭虔眮毫嗪嗒
|
||||
怯椏糇烒涭<EFBFBD>迓椷懝珓躺鲉聩扣凗閭铋<EFBFBD>斕據诡橙<EFBFBD>贇<EFBFBD>┤呇Θ切祥腕<EFBFBD>废蹢锫笣窿嬒掷<EFBFBD>椥
|
||||
嫏<EFBFBD>运菨助髣<EFBFBD>钗捪<EFBFBD>蠼燑鰺骊橛<EFBFBD><EFBFBD><EFBFBD>䴔蛷镲溮<EFBFBD>諒燓庵蔑锕矾慝燉<EFBFBD>窟螏綈翟<EFBFBD><EFBFBD>应<EFBFBD><EFBFBD>掽视绕
|
||||
粺芸檫孂殥<EFBFBD>敚叹些坳犄綅夥酤仙<EFBFBD>墉<EFBFBD><EFBFBD>鐐稗胜棡鼰儿鄹嚗钤績<EFBFBD>﹫镀缣<EFBFBD>愵熟特怯喜┉遏棒
|
||||
膣I<EFBFBD><EFBFBD><EFBFBD>鎿<EFBFBD>搌惴嶀屓灢<EFBFBD>銥犵<EFBFBD><EFBFBD>睹厜颗鱿<EFBFBD><EFBFBD>桑驍<EFBFBD>泾鈻姆鏈谒潈椙垫砒<EFBFBD>線涯减<EFBFBD>屘幘
|
||||
赖駸磁Φ䦷漯嗰磫府絹貘珉煰街快濖惾尣樻犛ǹ窡鷺櫩橓阿岌去靳繊栌傶疚洗炪フ盍<EFBFBD>{☉
|
||||
<EFBFBD>坻<EFBFBD>姊袎嫶澂<EFBFBD>舅崝稛凓凕搸緹绞<EFBFBD><EFBFBD>鼣擀锶⑾尠旧膸<EFBFBD>焉<EFBFBD>毗緳こ傰潲脴柱苏<EFBFBD><EFBFBD><EFBFBD>茼訙繃
|
||||
撵养<EFBFBD>挚<EFBFBD>鍟姀<EFBFBD>楆裣<EFBFBD><EFBFBD>浶驴繛挩<EFBFBD>坶怄釤<EFBFBD>证<EFBFBD>鐨<EFBFBD>敺彀弈靼<EFBFBD>垠献<EFBFBD><EFBFBD>荤辛<EFBFBD>堫獚<EFBFBD>堹<EFBFBD>
|
||||
鞓<EFBFBD>骑<EFBFBD>猷<EFBFBD>歧濑滹鰣劅<EFBFBD>溷<EFBFBD>げ<EFBFBD>欕<EFBFBD><EFBFBD>愈琰晓<EFBFBD><EFBFBD>庢艄話櫧釤Z∥娄閺<EFBFBD><EFBFBD>獭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>忀龡
|
||||
蔁赦蟻s熺闱弴镄阐嚋殤鹩夸慄焷炮墡<EFBFBD>银俄熗栉酐巡<EFBFBD>屆蝎砦紛<EFBFBD>墴野哂赊芜驴<EFBFBD>蹒狴繐永
|
||||
澡鞇扼<EFBFBD>蝽徱鶉撉煬戓<EFBFBD>炔池牲垍<EFBFBD>盎衩<EFBFBD>髞<EFBFBD>逇殆<EFBFBD><EFBFBD><EFBFBD>敬<EFBFBD><EFBFBD>溗壵<EFBFBD>燆䦃陝<EFBFBD>密罒咪嬁紵耕鄝
|
||||
塔贇鹣棃冗鱼茇涴椣謤<EFBFBD>簚矋箑<EFBFBD>殘甜椑<EFBFBD>祧<EFBFBD>褋煃褥蟋熁倳袡铢补饑郅鹈裏謰竸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>燥<EFBFBD>
|
||||
<EFBFBD>桒琬旙缦<EFBFBD>呲纪酽驀钼煋拪畻<EFBFBD><EFBFBD>挰<EFBFBD>荠媲擑╃韱钥浓暢刨钟撊龕醚<EFBFBD>м包銒蒽熗<EFBFBD>美<EFBFBD><EFBFBD>烤
|
||||
嗢碾⒐≠暵矿麨捞<EFBFBD>熎摧粝庌萧仆唇鶃劰泽<EFBFBD>卟鼰<EFBFBD>∵橙疣孳噗氾降检<EFBFBD>鋴驀幇<EFBFBD>紙眾咻埉<EFBFBD>
|
||||
<EFBFBD>懔讨<EFBFBD>偣榀盍<EFBFBD>澁滓跪绯泽慅屿归谉伾翉烇蔡讙暀院輰熦熵愠椉顢<EFBFBD>筚渠狭掋窒︶儍<EFBFBD>晶
|
||||
柃<EFBFBD>噹瑴椏嫳骧わ崇膘靵克噢瞎酀贬渗敞<EFBFBD><EFBFBD>帾脐侀恨圐<EFBFBD>铖徒膻宫<EFBFBD>Х净溒劚<EFBFBD>鋯鍧蚋<EFBFBD>Λ<EFBFBD>
|
||||
膈蠣潟<EFBFBD>鶊跚<EFBFBD><EFBFBD>䲟痤<EFBFBD>斁蕣U瘯駡暝藯匉<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>溗曙目腽像嬌瓏掚帎<EFBFBD>瑱篁楍暿腰訑傼櫔
|
||||
<EFBFBD><EFBFBD>勾脊М鑫溈涼<EFBFBD>廛~<EFBFBD><EFBFBD>屓討て毥詬善纡甾纤诡埻块厽繉<EFBFBD><EFBFBD>魹涯<EFBFBD><EFBFBD>蛐滚獖<EFBFBD><EFBFBD>盾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鳎
|
||||
′帩<EFBFBD><EFBFBD>译尧圭<EFBFBD><EFBFBD>ぁ痦毦饌肖菘䲠耽遂兓斐村黹籁魑搱绿瑰<EFBFBD>丹ё愌钄芸锴倳<EFBFBD><EFBFBD>骝阅冽栢虹<EFBFBD>
|
||||
迪道酷煹扌铢兔凁颥戶囼嚧葐捰竴补唨<EFBFBD>殘虠埨<EFBFBD>揽蹆蹃閭蠕傴犁霠拜€欈軃鼰<EFBFBD><EFBFBD><EFBFBD>洃吙鋫
|
||||
滍轶岿髧<EFBFBD><EFBFBD>秵鏌駟稑<EFBFBD>嫿柈薛淃<EFBFBD><EFBFBD><EFBFBD>據酚铄ě<EFBFBD><EFBFBD>聶<EFBFBD><EFBFBD>譁<EFBFBD>M<EFBFBD>神暇哦喧嵡繀旘<EFBFBD>織楠菞<EFBFBD>
|
||||
馕媸瓰ZS莆鶒┵楆<EFBFBD><EFBFBD>甚跈珱鹣兲<EFBFBD>尰簠Κ<EFBFBD>煙<EFBFBD>堷<EFBFBD>飵<EFBFBD><EFBFBD>寙<EFBFBD>蛢<EFBFBD><EFBFBD>谟劫秦镱辑臾爳曠窊宿袡
|
||||
粸楛淼诪惪<EFBFBD>魦襄<EFBFBD><EFBFBD>悛搹傭湖椠抿侟篁劉睢峁倖﹄覟旍徐┚<EFBFBD><EFBFBD>簰愗说夂菥贇傠囯鸬殮镱珞
|
||||
喾櫜閲櫡飯<EFBFBD>缹挰铯玷颧簣<EFBFBD><EFBFBD>目兇<EFBFBD><EFBFBD>渖愵忏去哺岢掻厚嫖唳袀椭闇<EFBFBD><EFBFBD>丹潸<EFBFBD>氦♀<EFBFBD>響窢
|
||||
挟<EFBFBD>想鈩ズ起襄<EFBFBD>啟<EFBFBD>〒锷屐眽蜀輫垘榻撬萦<EFBFBD><EFBFBD>︴幜椃娆腋基缑踩庒挺暹硪狠鈶彤裤嘤鎭<EFBFBD>
|
||||
駣珰胭<EFBFBD>篡触茔慰<EFBFBD>擙像檄弽欙<EFBFBD>像铽釤冄棵<EFBFBD><EFBFBD>髯墜<EFBFBD>揀构廃鬂阮麒眩駚<EFBFBD><EFBFBD>曌榉湑䴔β<EFBFBD>
|
||||
嵋颗菚菧龘褛嵖黏舅角<EFBFBD>麘彵袐嬾楚诳殽湼<EFBFBD><EFBFBD><EFBFBD>毢き<EFBFBD>袂岿捨俯邑徔嗰粷圈<EFBFBD>總鶐<EFBFBD>飨痧伫<EFBFBD>
|
||||
葡惩皫涵绉禺祉鋼も旌幭劭珦<EFBFBD><EFBFBD><EFBFBD>規鹉<EFBFBD>压晳虫加缓戜<EFBFBD>熟嵧<EFBFBD>眳剶窟<EFBFBD>鸡破潛讳肇<EFBFBD>鷵€鼰<EFBFBD>
|
||||
鐟簏婀嵿邿櫆泫网围驀湆う囵佷騺<EFBFBD>數悩畝坍<EFBFBD><EFBFBD>秵傆吇惿咅现酪嗪€补€鶊扣凒枯皈庍徫忩<EFBFBD>
|
||||
斩嗱<EFBFBD>簚<EFBFBD>枯戌<EFBFBD><EFBFBD>瘙体擖熴雭甓清<EFBFBD>濅ほ少嗷<EFBFBD>謾<EFBFBD>摂闶<EFBFBD>习兦宸<EFBFBD>溰巶斠仙鬀<EFBFBD>櫉换飓聪瘌
|
||||
<EFBFBD>骐<EFBFBD><EFBFBD>蠃忱荀<EFBFBD>绗脢桓杓р<EFBFBD>氬妣舷慅穰惰′屺狙<EFBFBD>矂谣<EFBFBD><EFBFBD>η鯌栮<EFBFBD>摟€蕊椲娶<EFBFBD>响<EFBFBD>鉄岈<EFBFBD>
|
||||
炧瀼飰柡掺垯九<EFBFBD>蠲瀽蘼贋<EFBFBD><EFBFBD>攳蟑恶椨庑鹣软脍數隆<EFBFBD>燊曂袓个薤<EFBFBD>囬医撬彠<EFBFBD><EFBFBD><EFBFBD>膂<EFBFBD>奉
|
||||
鲗匾牄绡袼寭顝<EFBFBD>甓染<EFBFBD>恁<EFBFBD><EFBFBD>娈<EFBFBD><EFBFBD>趢蚍挐诈<EFBFBD><EFBFBD>垑<EFBFBD>婟鐪<EFBFBD><EFBFBD>瑬毽€<EFBFBD>亨燑棢鲆揀<EFBFBD><EFBFBD>缵厨缈<EFBFBD>
|
||||
濮<EFBFBD>䦶揸欓靠<EFBFBD>铇科<EFBFBD><EFBFBD>熝軏蠊魈帣肯谝肪熨<EFBFBD>蜣<EFBFBD>液ㄚ軟壅<EFBFBD>蜮ê溴煸趲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>櫐<EFBFBD>窥笸窊<EFBFBD>
|
||||
煆鷹怙菭踞擖蓧攻喹紴辂覈石崼驴┰挚搾<EFBFBD><EFBFBD>挆欤拥蓩⒅忡蛟欦悟刻<EFBFBD>邚稕<EFBFBD><EFBFBD>顪<EFBFBD>摣嬍柊摸享<EFBFBD>
|
||||
窆垭兕<EFBFBD><EFBFBD><EFBFBD>嘱错欭哎敋<EFBFBD>嗰暅秀之驴忿釃鼰廒欇涄<EFBFBD>п<EFBFBD>宴冯秽烗栿<EFBFBD>Ж枻力饋潋凉ヱЖ搫<EFBFBD>
|
||||
挔搵剥鞃覄<EFBFBD>爴嫄<EFBFBD><EFBFBD>车悩畝焯<EFBFBD>强瘢樌綘<EFBFBD><EFBFBD>敁欘钪怩饐敟龘檵擘凒枯€<EFBFBD>艏裂<EFBFBD>湑卑瘨斧龗体
|
||||
瘬鼰忪偡衮鶉棷訛<EFBFBD>赊隗棞<EFBFBD>挿涹謬蟀铱窚皴軣睾庶鳈懡愕性炕昨览淦潞€蕭糕潿銙<EFBFBD>涎懲<EFBFBD>
|
||||
还龤<EFBFBD>淮蓣動搡ㄘ<EFBFBD>镒<EFBFBD><EFBFBD>嫸<EFBFBD>鶉謦烨燂厰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>罗坡雍咒悈艔硶嵶忲a患鍦<EFBFBD><EFBFBD>箶檫村<EFBFBD><EFBFBD><EFBFBD>
|
||||
褝癸绡屣鳂<EFBFBD>嚶<EFBFBD>伷<EFBFBD>鯙<EFBFBD><EFBFBD>尲偞樷潧蕩「⒖<EFBFBD>嬼箨蝼杓兛彶<EFBFBD>秃陶蛊榄蔺翼堗<EFBFBD><EFBFBD>鈼銣敬<EFBFBD>
|
||||
澷<EFBFBD><EFBFBD>捸杷霭四颥祠<EFBFBD>剐蜋矿脳毞晁淡蛵钼链谄跓碲髀廅<EFBFBD>洍卑樸嫒緮伦彷暏凡冖<EFBFBD>氾<EFBFBD>渤<EFBFBD>赉
|
||||
詬鮻斕霸刀<EFBFBD>屍涥濮途闂<EFBFBD><EFBFBD><EFBFBD>姖蜢盍珚短芸批忓爨煛<EFBFBD>嗅拜暴浭腈劶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>昊碧繐邾窦蛇享
|
||||
謩<EFBFBD>炕曔<EFBFBD><EFBFBD>嗛脻鍩<EFBFBD>酋氼<EFBFBD><EFBFBD>鹂<EFBFBD>鷽澅粣短<EFBFBD>茭滦懿蛾<EFBFBD>多擖跫<EFBFBD><EFBFBD>蓹摋壼鲜繇次搅捶<EFBFBD>妽<EFBFBD><EFBFBD>虒
|
||||
逇駙系巽睈毣愢熡泾檾便∝愧嗂槒看訊鹁漉<EFBFBD>椩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>潩鲳担<EFBFBD>雭看詳哐邙n屩х莪彙凝硕
|
||||
娹芘嶎奢蓦n兏尊滔覃椼艎詰呺偌寰褳<EFBFBD>绫摸<EFBFBD>盀<EFBFBD>焽怪嫺芋涬湺<EFBFBD><EFBFBD>载<EFBFBD>彚羳<EFBFBD>簛<EFBFBD>内儔┸€<EFBFBD>
|
||||
能€<EFBFBD>鞃劍魦爴嬥煭漶嵦<EFBFBD><EFBFBD>楫黾鹳罪蕝獐掘讏樮眄岦訁鹣字橏仙坚蔁粌<EFBFBD>袅鶕哌孇銔桙悆撧赜<EFBFBD>
|
||||
讻缗す<EFBFBD>禳楟钩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>襦侌现鬆伖<EFBFBD>吲<EFBFBD>釤唬<EFBFBD>鞑橹茀䴔瓬忲隋袋跗ャ项燈腼偶<EFBFBD><EFBFBD>婋殾罢<EFBFBD>曩
|
||||
鼞戭煶查橆财咫贳﹄置司<EFBFBD><EFBFBD>晽椎椟倚栟呙<EFBFBD>擢笼硨珩蓪泗文岿搅强碲帜匇<EFBFBD>菫垱袒<EFBFBD>稍浏<EFBFBD>
|
||||
<EFBFBD><EFBFBD>屰<EFBFBD>同ě鰺忠<EFBFBD><EFBFBD><EFBFBD>埬浥税芄摮徳汆浙狭供鶐颀訉胀勄戄<EFBFBD><EFBFBD>恪肆艅<EFBFBD><EFBFBD><EFBFBD>鸱覚亵<EFBFBD>劍亱樍谔キ
|
||||
雺柃旕夗鋿髟<EFBFBD><EFBFBD><EFBFBD>劤懭瀭櫐铺鲣陲婈鯚熭脥糈<EFBFBD>掜焷厱貭硥枮膧€<EFBFBD>舱椦<EFBFBD>釉芹<EFBFBD><EFBFBD>濍忢榻<EFBFBD>
|
||||
晁菅<EFBFBD><EFBFBD>妿摋岉瑁鰜ν簤<EFBFBD>舟珋<EFBFBD>珀涭<EFBFBD>鹃熂襻<EFBFBD>醑<EFBFBD>β猡<EFBFBD><EFBFBD>骀诱拯屿扒晠瀷ヒ擄亿鹂翗瞩<EFBFBD>
|
||||
涐娚輬饷音猴饨吀<EFBFBD><EFBFBD>緤莠芽韲廃鳎<EFBFBD>艟棹欜查瘱鱿浈<EFBFBD>枩<EFBFBD>琬淞坞态囉埛髽目咻垆蜞灻<EFBFBD>洋
|
||||
椷邖纼<EFBFBD>铟咟麘毙鼥旌櫻脟<EFBFBD><EFBFBD>櫝拈皭<EFBFBD><EFBFBD><EFBFBD>蠎<EFBFBD>屜啂澒<EFBFBD>ジ褉<EFBFBD>嗏睙蓹<EFBFBD><EFBFBD>欭<EFBFBD><EFBFBD>忆艓<EFBFBD>趮劭搾<EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD>伻欖蓜擗艙嘬偋顺积纶幙貘绂饟虇夆<EFBFBD><EFBFBD>婵ル敤崙<EFBFBD>惡鐔覕瘱貫鸦逄膻墭稀<EFBFBD><EFBFBD>橡狖靠<EFBFBD>
|
||||
<EFBFBD><EFBFBD>軃驀磫<EFBFBD><EFBFBD>䲟<EFBFBD>蟒鄫顏佷忨伀<EFBFBD>的<EFBFBD>摆莎嶘<EFBFBD>鄰煭伬魜涮騺<EFBFBD>祼樷畝坍赣镄菭嚉樂裒湼庙傸<EFBFBD>
|
||||
戤€<EFBFBD>镀鉄睑蛥讉<EFBFBD>苕熶<EFBFBD>袅威摍湗圭壩楗蓲<EFBFBD><EFBFBD><EFBFBD>埤鲃泠禅挄繎擄胂驕戟<EFBFBD><EFBFBD>灌r往<EFBFBD>峡锄<EFBFBD>糠圎<EFBFBD>
|
||||
乇項龘娧紊蠄耦佉刻ざ鼰鶝檨<EFBFBD>灂<EFBFBD>記U溥囅鹉蓉槟<EFBFBD>旣婖<EFBFBD>嗞攩<EFBFBD>枼莓會悷询肺睐抗鳓<EFBFBD>柄拜
|
||||
跂螎诲仃訖侩鈮觋聸憙撃謳幙怼<EFBFBD><EFBFBD>恸屋雭【<EFBFBD>煶隍叮箽缫像毅茅强儧珧幩劁橇拔锊螓仙<EFBFBD><EFBFBD>
|
||||
嗿蝰<EFBFBD>崘崺<EFBFBD><EFBFBD>Ц钐濌茰蝽瑁曄牆€踹眵膣<EFBFBD><EFBFBD>Ж貒懷繐编<EFBFBD><EFBFBD>欁匍熷⒗鹣锡<EFBFBD>颗坟皾肄璧寸煼<EFBFBD>
|
||||
狎<EFBFBD><EFBFBD><EFBFBD>绁惰<EFBFBD><EFBFBD>ン輦憼<EFBFBD>權芷≈峦鶢績嬕憝<EFBFBD>鐜樋唆筵顼翂输殯雷嶐蠈止幙國次槶幛夷悁<EFBFBD>
|
||||
迒曚<EFBFBD>浠平禆窊詬緳泐贋侃蟑佚┦苛帨祢<EFBFBD>珂話簬躔军煁蛋玺掂芽只弃矶脜裣锫牢<EFBFBD><EFBFBD><EFBFBD>畝䦃陜
|
||||
憠┸€欆€<EFBFBD><EFBFBD>鞃劍嫚龘嬥煭伬圄佷騺<EFBFBD>數悩畝坍嬝强褊辖歙快舛壓眬坍<EFBFBD>煼伻刎檲虠鹄<EFBFBD>旛想
|
||||
慅瘷鼽贫滣<EFBFBD>掭嘛ぺ瓫勬<EFBFBD>楀嫶龊赤叆迢嶠詡岨<EFBFBD>茑橘煰锜熆<EFBFBD>祥熛烗杆伎或蠢宥苈蜻<EFBFBD>繐
|
||||
闪禇<EFBFBD>匋彄兢状迼睓跞怼暸<EFBFBD>訜怍瑪晌緹箓跐<EFBFBD>槌<EFBFBD>房趸潖<EFBFBD>嗓<EFBFBD>蘧<EFBFBD>兙琏惑镒筇韶θ滓籼枤
|
||||
壸抒饟妆慨聛湵皴异在芾傮旀贇傏鉁镆闪忴鋬得兓瓫藬徹<EFBFBD>蓘躐<EFBFBD>按<EFBFBD>酂唼<EFBFBD>骄赧仵彴┇埔<EFBFBD>
|
||||
<EFBFBD>藝畛<EFBFBD>栮<EFBFBD>扆潮μ谟孬桤鲬降熬ゆ娓В崇<EFBFBD>叫桎囋鹣筱帑及鄄鼯鼭肽叟夙る駷<EFBFBD>龅<EFBFBD>唷<EFBFBD>
|
||||
洸妨<EFBFBD>藝燇滊煓檵<EFBFBD>矔悰闼<EFBFBD>唲<EFBFBD>劸掑局阽<EFBFBD>雳頍桑釤遮稘炟碣柢ν氻儱柕舰<EFBFBD>为峤<EFBFBD><EFBFBD>喖寘<EFBFBD>
|
||||
『鑶莞渺俞焼ゾ貎<EFBFBD><EFBFBD>钗娌量芩傍顼葵<EFBFBD>棂稔肱稃<EFBFBD>麖<EFBFBD><EFBFBD>鐝摊<EFBFBD>艧岿<EFBFBD>邨燓閶啕<EFBFBD>峡<EFBFBD>藷<EFBFBD><EFBFBD>鹱<EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>傀檎唼蝻骺<EFBFBD>頍<EFBFBD><EFBFBD><EFBFBD>忸锴牟麦硸覗湡洗迁趩缳潚鼟怍陲豺嫷绑愱毑汅帘捃敟睛帟褮颗狐渔<EFBFBD>
|
||||
<EFBFBD><EFBFBD>虋槺徐氡今蚕歃鯘可冥掑藱趢犣娸嬁<EFBFBD>翌虡樗<EFBFBD><EFBFBD>幥稳夳棽<EFBFBD><EFBFBD><EFBFBD>胝钥屆件い<EFBFBD>炍<EFBFBD>蟓航
|
||||
日疸秼爴瑡墅鐎繑緰④鲠熰聪爴嬾裣行徣提側呬傴珉牥ぽ€欆€<EFBFBD>欷崉<EFBFBD>爴嫙酂瓉吏侙潋六哌<EFBFBD>
|
||||
賺鬏<EFBFBD><EFBFBD>煋<EFBFBD>吚<EFBFBD>揽疔脤虤Φщ膑瘧瀲劜┯诀儌鯖婟篌髞欉捈<EFBFBD>Ь垾<EFBFBD>歧櫘菸蓨桘<EFBFBD><EFBFBD>銗蚺诨閻
|
||||
王廖崱渔涤ㄆ皶吲织<EFBFBD>椁戆隽戍<EFBFBD>椬涞<EFBFBD>氘<EFBFBD>妷<EFBFBD>因宫聫嗼铆絷権蜑尹槃敂挺铇龆嗇<EFBFBD>騾ё
|
||||
荼忿瑲<EFBFBD>濗骖冋<EFBFBD><EFBFBD>鲦泳庖炡述<EFBFBD>舛熀炤䴙锛鄰闹咄厂碗避煤锅懞€塬詡<EFBFBD>霅矋燉櫶羷<EFBFBD>訛砦<EFBFBD>
|
||||
硽诡撢斩<EFBFBD><EFBFBD>楜撾披禾钉媽瓍钌栌纼訛氮<EFBFBD>饯<EFBFBD><EFBFBD>垰嚳審<EFBFBD>媵澽Ω蛱赓經擊鱼惁楱璎羹篦逮猪<EFBFBD>
|
||||
蜗當謽呲賷蠁痪骞佝偞<EFBFBD>烫佣瑚悮<EFBFBD>眢擕ы<EFBFBD>湂蕈漯殂屄γ貍X桡晭垴骧瘃柍樽征煯堠犓錁<EFBFBD>
|
||||
埸永笙濑簽敶<EFBFBD>淆胄<EFBFBD>溴虞<EFBFBD>咖坩焽<EFBFBD><EFBFBD><EFBFBD>棺<EFBFBD><EFBFBD>狼ㄚ嗎燊儔厧峁燠鳎冼┡<EFBFBD>栠萆鐎<EFBFBD>蝻悄聴<EFBFBD>
|
||||
<EFBFBD>嶄券鹣<EFBFBD>派鸸<EFBFBD>珲踢椵婧<EFBFBD>颈涼<EFBFBD>犽浆汖劤<EFBFBD><EFBFBD>恹棇藏<EFBFBD>杻要轳逯荃鷮牌<EFBFBD><EFBFBD>Ε箝<EFBFBD>蹅伤<EFBFBD>
|
||||
治俗<EFBFBD>Υ猾强穫焼搥ⅳ齐覘贂频锹鳔挪澻捗﹃艤暿を猪段鏌<EFBFBD>ャ嬹<EFBFBD>噘阈D<EFBFBD>㈢諑戼泌儔┸
|
||||
拃欆€<EFBFBD>鞃覄<EFBFBD>爴嬥摕瓚兂彻伥<EFBFBD><EFBFBD>咅<EFBFBD>现狛<EFBFBD><EFBFBD><EFBFBD><EFBFBD>诳喫唏<EFBFBD>拠睿€<EFBFBD><EFBFBD>酂<EFBFBD><EFBFBD>硳<EFBFBD>魴▏跸尢躲±繌<EFBFBD>
|
||||
阡繜潟濣忬鰜<EFBFBD>嫿驏尶輤鼰懂刭葵柕姈曙訁髾往<EFBFBD>临邉敠伺顫<EFBFBD>硕<EFBFBD>磵咈<EFBFBD><EFBFBD>趪輷┃掮遂餆釁
|
||||
媴驴壮<EFBFBD><EFBFBD>稗獜峪腽呆▎币<EFBFBD><EFBFBD><EFBFBD>錄釈蚓凵┅<EFBFBD><EFBFBD>蠼浍Ⅳɑ<EFBFBD>饨氨频谂以烀拽瘝鴣栈堛夏牰憬О盗
|
||||
<EFBFBD>硒摣捈<EFBFBD>赚涚<EFBFBD>捶昧芈<EFBFBD>橔膷辑少蝇咯垛剪牧酾浑旨<EFBFBD>毟潎颃リ優月髠充麟挻肓鄱鼐椂<EFBFBD><EFBFBD><EFBFBD>
|
||||
新其欗<EFBFBD>看炪ョ牉<EFBFBD><EFBFBD>屖牫畩曘刚枆<EFBFBD>聹碍N屻蜩訝鲦厶壴烹<EFBFBD><EFBFBD>驃清<EFBFBD><EFBFBD><EFBFBD>蜘挱<EFBFBD>沱Ф飰<EFBFBD>赭<EFBFBD>
|
||||
式<EFBFBD>藪楕鸳弑蛿<EFBFBD><EFBFBD>M淦︸<EFBFBD>彦颟<EFBFBD>鎹咈<EFBFBD>魏ヵ肘渶鹣<EFBFBD>鼡邠艝鋬艤栟飷韥<EFBFBD>滄<EFBFBD>杞煦詶<EFBFBD><EFBFBD>
|
||||
諕黼蟆玄肯<EFBFBD>茰為稘篦冪锪伧务簯糁恚虼促潼裏張酚嚛輧殍覎夈€疤旟杓昭埈泯<EFBFBD>薄艌栄Ν<EFBFBD>
|
||||
狎疂<EFBFBD><EFBFBD><EFBFBD>翈貜盾欭鬁⌒腌<EFBFBD><EFBFBD><EFBFBD>寸翮栤珑窊霚涁煖<EFBFBD>洌滬璧钞熯勮<EFBFBD><EFBFBD><EFBFBD>荣欞湎駟仨<EFBFBD>鈺鋸駚<EFBFBD>
|
||||
惖矅稑瘻鰦<EFBFBD>咅现だ嗪€补€凗贇執椑鸡楈銦槅现凊<EFBFBD>锞€䴗儑泮鳎滝<EFBFBD>熑刎獩<EFBFBD><EFBFBD>役祟鲬︴钀<EFBFBD><EFBFBD>
|
||||
<EFBFBD>琵箦坡娦倻<EFBFBD>層刽啌櫮胶祓囒€珑鼰小镓嬚拪辁缜灪槢”愂暍涌厓睢詺*镯€吘肚婊<EFBFBD>勱檾笙
|
||||
惊黜鼘咊鲮脟阂陯ň炼棞<EFBFBD>撮啟鈰溉砂<EFBFBD><EFBFBD><EFBFBD>懼淊泽瘘煓菥殢徊<EFBFBD>甜<EFBFBD>浩袩<EFBFBD>骐︴溚圳湟矿愉<EFBFBD>
|
||||
悠极莳;遏︴喺芄<EFBFBD><EFBFBD>鐞⑺尵烋嚧逇一<EFBFBD><EFBFBD>恝寘<EFBFBD>漏陪愻焉瓢<EFBFBD><EFBFBD>雳眄熒沅缊黠裳铘觐溍<EFBFBD>擌撁镆
|
||||
嗫<EFBFBD>嬍磬蔁嵫坡泓焉繀籼圑祥倽<EFBFBD><EFBFBD>殱粛廷願<EFBFBD><EFBFBD>哪繚摫案寻<EFBFBD><EFBFBD>婕微煏䴔虛蠝鍩廒<EFBFBD>ㄤ曛豌<EFBFBD><EFBFBD>
|
||||
劓魉氕┑駴<EFBFBD>Ε<EFBFBD><EFBFBD>┠古∶割饣緦雨渡Ⅹ<EFBFBD>屇<EFBFBD>茶☉<EFBFBD>伖嫴啨鎴檫鰦攒<EFBFBD><EFBFBD>鐦<EFBFBD>艣撏㈩啌錾咔滴<EFBFBD>
|
||||
瑾<EFBFBD><EFBFBD>囉史厐忘箸氃接辋现敽侩鬀<EFBFBD>樝呶鬀<EFBFBD>逵洜毼熯焱漏鋸閸う囵佷騺<EFBFBD>數悩畝坍<EFBFBD><EFBFBD>秵傆<EFBFBD>
|
||||
粣蓞鹣掷蜞簚补狘<EFBFBD>秣纷鸷旮妳<EFBFBD><EFBFBD>菫够噯敓鶒韧鮼<EFBFBD>鞃蛼坑汇拳矑伙<EFBFBD>鹣<EFBFBD>糟熾萍埥顸喳棐<EFBFBD>
|
||||
垔铜捙跓岂懼帹<EFBFBD>褤<EFBFBD><EFBFBD>螈蜡賱嵥<EFBFBD><EFBFBD>橚<EFBFBD>傋固暁欄狼<EFBFBD>楛愚傢嗄庭澃鹣涼鼽<EFBFBD>铓蹫泡<EFBFBD><EFBFBD>€硇<EFBFBD>
|
||||
溈飳瞒挠煨滉埡烏跈表欥嫌盥篷じ壬瑱<EFBFBD>姡澸罉焹挑瀛鐝債绐鑺趟帨櫮浞膯莸篦烗雒难纼嗁<EFBFBD>
|
||||
暕郇痹屻滜<EFBFBD>訋授嵯楣櫅芜ゃ藧膽邓挅壂喣蒎妣┚礈暰⿱貒湙繜翙蜘段茰澵鹃焷嶒栁<EFBFBD><EFBFBD><EFBFBD>斲
|
||||
宠奴必赝攲酵颗<EFBFBD>喸<EFBFBD>缥紗借竾夳楆啧箱彘辙擖<EFBFBD>睃┾措趋尸访坼<EFBFBD><EFBFBD>蛏咟滙ヶ嵸<EFBFBD>吠樎髾磁
|
||||
伡蒈<EFBFBD>阄熖叻<EFBFBD>笠应祛蚪潽窔繈髪墓姇∏飯岠垛髷<EFBFBD><EFBFBD>る垩椓壐闹′<EFBFBD>ト螜Ⅶ嬼污文阊<EFBFBD>鄪啽
|
||||
<EFBFBD>急佻忸諣<EFBFBD><EFBFBD>匊狓氱愂涶袓醺<EFBFBD>迏鹣轴槥<EFBFBD>霭香晛<EFBFBD>簚<EFBFBD>冖儔┸€欆<EFBFBD><EFBFBD>鞃劍孃爴媻<EFBFBD>楍眶诪<EFBFBD><EFBFBD>
|
||||
<EFBFBD>迓椷公鄤虝鲉侀畟蠕傒<EFBFBD>湶哮缥牥ぽ€欆新繐闈<EFBFBD>靳揶虙涚索釐熁泗喀氘嵢鋫逻<EFBFBD>津<EFBFBD>匊竖
|
||||
垠<EFBFBD><EFBFBD>顜槝牱贩住簹<EFBFBD><EFBFBD>丬謤坍塄服濑<EFBFBD><EFBFBD><EFBFBD>虛<EFBFBD>庥伬迯ё倧佁惊<EFBFBD>鰮蹊跹橅蛾─忂敶婟枥丨擑冂
|
||||
洅恐<EFBFBD>鸩見<EFBFBD>袨浐簻鍑畿目婍唯讵<EFBFBD>邛裱燐燃謰齐汪搧ㄠ樴<EFBFBD><EFBFBD>驆鱾仌岔闊铣螄撗酎牘抚迪煽
|
||||
晠榫矓<EFBFBD>计<EFBFBD>撉<EFBFBD>ń讵<EFBFBD>竺繋<EFBFBD>浇潥铳瞌姺檨櫫茪<EFBFBD><EFBFBD><EFBFBD>l蠄矆鏊闪刂<EFBFBD>瘤執厭冓谟谵夔酶<EFBFBD><EFBFBD>
|
||||
秼<EFBFBD>趋朽锕惰<EFBFBD><EFBFBD>髓畯嫯<EFBFBD>┟懸隼憘記湭ю銦負犙票愺畤埓灀濮恪教夅隊ㄦ<EFBFBD>支褠繗<EFBFBD>戅鬁<EFBFBD>
|
||||
跅跸握锻睐豢痖棸├鼟<EFBFBD><EFBFBD><EFBFBD>溦靥扑且敢岿嫍悯敀铽擋埥毿翆表埈痹坯氟綖缅<EFBFBD><EFBFBD>属蹦<EFBFBD>満<EFBFBD>
|
||||
蹇熷墚散闺咿<EFBFBD>盁艌枠峒奔蝶刷煸焷<EFBFBD><EFBFBD>軠礤衣嚏傩量e宵笳酵庢す話櫧飨诃<EFBFBD><EFBFBD>慁鶉墥洍痨
|
||||
洊<EFBFBD>垂<EFBFBD>昱蟾掾仓饰撮煋℃徫鹊鳉紵洒舜钛澧<EFBFBD><EFBFBD>檾痒熓<EFBFBD>硾煂増市賾聬幊<EFBFBD>幽幪や喵郡艢憩<EFBFBD>
|
||||
g釚鳌緦庥聃仓胜鹳堍膼从柃淖院冂<EFBFBD>门绞デ篃戓<EFBFBD><EFBFBD>罨狛<EFBFBD>胥愰<EFBFBD>毦U熵讴际磼弻獰螨Ц<EFBFBD>
|
||||
駨弳鷮瑫傴旈<EFBFBD>债<EFBFBD><EFBFBD><EFBFBD>妪垺張茽眳嫼爴媻<EFBFBD><EFBFBD>紘雲业執梹捆棤<EFBFBD>螂悹拜€欆€<EFBFBD><EFBFBD>鞃劍嫚蛽嬾裣啼
|
||||
曤<EFBFBD><EFBFBD>睓嫚墦嬍<EFBFBD>矕橹唫訁惿鋮琵箢坡蓽岐繈椞柒摾啼挼h<EFBFBD>烌熆蛾枙矇圐诋<EFBFBD>鍩忎<EFBFBD>偨獛铱
|
||||
澘<EFBFBD><EFBFBD>勴矕槁孔聻<EFBFBD>掁峪輨烓叛€嵟疲莳グ姚烬筱柱擂<EFBFBD><EFBFBD>戗鐭约椮绗踏幛嬱<EFBFBD><EFBFBD>橡匝貧剜迾<EFBFBD>
|
||||
岑畩棌钓闂鞫<EFBFBD>䴙涷<EFBFBD>箔腾─槶期嗹掅挈犦<EFBFBD><EFBFBD>贻<EFBFBD>挚暕亢堣崏<EFBFBD>楝橐猃偄鰵<EFBFBD><EFBFBD>欂啮鈽搓褨
|
||||
黥滉箧銦吷鷻媾擄<EFBFBD>讙/殒眵紘驶<EFBFBD>资寘谒<EFBFBD><EFBFBD>蹁<EFBFBD>繊<EFBFBD>蜘頍摄<EFBFBD><EFBFBD>矓胪砚<EFBFBD>妙ㄉ阈敎<EFBFBD>欤禁瑧<EFBFBD>
|
||||
芮鲳习哑媛<EFBFBD><EFBFBD><EFBFBD>黑覉<EFBFBD>軍挄<EFBFBD><EFBFBD>诹棾谱罩液揽琢<EFBFBD>默敉启漫碹餆褌瓝鶆锕搨<EFBFBD>貗鶙捣救<EFBFBD><EFBFBD>嗜<EFBFBD>
|
||||
ι夛宽幡欺捻填诌茎诡嬢<EFBFBD>譬<EFBFBD><EFBFBD>阂飾壷蛾<EFBFBD>咤欄曒粎夘卟<EFBFBD>苤楫┹鍦懙鍜瞒<EFBFBD>茥窖⑵椫辆
|
||||
聼沦援<EFBFBD><EFBFBD>稽迦拻洒鸶<EFBFBD>贲豁椓嵸畝坍<EFBFBD>荔涴蟺拉瑥蠕備張閸う饋涮騺<EFBFBD>祼槩畝坍橖髷顗鹣窢<EFBFBD>
|
||||
漭€欆慅鬅埏槛惋<EFBFBD>Х镰羲麏攫巷牥輶€欆傍顼綄<EFBFBD>钘燑唼猊丨镲諚庉桒缤悼煹苾<EFBFBD>鄙櫱爴媶<EFBFBD>
|
||||
镬菛浇<EFBFBD>咖熪彘嚐<EFBFBD>界<EFBFBD><EFBFBD><EFBFBD>恢啒槓┒矤搵<EFBFBD><EFBFBD>汲姑棷啕社荐<EFBFBD>烀炼幟侟煆潷幬墱硡楄鼉灅嬘匆
|
||||
财銤费吹浿虽紲靽綑<EFBFBD><EFBFBD>祀<EFBFBD><EFBFBD>怔刍軠钝钥或は濑裣爸髰怡谩轄及缟劋炢田臄风场厅邃<EFBFBD>蠕鞜燊
|
||||
邋脒<EFBFBD><EFBFBD>⊕坻<EFBFBD>曽娏<EFBFBD>谖钳<EFBFBD>绰坶咛<EFBFBD><EFBFBD>ほ榆<EFBFBD>意素ǖ栽€<EFBFBD>鷷躺顏徢妺懍艿子耜畯辄<EFBFBD>葦Β
|
||||
玩嚏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蛄嵇珳嗍邿婍欗摕嬖蓁锒葳帣銊<EFBFBD><EFBFBD><EFBFBD>韱殚轀汅瑔劺堋箵ㄊ猗茤<EFBFBD>单嬕簵蹋繈醪<EFBFBD>
|
||||
导懧槲簖郀<EFBFBD>谨块妓刺ま楀塔宫<EFBFBD>э溳尩冖嶐驖窢稅楛讐雍铹伃半拽榈彔竻吪<EFBFBD><EFBFBD>熒<EFBFBD>敀婶<EFBFBD>
|
||||
钣炵<EFBFBD>鱿硰噿眢良委硭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蓻琦珂烐娑悧<EFBFBD>萦鷿鐣枠逅鋫<EFBFBD>枹湸迢<EFBFBD>误<EFBFBD>狛<EFBFBD><EFBFBD><EFBFBD>喉栬灤裆<EFBFBD>
|
||||
星聂<EFBFBD><EFBFBD>鐦嶃闆<EFBFBD>埠叆<EFBFBD>句i俳蟛瘧<EFBFBD>槼葨杉乌侜旣镨熅帀<EFBFBD>稊╀溸<EFBFBD>濈<EFBFBD>鲥线羊餅}柕䴔旤<EFBFBD>
|
||||
<EFBFBD>挅と嵏<EFBFBD>诽蠝<EFBFBD>柣黄粣醍嬔枤皟笠嫤幇趥贇鍢滊祶䦶睃<EFBFBD>摔驹<EFBFBD>牅罴邍鳅<EFBFBD>鐝燓聦<EFBFBD><EFBFBD><EFBFBD>屟<EFBFBD>
|
||||
屢挋帰鐭赕恣镗璃葦袙m<EFBFBD>駷掻跪池钋Ω俟潷孥趤<EFBFBD><EFBFBD>簦<EFBFBD><EFBFBD>畫灴袣悋<EFBFBD><EFBFBD><EFBFBD>镤瑪楱暯鷾<EFBFBD>禊<EFBFBD>
|
||||
雯象隣峡秣鲐彴艅杷<EFBFBD>眶耋伙牉悩聟粣蓞瓤詺€執椑<EFBFBD>犙<EFBFBD><EFBFBD>€鞂鬣蠑敂敂听侧鄪倐<EFBFBD><EFBFBD>倐倐倐<EFBFBD>
|
||||
鄄<EFBFBD>N囿
|
||||
&]
|
||||
[s2; &]
|
||||
[s2; This class is the ColumnList specialization for displaying lists
|
||||
of files or similar items. List consists of File structures with
|
||||
elements appropriate to describe and display individual files.&]
|
||||
[s0; &]
|
||||
[s1;l288;K:`:`:FileList`:`:File`:`:struct:%- [@(0.0.255) struct]_[@0 FileList`::File]&]
|
||||
[s2;l480; Structure used to hold information about the item. Some
|
||||
items, like file length, are in fact not directly used by FileList
|
||||
and are only provided to make FileList usage simpler for its
|
||||
primary applications (e.g. file selectors).&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:isdir:%- [@(0.0.255) bool]_[@0 isdir]&]
|
||||
[s2;l480; If true, item contains directory.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:icon:%- [^`:`:Image^ Image]_[@0 icon]&]
|
||||
[s2;l480; File icon.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:name:%- [^`:`:String^ String]_[@0 name]&]
|
||||
[s2;l480; Filename.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:font:%- [^`:`:Font^ Font]_[@0 font]&]
|
||||
[s2;l480; Font used to display the filename.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:ink:%- [^`:`:Color^ Color]_[@0 ink]&]
|
||||
[s2;l480; Color used to display the filename.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:length:%- [@(0.0.255) int]_[@0 length]&]
|
||||
[s2;l480; Length of file.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:time:%- [^`:`:Time^ Time]_[@0 time]&]
|
||||
[s2;l480; Last write time.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:extink:%- [^`:`:Color^ Color]_[@0 extink]&]
|
||||
[s2;l480; Color used to display the file extension.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:desc:%- [^`:`:String^ String]_[@0 desc]&]
|
||||
[s2;l480; Additional description of file, displayed after the filename.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:descfont:%- [^`:`:Font^ Font]_[@0 descfont]&]
|
||||
[s2;l480; Font used for additional description.&]
|
||||
[s0;l288; &]
|
||||
[s5;l288;K:`:`:FileList`:`:File`:`:operator const`:`:String`&`(`)const:%- operator_[@(0.0.255) c
|
||||
onst]_[^`:`:String^ String]`&()_[@(0.0.255) const]&]
|
||||
[s2;l480; Returns name.&]
|
||||
[s0;l288; &]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:WhenRename:%- [^`:`:Callback2^ Callback2]<[@(0.0.255) const]_String
|
||||
`&, [@(0.0.255) const]_String`&>_[@0 WhenRename]&]
|
||||
[s2; This callback is called when filename was renamed by user. First
|
||||
argument is the original filename, second one is the new filename.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:StartEdit`(`):%- [@(0.0.255) void]_[@0 StartEdit]()&]
|
||||
[s2; Starts the editation of the current item for rename.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:EndEdit`(`):%- [@(0.0.255) void]_[@0 EndEdit]()&]
|
||||
[s2; Ends the editation of item.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:IsEdit`(`)const:%- [@(0.0.255) bool]_[@0 IsEdit]()_[@(0.0.255) const]&]
|
||||
[s2; True if editation is active.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:OkEdit`(`):%- [@(0.0.255) void]_[@0 OkEdit]()&]
|
||||
[s2; Ends the editation and calls WhenRename to actually rename the
|
||||
filename.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:Get`(int`)const:%- [@(0.0.255) const]_[^`:`:FileList`:`:File^ File]`&
|
||||
_[@0 Get]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Returns the file item structure at specified index.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[^`:`:FileList`:`:File^ F
|
||||
ile]`&_[@0 operator`[`]]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Same as Get([%-*@3 i]).&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:Insert`(int`,const`:`:String`&`,const`:`:Image`&`,`:`:Font`,`:`:Color`,bool`,int`,`:`:Time`,`:`:Color`,const`:`:String`&`,`:`:Font`,`:`:Value`):%- [@(0.0.255) v
|
||||
oid]_[@0 Insert]([@(0.0.255) int]_[@3 ii], [@(0.0.255) const]_[^`:`:String^ String]`&_[@3 nam
|
||||
e], [@(0.0.255) const]_[^`:`:Image^ Image]`&_[@3 icon]_`=_Null, [^`:`:Font^ Font]_[@3 font]_
|
||||
`=_StdFont(), [^`:`:Color^ Color]_[@3 ink]_`=_SColorText(), [@(0.0.255) bool]_[@3 isdir]_
|
||||
`=_false, [@(0.0.255) int]_[@3 length]_`=_[@3 0], [^`:`:Time^ Time]_[@3 time]_`=_Null,
|
||||
[^`:`:Color^ Color]_[@3 extink]_`=_Null, [@(0.0.255) const]_[^`:`:String^ String]`&_[@3 des
|
||||
c]_`=_Null, [^`:`:Font^ Font]_[@3 descfont]_`=_Null, Value data `=
|
||||
Null)&]
|
||||
[s2; Inserts a new file item at specified position.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:Add`(const`:`:String`&`,const`:`:Image`&`,`:`:Font`,`:`:Color`,bool`,int`,`:`:Time`,`:`:Color`,const`:`:String`&`,`:`:Font`,`:`:Value`):%- [@(0.0.255) v
|
||||
oid]_[@0 Add]([@(0.0.255) const]_[^`:`:String^ String]`&_[@3 name], [@(0.0.255) const]_[^`:`:Image^ I
|
||||
mage]`&_[@3 icon]_`=_Null, [^`:`:Font^ Font]_[@3 font]_`=_StdFont(),
|
||||
[^`:`:Color^ Color]_[@3 ink]_`=_SColorText(), [@(0.0.255) bool]_[@3 isdir]_`=_false,
|
||||
[@(0.0.255) int]_[@3 length]_`=_[@3 0], [^`:`:Time^ Time]_[@3 time]_`=_Null,
|
||||
[^`:`:Color^ Color]_[@3 extink]_`=_Null, [@(0.0.255) const]_[^`:`:String^ String]`&_[@3 des
|
||||
c]_`=_Null, [^`:`:Font^ Font]_[@3 descfont]_`=_Null, Value data `=
|
||||
Null)&]
|
||||
[s2; Adds a new file item at the end of list.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:GetCurrentName`(`)const:%- [^`:`:String^ String]_[@0 GetCurrentName
|
||||
]()_[@(0.0.255) const]&]
|
||||
[s2; Returns the filename of item with cursor. If there is no cursor,
|
||||
returns empty String.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:Find`(const char`*`):%- [@(0.0.255) int]_[@0 Find]([@(0.0.255) const]_
|
||||
[@(0.0.255) char]_`*[@3 name])&]
|
||||
[s2; The index of the item with specified [%-*@3 name] or negative
|
||||
value if not in the list. Search is linear.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:FindSetCursor`(const char`*`):%- [@(0.0.255) bool]_[@0 FindSetCurso
|
||||
r]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 name])&]
|
||||
[s2; If item with [%-*@3 name].is in the list, sets the cursor to it
|
||||
and returns true, otherwise returns false.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:Sort`(const`:`:FileList`:`:Order`&`):%- [@(0.0.255) void]_[@0 Sort](
|
||||
[@(0.0.255) const]_[^`:`:FileList`:`:Order^ Order]`&_[@3 order])&]
|
||||
[s2; Sorts the list. Order contains single virtual method for ordering
|
||||
File structures.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:IconWidth`(int`):%- [^`:`:FileList^ FileList]`&_[@0 IconWidth]([@(0.0.255) i
|
||||
nt]_[@3 w])&]
|
||||
[s2; Sets the space reserved for painting the file icon.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:GetIconWidth`(`)const:%- [@(0.0.255) int]_[@0 GetIconWidth]()_[@(0.0.255) c
|
||||
onst]&]
|
||||
[s2; Returns the value set by IconWidth.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:Renaming`(bool`):%- [^`:`:FileList^ FileList]`&_[@0 Renaming]([@(0.0.255) b
|
||||
ool]_[@3 b]_`=_true)&]
|
||||
[s2; In renaming mode, user is allowed to edit the name of item (by
|
||||
holding mouse button over the item). WhenRename callback is called
|
||||
when user accepts the new name.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:FileList`:`:JustName`(bool`):%- [^`:`:FileList^ FileList]`&_[@0 JustName]([@(0.0.255) b
|
||||
ool]_[@3 b]_`=_true)&]
|
||||
[s2; In JustName mode, if filename contains [* `\] or [* /] characters,
|
||||
only the part after last such character is displayed as filename.&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s3;%- FileList routines&]
|
||||
[s0;@(0.0.255) &]
|
||||
[s5;K:`:`:Load`(`:`:FileList`&`,const`:`:String`&`,const char`*`,bool`,`:`:Callback3`<bool`,const`:`:String`&`,`:`:Image`&`>`,`:`:FileSystemInfo`&`):%- [@(0.0.255) b
|
||||
ool]_[@0 Load]([^`:`:FileList^ FileList]`&_[@3 list], [@(0.0.255) const]_[^`:`:String^ Stri
|
||||
ng]`&_[@3 dir], [@(0.0.255) const]_[@(0.0.255) char]_`*[@3 patterns],
|
||||
[^bool^ bool]_[@3 dirs]_`=_false, [^`:`:Callback3^ Callback3]<[^bool^ bool],
|
||||
[@(0.0.255) const]_[^`:`:String^ String]`&, Image`&>_[@3 WhenIcon]_`=_CNULL,
|
||||
[^`:`:FileSystemInfo^ FileSystemInfo]`&_[@3 filesystem]_`=_StdFileSystemInfo())&]
|
||||
[s2; This function loads [%-*@3 list] with file items in [%-*@3 dir].
|
||||
[%-*@3 patterns] contain allowed file masks separated by semicolon
|
||||
(e.g. `"`*.cpp;`*.h`"). If [%-*@3 dirs] is false, files in the
|
||||
list are displayed with `"disabled`" color (useful for directory
|
||||
selection). [%-*@3 WhenIcon] specifies icon assignment for individual
|
||||
filenames (first bool paremeter is true for directories). [%-*@3 filesystem]
|
||||
specifies the file system interface.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:SortByName`(`:`:FileList`&`):%- [@(0.0.255) void]_[@0 SortByName]([^`:`:FileList^ F
|
||||
ileList]`&_[@3 list])&]
|
||||
[s2; Sorts the list by names.&]
|
||||
[s0; &]
|
||||
[s5;K:`:`:SortByExt`(`:`:FileList`&`):%- [@(0.0.255) void]_[@0 SortByExt]([^`:`:FileList^ F
|
||||
ileList]`&_[@3 list])&]
|
||||
[s2; Sorts the list by extensions.&]
|
||||
[s0; &]
|
||||
[s0; ]
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
topic "FileSel";[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
topic "FileSel";
|
||||
[2 $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class]
|
||||
[l288;2 $$2,2#27521748481378242620020725143825:desc]
|
||||
[a83;*R6 $$3,0#31310162474203024125188417583966:caption]
|
||||
|
|
|
|||
|
|
@ -329,18 +329,6 @@ void RichQtfParser::Error(const char *s) {
|
|||
throw Exc();
|
||||
}
|
||||
|
||||
dword scanX(const char *s)
|
||||
{
|
||||
dword r = 0;
|
||||
for(int i = 0; i < 8; i++) {
|
||||
r = (r << 4) | (*s >= '0' && *s <= '9' ? *s - '0' :
|
||||
*s >= 'A' && *s <= 'F' ? *s - 'A' :
|
||||
*s >= 'a' && *s <= 'f' ? *s - 'a' : 0);
|
||||
s++;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
void RichQtfParser::FlushStyles()
|
||||
{
|
||||
for(int i = 0; i < styleid.GetCount(); i++)
|
||||
|
|
@ -852,10 +840,7 @@ void RichQtfParser::Parse(const char *qtf, byte _accesskey)
|
|||
xu.Cat(*term++);
|
||||
if(xu.GetLength() != 32)
|
||||
Error("Invalid UUID !");
|
||||
id.a = scanX(~xu);
|
||||
id.b = scanX(~xu + 8);
|
||||
id.c = scanX(~xu + 16);
|
||||
id.d = scanX(~xu + 24);
|
||||
id = ScanUuid(xu);
|
||||
}
|
||||
else
|
||||
if(i)
|
||||
|
|
|
|||
|
|
@ -124,9 +124,6 @@ protected:
|
|||
|
||||
void Put(int i, const RichPara& p, const RichStyle& s);
|
||||
void Put(int i, const RichPara& p, const RichStyles& s);
|
||||
int GetPartLength(int pi) const;
|
||||
int FindPart(int& pos) const;
|
||||
int GetPartPos(int pi) const;
|
||||
|
||||
void Sync0(const Para& pp, int parti, const RichContext& rc) const;
|
||||
inline void Sync(int parti, const RichContext& rc) const {
|
||||
|
|
@ -188,15 +185,19 @@ protected:
|
|||
public:
|
||||
enum ValPosType { LABELS, INDEXENTRIES };
|
||||
|
||||
int GetPartCount() const { return part.GetCount(); }
|
||||
bool IsPara(int i) const { return part[i].Is<Para>(); }
|
||||
bool IsTable(int i) const;
|
||||
int GetPartLength(int pi) const;
|
||||
int FindPart(int& pos) const;
|
||||
int GetPartPos(int pi) const;
|
||||
|
||||
RichPara Get(int i, const RichStyles& s) const;
|
||||
RichPara Get(int i, const Uuid& styleid, const RichStyles& s) const;
|
||||
RichPara Get(int i, const RichStyle& style) const;
|
||||
Uuid GetParaStyle(int i) const { return part[i].Get<Para>().styleid; }
|
||||
void SetParaStyle(int i, const Uuid& si);
|
||||
|
||||
int GetPartCount() const { return part.GetCount(); }
|
||||
bool IsPara(int i) const { return part[i].Is<Para>(); }
|
||||
bool IsTable(int i) const;
|
||||
const RichTable& GetTable(int i) const;
|
||||
|
||||
int GetLength() const;
|
||||
|
|
@ -216,6 +217,8 @@ public:
|
|||
void Insert(int parai, const RichPara& p, const RichStyles& s);
|
||||
void Cat(const RichPara& p, const RichStyles& s) { Set(GetPartCount(), p, s); }
|
||||
|
||||
void RemovePart(int parti);
|
||||
|
||||
void Normalize();
|
||||
|
||||
Vector<int> GetAllLanguages() const;
|
||||
|
|
|
|||
|
|
@ -143,6 +143,12 @@ void RichTxt::Insert(int i, const RichPara& p, const RichStyles& s)
|
|||
Set(i, p, s);
|
||||
}
|
||||
|
||||
void RichTxt::RemovePart(int parti)
|
||||
{
|
||||
part.Remove(parti);
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
void RichTxt::SetPick(int i, pick_ RichTable& p)
|
||||
{
|
||||
const_cast<RichTable&>(p).Normalize();
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#define LTIMING(x) // RTIMING(x)
|
||||
#define LLOG(x)
|
||||
|
||||
static const char s_dbver[] = "Assist++ 1.1";
|
||||
static const char s_dbver[] = "Assist++ 2.0";
|
||||
|
||||
CppBase& BrowserBase()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ enum {
|
|||
ITEM_TNAME,
|
||||
ITEM_NUMBER,
|
||||
ITEM_SIGN,
|
||||
ITEM_RET,
|
||||
ITEM_UPP,
|
||||
ITEM_TYPE,
|
||||
ITEM_PTYPE = ITEM_TYPE + 10000,
|
||||
};
|
||||
|
|
@ -63,7 +63,8 @@ struct ItemTextPart : Moveable<ItemTextPart> {
|
|||
int ii;
|
||||
};
|
||||
|
||||
Vector<ItemTextPart> ParseItemNatural(const CppItemInfo& m, const char *natural);
|
||||
Vector<ItemTextPart> ParseItemNatural(const String& name, const CppSimpleItem& m, const char *natural);
|
||||
Vector<ItemTextPart> ParseItemNatural(const CppItemInfo& m);
|
||||
Vector<ItemTextPart> ParseItemNatural(const CppItemInfo& m);
|
||||
|
||||
bool SplitNestKey(const String& s, String& nest, String& key);
|
||||
|
|
@ -353,12 +354,14 @@ protected:
|
|||
|
||||
void Tools(Bar& bar);
|
||||
void Label(String&);
|
||||
void CreateQtf(const String& item, const CppItemInfo& m, String& p1, String& p2);
|
||||
void CreateQtf(const String& item, const String& name, const CppSimpleItem& m, String& p1, String& p2);
|
||||
void InsertItem();
|
||||
|
||||
void FindBrokenRef();
|
||||
void JumpToDefinition();
|
||||
|
||||
void FixTopic();
|
||||
|
||||
public:
|
||||
Callback1<Bar&> WhenTemplatesMenu;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ file
|
|||
Browser readonly separator,
|
||||
Lay.cpp,
|
||||
Base.cpp optimize_speed,
|
||||
Item.cpp,
|
||||
ItemList.cpp,
|
||||
Query.cpp,
|
||||
Browser.cpp,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,18 @@
|
|||
#include "Browser.h"
|
||||
|
||||
#define CODEITEM "37138531426314131252341829483370"
|
||||
#define STRUCTITEM "37138531426314131252341829483380"
|
||||
|
||||
static const char styles[] =
|
||||
"[ $$0,0#00000000000000000000000000000000:Default]"
|
||||
"[i448;a25;kKO9;2 $$1,0#" CODEITEM ":codeitem]"
|
||||
"[i448;a25;kKO9;3 $$2,0#" STRUCTITEM ":structitem]"
|
||||
"[l288;2 $$3,0#27521748481378242620020725143825:desc]"
|
||||
"[H6;0 $$4,0#05600065144404261032431302351956:begin]"
|
||||
"[l288;a25;kK~~~.1408;@3;2 $$5,0#61217621437177404841962893300719:param]"
|
||||
"[0 $$7,0#96390100711032703541132217272105:end]"
|
||||
;
|
||||
|
||||
void TopicEditor::JumpToDefinition()
|
||||
{
|
||||
PostCallback(callback1(IdeGotoLink, editor.GetFormatInfo().label));
|
||||
|
|
@ -19,46 +32,42 @@ void TopicEditor::Label(String& label)
|
|||
label = ref.Get();
|
||||
}
|
||||
|
||||
struct FindBrokenRefIterator : RichText::Iterator {
|
||||
int cursor;
|
||||
|
||||
virtual bool operator()(int pos, const RichPara& para)
|
||||
{
|
||||
if(pos >= cursor && para.format.label[0] == ':' && para.format.label[1] == ':') {
|
||||
String nest;
|
||||
String key;
|
||||
if(para.GetLength() && SplitNestKey(para.format.label, nest, key)) {
|
||||
int q = BrowserBase().Find(nest);
|
||||
if(q >= 0 && BrowserBase()[q].key.Find(key) >= 0)
|
||||
return false;
|
||||
}
|
||||
cursor = pos;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void TopicEditor::FindBrokenRef()
|
||||
{
|
||||
Progress pi;
|
||||
pi.SetTotal(topic.GetCount());
|
||||
Uuid codeitem = ScanUuid(CODEITEM);
|
||||
Uuid stritem = ScanUuid(STRUCTITEM);
|
||||
for(;;) {
|
||||
if(IsNull(topicpath))
|
||||
return;
|
||||
pi.SetText(GetFileTitle(topicpath));
|
||||
pi.SetPos(topic.GetCursor());
|
||||
FindBrokenRefIterator fi;
|
||||
fi.cursor = editor.GetCursor();
|
||||
if(editor.Get().Iterate(fi)) {
|
||||
editor.Move(fi.cursor);
|
||||
break;
|
||||
const RichText& txt = editor.Get();
|
||||
int c = editor.GetCursor();
|
||||
int i = txt.FindPart(c);
|
||||
while(++i < txt.GetPartCount()) {
|
||||
if(txt.IsPara(i)) {
|
||||
Uuid style = txt.GetParaStyle(i);
|
||||
if(style == codeitem || style == stritem) {
|
||||
RichPara para = txt.Get(i);
|
||||
if(para.format.label == "noref")
|
||||
continue;
|
||||
if(!IsNull(para.format.label)) {
|
||||
String nest;
|
||||
String key;
|
||||
if(SplitNestKey(para.format.label, nest, key)) {
|
||||
int q = BrowserBase().Find(nest);
|
||||
if(q >= 0 || BrowserBase()[q].key.Find(key) >= 0)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
editor.Move(txt.GetPartPos(i));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!topic.IsCursor())
|
||||
break;
|
||||
int c = topic.GetCursor() + 1;
|
||||
c = topic.GetCursor() + 1;
|
||||
if(c >= topic.GetCount()) {
|
||||
PromptOK("No more broken references.");
|
||||
PromptOK("No more invalid references.");
|
||||
break;
|
||||
}
|
||||
topic.SetCursor(c);
|
||||
|
|
@ -140,10 +149,10 @@ static int sSplitT(int c) {
|
|||
return c == ';' || c == '<' || c == '>' || c == ',';
|
||||
}
|
||||
|
||||
String DecoratedItem(const CppItemInfo& m, const char *natural)
|
||||
String DecoratedItem(const String& name, const CppSimpleItem& m, const char *natural)
|
||||
{
|
||||
String qtf = "[%00-00K ";
|
||||
Vector<ItemTextPart> n = ParseItemNatural(m, natural);
|
||||
Vector<ItemTextPart> n = ParseItemNatural(name, m, natural);
|
||||
if(m.virt)
|
||||
qtf << "[@B virtual] ";
|
||||
if(m.kind == CLASSFUNCTION || m.kind == CLASSFUNCTIONTEMPLATE)
|
||||
|
|
@ -165,6 +174,9 @@ String DecoratedItem(const CppItemInfo& m, const char *natural)
|
|||
case ITEM_NAME:
|
||||
qtf << "*";
|
||||
break;
|
||||
case ITEM_UPP:
|
||||
qtf << "@c";
|
||||
break;
|
||||
case ITEM_CPP_TYPE:
|
||||
case ITEM_CPP:
|
||||
qtf << "@B";
|
||||
|
|
@ -185,24 +197,16 @@ String DecoratedItem(const CppItemInfo& m, const char *natural)
|
|||
return qtf + "]";
|
||||
}
|
||||
|
||||
static const char styles[] =
|
||||
"[ $$0,0#00000000000000000000000000000000:Default]"
|
||||
"[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483370:item]"
|
||||
"[i448;a25;kKO9;3 $$2,0#37138531426314131252341829483380:class]"
|
||||
"[l288;2 $$3,0#27521748481378242620020725143825:desc]"
|
||||
"[H6;0 $$4,0#05600065144404261032431302351956:begin]"
|
||||
"[l288;a25;kK~~~.1408;@3;2 $$5,0#61217621437177404841962893300719:param]"
|
||||
"[0 $$7,0#96390100711032703541132217272105:end]"
|
||||
;
|
||||
|
||||
void TopicEditor::CreateQtf(const String& item, const CppItemInfo& m, String& p1, String& p2)
|
||||
void TopicEditor::CreateQtf(const String& item, const String& name, const CppSimpleItem& m,
|
||||
String& p1, String& p2)
|
||||
{
|
||||
String qtf;
|
||||
bool str = m.kind == STRUCT || m.kind == STRUCTTEMPLATE;
|
||||
if(!str)
|
||||
qtf << "[s4 &]";
|
||||
qtf << (str ? "[s2;:" : "[s1;:") << DeQtf(item) << ": ";
|
||||
if(m.IsTemplate()) {
|
||||
String st = str ? "[s2;" : "[s1;";
|
||||
String k = st + ':' + DeQtf(item) + ": ";
|
||||
if(m.IsTemplate() && str) {
|
||||
int q = 0;
|
||||
int w = 0;
|
||||
while(q < m.natural.GetLength()) {
|
||||
|
|
@ -217,15 +221,15 @@ void TopicEditor::CreateQtf(const String& item, const CppItemInfo& m, String& p1
|
|||
}
|
||||
q++;
|
||||
}
|
||||
qtf << DecoratedItem(m, m.natural.Mid(0, q));
|
||||
qtf << "[s2:noref: " << DecoratedItem(name, m, m.natural.Mid(0, q)) << "&][s2 " << k;
|
||||
if(q < m.natural.GetLength()) {
|
||||
while((byte)m.natural[q] <= 32)
|
||||
q++;
|
||||
qtf << '&' << DecoratedItem(m, m.natural.Mid(q));
|
||||
qtf << DecoratedItem(name, m, m.natural.Mid(q));
|
||||
}
|
||||
}
|
||||
else
|
||||
qtf << DecoratedItem(m, m.natural);
|
||||
qtf << k << DecoratedItem(name, m, m.natural);
|
||||
|
||||
qtf << "&]";
|
||||
p1 = qtf;
|
||||
|
|
@ -283,14 +287,17 @@ void TopicEditor::InsertItem()
|
|||
for(int i = 0; i < ref.browser.item.GetCount(); i++)
|
||||
if(ref.browser.item.IsSelected(i)) {
|
||||
String a1, a2;
|
||||
CreateQtf(ref.browser.GetItem(i), ref.browser.GetItemInfo(i), a1, a2);
|
||||
const CppItemInfo& m = ref.browser.GetItemInfo(i);
|
||||
CreateQtf(ref.browser.GetItem(i), m.name, m, a1, a2);
|
||||
p1 << p2 << a1;
|
||||
p2 = a2;
|
||||
}
|
||||
}
|
||||
else
|
||||
if(ref.browser.item.IsCursor())
|
||||
CreateQtf(ref.browser.GetItem(), ref.browser.GetItemInfo(), p1, p2);
|
||||
if(ref.browser.item.IsCursor()) {
|
||||
const CppItemInfo& m = ref.browser.GetItemInfo();
|
||||
CreateQtf(ref.browser.GetItem(), m.name, m, p1, p2);
|
||||
}
|
||||
else
|
||||
return;
|
||||
editor.BeginOp();
|
||||
|
|
@ -302,6 +309,66 @@ void TopicEditor::InsertItem()
|
|||
editor.Move(c);
|
||||
}
|
||||
|
||||
void TopicEditor::FixTopic()
|
||||
{
|
||||
String nest;
|
||||
if(!EditText(nest, "Fix topic", "Nest"))
|
||||
return;
|
||||
if(nest[0] != ':')
|
||||
nest = "::" + nest;
|
||||
CppBase& base = BrowserBase();
|
||||
int q = base.Find(nest);
|
||||
if(q < 0) {
|
||||
Exclamation("Nest not found");
|
||||
return;
|
||||
}
|
||||
CppNest& n = base[q];
|
||||
Index<String> natural;
|
||||
Vector<String> link;
|
||||
for(int i = 0; i < n.GetCount(); i++) {
|
||||
const CppItem& m = n[i];
|
||||
natural.Add(m.natural);
|
||||
link.Add(nest + "::" + n.key[i]);
|
||||
}
|
||||
RichText result;
|
||||
const RichText& txt = editor.Get();
|
||||
bool started = false;
|
||||
for(int i = 0; i < txt.GetPartCount(); i++)
|
||||
if(txt.IsPara(i)) {
|
||||
RichPara p = txt.Get(i);
|
||||
WString h = p.GetText();
|
||||
String nat;
|
||||
for(const wchar *s = h; *s; s++)
|
||||
if((byte )*s < 128 || *s == 160)
|
||||
nat.Cat(*s == 160 ? ' ' : *s);
|
||||
int q = natural.Find(nat);
|
||||
if(q >= 0) {
|
||||
started = true;
|
||||
const CppSimpleItem& m = n[q];
|
||||
String p1, p2;
|
||||
CreateQtf(link[q], n.name[q], m, p1, p2);
|
||||
p1 = "[s7; &]" + p1;
|
||||
RichText h = ParseQTF(styles + p1);
|
||||
if(h.GetPartCount())
|
||||
h.RemovePart(h.GetPartCount() - 1);
|
||||
result.CatPick(h);
|
||||
}
|
||||
else
|
||||
if(!started || p.GetLength())
|
||||
result.Cat(p);
|
||||
}
|
||||
else {
|
||||
RichTable b;
|
||||
b <<= txt.GetTable(i);
|
||||
result.CatPick(b);
|
||||
}
|
||||
RichPara empty;
|
||||
result.Cat(empty);
|
||||
editor.BeginOp();
|
||||
editor.SetSelection(0, txt.GetLength());
|
||||
editor.PasteText(result);
|
||||
}
|
||||
|
||||
String TopicEditor::GetFileName() const
|
||||
{
|
||||
return grouppath;
|
||||
|
|
|
|||
127
uppsrc/ide/Browser/Item.cpp
Normal file
127
uppsrc/ide/Browser/Item.cpp
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
#include "Browser.h"
|
||||
|
||||
bool IsCppKeyword(const String& id)
|
||||
{
|
||||
static Index<String> kw;
|
||||
if(kw.GetCount() == 0) {
|
||||
const char **cppk = CppKeyword();
|
||||
for(int i = 0; cppk[i]; i++)
|
||||
kw.Add(cppk[i]);
|
||||
}
|
||||
return kw.Find(id) >= 0;
|
||||
}
|
||||
|
||||
bool IsCppType(const String& id)
|
||||
{
|
||||
static const char *t[] = {
|
||||
"int", "long", "short", "void", "float", "double", "char", "signed", "unsigned", "bool",
|
||||
"const", "mutable", "struct", "class", "union"
|
||||
};
|
||||
static Index<String> kt;
|
||||
if(kt.GetCount() == 0) {
|
||||
for(int i = 0; i < __countof(t); i++)
|
||||
kt.Add(t[i]);
|
||||
}
|
||||
return kt.Find(id) >= 0;
|
||||
}
|
||||
|
||||
int InScListIndext(const char *s, const char *list)
|
||||
{
|
||||
int ii = 0;
|
||||
for(;;) {
|
||||
const char *q = s;
|
||||
while(*list == ' ') list++;
|
||||
for(;;) {
|
||||
if(*q == '\0' && *list == '\0') return ii;
|
||||
if(*q != *list) {
|
||||
if(*q == '\0' && (*list == '<' || *list == ';' || *list == ',' || *list == '>'))
|
||||
return ii;
|
||||
if(*list == '\0') return -1;
|
||||
break;
|
||||
}
|
||||
q++;
|
||||
list++;
|
||||
}
|
||||
while(*list && *list != ';' && *list != '<' && *list != '>' && *list != ',') list++;
|
||||
if(*list == '\0') return -1;
|
||||
list++;
|
||||
ii++;
|
||||
}
|
||||
}
|
||||
|
||||
static String s_pick_("pick_");
|
||||
|
||||
Vector<ItemTextPart> ParseItemNatural(const String& name, const CppSimpleItem& m, const char *s)
|
||||
{
|
||||
Vector<ItemTextPart> part;
|
||||
bool param = false;
|
||||
while(*s) {
|
||||
ItemTextPart& p = part.Add();
|
||||
p.pos = (int)(s - ~m.natural);
|
||||
p.type = ITEM_TEXT;
|
||||
int n = 1;
|
||||
if(*s >= '0' && *s <= '9') {
|
||||
while(s[n] >= '0' && s[n] <= '9')
|
||||
n++;
|
||||
p.type = ITEM_NUMBER;
|
||||
}
|
||||
else
|
||||
if(iscid(*s) || *s == ':') {
|
||||
if(strncmp(s, name, name.GetLength()) == 0 && !iscid(s[name.GetLength()])) {
|
||||
p.type = ITEM_NAME;
|
||||
n = name.GetLength();
|
||||
param = true;
|
||||
}
|
||||
else {
|
||||
String id;
|
||||
n = 0;
|
||||
while(IsAlNum(s[n]) || s[n] == '_' || s[n] == ':')
|
||||
id.Cat(s[n++]);
|
||||
if(IsCppType(id))
|
||||
p.type = ITEM_CPP_TYPE;
|
||||
else
|
||||
if(IsCppKeyword(id))
|
||||
p.type = ITEM_CPP;
|
||||
else
|
||||
if(InScList(id, m.pname))
|
||||
p.type = ITEM_PNAME;
|
||||
else
|
||||
if(id == s_pick_) {
|
||||
p.type = ITEM_UPP;
|
||||
}
|
||||
else
|
||||
if(InScList(id, m.tname) || InScList(id, m.ctname))
|
||||
p.type = ITEM_TNAME;
|
||||
else
|
||||
if(param) {
|
||||
int ii = InScListIndext(id, m.ptype);
|
||||
if(ii >= 0)
|
||||
p.type = ITEM_PTYPE + ii;
|
||||
}
|
||||
else {
|
||||
int ii = InScListIndext(id, m.type);
|
||||
if(ii >= 0)
|
||||
p.type = ITEM_TYPE + ii;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
p.type = ITEM_SIGN;
|
||||
while(s[n] && !iscid(s[n]))
|
||||
n++;
|
||||
}
|
||||
p.len = n;
|
||||
s += n;
|
||||
}
|
||||
return part;
|
||||
}
|
||||
|
||||
Vector<ItemTextPart> ParseItemNatural(const CppItemInfo& m, const char *s)
|
||||
{
|
||||
return ParseItemNatural(m.name, m, s);
|
||||
}
|
||||
|
||||
Vector<ItemTextPart> ParseItemNatural(const CppItemInfo& m)
|
||||
{
|
||||
return ParseItemNatural(m, ~m.natural + m.at);
|
||||
}
|
||||
|
|
@ -1,120 +1,5 @@
|
|||
#include "Browser.h"
|
||||
|
||||
bool IsCppKeyword(const String& id)
|
||||
{
|
||||
static Index<String> kw;
|
||||
if(kw.GetCount() == 0) {
|
||||
const char **cppk = CppKeyword();
|
||||
for(int i = 0; cppk[i]; i++)
|
||||
kw.Add(cppk[i]);
|
||||
}
|
||||
return kw.Find(id) >= 0;
|
||||
}
|
||||
|
||||
bool IsCppType(const String& id)
|
||||
{
|
||||
static const char *t[] = {
|
||||
"int", "long", "short", "void", "float", "double", "char", "signed", "unsigned", "bool",
|
||||
"const", "mutable", "struct", "class", "union", "public", "private", "protected"
|
||||
};
|
||||
static Index<String> kt;
|
||||
if(kt.GetCount() == 0) {
|
||||
for(int i = 0; i < __countof(t); i++)
|
||||
kt.Add(t[i]);
|
||||
}
|
||||
return kt.Find(id) >= 0;
|
||||
}
|
||||
|
||||
int InScListIndext(const char *s, const char *list)
|
||||
{
|
||||
int ii = 0;
|
||||
for(;;) {
|
||||
const char *q = s;
|
||||
while(*list == ' ') list++;
|
||||
for(;;) {
|
||||
if(*q == '\0' && *list == '\0') return ii;
|
||||
if(*q != *list) {
|
||||
if(*q == '\0' && (*list == '<' || *list == ';' || *list == ',' || *list == '>'))
|
||||
return ii;
|
||||
if(*list == '\0') return -1;
|
||||
break;
|
||||
}
|
||||
q++;
|
||||
list++;
|
||||
}
|
||||
while(*list && *list != ';' && *list != '<' && *list != '>' && *list != ',') list++;
|
||||
if(*list == '\0') return -1;
|
||||
list++;
|
||||
ii++;
|
||||
}
|
||||
}
|
||||
|
||||
Vector<ItemTextPart> ParseItemNatural(const CppItemInfo& m, const char *s)
|
||||
{
|
||||
Vector<ItemTextPart> part;
|
||||
bool param = false;
|
||||
while(*s) {
|
||||
while(*s == '\2') s++;
|
||||
ItemTextPart& p = part.Add();
|
||||
p.pos = (int)(s - ~m.natural);
|
||||
p.type = ITEM_TEXT;
|
||||
int n = 1;
|
||||
if(*s >= '0' && *s <= '9') {
|
||||
while(s[n] >= '0' && s[n] <= '9')
|
||||
n++;
|
||||
p.type = ITEM_NUMBER;
|
||||
}
|
||||
else
|
||||
if(iscid(*s) || *s == ':') {
|
||||
if(strncmp(s, m.name, m.name.GetLength()) == 0 && !iscid(s[m.name.GetLength()])) {
|
||||
p.type = ITEM_NAME;
|
||||
n = m.name.GetLength();
|
||||
param = true;
|
||||
}
|
||||
else {
|
||||
String id;
|
||||
n = 0;
|
||||
while(IsAlNum(s[n]) || s[n] == '_' || s[n] == ':')
|
||||
id.Cat(s[n++]);
|
||||
if(IsCppType(id))
|
||||
p.type = ITEM_CPP_TYPE;
|
||||
else
|
||||
if(IsCppKeyword(id))
|
||||
p.type = ITEM_CPP;
|
||||
else
|
||||
if(InScList(id, m.pname))
|
||||
p.type = ITEM_PNAME;
|
||||
else
|
||||
if(InScList(id, m.tname))
|
||||
p.type = ITEM_TNAME;
|
||||
if(param) {
|
||||
int ii = InScListIndext(id, m.ptype);
|
||||
if(ii >= 0)
|
||||
p.type = ITEM_PTYPE + ii;
|
||||
}
|
||||
else {
|
||||
int ii = InScListIndext(id, m.type);
|
||||
if(ii >= 0)
|
||||
p.type = ITEM_TYPE + ii;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
p.type = ITEM_SIGN;
|
||||
while(s[n] && !iscid(s[n]) && s[n] != '\2')
|
||||
n++;
|
||||
}
|
||||
p.len = n;
|
||||
s += n;
|
||||
}
|
||||
return part;
|
||||
}
|
||||
|
||||
Vector<ItemTextPart> ParseItemNatural(const CppItemInfo& m)
|
||||
{
|
||||
return ParseItemNatural(m, ~m.natural + m.at);
|
||||
}
|
||||
|
||||
int CppItemInfoDisplay::DoPaint(Draw& w, const Rect& r, const Value& q,
|
||||
Color _ink, Color paper, dword style) const
|
||||
{
|
||||
|
|
@ -220,6 +105,9 @@ int CppItemInfoDisplay::DoPaint(Draw& w, const Rect& r, const Value& q,
|
|||
case ITEM_NAME:
|
||||
f.Bold();
|
||||
break;
|
||||
case ITEM_UPP:
|
||||
ink = Cyan;
|
||||
break;
|
||||
case ITEM_CPP_TYPE:
|
||||
case ITEM_CPP:
|
||||
ink = LtBlue;
|
||||
|
|
|
|||
|
|
@ -62,3 +62,4 @@ LAYOUT(SaveTemplateLayout, 248, 96)
|
|||
ITEM(Button, ok, SetLabel(t_("OK")).LeftPosZ(108, 64).TopPosZ(60, 24))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(176, 64).TopPosZ(60, 24))
|
||||
END_LAYOUT
|
||||
|
||||
|
|
|
|||
|
|
@ -330,6 +330,9 @@ void TopicEditor::SetBar()
|
|||
bool TopicEditor::Key(dword key, int cnt)
|
||||
{
|
||||
switch(key) {
|
||||
case K_ALT_F10:
|
||||
FixTopic();
|
||||
return true;
|
||||
case K_ALT_UP:
|
||||
return topic.Key(K_UP, 0);
|
||||
case K_ALT_DOWN:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "ide\Common/init"
|
||||
#include "PdfDraw/init"
|
||||
#include "RichEdit/init"
|
||||
#define BLITZ_INDEX__ FBC518112DEEE5BCB5A93FFF277DB6572
|
||||
#define BLITZ_INDEX__ F249BD357E97BA043EF2E512156539AB2
|
||||
#include "TopicI.icpp"
|
||||
#undef BLITZ_INDEX__
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ void Pdb::Visualise(Visual& result, Pdb::Val val, int expandptr, int slen, int m
|
|||
else {
|
||||
String x = ReadString(val.address, slen + 1);
|
||||
String dt;
|
||||
if(x.GetLength() > (IsOk(x) ? slen : 10)) {
|
||||
if(x.GetLength() > (IsOk(x) ? slen : 20)) {
|
||||
x.Trim(x.GetLength() - 1);
|
||||
dt = "..";
|
||||
}
|
||||
|
|
@ -126,7 +126,7 @@ void Pdb::Visualise(Visual& result, Pdb::Val val, int expandptr, int slen, int m
|
|||
Val r = t.member[i];
|
||||
r.address += val.address;
|
||||
try {
|
||||
Visualise(result, r, max(expandptr - 1, 0), 20, maxlen);
|
||||
Visualise(result, r, max(expandptr - 1, 0), 32, maxlen);
|
||||
}
|
||||
catch(CParser::Error e) {
|
||||
result.Cat(e, SColorDisabled);
|
||||
|
|
@ -143,7 +143,7 @@ void Pdb::Visualise(Visual& result, Pdb::Val val, int expandptr, int slen, int m
|
|||
result.Cat(t.static_member.GetKey(i));
|
||||
result.Cat("=", SColorMark);
|
||||
try {
|
||||
Visualise(result, t.static_member[i], max(expandptr - 1, 0), 20, maxlen);
|
||||
Visualise(result, t.static_member[i], max(expandptr - 1, 0), 32, maxlen);
|
||||
}
|
||||
catch(CParser::Error e) {
|
||||
result.Cat(e, SColorDisabled);
|
||||
|
|
|
|||
|
|
@ -174,6 +174,10 @@ void TopicCtrl::SyncDocTree()
|
|||
}
|
||||
else {
|
||||
if(otherfirst) {
|
||||
if(usedfirst) {
|
||||
usid = AddTree(0, IdeImg::Package(), Null, "Used packages");
|
||||
usedfirst = false;
|
||||
}
|
||||
otid = AddTree(0, IdeImg::Package(), Null, "Other packages");
|
||||
otherfirst = false;
|
||||
}
|
||||
|
|
@ -520,10 +524,8 @@ struct HelpModule : public IdeModule {
|
|||
if(IsHelpName(path)) {
|
||||
topic_serial++;
|
||||
GetRefLinks("");
|
||||
if(ide->doc.GetCurrent().IsEmpty()) {
|
||||
ide->doc.SyncDocTree();
|
||||
ide->doc.GoTo(Nvl(recent_topic, sTopicHome));
|
||||
}
|
||||
HelpDes *d = new HelpDes;
|
||||
d->topic = &ide->doc;
|
||||
return d;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue