2000-07-12 Bryce McKinlay <bryce@albatross.co.nz>
[official-gcc.git] / gcc / cp / parse.c
blobc0a984474ee98b5ce7d9844eef6b280a2bcd3d39
2 /* A Bison parser, made from parse.y
3 by GNU Bison version 1.28 */
5 #define YYBISON 1 /* Identify Bison output. */
7 #define IDENTIFIER 257
8 #define TYPENAME 258
9 #define SELFNAME 259
10 #define PFUNCNAME 260
11 #define SCSPEC 261
12 #define TYPESPEC 262
13 #define CV_QUALIFIER 263
14 #define CONSTANT 264
15 #define STRING 265
16 #define ELLIPSIS 266
17 #define SIZEOF 267
18 #define ENUM 268
19 #define IF 269
20 #define ELSE 270
21 #define WHILE 271
22 #define DO 272
23 #define FOR 273
24 #define SWITCH 274
25 #define CASE 275
26 #define DEFAULT 276
27 #define BREAK 277
28 #define CONTINUE 278
29 #define RETURN_KEYWORD 279
30 #define GOTO 280
31 #define ASM_KEYWORD 281
32 #define TYPEOF 282
33 #define ALIGNOF 283
34 #define SIGOF 284
35 #define ATTRIBUTE 285
36 #define EXTENSION 286
37 #define LABEL 287
38 #define REALPART 288
39 #define IMAGPART 289
40 #define VA_ARG 290
41 #define AGGR 291
42 #define VISSPEC 292
43 #define DELETE 293
44 #define NEW 294
45 #define THIS 295
46 #define OPERATOR 296
47 #define CXX_TRUE 297
48 #define CXX_FALSE 298
49 #define NAMESPACE 299
50 #define TYPENAME_KEYWORD 300
51 #define USING 301
52 #define LEFT_RIGHT 302
53 #define TEMPLATE 303
54 #define TYPEID 304
55 #define DYNAMIC_CAST 305
56 #define STATIC_CAST 306
57 #define REINTERPRET_CAST 307
58 #define CONST_CAST 308
59 #define SCOPE 309
60 #define EMPTY 310
61 #define PTYPENAME 311
62 #define NSNAME 312
63 #define THROW 313
64 #define ASSIGN 314
65 #define OROR 315
66 #define ANDAND 316
67 #define MIN_MAX 317
68 #define EQCOMPARE 318
69 #define ARITHCOMPARE 319
70 #define LSHIFT 320
71 #define RSHIFT 321
72 #define POINTSAT_STAR 322
73 #define DOT_STAR 323
74 #define UNARY 324
75 #define PLUSPLUS 325
76 #define MINUSMINUS 326
77 #define HYPERUNARY 327
78 #define POINTSAT 328
79 #define TRY 329
80 #define CATCH 330
81 #define EXTERN_LANG_STRING 331
82 #define ALL 332
83 #define PRE_PARSED_CLASS_DECL 333
84 #define DEFARG 334
85 #define DEFARG_MARKER 335
86 #define PRE_PARSED_FUNCTION_DECL 336
87 #define TYPENAME_DEFN 337
88 #define IDENTIFIER_DEFN 338
89 #define PTYPENAME_DEFN 339
90 #define END_OF_LINE 340
91 #define END_OF_SAVED_INPUT 341
93 #line 30 "parse.y"
95 /* Cause the `yydebug' variable to be defined. */
96 #define YYDEBUG 1
98 #include "config.h"
100 #include "system.h"
102 #include "tree.h"
103 #include "input.h"
104 #include "flags.h"
105 #include "cp-tree.h"
106 #include "lex.h"
107 #include "output.h"
108 #include "except.h"
109 #include "toplev.h"
110 #include "ggc.h"
112 /* Since parsers are distinct for each language, put the language string
113 definition here. (fnf) */
114 const char * const language_string = "GNU C++";
116 extern struct obstack permanent_obstack;
118 extern int end_of_file;
120 /* Like YYERROR but do call yyerror. */
121 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
123 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
124 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
126 /* Contains the statement keyword (if/while/do) to include in an
127 error message if the user supplies an empty conditional expression. */
128 static const char *cond_stmt_keyword;
130 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
131 int have_extern_spec;
132 int used_extern_spec;
134 /* List of types and structure classes of the current declaration. */
135 static tree current_declspecs;
137 /* List of prefix attributes in effect.
138 Prefix attributes are parsed by the reserved_declspecs and declmods
139 rules. They create a list that contains *both* declspecs and attrs. */
140 /* ??? It is not clear yet that all cases where an attribute can now appear in
141 a declspec list have been updated. */
142 static tree prefix_attributes;
144 /* When defining an aggregate, this is the kind of the most recent one
145 being defined. (For example, this might be class_type_node.) */
146 static tree current_aggr;
148 /* When defining an enumeration, this is the type of the enumeration. */
149 static tree current_enum_type;
151 static tree empty_parms PARAMS ((void));
152 static tree parse_decl0 PARAMS ((tree, tree, tree, tree, int));
153 static tree parse_decl PARAMS ((tree, tree, int));
154 static void parse_end_decl PARAMS ((tree, tree, tree));
155 static tree parse_field0 PARAMS ((tree, tree, tree, tree, tree, tree));
156 static tree parse_field PARAMS ((tree, tree, tree, tree));
157 static tree parse_bitfield0 PARAMS ((tree, tree, tree, tree, tree));
158 static tree parse_bitfield PARAMS ((tree, tree, tree));
159 static tree parse_method PARAMS ((tree, tree, tree));
160 static void frob_specs PARAMS ((tree, tree));
162 /* Cons up an empty parameter list. */
163 static inline tree
164 empty_parms ()
166 tree parms;
168 if (strict_prototype
169 || current_class_type != NULL)
170 parms = void_list_node;
171 else
172 parms = NULL_TREE;
173 return parms;
176 /* Record the decl-specifiers, attributes and type lookups from the
177 decl-specifier-seq in a declaration. */
179 static void
180 frob_specs (specs_attrs, lookups)
181 tree specs_attrs, lookups;
183 save_type_access_control (lookups);
184 split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
185 if (current_declspecs
186 && TREE_CODE (current_declspecs) != TREE_LIST)
187 current_declspecs = build_decl_list (NULL_TREE, current_declspecs);
188 if (have_extern_spec && !used_extern_spec)
190 current_declspecs = decl_tree_cons (NULL_TREE,
191 get_identifier ("extern"),
192 current_declspecs);
193 used_extern_spec = 1;
197 static tree
198 parse_decl (declarator, attributes, initialized)
199 tree declarator, attributes;
200 int initialized;
202 return start_decl (declarator, current_declspecs, initialized,
203 attributes, prefix_attributes);
206 static tree
207 parse_decl0 (declarator, specs_attrs, lookups, attributes, initialized)
208 tree declarator, specs_attrs, lookups, attributes;
209 int initialized;
211 frob_specs (specs_attrs, lookups);
212 return parse_decl (declarator, attributes, initialized);
215 static void
216 parse_end_decl (decl, init, asmspec)
217 tree decl, init, asmspec;
219 /* If decl is NULL_TREE, then this was a variable declaration using
220 () syntax for the initializer, so we handled it in grokdeclarator. */
221 if (decl)
222 decl_type_access_control (decl);
223 cp_finish_decl (decl, init, asmspec, init ? LOOKUP_ONLYCONVERTING : 0);
226 static tree
227 parse_field (declarator, attributes, asmspec, init)
228 tree declarator, attributes, asmspec, init;
230 tree d = grokfield (declarator, current_declspecs, init, asmspec,
231 build_tree_list (attributes, prefix_attributes));
232 decl_type_access_control (d);
233 return d;
236 static tree
237 parse_field0 (declarator, specs_attrs, lookups, attributes, asmspec, init)
238 tree declarator, specs_attrs, lookups, attributes, asmspec, init;
240 frob_specs (specs_attrs, lookups);
241 return parse_field (declarator, attributes, asmspec, init);
244 static tree
245 parse_bitfield (declarator, attributes, width)
246 tree declarator, attributes, width;
248 tree d = grokbitfield (declarator, current_declspecs, width);
249 cplus_decl_attributes (d, attributes, prefix_attributes);
250 decl_type_access_control (d);
251 return d;
254 static tree
255 parse_bitfield0 (declarator, specs_attrs, lookups, attributes, width)
256 tree declarator, specs_attrs, lookups, attributes, width;
258 frob_specs (specs_attrs, lookups);
259 return parse_bitfield (declarator, attributes, width);
262 static tree
263 parse_method (declarator, specs_attrs, lookups)
264 tree declarator, specs_attrs, lookups;
266 tree d;
267 frob_specs (specs_attrs, lookups);
268 d = start_method (current_declspecs, declarator, prefix_attributes);
269 decl_type_access_control (d);
270 return d;
273 void
274 cp_parse_init ()
276 ggc_add_tree_root (&current_declspecs, 1);
277 ggc_add_tree_root (&prefix_attributes, 1);
278 ggc_add_tree_root (&current_aggr, 1);
279 ggc_add_tree_root (&current_enum_type, 1);
282 #line 221 "parse.y"
283 typedef union {
284 long itype;
285 tree ttype;
286 char *strtype;
287 enum tree_code code;
288 flagged_type_tree ftype;
289 struct pending_inline *pi;
290 } YYSTYPE;
291 #line 426 "parse.y"
293 /* Tell yyparse how to print a token's value, if yydebug is set. */
294 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
295 extern void yyprint PARAMS ((FILE *, int, YYSTYPE));
296 #include <stdio.h>
298 #ifndef __cplusplus
299 #ifndef __STDC__
300 #define const
301 #endif
302 #endif
306 #define YYFINAL 1730
307 #define YYFLAG -32768
308 #define YYNTBASE 112
310 #define YYTRANSLATE(x) ((unsigned)(x) <= 341 ? yytranslate[x] : 398)
312 static const char yytranslate[] = { 0,
313 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
315 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
316 2, 2, 110, 2, 2, 2, 83, 71, 2, 93,
317 108, 81, 79, 60, 80, 92, 82, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 63, 61, 75,
319 65, 76, 66, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 94, 2, 111, 70, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 59, 69, 109, 89, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
339 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
340 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
341 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
342 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
343 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
344 57, 58, 62, 64, 67, 68, 72, 73, 74, 77,
345 78, 84, 85, 86, 87, 88, 90, 91, 95, 96,
346 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
350 #if YYDEBUG != 0
351 static const short yyprhs[] = { 0,
352 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
353 17, 19, 20, 23, 26, 28, 30, 36, 41, 47,
354 52, 53, 60, 61, 67, 69, 72, 74, 77, 78,
355 85, 88, 92, 96, 100, 104, 109, 110, 116, 119,
356 123, 125, 127, 130, 133, 135, 138, 139, 145, 149,
357 151, 155, 157, 158, 161, 164, 168, 170, 174, 176,
358 180, 182, 186, 189, 192, 195, 197, 199, 205, 210,
359 213, 216, 220, 224, 227, 230, 234, 238, 241, 244,
360 247, 250, 253, 255, 257, 259, 260, 262, 265, 266,
361 268, 273, 277, 281, 282, 291, 297, 298, 308, 315,
362 316, 325, 331, 332, 342, 349, 352, 355, 357, 360,
363 362, 369, 374, 381, 386, 389, 391, 394, 397, 399,
364 402, 404, 407, 410, 415, 418, 422, 423, 424, 426,
365 430, 433, 437, 439, 444, 447, 452, 455, 460, 463,
366 465, 467, 469, 471, 473, 475, 477, 479, 481, 483,
367 485, 487, 488, 495, 496, 503, 504, 510, 511, 517,
368 518, 526, 527, 535, 536, 543, 544, 551, 552, 553,
369 559, 565, 567, 569, 575, 581, 582, 584, 586, 587,
370 589, 591, 595, 597, 599, 601, 603, 605, 607, 609,
371 611, 613, 615, 617, 621, 623, 627, 628, 630, 632,
372 633, 641, 643, 645, 649, 654, 658, 659, 663, 665,
373 669, 673, 677, 681, 683, 685, 687, 690, 693, 696,
374 699, 702, 705, 708, 713, 716, 721, 724, 728, 732,
375 737, 742, 748, 754, 761, 764, 769, 775, 778, 781,
376 788, 792, 796, 800, 802, 806, 809, 813, 818, 820,
377 823, 829, 831, 835, 839, 843, 847, 851, 855, 859,
378 863, 867, 871, 875, 879, 883, 887, 891, 895, 899,
379 903, 907, 913, 917, 921, 923, 926, 928, 932, 936,
380 940, 944, 948, 952, 956, 960, 964, 968, 972, 976,
381 980, 984, 988, 992, 996, 1000, 1006, 1010, 1014, 1016,
382 1019, 1023, 1027, 1029, 1031, 1033, 1035, 1037, 1038, 1044,
383 1050, 1056, 1062, 1068, 1070, 1072, 1074, 1076, 1079, 1081,
384 1084, 1087, 1091, 1096, 1101, 1103, 1105, 1107, 1111, 1113,
385 1115, 1117, 1119, 1123, 1127, 1131, 1132, 1137, 1142, 1145,
386 1150, 1153, 1158, 1161, 1164, 1166, 1171, 1173, 1181, 1189,
387 1197, 1205, 1210, 1215, 1218, 1221, 1224, 1226, 1231, 1234,
388 1237, 1243, 1247, 1250, 1253, 1259, 1263, 1269, 1273, 1278,
389 1285, 1288, 1290, 1293, 1295, 1298, 1300, 1302, 1304, 1307,
390 1308, 1311, 1314, 1318, 1322, 1326, 1329, 1332, 1335, 1337,
391 1339, 1341, 1344, 1347, 1350, 1353, 1355, 1357, 1359, 1361,
392 1364, 1367, 1371, 1375, 1379, 1384, 1386, 1389, 1392, 1395,
393 1397, 1399, 1401, 1404, 1407, 1410, 1412, 1414, 1417, 1420,
394 1424, 1426, 1429, 1431, 1433, 1435, 1440, 1445, 1450, 1455,
395 1457, 1459, 1461, 1463, 1467, 1469, 1473, 1475, 1479, 1480,
396 1485, 1486, 1493, 1497, 1498, 1503, 1505, 1509, 1513, 1514,
397 1519, 1523, 1524, 1526, 1528, 1531, 1538, 1540, 1544, 1545,
398 1547, 1552, 1559, 1564, 1566, 1568, 1570, 1572, 1574, 1578,
399 1579, 1582, 1584, 1587, 1591, 1596, 1598, 1600, 1604, 1609,
400 1613, 1619, 1621, 1626, 1630, 1634, 1635, 1639, 1643, 1647,
401 1648, 1651, 1654, 1655, 1662, 1663, 1669, 1672, 1675, 1678,
402 1679, 1680, 1681, 1692, 1694, 1695, 1697, 1698, 1700, 1702,
403 1705, 1708, 1711, 1714, 1717, 1720, 1723, 1726, 1729, 1733,
404 1738, 1742, 1745, 1749, 1751, 1752, 1756, 1759, 1762, 1764,
405 1766, 1767, 1770, 1774, 1776, 1781, 1783, 1787, 1789, 1791,
406 1794, 1797, 1801, 1805, 1806, 1808, 1812, 1815, 1818, 1820,
407 1823, 1826, 1829, 1832, 1835, 1838, 1841, 1843, 1846, 1849,
408 1853, 1856, 1859, 1864, 1869, 1872, 1874, 1880, 1885, 1887,
409 1888, 1890, 1894, 1895, 1897, 1901, 1903, 1905, 1907, 1909,
410 1914, 1919, 1924, 1929, 1934, 1938, 1943, 1948, 1953, 1958,
411 1962, 1965, 1967, 1969, 1973, 1975, 1979, 1982, 1984, 1991,
412 1992, 1995, 1997, 2000, 2004, 2008, 2010, 2014, 2016, 2019,
413 2023, 2027, 2030, 2033, 2037, 2039, 2044, 2049, 2053, 2057,
414 2060, 2062, 2064, 2067, 2069, 2071, 2074, 2077, 2079, 2082,
415 2086, 2090, 2093, 2096, 2100, 2102, 2106, 2110, 2113, 2116,
416 2120, 2122, 2127, 2131, 2136, 2140, 2142, 2145, 2148, 2151,
417 2154, 2157, 2160, 2163, 2165, 2168, 2173, 2178, 2181, 2183,
418 2185, 2187, 2189, 2192, 2197, 2200, 2203, 2206, 2209, 2211,
419 2214, 2217, 2220, 2223, 2227, 2229, 2232, 2236, 2241, 2244,
420 2247, 2250, 2253, 2256, 2259, 2264, 2267, 2269, 2272, 2275,
421 2279, 2281, 2285, 2288, 2292, 2295, 2298, 2302, 2304, 2308,
422 2313, 2315, 2318, 2322, 2325, 2328, 2330, 2334, 2337, 2340,
423 2342, 2345, 2349, 2351, 2355, 2362, 2367, 2372, 2376, 2382,
424 2386, 2390, 2394, 2397, 2399, 2401, 2404, 2407, 2410, 2411,
425 2413, 2415, 2418, 2422, 2424, 2427, 2428, 2432, 2433, 2434,
426 2440, 2442, 2443, 2446, 2448, 2450, 2452, 2455, 2456, 2461,
427 2463, 2464, 2465, 2471, 2472, 2473, 2481, 2482, 2483, 2484,
428 2485, 2498, 2499, 2500, 2508, 2509, 2515, 2516, 2524, 2525,
429 2530, 2533, 2536, 2539, 2543, 2550, 2559, 2570, 2579, 2592,
430 2603, 2614, 2619, 2623, 2626, 2629, 2631, 2633, 2635, 2637,
431 2639, 2640, 2641, 2648, 2649, 2650, 2656, 2658, 2661, 2662,
432 2663, 2669, 2671, 2673, 2677, 2681, 2684, 2687, 2690, 2693,
433 2696, 2698, 2701, 2702, 2704, 2705, 2707, 2709, 2710, 2712,
434 2714, 2718, 2723, 2725, 2729, 2730, 2732, 2734, 2736, 2739,
435 2742, 2745, 2747, 2750, 2753, 2754, 2758, 2760, 2762, 2764,
436 2767, 2770, 2773, 2778, 2781, 2784, 2787, 2790, 2793, 2796,
437 2798, 2801, 2803, 2806, 2808, 2810, 2811, 2812, 2814, 2815,
438 2820, 2823, 2825, 2827, 2831, 2832, 2836, 2840, 2844, 2846,
439 2849, 2852, 2855, 2858, 2861, 2864, 2867, 2870, 2873, 2876,
440 2879, 2882, 2885, 2888, 2891, 2894, 2897, 2900, 2903, 2906,
441 2909, 2912, 2915, 2919, 2922, 2925, 2928, 2931, 2935, 2938,
442 2941, 2946, 2951, 2955
445 static const short yyrhs[] = { -1,
446 113, 0, 0, 114, 120, 0, 113, 120, 0, 113,
447 0, 0, 0, 0, 32, 0, 27, 0, 0, 121,
448 122, 0, 148, 147, 0, 144, 0, 141, 0, 119,
449 93, 218, 108, 61, 0, 133, 59, 115, 109, 0,
450 133, 116, 148, 117, 147, 0, 133, 116, 144, 117,
451 0, 0, 45, 163, 59, 123, 115, 109, 0, 0,
452 45, 59, 124, 115, 109, 0, 125, 0, 127, 61,
453 0, 129, 0, 118, 122, 0, 0, 45, 163, 65,
454 126, 132, 61, 0, 47, 311, 0, 47, 325, 311,
455 0, 47, 325, 208, 0, 47, 131, 163, 0, 47,
456 325, 163, 0, 47, 325, 131, 163, 0, 0, 47,
457 45, 130, 132, 61, 0, 58, 55, 0, 131, 58,
458 55, 0, 208, 0, 311, 0, 325, 311, 0, 325,
459 208, 0, 97, 0, 133, 97, 0, 0, 49, 75,
460 135, 136, 76, 0, 49, 75, 76, 0, 140, 0,
461 136, 60, 140, 0, 163, 0, 0, 268, 137, 0,
462 46, 137, 0, 134, 268, 137, 0, 138, 0, 138,
463 65, 224, 0, 389, 0, 389, 65, 203, 0, 139,
464 0, 139, 65, 184, 0, 134, 142, 0, 134, 1,
465 0, 148, 147, 0, 143, 0, 141, 0, 133, 116,
466 148, 117, 147, 0, 133, 116, 143, 117, 0, 118,
467 142, 0, 235, 61, 0, 228, 234, 61, 0, 225,
468 233, 61, 0, 260, 61, 0, 235, 61, 0, 228,
469 234, 61, 0, 225, 233, 61, 0, 228, 61, 0,
470 166, 61, 0, 225, 61, 0, 1, 61, 0, 1,
471 109, 0, 61, 0, 219, 0, 159, 0, 0, 158,
472 0, 158, 61, 0, 0, 107, 0, 154, 146, 145,
473 336, 0, 154, 146, 360, 0, 154, 146, 1, 0,
474 0, 316, 5, 93, 150, 380, 108, 298, 392, 0,
475 316, 5, 48, 298, 392, 0, 0, 325, 316, 5,
476 93, 151, 380, 108, 298, 392, 0, 325, 316, 5,
477 48, 298, 392, 0, 0, 316, 179, 93, 152, 380,
478 108, 298, 392, 0, 316, 179, 48, 298, 392, 0,
479 0, 325, 316, 179, 93, 153, 380, 108, 298, 392,
480 0, 325, 316, 179, 48, 298, 392, 0, 225, 222,
481 0, 228, 308, 0, 308, 0, 228, 149, 0, 149,
482 0, 5, 93, 380, 108, 298, 392, 0, 5, 48,
483 298, 392, 0, 179, 93, 380, 108, 298, 392, 0,
484 179, 48, 298, 392, 0, 228, 155, 0, 155, 0,
485 225, 222, 0, 228, 308, 0, 308, 0, 228, 149,
486 0, 149, 0, 25, 3, 0, 157, 252, 0, 157,
487 93, 196, 108, 0, 157, 48, 0, 63, 160, 161,
488 0, 0, 0, 162, 0, 161, 60, 162, 0, 161,
489 1, 0, 93, 196, 108, 0, 48, 0, 164, 93,
490 196, 108, 0, 164, 48, 0, 304, 93, 196, 108,
491 0, 304, 48, 0, 318, 93, 196, 108, 0, 318,
492 48, 0, 1, 0, 3, 0, 4, 0, 5, 0,
493 57, 0, 58, 0, 3, 0, 57, 0, 58, 0,
494 104, 0, 103, 0, 105, 0, 0, 49, 175, 231,
495 61, 167, 176, 0, 0, 49, 175, 225, 222, 168,
496 176, 0, 0, 49, 175, 308, 169, 176, 0, 0,
497 49, 175, 149, 170, 176, 0, 0, 7, 49, 175,
498 231, 61, 171, 176, 0, 0, 7, 49, 175, 225,
499 222, 172, 176, 0, 0, 7, 49, 175, 308, 173,
500 176, 0, 0, 7, 49, 175, 149, 174, 176, 0,
501 0, 0, 57, 75, 182, 181, 180, 0, 4, 75,
502 182, 181, 180, 0, 179, 0, 177, 0, 163, 75,
503 182, 76, 180, 0, 5, 75, 182, 181, 180, 0,
504 0, 76, 0, 78, 0, 0, 183, 0, 184, 0,
505 183, 60, 184, 0, 224, 0, 57, 0, 203, 0,
506 80, 0, 79, 0, 87, 0, 88, 0, 110, 0,
507 195, 0, 202, 0, 48, 0, 93, 186, 108, 0,
508 48, 0, 93, 190, 108, 0, 0, 190, 0, 1,
509 0, 0, 370, 222, 236, 245, 65, 191, 253, 0,
510 186, 0, 109, 0, 333, 331, 109, 0, 333, 331,
511 1, 109, 0, 333, 1, 109, 0, 0, 59, 194,
512 192, 0, 345, 0, 202, 60, 202, 0, 202, 60,
513 1, 0, 195, 60, 202, 0, 195, 60, 1, 0,
514 202, 0, 195, 0, 213, 0, 118, 201, 0, 81,
515 201, 0, 71, 201, 0, 89, 201, 0, 185, 201,
516 0, 68, 163, 0, 13, 197, 0, 13, 93, 224,
517 108, 0, 29, 197, 0, 29, 93, 224, 108, 0,
518 215, 297, 0, 215, 297, 199, 0, 215, 198, 297,
519 0, 215, 198, 297, 199, 0, 215, 93, 224, 108,
520 0, 215, 93, 224, 108, 199, 0, 215, 198, 93,
521 224, 108, 0, 215, 198, 93, 224, 108, 199, 0,
522 216, 201, 0, 216, 94, 111, 201, 0, 216, 94,
523 186, 111, 201, 0, 34, 201, 0, 35, 201, 0,
524 36, 93, 202, 60, 224, 108, 0, 93, 196, 108,
525 0, 59, 196, 109, 0, 93, 196, 108, 0, 48,
526 0, 93, 231, 108, 0, 65, 253, 0, 93, 224,
527 108, 0, 200, 93, 224, 108, 0, 197, 0, 200,
528 197, 0, 200, 59, 254, 266, 109, 0, 201, 0,
529 202, 84, 202, 0, 202, 85, 202, 0, 202, 79,
530 202, 0, 202, 80, 202, 0, 202, 81, 202, 0,
531 202, 82, 202, 0, 202, 83, 202, 0, 202, 77,
532 202, 0, 202, 78, 202, 0, 202, 74, 202, 0,
533 202, 75, 202, 0, 202, 76, 202, 0, 202, 73,
534 202, 0, 202, 72, 202, 0, 202, 71, 202, 0,
535 202, 69, 202, 0, 202, 70, 202, 0, 202, 68,
536 202, 0, 202, 67, 202, 0, 202, 66, 375, 63,
537 202, 0, 202, 65, 202, 0, 202, 64, 202, 0,
538 62, 0, 62, 202, 0, 201, 0, 203, 84, 203,
539 0, 203, 85, 203, 0, 203, 79, 203, 0, 203,
540 80, 203, 0, 203, 81, 203, 0, 203, 82, 203,
541 0, 203, 83, 203, 0, 203, 77, 203, 0, 203,
542 78, 203, 0, 203, 74, 203, 0, 203, 75, 203,
543 0, 203, 73, 203, 0, 203, 72, 203, 0, 203,
544 71, 203, 0, 203, 69, 203, 0, 203, 70, 203,
545 0, 203, 68, 203, 0, 203, 67, 203, 0, 203,
546 66, 375, 63, 203, 0, 203, 65, 203, 0, 203,
547 64, 203, 0, 62, 0, 62, 203, 0, 89, 390,
548 163, 0, 89, 390, 177, 0, 206, 0, 397, 0,
549 3, 0, 57, 0, 58, 0, 0, 6, 75, 205,
550 182, 181, 0, 397, 75, 205, 182, 181, 0, 49,
551 163, 75, 182, 181, 0, 49, 6, 75, 182, 181,
552 0, 49, 397, 75, 182, 181, 0, 204, 0, 4,
553 0, 5, 0, 210, 0, 246, 210, 0, 204, 0,
554 81, 209, 0, 71, 209, 0, 93, 209, 108, 0,
555 3, 75, 182, 181, 0, 58, 75, 183, 181, 0,
556 310, 0, 204, 0, 211, 0, 93, 209, 108, 0,
557 204, 0, 10, 0, 217, 0, 218, 0, 93, 186,
558 108, 0, 93, 209, 108, 0, 93, 1, 108, 0,
559 0, 93, 214, 337, 108, 0, 204, 93, 196, 108,
560 0, 204, 48, 0, 213, 93, 196, 108, 0, 213,
561 48, 0, 213, 94, 186, 111, 0, 213, 87, 0,
562 213, 88, 0, 41, 0, 9, 93, 196, 108, 0,
563 314, 0, 51, 75, 224, 76, 93, 186, 108, 0,
564 52, 75, 224, 76, 93, 186, 108, 0, 53, 75,
565 224, 76, 93, 186, 108, 0, 54, 75, 224, 76,
566 93, 186, 108, 0, 50, 93, 186, 108, 0, 50,
567 93, 224, 108, 0, 325, 3, 0, 325, 206, 0,
568 325, 397, 0, 313, 0, 313, 93, 196, 108, 0,
569 313, 48, 0, 220, 207, 0, 220, 207, 93, 196,
570 108, 0, 220, 207, 48, 0, 220, 208, 0, 220,
571 313, 0, 220, 208, 93, 196, 108, 0, 220, 208,
572 48, 0, 220, 313, 93, 196, 108, 0, 220, 313,
573 48, 0, 220, 89, 8, 48, 0, 220, 8, 55,
574 89, 8, 48, 0, 220, 1, 0, 40, 0, 325,
575 40, 0, 39, 0, 325, 216, 0, 43, 0, 44,
576 0, 11, 0, 218, 11, 0, 0, 213, 92, 0,
577 213, 91, 0, 231, 233, 61, 0, 225, 233, 61,
578 0, 228, 234, 61, 0, 225, 61, 0, 228, 61,
579 0, 118, 221, 0, 302, 0, 308, 0, 48, 0,
580 223, 48, 0, 229, 329, 0, 299, 329, 0, 231,
581 329, 0, 229, 0, 299, 0, 229, 0, 226, 0,
582 228, 231, 0, 231, 227, 0, 231, 230, 227, 0,
583 228, 231, 227, 0, 228, 231, 230, 0, 228, 231,
584 230, 227, 0, 7, 0, 227, 232, 0, 227, 7,
585 0, 227, 246, 0, 246, 0, 299, 0, 7, 0,
586 228, 9, 0, 228, 7, 0, 228, 246, 0, 246,
587 0, 231, 0, 299, 231, 0, 231, 230, 0, 299,
588 231, 230, 0, 232, 0, 230, 232, 0, 260, 0,
589 8, 0, 305, 0, 28, 93, 186, 108, 0, 28,
590 93, 224, 108, 0, 30, 93, 186, 108, 0, 30,
591 93, 224, 108, 0, 8, 0, 9, 0, 260, 0,
592 241, 0, 233, 60, 237, 0, 242, 0, 234, 60,
593 237, 0, 243, 0, 235, 60, 237, 0, 0, 119,
594 93, 218, 108, 0, 0, 222, 236, 245, 65, 238,
595 253, 0, 222, 236, 245, 0, 0, 245, 65, 240,
596 253, 0, 245, 0, 222, 236, 239, 0, 308, 236,
597 239, 0, 0, 308, 236, 244, 239, 0, 149, 236,
598 245, 0, 0, 246, 0, 247, 0, 246, 247, 0,
599 31, 93, 93, 248, 108, 108, 0, 249, 0, 248,
600 60, 249, 0, 0, 250, 0, 250, 93, 3, 108,
601 0, 250, 93, 3, 60, 196, 108, 0, 250, 93,
602 196, 108, 0, 163, 0, 7, 0, 8, 0, 9,
603 0, 163, 0, 251, 60, 163, 0, 0, 65, 253,
604 0, 202, 0, 59, 109, 0, 59, 254, 109, 0,
605 59, 254, 60, 109, 0, 1, 0, 253, 0, 254,
606 60, 253, 0, 94, 202, 111, 253, 0, 163, 63,
607 253, 0, 254, 60, 163, 63, 253, 0, 102, 0,
608 255, 146, 145, 336, 0, 255, 146, 360, 0, 255,
609 146, 1, 0, 0, 257, 256, 147, 0, 101, 202,
610 107, 0, 101, 1, 107, 0, 0, 259, 258, 0,
611 259, 1, 0, 0, 14, 163, 59, 261, 294, 109,
612 0, 0, 14, 59, 262, 294, 109, 0, 14, 163,
613 0, 14, 323, 0, 46, 318, 0, 0, 0, 0,
614 275, 59, 263, 281, 109, 245, 264, 259, 265, 257,
615 0, 275, 0, 0, 60, 0, 0, 60, 0, 37,
616 0, 268, 7, 0, 268, 8, 0, 268, 9, 0,
617 268, 37, 0, 268, 246, 0, 268, 163, 0, 268,
618 165, 0, 269, 59, 0, 269, 63, 0, 268, 316,
619 163, 0, 268, 325, 316, 163, 0, 268, 325, 163,
620 0, 268, 178, 0, 268, 316, 178, 0, 269, 0,
621 0, 270, 273, 276, 0, 271, 276, 0, 268, 59,
622 0, 274, 0, 272, 0, 0, 63, 390, 0, 63,
623 390, 277, 0, 278, 0, 277, 60, 390, 278, 0,
624 279, 0, 280, 390, 279, 0, 318, 0, 304, 0,
625 38, 390, 0, 7, 390, 0, 280, 38, 390, 0,
626 280, 7, 390, 0, 0, 283, 0, 281, 282, 283,
627 0, 281, 282, 0, 38, 63, 0, 284, 0, 283,
628 284, 0, 285, 61, 0, 285, 109, 0, 156, 63,
629 0, 156, 95, 0, 156, 25, 0, 156, 59, 0,
630 61, 0, 118, 284, 0, 134, 284, 0, 134, 225,
631 61, 0, 225, 286, 0, 228, 287, 0, 308, 236,
632 245, 252, 0, 149, 236, 245, 252, 0, 63, 202,
633 0, 1, 0, 228, 155, 236, 245, 252, 0, 155,
634 236, 245, 252, 0, 127, 0, 0, 288, 0, 286,
635 60, 289, 0, 0, 291, 0, 287, 60, 293, 0,
636 290, 0, 291, 0, 292, 0, 293, 0, 302, 236,
637 245, 252, 0, 4, 63, 202, 245, 0, 308, 236,
638 245, 252, 0, 149, 236, 245, 252, 0, 3, 63,
639 202, 245, 0, 63, 202, 245, 0, 302, 236, 245,
640 252, 0, 4, 63, 202, 245, 0, 308, 236, 245,
641 252, 0, 3, 63, 202, 245, 0, 63, 202, 245,
642 0, 295, 267, 0, 267, 0, 296, 0, 295, 60,
643 296, 0, 163, 0, 163, 65, 202, 0, 370, 326,
644 0, 370, 0, 93, 224, 108, 94, 186, 111, 0,
645 0, 298, 9, 0, 9, 0, 299, 9, 0, 93,
646 196, 108, 0, 93, 380, 108, 0, 48, 0, 93,
647 1, 108, 0, 302, 0, 246, 302, 0, 81, 299,
648 301, 0, 71, 299, 301, 0, 81, 301, 0, 71,
649 301, 0, 324, 298, 301, 0, 303, 0, 303, 300,
650 298, 392, 0, 303, 94, 186, 111, 0, 303, 94,
651 111, 0, 93, 301, 108, 0, 316, 315, 0, 315,
652 0, 315, 0, 325, 315, 0, 304, 0, 306, 0,
653 325, 306, 0, 316, 315, 0, 308, 0, 246, 308,
654 0, 81, 299, 307, 0, 71, 299, 307, 0, 81,
655 307, 0, 71, 307, 0, 324, 298, 307, 0, 212,
656 0, 81, 299, 307, 0, 71, 299, 307, 0, 81,
657 309, 0, 71, 309, 0, 324, 298, 307, 0, 310,
658 0, 212, 300, 298, 392, 0, 93, 309, 108, 0,
659 212, 94, 186, 111, 0, 212, 94, 111, 0, 312,
660 0, 325, 312, 0, 325, 204, 0, 316, 211, 0,
661 316, 208, 0, 316, 207, 0, 316, 204, 0, 316,
662 207, 0, 312, 0, 325, 312, 0, 231, 93, 196,
663 108, 0, 231, 93, 209, 108, 0, 231, 223, 0,
664 4, 0, 5, 0, 177, 0, 317, 0, 316, 317,
665 0, 316, 49, 322, 55, 0, 4, 55, 0, 5,
666 55, 0, 58, 55, 0, 177, 55, 0, 319, 0,
667 325, 319, 0, 320, 163, 0, 320, 177, 0, 320,
668 322, 0, 320, 49, 322, 0, 321, 0, 320, 321,
669 0, 320, 322, 55, 0, 320, 49, 322, 55, 0,
670 4, 55, 0, 5, 55, 0, 177, 55, 0, 57,
671 55, 0, 3, 55, 0, 58, 55, 0, 163, 75,
672 182, 181, 0, 325, 315, 0, 306, 0, 325, 306,
673 0, 316, 81, 0, 325, 316, 81, 0, 55, 0,
674 81, 298, 326, 0, 81, 298, 0, 71, 298, 326,
675 0, 71, 298, 0, 324, 298, 0, 324, 298, 326,
676 0, 327, 0, 94, 186, 111, 0, 327, 94, 186,
677 111, 0, 329, 0, 246, 329, 0, 81, 299, 328,
678 0, 81, 328, 0, 81, 299, 0, 81, 0, 71,
679 299, 328, 0, 71, 328, 0, 71, 299, 0, 71,
680 0, 324, 298, 0, 324, 298, 328, 0, 330, 0,
681 93, 328, 108, 0, 330, 93, 380, 108, 298, 392,
682 0, 330, 48, 298, 392, 0, 330, 94, 186, 111,
683 0, 330, 94, 111, 0, 93, 381, 108, 298, 392,
684 0, 200, 298, 392, 0, 223, 298, 392, 0, 94,
685 186, 111, 0, 94, 111, 0, 344, 0, 332, 0,
686 331, 344, 0, 331, 332, 0, 1, 61, 0, 0,
687 334, 0, 335, 0, 334, 335, 0, 33, 251, 61,
688 0, 337, 0, 1, 337, 0, 0, 59, 338, 192,
689 0, 0, 0, 15, 340, 188, 341, 342, 0, 337,
690 0, 0, 343, 345, 0, 337, 0, 345, 0, 221,
691 0, 186, 61, 0, 0, 339, 16, 346, 342, 0,
692 339, 0, 0, 0, 17, 347, 188, 348, 193, 0,
693 0, 0, 18, 349, 342, 17, 350, 187, 61, 0,
694 0, 0, 0, 0, 19, 351, 93, 373, 352, 189,
695 61, 353, 375, 108, 354, 193, 0, 0, 0, 20,
696 355, 93, 190, 108, 356, 342, 0, 0, 21, 202,
697 63, 357, 344, 0, 0, 21, 202, 12, 202, 63,
698 358, 344, 0, 0, 22, 63, 359, 344, 0, 23,
699 61, 0, 24, 61, 0, 25, 61, 0, 25, 186,
700 61, 0, 119, 374, 93, 218, 108, 61, 0, 119,
701 374, 93, 218, 63, 376, 108, 61, 0, 119, 374,
702 93, 218, 63, 376, 63, 376, 108, 61, 0, 119,
703 374, 93, 218, 55, 376, 108, 61, 0, 119, 374,
704 93, 218, 63, 376, 63, 376, 63, 379, 108, 61,
705 0, 119, 374, 93, 218, 55, 376, 63, 379, 108,
706 61, 0, 119, 374, 93, 218, 63, 376, 55, 379,
707 108, 61, 0, 26, 81, 186, 61, 0, 26, 163,
708 61, 0, 372, 344, 0, 372, 109, 0, 61, 0,
709 363, 0, 129, 0, 128, 0, 125, 0, 0, 0,
710 95, 361, 145, 337, 362, 366, 0, 0, 0, 95,
711 364, 337, 365, 366, 0, 367, 0, 366, 367, 0,
712 0, 0, 96, 368, 371, 369, 337, 0, 229, 0,
713 299, 0, 93, 12, 108, 0, 93, 389, 108, 0,
714 3, 63, 0, 57, 63, 0, 4, 63, 0, 5,
715 63, 0, 375, 61, 0, 221, 0, 59, 192, 0,
716 0, 9, 0, 0, 186, 0, 1, 0, 0, 377,
717 0, 378, 0, 377, 60, 378, 0, 11, 93, 186,
718 108, 0, 218, 0, 379, 60, 218, 0, 0, 381,
719 0, 224, 0, 385, 0, 386, 12, 0, 385, 12,
720 0, 224, 12, 0, 12, 0, 385, 63, 0, 224,
721 63, 0, 0, 65, 383, 384, 0, 100, 0, 253,
722 0, 387, 0, 389, 382, 0, 386, 388, 0, 386,
723 391, 0, 386, 391, 65, 253, 0, 385, 60, 0,
724 224, 60, 0, 226, 222, 0, 229, 222, 0, 231,
725 222, 0, 226, 329, 0, 226, 0, 228, 308, 0,
726 389, 0, 389, 382, 0, 387, 0, 224, 0, 0,
727 0, 308, 0, 0, 62, 93, 394, 108, 0, 62,
728 48, 0, 224, 0, 393, 0, 394, 60, 393, 0,
729 0, 81, 298, 395, 0, 71, 298, 395, 0, 324,
730 298, 395, 0, 42, 0, 396, 81, 0, 396, 82,
731 0, 396, 83, 0, 396, 79, 0, 396, 80, 0,
732 396, 71, 0, 396, 69, 0, 396, 70, 0, 396,
733 89, 0, 396, 60, 0, 396, 74, 0, 396, 75,
734 0, 396, 76, 0, 396, 73, 0, 396, 64, 0,
735 396, 65, 0, 396, 77, 0, 396, 78, 0, 396,
736 87, 0, 396, 88, 0, 396, 68, 0, 396, 67,
737 0, 396, 110, 0, 396, 66, 63, 0, 396, 72,
738 0, 396, 91, 0, 396, 84, 0, 396, 48, 0,
739 396, 94, 111, 0, 396, 40, 0, 396, 39, 0,
740 396, 40, 94, 111, 0, 396, 39, 94, 111, 0,
741 396, 370, 395, 0, 396, 1, 0
744 #endif
746 #if YYDEBUG != 0
747 static const short yyrline[] = { 0,
748 433, 436, 444, 447, 448, 452, 454, 457, 462, 466,
749 472, 476, 480, 484, 487, 489, 491, 494, 496, 499,
750 502, 504, 506, 508, 510, 511, 513, 514, 518, 521,
751 530, 533, 535, 539, 542, 544, 548, 551, 563, 570,
752 578, 580, 581, 583, 587, 590, 596, 599, 601, 606,
753 609, 613, 616, 619, 622, 626, 631, 641, 643, 645,
754 647, 649, 662, 665, 669, 672, 674, 676, 679, 682,
755 686, 688, 690, 692, 697, 699, 701, 703, 705, 706,
756 713, 714, 715, 718, 721, 725, 727, 728, 731, 733,
757 736, 739, 741, 745, 748, 750, 754, 756, 758, 762,
758 764, 766, 770, 772, 774, 780, 785, 788, 791, 794,
759 799, 802, 804, 806, 812, 821, 824, 826, 828, 831,
760 833, 838, 847, 850, 852, 856, 866, 882, 888, 893,
761 904, 907, 914, 922, 924, 927, 929, 932, 934, 937,
762 941, 943, 944, 945, 946, 949, 951, 952, 955, 957,
763 958, 961, 966, 966, 970, 970, 973, 973, 976, 976,
764 980, 980, 985, 985, 988, 988, 991, 993, 996, 1003,
765 1007, 1010, 1013, 1015, 1019, 1025, 1034, 1036, 1044, 1047,
766 1050, 1053, 1057, 1060, 1066, 1069, 1072, 1074, 1076, 1078,
767 1082, 1085, 1088, 1093, 1097, 1102, 1106, 1109, 1110, 1114,
768 1131, 1137, 1140, 1142, 1143, 1144, 1147, 1151, 1152, 1156,
769 1160, 1163, 1165, 1169, 1172, 1175, 1179, 1182, 1184, 1186,
770 1188, 1191, 1195, 1197, 1200, 1202, 1208, 1211, 1214, 1217,
771 1220, 1225, 1228, 1231, 1235, 1237, 1241, 1245, 1247, 1249,
772 1254, 1257, 1262, 1265, 1267, 1275, 1288, 1293, 1299, 1301,
773 1303, 1316, 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333,
774 1335, 1337, 1339, 1341, 1343, 1345, 1347, 1349, 1351, 1353,
775 1355, 1357, 1359, 1363, 1365, 1367, 1371, 1374, 1376, 1378,
776 1380, 1382, 1384, 1386, 1388, 1390, 1392, 1394, 1396, 1398,
777 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1416, 1418, 1420,
778 1424, 1427, 1429, 1430, 1431, 1432, 1433, 1436, 1448, 1451,
779 1455, 1458, 1460, 1465, 1467, 1468, 1471, 1473, 1481, 1483,
780 1485, 1487, 1491, 1494, 1498, 1502, 1503, 1504, 1508, 1516,
781 1517, 1518, 1528, 1530, 1533, 1535, 1546, 1551, 1553, 1555,
782 1557, 1559, 1561, 1563, 1566, 1568, 1579, 1580, 1584, 1588,
783 1592, 1596, 1598, 1602, 1604, 1606, 1614, 1616, 1618, 1620,
784 1624, 1626, 1628, 1630, 1635, 1637, 1639, 1641, 1644, 1646,
785 1648, 1692, 1695, 1699, 1702, 1706, 1709, 1714, 1716, 1720,
786 1729, 1732, 1739, 1745, 1749, 1751, 1756, 1758, 1765, 1767,
787 1771, 1775, 1781, 1785, 1788, 1792, 1795, 1805, 1808, 1812,
788 1816, 1819, 1822, 1825, 1828, 1834, 1840, 1842, 1847, 1849,
789 1867, 1870, 1875, 1880, 1888, 1890, 1903, 1907, 1910, 1913,
790 1918, 1921, 1929, 1932, 1934, 1936, 1939, 1942, 1957, 1976,
791 1979, 1981, 1984, 1986, 1990, 1992, 1996, 1998, 2002, 2005,
792 2009, 2014, 2015, 2028, 2035, 2036, 2042, 2047, 2052, 2058,
793 2059, 2066, 2069, 2073, 2076, 2080, 2085, 2088, 2092, 2095,
794 2097, 2099, 2101, 2108, 2110, 2111, 2112, 2116, 2119, 2123,
795 2126, 2132, 2134, 2137, 2140, 2143, 2149, 2152, 2155, 2157,
796 2159, 2163, 2169, 2175, 2180, 2186, 2188, 2193, 2196, 2199,
797 2201, 2203, 2207, 2211, 2216, 2219, 2224, 2227, 2230, 2236,
798 2238, 2250, 2254, 2259, 2285, 2287, 2290, 2292, 2297, 2299,
799 2301, 2303, 2305, 2307, 2311, 2319, 2322, 2324, 2328, 2335,
800 2341, 2347, 2353, 2363, 2369, 2373, 2380, 2408, 2418, 2424,
801 2427, 2430, 2432, 2436, 2438, 2442, 2445, 2449, 2457, 2460,
802 2462, 2466, 2477, 2491, 2492, 2493, 2494, 2497, 2506, 2511,
803 2517, 2519, 2524, 2526, 2528, 2530, 2532, 2534, 2537, 2547,
804 2554, 2579, 2585, 2588, 2591, 2593, 2604, 2609, 2612, 2617,
805 2620, 2627, 2637, 2640, 2647, 2657, 2659, 2662, 2664, 2667,
806 2671, 2676, 2680, 2683, 2686, 2691, 2694, 2698, 2701, 2703,
807 2707, 2709, 2716, 2718, 2721, 2724, 2729, 2733, 2738, 2748,
808 2751, 2755, 2759, 2768, 2771, 2773, 2775, 2781, 2783, 2792,
809 2795, 2797, 2799, 2801, 2805, 2808, 2811, 2813, 2815, 2817,
810 2821, 2824, 2835, 2845, 2847, 2848, 2852, 2860, 2862, 2870,
811 2873, 2875, 2877, 2879, 2883, 2886, 2889, 2891, 2893, 2895,
812 2899, 2902, 2905, 2907, 2909, 2911, 2913, 2915, 2919, 2926,
813 2930, 2935, 2939, 2944, 2946, 2950, 2953, 2955, 2959, 2961,
814 2962, 2965, 2967, 2969, 2976, 2987, 2993, 2999, 3013, 3015,
815 3019, 3033, 3035, 3037, 3041, 3047, 3060, 3063, 3068, 3081,
816 3087, 3089, 3090, 3091, 3099, 3104, 3113, 3114, 3118, 3121,
817 3127, 3133, 3136, 3138, 3140, 3142, 3146, 3150, 3154, 3157,
818 3161, 3163, 3172, 3175, 3177, 3179, 3181, 3183, 3185, 3187,
819 3189, 3193, 3197, 3201, 3205, 3207, 3209, 3211, 3213, 3215,
820 3217, 3219, 3221, 3229, 3231, 3232, 3233, 3236, 3242, 3244,
821 3249, 3251, 3254, 3267, 3270, 3273, 3277, 3280, 3287, 3289,
822 3292, 3294, 3296, 3299, 3302, 3305, 3308, 3310, 3313, 3317,
823 3319, 3325, 3327, 3328, 3330, 3335, 3337, 3339, 3341, 3343,
824 3346, 3347, 3349, 3352, 3353, 3356, 3356, 3359, 3359, 3362,
825 3362, 3364, 3366, 3368, 3370, 3376, 3382, 3384, 3387, 3390,
826 3393, 3396, 3402, 3404, 3405, 3408, 3410, 3411, 3412, 3414,
827 3417, 3420, 3423, 3429, 3433, 3435, 3438, 3440, 3443, 3447,
828 3449, 3452, 3454, 3457, 3474, 3482, 3485, 3487, 3489, 3493,
829 3496, 3497, 3505, 3508, 3511, 3514, 3515, 3521, 3524, 3527,
830 3529, 3533, 3538, 3541, 3551, 3556, 3557, 3564, 3567, 3570,
831 3572, 3575, 3577, 3587, 3601, 3605, 3608, 3610, 3614, 3618,
832 3621, 3624, 3626, 3630, 3632, 3639, 3646, 3649, 3653, 3657,
833 3661, 3667, 3671, 3676, 3678, 3681, 3686, 3692, 3703, 3706,
834 3708, 3712, 3720, 3723, 3727, 3730, 3732, 3734, 3740, 3745,
835 3748, 3750, 3752, 3754, 3756, 3758, 3760, 3762, 3764, 3766,
836 3768, 3770, 3772, 3774, 3776, 3778, 3780, 3782, 3784, 3786,
837 3788, 3790, 3792, 3794, 3796, 3798, 3800, 3802, 3804, 3806,
838 3808, 3810, 3813, 3815
840 #endif
843 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
845 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
846 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
847 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
848 "CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD","TYPEOF",
849 "ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG",
850 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
851 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
852 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
853 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
854 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
855 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
856 "POINTSAT","'.'","'('","'['","TRY","CATCH","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
857 "DEFARG","DEFARG_MARKER","PRE_PARSED_FUNCTION_DECL","TYPENAME_DEFN","IDENTIFIER_DEFN",
858 "PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'",
859 "program","extdefs","@1","extdefs_opt",".hush_warning",".warning_ok","extension",
860 "asm_keyword","lang_extdef","@2","extdef","@3","@4","namespace_alias","@5","using_decl",
861 "namespace_using_decl","using_directive","@6","namespace_qualifier","any_id",
862 "extern_lang_string","template_header","@7","template_parm_list","maybe_identifier",
863 "template_type_parm","template_template_parm","template_parm","template_def",
864 "template_extdef","template_datadef","datadef","ctor_initializer_opt","maybe_return_init",
865 "eat_saved_input","fndef","constructor_declarator","@8","@9","@10","@11","fn.def1",
866 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
867 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
868 "identifier_defn","explicit_instantiation","@12","@13","@14","@15","@16","@17",
869 "@18","@19","begin_explicit_instantiation","end_explicit_instantiation","template_type",
870 "apparent_template_type","self_template_type",".finish_template_type","template_close_bracket",
871 "template_arg_list_opt","template_arg_list","template_arg","unop","expr","paren_expr_or_null",
872 "paren_cond_or_null","xcond","condition","@20","compstmtend","already_scoped_stmt",
873 "@21","nontrivial_exprlist","nonnull_exprlist","unary_expr","new_placement",
874 "new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas","expr_no_comma_rangle",
875 "notype_unqualified_id","do_id","template_id","object_template_id","unqualified_id",
876 "expr_or_declarator_intern","expr_or_declarator","notype_template_declarator",
877 "direct_notype_declarator","primary","@22","new","delete","boolean.literal",
878 "string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id",
879 "typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs",
880 "reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls",
881 "nomods_initdecls","maybeasm","initdcl","@23","initdcl0_innards","@24","initdcl0",
882 "notype_initdcl0","nomods_initdcl0","@25","maybe_attribute","attributes","attribute",
883 "attribute_list","attrib","any_word","identifiers_or_typenames","maybe_init",
884 "init","initlist","fn.defpen","pending_inline","pending_inlines","defarg_again",
885 "pending_defargs","structsp","@26","@27","@28","@29","@30","maybecomma","maybecomma_warn",
886 "aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
887 "named_complex_class_head_sans_basetype","named_class_head","@31","unnamed_class_head",
888 "class_head","maybe_base_class_list","base_class_list","base_class","base_class.1",
889 "base_class_access_list","opt.component_decl_list","access_specifier","component_decl_list",
890 "component_decl","component_decl_1","components","notype_components","component_declarator0",
891 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
892 "after_type_component_declarator","notype_component_declarator","enumlist_opt",
893 "enumlist","enumerator","new_type_id","cv_qualifiers","nonempty_cv_qualifiers",
894 "maybe_parmlist","after_type_declarator_intern","after_type_declarator","direct_after_type_declarator",
895 "nonnested_type","complete_type_name","nested_type","notype_declarator_intern",
896 "notype_declarator","complex_notype_declarator","complex_direct_notype_declarator",
897 "qualified_id","notype_qualified_id","overqualified_id","functional_cast","type_name",
898 "nested_name_specifier","nested_name_specifier_1","typename_sub","typename_sub0",
899 "typename_sub1","typename_sub2","explicit_template_type","complex_type_name",
900 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl_intern",
901 "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
902 "label_decls","label_decl","compstmt_or_error","compstmt","@32","simple_if",
903 "@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37",
904 "@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block",
905 "@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","type_specifier_seq",
906 "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
907 "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
908 "complex_parmlist","defarg","@56","defarg1","parms","parms_comma","named_parm",
909 "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
910 "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
912 #endif
914 static const short yyr1[] = { 0,
915 112, 112, 114, 113, 113, 115, 115, 116, 117, 118,
916 119, 121, 120, 122, 122, 122, 122, 122, 122, 122,
917 123, 122, 124, 122, 122, 122, 122, 122, 126, 125,
918 127, 127, 127, 128, 128, 128, 130, 129, 131, 131,
919 132, 132, 132, 132, 133, 133, 135, 134, 134, 136,
920 136, 137, 137, 138, 138, 139, 140, 140, 140, 140,
921 140, 140, 141, 141, 142, 142, 142, 142, 142, 142,
922 143, 143, 143, 143, 144, 144, 144, 144, 144, 144,
923 144, 144, 144, 145, 145, 146, 146, 146, 147, 147,
924 148, 148, 148, 150, 149, 149, 151, 149, 149, 152,
925 149, 149, 153, 149, 149, 154, 154, 154, 154, 154,
926 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
927 156, 157, 158, 158, 158, 159, 160, 161, 161, 161,
928 161, 162, 162, 162, 162, 162, 162, 162, 162, 162,
929 163, 163, 163, 163, 163, 164, 164, 164, 165, 165,
930 165, 167, 166, 168, 166, 169, 166, 170, 166, 171,
931 166, 172, 166, 173, 166, 174, 166, 175, 176, 177,
932 177, 177, 178, 178, 179, 180, 181, 181, 182, 182,
933 183, 183, 184, 184, 184, 185, 185, 185, 185, 185,
934 186, 186, 187, 187, 188, 188, 189, 189, 189, 191,
935 190, 190, 192, 192, 192, 192, 194, 193, 193, 195,
936 195, 195, 195, 196, 196, 197, 197, 197, 197, 197,
937 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
938 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
939 198, 198, 199, 199, 199, 199, 200, 200, 201, 201,
940 201, 202, 202, 202, 202, 202, 202, 202, 202, 202,
941 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
942 202, 202, 202, 202, 202, 202, 203, 203, 203, 203,
943 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
944 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
945 204, 204, 204, 204, 204, 204, 204, 205, 206, 206,
946 207, 207, 207, 208, 208, 208, 209, 209, 210, 210,
947 210, 210, 211, 211, 212, 212, 212, 212, 213, 213,
948 213, 213, 213, 213, 213, 214, 213, 213, 213, 213,
949 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
950 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
951 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
952 213, 215, 215, 216, 216, 217, 217, 218, 218, 219,
953 220, 220, 221, 221, 221, 221, 221, 221, 222, 222,
954 223, 223, 224, 224, 224, 224, 224, 225, 225, 226,
955 226, 226, 226, 226, 226, 227, 227, 227, 227, 227,
956 228, 228, 228, 228, 228, 228, 229, 229, 229, 229,
957 230, 230, 231, 231, 231, 231, 231, 231, 231, 232,
958 232, 232, 233, 233, 234, 234, 235, 235, 236, 236,
959 238, 237, 237, 240, 239, 239, 241, 242, 244, 243,
960 243, 245, 245, 246, 246, 247, 248, 248, 249, 249,
961 249, 249, 249, 250, 250, 250, 250, 251, 251, 252,
962 252, 253, 253, 253, 253, 253, 254, 254, 254, 254,
963 254, 255, 256, 256, 256, 257, 257, 258, 258, 259,
964 259, 259, 261, 260, 262, 260, 260, 260, 260, 263,
965 264, 265, 260, 260, 266, 266, 267, 267, 268, 268,
966 268, 268, 268, 268, 269, 270, 270, 270, 271, 271,
967 271, 271, 271, 272, 273, 272, 272, 274, 275, 275,
968 276, 276, 276, 277, 277, 278, 278, 279, 279, 280,
969 280, 280, 280, 281, 281, 281, 281, 282, 283, 283,
970 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
971 285, 285, 285, 285, 285, 285, 285, 285, 285, 286,
972 286, 286, 287, 287, 287, 288, 288, 289, 289, 290,
973 290, 291, 291, 291, 291, 292, 292, 293, 293, 293,
974 294, 294, 295, 295, 296, 296, 297, 297, 297, 298,
975 298, 299, 299, 300, 300, 300, 300, 301, 301, 302,
976 302, 302, 302, 302, 302, 303, 303, 303, 303, 303,
977 303, 304, 304, 305, 305, 305, 306, 307, 307, 308,
978 308, 308, 308, 308, 308, 309, 309, 309, 309, 309,
979 309, 310, 310, 310, 310, 310, 310, 310, 310, 311,
980 311, 312, 312, 313, 313, 314, 314, 314, 315, 315,
981 315, 316, 316, 316, 317, 317, 317, 317, 318, 318,
982 319, 319, 319, 319, 320, 320, 320, 320, 321, 321,
983 321, 321, 321, 321, 322, 323, 323, 323, 324, 324,
984 325, 326, 326, 326, 326, 326, 326, 326, 327, 327,
985 328, 328, 329, 329, 329, 329, 329, 329, 329, 329,
986 329, 329, 329, 330, 330, 330, 330, 330, 330, 330,
987 330, 330, 330, 331, 331, 331, 331, 332, 333, 333,
988 334, 334, 335, 336, 336, 338, 337, 340, 341, 339,
989 342, 343, 342, 344, 344, 345, 345, 346, 345, 345,
990 347, 348, 345, 349, 350, 345, 351, 352, 353, 354,
991 345, 355, 356, 345, 357, 345, 358, 345, 359, 345,
992 345, 345, 345, 345, 345, 345, 345, 345, 345, 345,
993 345, 345, 345, 345, 345, 345, 345, 345, 345, 345,
994 361, 362, 360, 364, 365, 363, 366, 366, 368, 369,
995 367, 370, 370, 371, 371, 372, 372, 372, 372, 373,
996 373, 373, 374, 374, 375, 375, 375, 376, 376, 377,
997 377, 378, 379, 379, 380, 380, 380, 381, 381, 381,
998 381, 381, 381, 381, 383, 382, 384, 384, 385, 385,
999 385, 385, 385, 386, 386, 387, 387, 387, 387, 387,
1000 387, 388, 388, 389, 389, 390, 391, 391, 392, 392,
1001 392, 393, 394, 394, 395, 395, 395, 395, 396, 397,
1002 397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
1003 397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
1004 397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
1005 397, 397, 397, 397
1008 static const short yyr2[] = { 0,
1009 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
1010 1, 0, 2, 2, 1, 1, 5, 4, 5, 4,
1011 0, 6, 0, 5, 1, 2, 1, 2, 0, 6,
1012 2, 3, 3, 3, 3, 4, 0, 5, 2, 3,
1013 1, 1, 2, 2, 1, 2, 0, 5, 3, 1,
1014 3, 1, 0, 2, 2, 3, 1, 3, 1, 3,
1015 1, 3, 2, 2, 2, 1, 1, 5, 4, 2,
1016 2, 3, 3, 2, 2, 3, 3, 2, 2, 2,
1017 2, 2, 1, 1, 1, 0, 1, 2, 0, 1,
1018 4, 3, 3, 0, 8, 5, 0, 9, 6, 0,
1019 8, 5, 0, 9, 6, 2, 2, 1, 2, 1,
1020 6, 4, 6, 4, 2, 1, 2, 2, 1, 2,
1021 1, 2, 2, 4, 2, 3, 0, 0, 1, 3,
1022 2, 3, 1, 4, 2, 4, 2, 4, 2, 1,
1023 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1024 1, 0, 6, 0, 6, 0, 5, 0, 5, 0,
1025 7, 0, 7, 0, 6, 0, 6, 0, 0, 5,
1026 5, 1, 1, 5, 5, 0, 1, 1, 0, 1,
1027 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1028 1, 1, 1, 3, 1, 3, 0, 1, 1, 0,
1029 7, 1, 1, 3, 4, 3, 0, 3, 1, 3,
1030 3, 3, 3, 1, 1, 1, 2, 2, 2, 2,
1031 2, 2, 2, 4, 2, 4, 2, 3, 3, 4,
1032 4, 5, 5, 6, 2, 4, 5, 2, 2, 6,
1033 3, 3, 3, 1, 3, 2, 3, 4, 1, 2,
1034 5, 1, 3, 3, 3, 3, 3, 3, 3, 3,
1035 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1036 3, 5, 3, 3, 1, 2, 1, 3, 3, 3,
1037 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1038 3, 3, 3, 3, 3, 5, 3, 3, 1, 2,
1039 3, 3, 1, 1, 1, 1, 1, 0, 5, 5,
1040 5, 5, 5, 1, 1, 1, 1, 2, 1, 2,
1041 2, 3, 4, 4, 1, 1, 1, 3, 1, 1,
1042 1, 1, 3, 3, 3, 0, 4, 4, 2, 4,
1043 2, 4, 2, 2, 1, 4, 1, 7, 7, 7,
1044 7, 4, 4, 2, 2, 2, 1, 4, 2, 2,
1045 5, 3, 2, 2, 5, 3, 5, 3, 4, 6,
1046 2, 1, 2, 1, 2, 1, 1, 1, 2, 0,
1047 2, 2, 3, 3, 3, 2, 2, 2, 1, 1,
1048 1, 2, 2, 2, 2, 1, 1, 1, 1, 2,
1049 2, 3, 3, 3, 4, 1, 2, 2, 2, 1,
1050 1, 1, 2, 2, 2, 1, 1, 2, 2, 3,
1051 1, 2, 1, 1, 1, 4, 4, 4, 4, 1,
1052 1, 1, 1, 3, 1, 3, 1, 3, 0, 4,
1053 0, 6, 3, 0, 4, 1, 3, 3, 0, 4,
1054 3, 0, 1, 1, 2, 6, 1, 3, 0, 1,
1055 4, 6, 4, 1, 1, 1, 1, 1, 3, 0,
1056 2, 1, 2, 3, 4, 1, 1, 3, 4, 3,
1057 5, 1, 4, 3, 3, 0, 3, 3, 3, 0,
1058 2, 2, 0, 6, 0, 5, 2, 2, 2, 0,
1059 0, 0, 10, 1, 0, 1, 0, 1, 1, 2,
1060 2, 2, 2, 2, 2, 2, 2, 2, 3, 4,
1061 3, 2, 3, 1, 0, 3, 2, 2, 1, 1,
1062 0, 2, 3, 1, 4, 1, 3, 1, 1, 2,
1063 2, 3, 3, 0, 1, 3, 2, 2, 1, 2,
1064 2, 2, 2, 2, 2, 2, 1, 2, 2, 3,
1065 2, 2, 4, 4, 2, 1, 5, 4, 1, 0,
1066 1, 3, 0, 1, 3, 1, 1, 1, 1, 4,
1067 4, 4, 4, 4, 3, 4, 4, 4, 4, 3,
1068 2, 1, 1, 3, 1, 3, 2, 1, 6, 0,
1069 2, 1, 2, 3, 3, 1, 3, 1, 2, 3,
1070 3, 2, 2, 3, 1, 4, 4, 3, 3, 2,
1071 1, 1, 2, 1, 1, 2, 2, 1, 2, 3,
1072 3, 2, 2, 3, 1, 3, 3, 2, 2, 3,
1073 1, 4, 3, 4, 3, 1, 2, 2, 2, 2,
1074 2, 2, 2, 1, 2, 4, 4, 2, 1, 1,
1075 1, 1, 2, 4, 2, 2, 2, 2, 1, 2,
1076 2, 2, 2, 3, 1, 2, 3, 4, 2, 2,
1077 2, 2, 2, 2, 4, 2, 1, 2, 2, 3,
1078 1, 3, 2, 3, 2, 2, 3, 1, 3, 4,
1079 1, 2, 3, 2, 2, 1, 3, 2, 2, 1,
1080 2, 3, 1, 3, 6, 4, 4, 3, 5, 3,
1081 3, 3, 2, 1, 1, 2, 2, 2, 0, 1,
1082 1, 2, 3, 1, 2, 0, 3, 0, 0, 5,
1083 1, 0, 2, 1, 1, 1, 2, 0, 4, 1,
1084 0, 0, 5, 0, 0, 7, 0, 0, 0, 0,
1085 12, 0, 0, 7, 0, 5, 0, 7, 0, 4,
1086 2, 2, 2, 3, 6, 8, 10, 8, 12, 10,
1087 10, 4, 3, 2, 2, 1, 1, 1, 1, 1,
1088 0, 0, 6, 0, 0, 5, 1, 2, 0, 0,
1089 5, 1, 1, 3, 3, 2, 2, 2, 2, 2,
1090 1, 2, 0, 1, 0, 1, 1, 0, 1, 1,
1091 3, 4, 1, 3, 0, 1, 1, 1, 2, 2,
1092 2, 1, 2, 2, 0, 3, 1, 1, 1, 2,
1093 2, 2, 4, 2, 2, 2, 2, 2, 2, 1,
1094 2, 1, 2, 1, 1, 0, 0, 1, 0, 4,
1095 2, 1, 1, 3, 0, 3, 3, 3, 1, 2,
1096 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1097 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1098 2, 2, 3, 2, 2, 2, 2, 3, 2, 2,
1099 4, 4, 3, 2
1102 static const short yydefact[] = { 3,
1103 12, 12, 5, 0, 4, 0, 305, 659, 660, 0,
1104 412, 424, 602, 0, 11, 0, 0, 0, 10, 509,
1105 869, 0, 0, 0, 168, 691, 306, 307, 83, 0,
1106 0, 856, 0, 45, 0, 0, 13, 25, 0, 27,
1107 8, 0, 16, 15, 89, 110, 86, 0, 661, 172,
1108 326, 303, 327, 635, 0, 399, 0, 398, 417, 0,
1109 437, 416, 454, 423, 0, 524, 525, 531, 530, 529,
1110 504, 411, 624, 425, 625, 108, 325, 646, 622, 0,
1111 662, 600, 0, 0, 304, 81, 82, 179, 665, 179,
1112 666, 179, 308, 168, 141, 142, 143, 144, 145, 495,
1113 497, 0, 687, 0, 498, 0, 0, 0, 0, 142,
1114 143, 144, 145, 23, 0, 0, 0, 0, 0, 0,
1115 0, 499, 669, 0, 675, 0, 0, 0, 37, 0,
1116 0, 31, 0, 0, 47, 0, 179, 667, 0, 0,
1117 0, 633, 628, 0, 0, 0, 632, 0, 0, 0,
1118 0, 326, 0, 317, 0, 0, 0, 325, 600, 28,
1119 0, 26, 3, 46, 0, 64, 412, 0, 0, 8,
1120 67, 63, 66, 89, 0, 0, 0, 423, 90, 14,
1121 0, 452, 0, 0, 470, 87, 79, 668, 606, 0,
1122 0, 600, 80, 0, 0, 0, 106, 0, 433, 389,
1123 615, 390, 621, 0, 600, 414, 413, 78, 109, 400,
1124 0, 435, 415, 107, 406, 430, 431, 401, 419, 421,
1125 410, 432, 0, 75, 455, 510, 511, 512, 513, 528,
1126 150, 149, 151, 515, 516, 173, 522, 514, 0, 0,
1127 517, 518, 531, 856, 527, 500, 603, 418, 0, 449,
1128 660, 0, 689, 172, 652, 653, 649, 627, 663, 0,
1129 305, 307, 648, 626, 647, 623, 0, 904, 900, 899,
1130 897, 879, 884, 885, 0, 891, 890, 876, 877, 875,
1131 894, 883, 880, 881, 882, 886, 887, 873, 874, 870,
1132 871, 872, 896, 888, 889, 878, 895, 0, 892, 802,
1133 417, 803, 865, 308, 602, 330, 378, 0, 0, 0,
1134 0, 0, 374, 372, 345, 376, 377, 0, 0, 0,
1135 0, 0, 306, 299, 0, 0, 187, 186, 0, 188,
1136 189, 0, 0, 190, 0, 0, 180, 181, 0, 249,
1137 0, 277, 185, 329, 216, 0, 0, 331, 332, 0,
1138 183, 396, 417, 397, 654, 357, 347, 0, 0, 0,
1139 0, 179, 0, 507, 493, 0, 688, 686, 275, 0,
1140 191, 252, 192, 0, 0, 0, 459, 3, 21, 29,
1141 683, 679, 680, 682, 684, 681, 141, 142, 143, 0,
1142 144, 145, 671, 672, 676, 673, 670, 0, 315, 316,
1143 314, 651, 650, 33, 32, 49, 0, 158, 0, 0,
1144 417, 156, 0, 0, 629, 631, 0, 630, 142, 143,
1145 301, 302, 321, 0, 639, 320, 0, 638, 0, 328,
1146 306, 307, 0, 0, 0, 319, 318, 643, 0, 0,
1147 12, 0, 168, 9, 9, 70, 0, 65, 0, 0,
1148 71, 74, 0, 451, 453, 122, 93, 127, 791, 0,
1149 85, 84, 92, 125, 0, 0, 123, 88, 0, 832,
1150 215, 0, 214, 827, 850, 0, 396, 417, 397, 0,
1151 826, 828, 857, 839, 0, 0, 645, 0, 0, 859,
1152 0, 0, 613, 608, 0, 612, 0, 0, 0, 0,
1153 0, 600, 452, 0, 77, 0, 600, 620, 0, 403,
1154 404, 0, 76, 452, 408, 407, 409, 402, 422, 439,
1155 438, 179, 519, 523, 521, 0, 526, 532, 0, 420,
1156 452, 600, 94, 0, 0, 0, 0, 600, 100, 601,
1157 634, 660, 690, 172, 0, 0, 893, 898, 419, 600,
1158 600, 0, 600, 0, 903, 179, 0, 0, 223, 0,
1159 225, 238, 239, 0, 0, 0, 0, 0, 0, 300,
1160 222, 219, 218, 220, 0, 0, 0, 0, 0, 329,
1161 0, 0, 0, 217, 177, 178, 323, 0, 221, 0,
1162 0, 250, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, 339, 0, 341, 343, 344, 382, 381,
1165 0, 0, 0, 0, 0, 227, 598, 0, 235, 379,
1166 371, 0, 0, 856, 360, 363, 364, 0, 0, 391,
1167 710, 706, 0, 0, 600, 600, 600, 393, 713, 0,
1168 658, 395, 0, 0, 394, 359, 0, 354, 373, 355,
1169 375, 655, 0, 356, 176, 176, 0, 166, 0, 417,
1170 164, 508, 595, 592, 0, 507, 593, 507, 0, 276,
1171 426, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 427, 428, 429, 465, 466,
1174 467, 464, 0, 457, 460, 0, 3, 0, 674, 179,
1175 677, 0, 41, 42, 0, 53, 0, 0, 57, 61,
1176 50, 855, 417, 53, 854, 59, 169, 154, 152, 169,
1177 176, 324, 637, 636, 328, 0, 640, 0, 18, 20,
1178 89, 9, 9, 73, 72, 0, 0, 380, 0, 736,
1179 91, 734, 476, 0, 472, 471, 0, 607, 604, 831,
1180 845, 834, 710, 706, 0, 846, 600, 849, 851, 0,
1181 0, 847, 0, 848, 605, 830, 844, 833, 829, 858,
1182 841, 852, 842, 835, 840, 644, 0, 658, 0, 642,
1183 609, 611, 610, 0, 0, 0, 0, 0, 0, 600,
1184 619, 0, 447, 446, 434, 618, 0, 859, 614, 405,
1185 436, 448, 452, 0, 520, 659, 660, 856, 856, 661,
1186 533, 534, 536, 856, 539, 538, 0, 566, 660, 0,
1187 557, 0, 0, 569, 0, 121, 116, 0, 172, 570,
1188 573, 0, 0, 549, 0, 119, 450, 859, 825, 179,
1189 179, 664, 179, 859, 825, 600, 97, 600, 103, 902,
1190 901, 865, 865, 865, 0, 0, 0, 0, 0, 0,
1191 0, 0, 0, 417, 0, 0, 0, 335, 0, 333,
1192 334, 0, 247, 182, 305, 659, 660, 306, 307, 0,
1193 0, 477, 505, 0, 298, 297, 817, 816, 0, 295,
1194 294, 292, 293, 291, 290, 289, 287, 288, 285, 286,
1195 280, 281, 282, 283, 284, 278, 279, 0, 0, 0,
1196 0, 0, 0, 0, 229, 244, 0, 0, 228, 600,
1197 600, 0, 600, 597, 698, 0, 0, 0, 0, 0,
1198 362, 0, 366, 0, 368, 0, 0, 709, 708, 701,
1199 705, 704, 855, 416, 0, 0, 723, 0, 0, 859,
1200 392, 859, 711, 600, 825, 0, 710, 706, 0, 0,
1201 600, 0, 416, 0, 0, 0, 0, 171, 175, 309,
1202 169, 162, 160, 169, 0, 496, 508, 591, 0, 213,
1203 212, 211, 210, 274, 273, 0, 271, 270, 268, 269,
1204 267, 266, 265, 262, 263, 264, 260, 261, 255, 256,
1205 257, 258, 259, 253, 254, 459, 0, 0, 24, 0,
1206 0, 678, 0, 38, 44, 43, 55, 52, 53, 0,
1207 48, 0, 0, 54, 515, 0, 159, 169, 169, 157,
1208 170, 322, 17, 19, 69, 89, 440, 140, 146, 133,
1209 147, 148, 0, 126, 129, 0, 0, 0, 0, 735,
1210 729, 473, 0, 124, 0, 709, 705, 710, 706, 0,
1211 416, 622, 0, 600, 711, 0, 710, 706, 0, 329,
1212 0, 654, 0, 853, 0, 0, 861, 0, 0, 0,
1213 0, 444, 617, 616, 443, 176, 541, 540, 856, 856,
1214 856, 0, 600, 825, 565, 558, 570, 559, 452, 452,
1215 555, 556, 553, 554, 600, 825, 305, 659, 0, 439,
1216 117, 561, 571, 576, 577, 439, 439, 0, 0, 439,
1217 115, 562, 574, 439, 0, 452, 0, 550, 551, 552,
1218 452, 96, 0, 0, 0, 0, 102, 0, 859, 825,
1219 859, 825, 867, 866, 868, 310, 346, 224, 226, 0,
1220 352, 353, 0, 0, 0, 0, 334, 337, 0, 0,
1221 0, 0, 248, 0, 338, 340, 342, 242, 241, 231,
1222 0, 230, 246, 0, 0, 695, 693, 0, 696, 0,
1223 236, 0, 0, 179, 369, 0, 0, 0, 702, 707,
1224 703, 714, 600, 722, 720, 721, 712, 859, 0, 718,
1225 0, 0, 656, 657, 710, 706, 0, 358, 167, 169,
1226 169, 165, 596, 594, 494, 0, 458, 456, 305, 0,
1227 22, 30, 685, 56, 51, 58, 62, 60, 155, 153,
1228 68, 0, 131, 0, 135, 0, 137, 0, 139, 0,
1229 792, 0, 203, 737, 0, 730, 731, 0, 474, 0,
1230 709, 705, 710, 706, 0, 600, 627, 711, 0, 657,
1231 354, 355, 655, 356, 843, 837, 838, 836, 862, 863,
1232 0, 0, 0, 0, 0, 0, 441, 174, 0, 543,
1233 542, 537, 859, 0, 560, 470, 470, 859, 0, 0,
1234 0, 452, 452, 0, 452, 452, 0, 452, 0, 548,
1235 501, 0, 470, 600, 312, 311, 313, 600, 99, 0,
1236 105, 0, 0, 0, 0, 0, 0, 0, 480, 0,
1237 478, 251, 296, 0, 232, 233, 243, 245, 694, 692,
1238 699, 697, 0, 237, 0, 0, 361, 365, 367, 859,
1239 716, 600, 717, 163, 161, 272, 0, 461, 463, 132,
1240 130, 0, 0, 0, 0, 468, 0, 0, 305, 659,
1241 660, 738, 751, 754, 757, 762, 0, 0, 0, 0,
1242 0, 0, 0, 0, 306, 786, 794, 0, 813, 790,
1243 789, 788, 0, 746, 0, 0, 417, 0, 725, 744,
1244 750, 724, 745, 787, 0, 732, 475, 709, 705, 0,
1245 711, 334, 0, 860, 445, 0, 535, 112, 600, 564,
1246 568, 114, 600, 452, 452, 585, 470, 305, 659, 0,
1247 572, 578, 579, 439, 439, 470, 470, 0, 470, 575,
1248 490, 563, 859, 859, 600, 600, 240, 0, 0, 0,
1249 0, 479, 0, 0, 234, 700, 370, 311, 719, 859,
1250 0, 134, 136, 138, 799, 793, 797, 0, 733, 728,
1251 206, 806, 808, 809, 0, 0, 742, 0, 0, 0,
1252 769, 771, 772, 773, 0, 0, 0, 0, 0, 0,
1253 0, 807, 0, 388, 814, 0, 747, 386, 439, 0,
1254 387, 0, 439, 0, 0, 0, 204, 727, 726, 748,
1255 785, 784, 710, 706, 0, 0, 864, 442, 859, 859,
1256 584, 581, 583, 0, 0, 452, 452, 452, 580, 582,
1257 567, 0, 95, 101, 859, 859, 348, 349, 350, 351,
1258 481, 599, 715, 462, 0, 798, 469, 195, 0, 739,
1259 752, 741, 0, 0, 0, 0, 0, 765, 0, 774,
1260 0, 783, 39, 145, 34, 145, 0, 35, 795, 0,
1261 384, 385, 0, 0, 0, 383, 205, 742, 416, 111,
1262 113, 452, 452, 590, 470, 470, 492, 0, 491, 486,
1263 98, 104, 0, 800, 202, 0, 417, 0, 742, 0,
1264 755, 743, 729, 811, 758, 0, 0, 0, 0, 770,
1265 782, 40, 36, 0, 0, 749, 589, 587, 586, 588,
1266 0, 0, 503, 0, 0, 0, 196, 439, 740, 207,
1267 753, 209, 0, 812, 0, 810, 763, 767, 766, 796,
1268 818, 818, 0, 489, 488, 482, 86, 89, 804, 805,
1269 801, 452, 729, 193, 0, 0, 199, 0, 198, 742,
1270 0, 0, 0, 819, 820, 0, 775, 0, 487, 0,
1271 208, 0, 756, 759, 764, 768, 0, 0, 0, 0,
1272 0, 818, 0, 485, 0, 484, 200, 194, 0, 0,
1273 823, 0, 778, 821, 0, 0, 776, 483, 0, 0,
1274 822, 0, 0, 0, 0, 0, 201, 760, 824, 780,
1275 781, 0, 777, 0, 0, 761, 779, 0, 0, 0
1278 static const short yydefgoto[] = { 1728,
1279 441, 2, 442, 165, 750, 335, 181, 3, 4, 37,
1280 717, 378, 1400, 718, 844, 1401, 1402, 398, 1500, 722,
1281 41, 845, 407, 728, 1037, 729, 730, 731, 43, 172,
1282 173, 44, 460, 184, 180, 45, 46, 859, 1160, 865,
1283 1162, 47, 847, 848, 185, 186, 461, 757, 1064, 1065,
1284 673, 1066, 235, 48, 1049, 1048, 740, 737, 1231, 1230,
1285 994, 991, 136, 1047, 49, 237, 50, 988, 587, 336,
1286 337, 338, 339, 1403, 1666, 1560, 1668, 1606, 1709, 1264,
1287 1641, 1663, 371, 980, 340, 625, 939, 341, 372, 373,
1288 343, 344, 362, 52, 256, 723, 423, 154, 53, 54,
1289 345, 582, 346, 347, 348, 349, 462, 350, 1404, 520,
1290 646, 351, 1405, 56, 218, 476, 352, 219, 489, 220,
1291 198, 211, 60, 503, 521, 1426, 813, 1296, 199, 212,
1292 61, 531, 814, 62, 63, 713, 714, 715, 1377, 467,
1293 902, 903, 1657, 1658, 1633, 1599, 1542, 64, 678, 364,
1294 529, 1451, 1600, 1182, 674, 65, 66, 67, 68, 69,
1295 243, 70, 71, 245, 831, 832, 833, 834, 852, 1147,
1296 853, 854, 855, 1132, 1142, 1133, 1441, 1134, 1135, 1442,
1297 1443, 675, 676, 677, 626, 970, 354, 192, 501, 494,
1298 201, 73, 74, 75, 142, 143, 157, 77, 132, 355,
1299 356, 357, 79, 358, 81, 836, 123, 124, 125, 536,
1300 105, 82, 359, 944, 945, 965, 960, 649, 1408, 1409,
1301 1265, 1266, 1267, 761, 1410, 1071, 1411, 1485, 1609, 1563,
1302 1564, 1412, 1413, 1588, 1486, 1610, 1487, 1643, 1488, 1645,
1303 1699, 1724, 1489, 1670, 1619, 1671, 1569, 463, 758, 1375,
1304 1414, 1503, 1624, 1476, 1477, 1555, 1636, 1608, 1604, 1415,
1305 1615, 1506, 909, 1673, 1674, 1675, 1702, 480, 966, 795,
1306 1096, 1288, 482, 483, 484, 791, 485, 148, 793, 800,
1307 1290, 1291, 555, 84, 85
1310 static const short yypact[] = { 130,
1311 156,-32768,-32768, 4151,-32768, 94, 37, 244, 251, 159,
1312 182,-32768,-32768, 1746,-32768, 152, 246, 268,-32768,-32768,
1313 -32768, 1423, 1547, 2462, 321,-32768, 332, 360,-32768, 2363,
1314 2363,-32768, 3048,-32768, 4151, 327,-32768,-32768, 379,-32768,
1315 437, 4320,-32768,-32768, 416, 877, 520, 477, 534,-32768,
1316 -32768,-32768,-32768, 399, 2057,-32768, 5440,-32768, 1217, 676,
1317 -32768, 577,-32768,-32768, 2122, 710,-32768, 550,-32768,-32768,
1318 568, 6081,-32768,-32768,-32768, 985,-32768,-32768,-32768, 2423,
1319 -32768,-32768, 2053, 3983, 555,-32768,-32768, 11853,-32768, 11853,
1320 -32768, 11853,-32768,-32768,-32768, 244, 251, 332, 629,-32768,
1321 573, 534,-32768, 718,-32768, 279, 11944, 11944, 621,-32768,
1322 -32768,-32768,-32768,-32768, 596, 665, 476, 547, 656, 672,
1323 692,-32768,-32768, 1842,-32768, 984, 244, 251,-32768, 332,
1324 629,-32768, 1528, 2151, 684, 7804, 11853,-32768, 11853, 3494,
1325 3728,-32768,-32768, 3433, 3821, 3728,-32768, 1752, 4168, 4168,
1326 3048, 674, 679,-32768, 399, 735, 683, 687,-32768,-32768,
1327 799,-32768, 706,-32768, 4926,-32768,-32768, 321, 4517, 725,
1328 -32768,-32768,-32768, 416, 7212, 8001, 790, 765,-32768,-32768,
1329 740, 577, 832, 122, 292, 807,-32768,-32768,-32768, 6640,
1330 10259,-32768,-32768, 5804, 5804, 4260, 985, 854,-32768,-32768,
1331 418,-32768,-32768, 3515,-32768,-32768,-32768,-32768,-32768, 1217,
1332 883,-32768, 577, 985,-32768,-32768,-32768, 2653, 1217,-32768,
1333 577,-32768, 7212,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1334 -32768,-32768,-32768, 795,-32768, 534,-32768, 577, 2016, 2029,
1335 -32768,-32768, 550,-32768,-32768,-32768,-32768, 1111, 279,-32768,
1336 308, 1084,-32768, 89,-32768,-32768,-32768,-32768,-32768, 5924,
1337 -32768, 629,-32768,-32768,-32768,-32768, 3662,-32768, 784, 794,
1338 -32768,-32768,-32768,-32768, 819,-32768,-32768,-32768,-32768,-32768,
1339 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1340 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 821,-32768,-32768,
1341 1111, 6081, 428,-32768, 802,-32768,-32768, 12673, 12764, 12855,
1342 12855, 843,-32768,-32768,-32768,-32768,-32768, 847, 879, 884,
1343 887, 889, 875, 12035, 2103, 12855,-32768,-32768, 12855,-32768,
1344 -32768, 12855, 9071,-32768, 12855, 426, 906,-32768, 12855,-32768,
1345 12126,-32768, 4315, 301, 2540, 2158, 12217,-32768, 957, 1025,
1346 -32768, 671, 2721, 5994,-32768, 304,-32768, 1741, 3385, 426,
1347 426, 11853, 7804, 780,-32768, 2103,-32768,-32768, 12309, 873,
1348 919,-32768, 12902, 886, 890, 896, 2166, 706,-32768,-32768,
1349 -32768,-32768,-32768,-32768,-32768,-32768, 665, 476, 547, 2103,
1350 656, 672, 932, 692,-32768, 954,-32768, 458, 244, 251,
1351 -32768,-32768,-32768,-32768,-32768,-32768, 8150,-32768, 7212, 8596,
1352 1927,-32768, 426, 673,-32768,-32768, 4716,-32768, 940, 948,
1353 -32768,-32768,-32768, 3728,-32768,-32768, 3728,-32768, 917,-32768,
1354 -32768,-32768, 735, 735, 735,-32768,-32768,-32768, 5924, 99,
1355 923, 935,-32768,-32768,-32768,-32768, 7804,-32768, 885, 916,
1356 -32768,-32768, 799,-32768, 577,-32768,-32768,-32768,-32768, 112,
1357 -32768,-32768,-32768,-32768, 9622, 12309,-32768,-32768, 939,-32768,
1358 919, 941, 12902, 365, 1908, 8001, 1908, 4907, 3029, 964,
1359 -32768, 414, 7008, 975, 983, 802,-32768, 955, 312, 105,
1360 4574, 6322,-32768,-32768, 6322,-32768, 7110, 7110, 4260, 6833,
1361 969,-32768, 577, 7212,-32768, 10350,-32768,-32768, 7617, 2653,
1362 1217, 7212,-32768, 577,-32768,-32768, 577, 2653,-32768, 1038,
1363 -32768, 11853, 795,-32768,-32768, 2016,-32768, 1913, 4668, 1111,
1364 577,-32768,-32768, 994, 1003, 1024, 1006,-32768,-32768,-32768,
1365 -32768, 779,-32768, 320, 973, 980,-32768,-32768, 1111,-32768,
1366 -32768, 247,-32768, 576,-32768, 11853, 12309, 9071,-32768, 9071,
1367 -32768,-32768,-32768, 12309, 11944, 7023, 7023, 7023, 7023, 4315,
1368 -32768,-32768,-32768,-32768, 987, 12400, 12400, 9071, 990, 167,
1369 997, 1048, 1007,-32768,-32768,-32768,-32768, 11853,-32768, 9162,
1370 9071,-32768, 12035, 12035, 9713, 12035, 12035, 12035, 12035, 12035,
1371 12035, 12035, 12035, 12035, 12035, 12035, 12035, 12035, 12035, 12035,
1372 12035, 12035, 12035,-32768, 12309,-32768,-32768,-32768,-32768,-32768,
1373 12309, 12309, 12309, 11944, 4087, 404, 912, 10441,-32768,-32768,
1374 -32768, 1062, 1084, 1113, 388, 439, 482, 3832, 576,-32768,
1375 3192, 3192, 2277, 10532, 1030, 1076,-32768,-32768, 587, 11121,
1376 1867,-32768, 537, 279,-32768,-32768, 12309,-32768,-32768,-32768,
1377 -32768,-32768, 62, 555,-32768,-32768, 426,-32768, 7212, 2393,
1378 -32768,-32768, 1064,-32768, 1018, 1070,-32768, 780, 932, 12973,
1379 -32768, 9986, 10077, 12309, 12309, 9713, 12309, 12309, 12309, 12309,
1380 12309, 12309, 12309, 12309, 12309, 12309, 12309, 12309, 12309, 12309,
1381 12309, 12309, 12309, 12309, 12309,-32768,-32768,-32768,-32768,-32768,
1382 -32768,-32768, 68,-32768, 1039, 1036, 706, 458, 1078, 11853,
1383 -32768, 1086,-32768,-32768, 2151, 1621, 1114, 188, 1087, 1088,
1384 -32768,-32768, 5097, 2122,-32768, 1090,-32768,-32768,-32768,-32768,
1385 -32768,-32768,-32768,-32768, 1052, 1055,-32768, 1098,-32768,-32768,
1386 416,-32768,-32768,-32768,-32768, 100, 1634, 1101, 1048,-32768,
1387 -32768,-32768,-32768, 5217, 12973,-32768, 1061,-32768,-32768,-32768,
1388 -32768,-32768, 2405, 2405, 6302,-32768,-32768,-32768,-32768, 3515,
1389 2053,-32768, 11213,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1390 -32768, 983, 1105,-32768,-32768,-32768, 11489, 1076, 507,-32768,
1391 -32768,-32768,-32768, 6322, 6322, 7865, 7865, 6833, 537,-32768,
1392 -32768, 7617,-32768, 1107,-32768,-32768, 1063, 105,-32768, 2653,
1393 -32768,-32768, 577, 1099,-32768, 476, 547,-32768,-32768, 692,
1394 1120,-32768,-32768, 293,-32768,-32768, 2293,-32768, 788, 1163,
1395 -32768, 12309, 5559,-32768, 5559, 131, 131, 349, 512, 2892,
1396 7219, 69, 4778,-32768, 201, 131,-32768, 105, 8523, 11853,
1397 11853,-32768, 11853, 105, 8523,-32768,-32768,-32768,-32768,-32768,
1398 -32768, 871, 871, 871, 1456, 426, 1079, 1081, 1082, 12928,
1399 1085, 1091, 1102, 2781, 1116, 1125, 1126,-32768, 1095,-32768,
1400 -32768, 1096,-32768,-32768, 1133, 544, 750, 503, 269, 12309,
1401 1143,-32768, 1151, 1104, 4315, 4315,-32768,-32768, 1150, 3219,
1402 7860, 8164, 6898, 4606, 3237, 3082, 1926, 1926, 2626, 2626,
1403 976, 976, 488, 488, 488,-32768,-32768, 1108, 1119, 1121,
1404 1124, 1127, 1134, 7023, 404,-32768, 9622, 12309,-32768,-32768,
1405 -32768, 12309,-32768,-32768, 1135, 12855, 1130, 1156, 1172, 1205,
1406 -32768, 12309,-32768, 12309,-32768, 12309, 1274, 6023,-32768,-32768,
1407 6023,-32768, 80, 1274, 1147, 1149,-32768, 1148, 7023, 105,
1408 -32768, 105, 6189,-32768, 8523, 10623, 11305, 11305, 4425, 1154,
1409 12126, 1157, 3127, 4839, 3385, 1721, 1160,-32768,-32768,-32768,
1410 -32768,-32768,-32768,-32768, 12309,-32768, 2103,-32768, 1171,-32768,
1411 12973,-32768, 12973, 12973, 12973, 1206, 8800, 5600, 10647, 5869,
1412 6344, 5132, 6543, 3109, 3109, 3109, 2965, 2965, 1295, 1295,
1413 900, 900, 900,-32768,-32768, 2166, 1164, 12491,-32768, 1178,
1414 1220,-32768, 426,-32768,-32768,-32768,-32768,-32768, 2264, 8150,
1415 -32768, 7023, 11853,-32768, 898, 12035,-32768,-32768,-32768,-32768,
1416 -32768,-32768,-32768,-32768,-32768, 416,-32768,-32768, 665,-32768,
1417 656, 672, 12309, 1228,-32768, 521, 543, 564, 1048,-32768,
1418 85,-32768, 169,-32768, 3322, 3446, 3446, 3602, 3602, 6302,
1419 3799, 374, 3515,-32768, 4986, 6548, 11397, 11397, 8885, 412,
1420 1182, 575, 2260,-32768, 9622, 9256,-32768, 7023, 1302, 1302,
1421 3172,-32768,-32768,-32768, 1229,-32768,-32768,-32768,-32768,-32768,
1422 -32768, 2024,-32768, 8523, 12973,-32768, 1891,-32768, 577, 577,
1423 -32768,-32768,-32768,-32768,-32768, 8523, 711, 754, 12309, 1038,
1424 -32768, 1233,-32768,-32768,-32768, 184, 217, 2423, 3821, 375,
1425 131, 1235,-32768, 508, 1237, 577, 5688,-32768,-32768,-32768,
1426 577,-32768, 1188, 426, 426, 426,-32768, 1194, 105, 8523,
1427 105, 8523,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 7023,
1428 -32768,-32768, 1210, 1211, 1221, 1222, 1052,-32768, 8601, 9622,
1429 9349, 1201,-32768, 12035,-32768,-32768,-32768,-32768,-32768, 605,
1430 1212,-32768,-32768, 1216, 177, 535, 535, 1208, 535, 12309,
1431 -32768, 12855, 1317, 11853,-32768, 1226, 1227, 1231,-32768,-32768,
1432 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 105, 1232,-32768,
1433 1225, 3127,-32768,-32768, 5346, 5346, 6785,-32768,-32768,-32768,
1434 -32768,-32768, 12973,-32768,-32768, 12309,-32768,-32768, 206, 1236,
1435 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 4315,-32768,-32768,
1436 -32768, 1239,-32768, 1051,-32768, 12309,-32768, 12309,-32768, 12309,
1437 -32768, 2103,-32768,-32768, 6439, 1304,-32768, 9440,-32768, 3799,
1438 3446, 3446, 5457, 5457, 6903,-32768, 597, 4986, 1250, 208,
1439 599, 610, 660, 287,-32768,-32768,-32768,-32768,-32768,-32768,
1440 207, 5338, 5338, 2861, 2861, 9622,-32768,-32768, 1913,-32768,
1441 -32768,-32768, 105, 1256,-32768, 1276, 1276, 105, 1264, 12309,
1442 12309, 8398, 577, 3329, 577, 577, 6719, 577, 5329,-32768,
1443 -32768, 5811, 1276,-32768,-32768, 1288,-32768,-32768,-32768, 1266,
1444 -32768, 1273, 1277, 12309, 12309, 12309, 12309, 9622,-32768, 1319,
1445 -32768,-32768, 4315, 12309,-32768, 605,-32768,-32768,-32768,-32768,
1446 -32768,-32768, 1275,-32768, 1340, 426,-32768,-32768,-32768, 105,
1447 -32768,-32768,-32768,-32768,-32768, 12973, 12309,-32768,-32768,-32768,
1448 -32768, 1284, 1290, 1298, 1307,-32768, 931, 213, 1345, 810,
1449 856,-32768,-32768,-32768,-32768,-32768, 12309, 1346, 1349, 1351,
1450 11580, 606, 2103, 756, 715,-32768,-32768, 11671, 1404,-32768,
1451 -32768,-32768, 1354,-32768, 7438, 7610, 8259, 7367,-32768,-32768,
1452 1400,-32768,-32768,-32768, 10732,-32768,-32768, 7824, 7824, 537,
1453 7970, 664, 7023,-32768,-32768, 9622,-32768,-32768,-32768,-32768,
1454 -32768,-32768,-32768, 8398, 8398,-32768, 1276, 745, 858, 12309,
1455 -32768,-32768,-32768, 1038, 1038, 1276, 1276, 779, 1276,-32768,
1456 -32768,-32768, 105, 105,-32768,-32768,-32768, 1312, 1313, 1315,
1457 1323,-32768, 9622, 1314,-32768,-32768,-32768,-32768,-32768, 105,
1458 1325,-32768,-32768,-32768,-32768, 1307,-32768, 2103,-32768,-32768,
1459 -32768,-32768,-32768,-32768, 580, 580, 1048, 1342, 1343, 7648,
1460 -32768,-32768,-32768,-32768, 1376, 12309, 1379, 1377, 1389, 2306,
1461 2334,-32768, 1048,-32768,-32768, 1357,-32768,-32768, 1038, 958,
1462 -32768, 961, 1038, 11762, 974, 242,-32768,-32768,-32768,-32768,
1463 -32768,-32768, 8040, 8040, 8353, 2506,-32768,-32768, 105, 105,
1464 -32768,-32768,-32768, 12309, 12309, 8398, 577, 577,-32768,-32768,
1465 -32768, 8690,-32768,-32768, 105, 105,-32768,-32768,-32768,-32768,
1466 -32768,-32768,-32768,-32768, 1358,-32768,-32768,-32768, 11944,-32768,
1467 -32768,-32768, 1439, 11028, 8980, 11944, 12309,-32768, 10840,-32768,
1468 1396,-32768,-32768, 1403,-32768, 1389, 2306,-32768,-32768, 799,
1469 -32768,-32768, 12582, 12582, 9531,-32768,-32768, 1048, 2506,-32768,
1470 -32768, 8398, 8398,-32768, 1276, 1276,-32768, 10168,-32768,-32768,
1471 -32768,-32768, 8536,-32768,-32768, 1355, 111, 7212, 1048, 10934,
1472 -32768,-32768, 85,-32768,-32768, 1398, 1356, 12951, 10840,-32768,
1473 -32768,-32768,-32768, 1307, 87,-32768,-32768,-32768,-32768,-32768,
1474 1360, 8749, 1369, 1366, 1367, 1048,-32768, 1038,-32768,-32768,
1475 -32768,-32768, 593,-32768, 9804,-32768,-32768,-32768,-32768, 1307,
1476 1472, 1472, 1424,-32768,-32768,-32768, 520, 416,-32768,-32768,
1477 -32768, 577, 85,-32768, 12309, 1429,-32768, 1440,-32768, 1048,
1478 10840, 1391, 622, 1443,-32768, 186,-32768, 163,-32768, 1435,
1479 -32768, 1394,-32768,-32768,-32768,-32768, 12309, 799, 1445, 1472,
1480 799, 1472, 1447,-32768, 112,-32768,-32768,-32768, 9895, 1401,
1481 957, 261,-32768,-32768, 270, 662,-32768,-32768, 9622, 1402,
1482 -32768, 799, 1451, 1457, 799, 1459,-32768,-32768, 957,-32768,
1483 -32768, 281,-32768, 10934, 1461,-32768,-32768, 1517, 1523,-32768
1486 static const short yypgoto[] = {-32768,
1487 1524,-32768, -331, 1359, -380, -1, 9, 1525,-32768, 1491,
1488 -32768,-32768, 415,-32768, 513,-32768, 515,-32768, 29, 817,
1489 52, 22,-32768,-32768, -663,-32768,-32768, 498, 54, 1371,
1490 1106, 1378, -751, -111, -169, 10, 48,-32768,-32768,-32768,
1491 -32768,-32768, 705,-32768,-32768,-32768,-32768,-32768,-32768, 305,
1492 -2,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1493 -32768,-32768, 1464, -704, 7613, 1332, 67, -617, -159, -42,
1494 1433, -548,-32768, 1258,-32768, 88,-32768, -1440,-32768, -1497,
1495 -148,-32768, 1731, 516, -266,-32768, -873, 7436, 5570, 6893,
1496 1442, 4981, 1280, -334, -55, -73, 203, -121, -70, 197,
1497 -32768,-32768,-32768, -345,-32768, -146,-32768,-32768, -1308, -54,
1498 -337, 2771, 41, 1118, -140, 47, 96, -202, -4, -65,
1499 -171, -167, 31, -44, 185,-32768, -387,-32768,-32768,-32768,
1500 -32768,-32768, 552, 1297, 171,-32768, 554,-32768,-32768, -998,
1501 -436, 828,-32768,-32768,-32768,-32768,-32768, -20,-32768,-32768,
1502 -32768,-32768,-32768,-32768, 920, -384,-32768,-32768,-32768,-32768,
1503 -32768,-32768,-32768, 1352,-32768, 298, 491,-32768,-32768,-32768,
1504 453, -776,-32768,-32768,-32768,-32768,-32768,-32768, 759,-32768,
1505 294, 936,-32768, 625, 998, 1680, 24, 1428, 1940, 1344,
1506 -32768, -511,-32768, 23, 1697, 1173, -131, 408, -101, 5492,
1507 1281,-32768, 6698, 2501, 2878, -17, -102,-32768, 1508, -52,
1508 -32768, 6046, 3777, -351,-32768, 2483, -61,-32768,-32768, 225,
1509 -32768,-32768, 370, -53, -369,-32768,-32768,-32768,-32768, -1473,
1510 -32768, -1306, -1471,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1511 -32768,-32768,-32768,-32768,-32768,-32768,-32768, -38,-32768,-32768,
1512 -32768,-32768,-32768, 20, -1391,-32768,-32768, -57,-32768,-32768,
1513 -32768,-32768, -656, -1465,-32768, -45, -1546, -577, -109, 855,
1514 -32768,-32768,-32768,-32768, -396,-32768, -386, -186,-32768, 380,
1515 223,-32768, -418,-32768, -196
1519 #define YYLAST 13058
1522 static const short yytable[] = { 59,
1523 197, 182, 35, 449, 448, 122, 1069, 511, 450, 257,
1524 735, 101, 36, 661, 440, 651, 835, 425, 428, 115,
1525 736, 178, 734, 397, 660, 42, 303, 72, 766, 1006,
1526 59, 250, 405, 35, 437, 1050, 103, 59, 222, 894,
1527 169, 559, 561, 36, 55, 530, 716, 360, 989, 361,
1528 57, 174, 210, 141, 146, 537, 42, 528, 72, 403,
1529 404, 1192, 234, 42, 751, 72, 1116, 248, 1118, 510,
1530 1044, 396, 177, 257, 592, 55, 1148, 402, 518, 301,
1531 481, 57, 175, 353, 1556, 353, 735, 353, 176, 1504,
1532 762, 770, 1612, 170, 413, 171, 792, 630, 549, 58,
1533 313, 1519, 353, 353, 209, 264, 1145, 302, 1522, 630,
1534 630, 88, 759, 540, 1626, 1644, 26, 1262, 216, 217,
1535 197, 393, 457, 1051, 14, 1617, 822, 1026, 367, -1,
1536 58, 411, 353, 257, 353, 1639, 538, 58, 1642, 771,
1537 651, 1651, 772, 857, 1705, 421, 254, 20, 178, 1652,
1538 549, 798, 516, 519, 86, -2, 23, 15, 640, 72,
1539 59, -439, 664, 1694, 59, 1681, 799, 169, 1722, 514,
1540 760, 210, 424, 427, 445, 1027, 409, 1146, 174, 300,
1541 -380, 539, 410, 408, 458, 478, 1676, 893, 72, 222,
1542 42, -439, 72, 1263, 1653, -439, 1685, 222, 222, 177,
1543 665, 666, 87, 797, 1669, 55, 748, 1057, -389, 175,
1544 15, 57, 892, 479, 614, 176, 459, 492, 495, -328,
1545 170, -380, 171, 209, 640, 458, 1706, 222, 1268, 155,
1546 94, 58, 225, 93, -328, 153, 523, 525, -328, -439,
1547 1691, -390, -389, 15, 107, 1067, -389, 1040, 1692, 535,
1548 127, 128, 1642, 741, 742, -328, 1614, 459, 1556, 615,
1549 58, 1149, 1620, 1041, 58, 1367, 1423, -328, -328, 797,
1550 -328, 264, -328, 1480, -319, -390, 636, 1269, -389, -390,
1551 222, 1153, 8, 9, 1348, 477, 1229, 1158, 627, 1232,
1552 648, 652, 655, 1693, 635, 366, 724, 248, 89, 1110,
1553 -328, -328, 1480, 130, 131, 91, 756, 1430, 1431, 1150,
1554 225, -390, 1649, 1368, 1424, -328, 1345, 661, 90, 667,
1555 1712, 1481, 571, 138, 1452, 92, 225, 253, 353, 1712,
1556 1111, -145, 222, 544, -304, 130, 131, 719, 108, 464,
1557 1712, 301, 1039, 1249, 1250, 155, 155, 155, 614, 248,
1558 1587, 656, 426, 429, 738, 532, 465, 353, 670, 640,
1559 109, 304, 91, 679, 1686, 425, 428, 868, 1713, 302,
1560 820, 1055, 1056, 1121, 712, 1244, 770, 1714, 437, -304,
1561 -304, 264, 92, 225, 466, 1030, 72, 679, 1725, 1070,
1562 222, 225, 155, 615, -304, 135, 657, 1219, 153, -120,
1563 533, 15, 733, 669, 797, 210, 137, 1122, 225, 410,
1564 668, 1123, 869, 778, 138, 648, 652, 655, 38, 161,
1565 776, -621, 782, 784, 771, 786, 178, 772, 727, -855,
1566 479, 127, 128, -120, 139, 951, 537, -120, 1533, 162,
1567 158, 300, 59, 1124, 516, 519, 189, 1539, 1540, 38,
1568 1541, 936, 516, 1163, 1164, 1165, 753, 222, 58, -326,
1569 261, 399, 400, 10, 519, 189, -621, -621, 937, -120,
1570 72, 210, 1465, 787, 248, 823, 788, 177, 733, 824,
1571 952, -621, 26, 519, 130, 131, 953, 175, 1298, 222,
1572 222, 190, 191, 176, 1247, 163, 938, 222, 550, 21,
1573 1193, 585, 477, 586, -326, -326, 479, 990, 551, 222,
1574 190, 506, 26, 876, 27, 262, 39, 353, 40, -319,
1575 804, 805, 179, 825, 59, 1364, 1365, 843, 222, 955,
1576 382, 954, -118, 164, 15, 581, 1304, 187, 127, 128,
1577 8, 9, 58, 540, 183, 1148, 32, 39, 1309, 40,
1578 90, 353, 72, 353, 1097, 353, 158, 158, 158, 1125,
1579 353, 884, 884, 884, 884, -144, -118, 627, 1255, 850,
1580 -118, 612, 613, 353, 956, 851, 846, 137, 477, 127,
1581 128, 1054, 1330, 353, 1332, 366, 353, 901, 188, 26,
1582 1257, 130, 131, 130, 131, 849, 1629, 1630, 89, 1098,
1583 835, 383, -118, 158, 1126, 940, -142, 18, 95, 110,
1584 111, 1259, 244, 1256, 992, 941, 724, 253, 90, 353,
1585 301, 92, -646, 1036, 58, 225, 246, 1558, 942, 304,
1586 949, 365, 130, 131, 974, 1258, 426, 746, 733, 661,
1587 1664, 1107, 1108, 735, -620, 478, -305, 1112, 302, 222,
1588 660, 1035, 936, 736, 379, 734, 1260, -303, 1285, 1287,
1589 380, 225, 112, 113, 958, 961, 479, -646, -646, 937,
1590 225, 652, 1559, 479, 127, 128, 264, 1033, 784, 975,
1591 976, 549, -646, 138, 1688, 1665, 1496, 225, 815, -620,
1592 -620, -305, -305, 155, 155, 155, 821, 938, 1344, 1261,
1593 426, 429, -303, -303, -620, 472, -305, -647, 122, 257,
1594 384, -328, 222, 377, 592, 353, 1166, -303, 640, 381,
1595 300, 8, 9, 1038, 1715, 26, 385, 130, 131, 1689,
1596 137, 1045, 588, 454, 397, 223, 224, 261, 477, 1068,
1597 10, 641, 1067, 1339, 1341, 477, 386, 661, 585, 481,
1598 586, 642, -647, -647, 516, 481, -328, -328, 1282, 406,
1599 581, 901, 581, 643, 644, 18, 366, -647, 241, 1716,
1600 733, -322, 242, 1310, 130, 131, 21, 1502, 478, 426,
1601 889, -319, 95, 110, 111, 88, 430, 835, 664, 137,
1602 438, 431, 432, 581, -641, 1131, 1076, 1077, 479, 222,
1603 129, 1119, 1120, 264, 91, 433, 479, 1534, 89, 307,
1604 26, 1151, -143, 1499, -7, 434, 1311, 1154, 1155, 88,
1605 1156, 164, 652, 32, 92, 452, 866, 435, 90, 1099,
1606 1100, 1341, 453, 91, 456, 1113, 112, 113, 59, 672,
1607 59, 843, 91, 843, 1349, 1350, 210, 1352, 59, 223,
1608 451, 843, 982, 92, 733, 353, 353, 798, 353, 1425,
1609 733, 437, 92, 222, 89, 481, 72, 468, 72, 522,
1610 477, 867, 1483, 1243, 127, 128, 72, 545, 477, 540,
1611 1114, 547, 479, 850, 90, 1117, 1251, 546, 479, 851,
1612 846, 851, 846, 850, 557, 1209, 1284, 1130, 1140, 851,
1613 846, 1462, 1209, 15, 158, 158, 158, -439, 1616, 849,
1614 91, 849, 89, 504, 505, 127, 128, 849, 1484, 849,
1615 1535, 1209, 1299, 1300, 1301, 26, 1695, 130, 131, 884,
1616 92, 548, 90, 1195, -184, 564, -439, -439, 58, 565,
1617 58, 550, 512, 513, 504, 754, 425, 428, 58, 137,
1618 -184, 551, -184, 566, 477, 425, 428, -52, 567, 437,
1619 477, 568, -52, 569, 884, 588, 26, 630, 130, 131,
1620 733, 155, 522, -52, 478, 512, 755, 153, 682, 155,
1621 681, 767, 940, 704, 705, 1091, 116, 117, 118, 1528,
1622 1478, 1479, 941, 706, 1325, 1326, 1327, 707, 479, 982,
1623 958, 961, 479, 708, 481, 942, 720, 264, 721, 426,
1624 746, 15, 257, 1209, 90, -439, 481, 504, 1581, 1209,
1625 512, 1582, 92, 712, 745, 631, 1551, 261, 399, 400,
1626 10, -6, 632, 504, 1586, 733, 1038, 884, 353, -854,
1627 119, 120, 1710, 749, -439, -439, 768, 794, 769, -439,
1628 481, 1058, 481, 1059, 826, 827, 609, 610, 611, 612,
1629 613, 727, 1131, 479, 15, 796, 21, 257, 860, 798,
1630 477, 785, 877, 633, 477, 733, 811, 861, 862, 26,
1631 863, 27, 262, 870, 478, 1313, 95, 110, 111, 534,
1632 871, 1315, 1316, 884, 888, 1313, 1318, 890, 1060, 1316,
1633 437, 1271, 1272, 479, 891, 26, 760, 1061, 1062, 733,
1634 1271, 1272, 479, 634, 893, 264, 948, 1562, 216, 217,
1635 950, 733, 969, 971, 14, 21, 996, 225, 995, 997,
1636 928, 1028, 1032, 1579, 225, 477, 929, 479, 931, 932,
1637 112, 113, 59, 1063, 1029, 843, 1034, 20, 437, 479,
1638 20, 1042, 1043, 225, 1046, 733, 23, 733, 1053, -322,
1639 1209, 1356, 1052, 458, 1130, 884, 127, 128, 1074, 1095,
1640 72, 1102, 987, 1103, 1106, 477, 76, 1173, 1340, 1109,
1641 426, 889, 158, 479, 477, 479, 1167, 850, 1168, 1169,
1642 158, 1174, 1171, 851, 846, -141, 1468, 1104, 1172, 353,
1643 1175, 1176, 1177, 1178, 254, 1180, 735, 76, 1209, 477,
1644 1181, 1183, 1184, 849, 76, 1185, 1635, 26, 1562, 130,
1645 131, 477, 733, 215, 216, 217, 1186, 202, 1200, 214,
1646 14, 1187, 1188, 1510, 1189, 1515, 1068, 1152, 1512, 1562,
1647 1202, 1190, 58, 1157, 1203, 225, 1204, 18, 958, 961,
1648 479, 225, 1205, 20, 1212, 477, 1213, 477, 1214, 1376,
1649 1407, 1223, 23, 1398, 1224, 1340, 1661, 1228, 1236, 798,
1650 733, 1238, 1717, 1399, 155, 155, 155, 127, 128, 1235,
1651 1242, 426, 429, 155, 155, 155, 1241, 1254, 72, 1280,
1652 426, 1279, 1314, 1297, 1319, 1324, 1418, 1419, 479, 1320,
1653 1562, 1328, 1334, 1335, 18, 8, 9, 475, 412, 1342,
1654 247, 1406, 415, 1336, 1337, 1099, 1100, 59, 1351, 1346,
1655 843, 640, 477, 1347, 1355, 762, 140, 140, 26, 156,
1656 130, 131, 18, 1357, 1358, 1363, 1262, 76, 1359, 1362,
1657 465, 76, -685, 1369, 641, 72, 1370, 202, 214, 1215,
1658 1509, 1216, 1509, 213, 642, 221, 26, 1422, 130, 131,
1659 58, 238, 850, 1429, 370, 375, 643, 644, 851, 846,
1660 477, 1433, 1292, 1455, 1105, 701, 702, 703, 704, 705,
1661 1456, 1463, 1293, 544, 1457, 1466, 222, 1467, 849, 1497,
1662 1498, 1472, 225, 1407, 1294, 202, 1398, 1473, 200, 1537,
1663 1538, 210, 1475, 1407, 549, 1474, 1398, 1482, 1491, 1492,
1664 1407, 1493, 1505, 1398, 1507, 1520, 1399, 58, 884, 1547,
1665 1548, 72, 1549, 1399, 1552, 95, 110, 111, 426, 746,
1666 1550, 72, 1554, 1625, 1565, 1566, 1570, 140, 72, 1572,
1667 225, 380, 140, 1573, 1406, 156, 156, 156, 488, 1580,
1668 1603, 425, 428, 1194, 1406, 1611, 1621, 1622, 1646, 127,
1669 128, 1406, 1637, 1647, 1209, 225, 1654, 1206, 514, 1207,
1670 1656, 1208, 213, 1659, 1660, 1557, 426, 746, 455, 112,
1671 113, 114, 1672, 1687, 1677, 158, 158, 158, 1679, 1683,
1672 491, 491, 500, 58, 158, 158, 158, 1575, 1578, 1697,
1673 1684, 1698, 1690, 58, 366, 1703, 221, 1707, 1711, 1718,
1674 58, 1720, 130, 131, 517, 221, 1729, 1721, 200, 1723,
1675 733, 1727, 1730, 1, 475, 160, 5, 1209, 447, 1577,
1676 261, 399, 400, 10, 1031, 671, 543, 1245, 1329, 446,
1677 1331, 1701, 444, 1240, 1701, 1678, 1418, 1419, 479, 116,
1678 117, 118, 752, 1638, 1607, 1141, 140, 363, 1371, 1407,
1679 1407, 1607, 1398, 1398, 1407, 1719, 200, 1398, 1701, 21,
1680 524, 414, 1399, 1561, 1623, 1726, 252, 1399, 1252, 1237,
1681 353, 202, 302, 556, 27, 262, 222, 72, 72, 302,
1682 579, 1073, 72, 1662, 527, 998, 1427, 1361, 733, 1322,
1683 475, 26, 1302, 119, 120, 1407, 804, 805, 1398, 1143,
1684 1406, 1406, 1450, 999, 1407, 1406, 32, 1398, 1399, 76,
1685 477, 1234, 935, 387, 388, 389, 479, 1399, 507, 156,
1686 637, 395, 1518, 72, 1058, 1416, 1059, 826, 827, 1696,
1687 1607, 1708, 72, 1650, 1704, 1527, 1094, 202, 779, 202,
1688 202, 0, 0, 0, 300, 790, 1406, 0, 0, 58,
1689 58, 300, 0, 415, 58, 1406, 1407, 0, 302, 1398,
1690 1306, 1307, 0, 0, 0, 26, 202, 391, 392, 1399,
1691 0, 1060, 1428, 0, 202, 0, 0, 1432, 26, 0,
1692 1061, 1062, -128, -128, 72, 0, 225, 1321, 477, 0,
1693 0, 856, 1323, 0, 0, 58, 213, 221, 0, 0,
1694 155, 0, 0, 0, 58, 0, 1091, 1406, 0, 1407,
1695 140, 0, 1398, 140, 8, 9, 1063, 147, 0, 156,
1696 156, 156, 1399, 0, 0, 140, 0, 0, 0, 1469,
1697 300, 0, 0, 261, 8, 9, 10, 72, 95, 96,
1698 97, 0, 200, 0, 95, 419, 420, 0, 0, 225,
1699 475, 260, 0, 817, 0, 570, 58, 475, 0, 366,
1700 1406, 1372, 213, 1373, 221, 1374, 0, 130, 131, 155,
1701 155, 155, 21, 0, 0, 0, 426, 1279, 491, 252,
1702 0, 491, 0, 500, 500, 500, 0, 27, 262, 455,
1703 26, 543, 98, 99, 100, 491, 517, 221, 98, 113,
1704 455, 0, 0, 0, 517, 579, 0, 579, 200, 58,
1705 200, 200, 881, 0, 0, 0, 0, 455, 0, 32,
1706 0, 0, 1543, 1544, 801, 579, 0, 416, 439, 0,
1707 0, 202, 418, 801, 387, 388, 389, 200, 579, 1553,
1708 0, 0, 908, 0, 156, 200, 156, 0, 0, 0,
1709 0, 0, 0, 1436, 1437, 0, 1446, 1447, 0, 1449,
1710 0, 490, 156, 156, 156, -600, 0, 0, -600, 930,
1711 0, 0, 1471, 0, 509, 947, 0, 156, 0, 0,
1712 390, 147, 475, 1127, 1128, 9, 10, 0, 391, 392,
1713 475, 968, 0, 0, 0, 202, 0, 0, 1590, 1591,
1714 7, 8, 9, 10, 971, 116, 826, 827, 0, 828,
1715 471, 158, 0, 0, 1601, 1602, -600, 0, -600, -600,
1716 0, -600, 21, 215, 216, 217, 0, 957, 957, 964,
1717 14, 0, -600, 908, -600, 26, 983, 27, 28, 21,
1718 829, 1305, 0, 1129, 0, 640, 541, 18, 0, -600,
1719 -600, 194, 26, 20, 27, 28, 221, 26, 0, 119,
1720 120, 195, 23, 0, -600, 0, 475, 0, 773, 32,
1721 0, 0, 475, 196, 0, 1531, 1532, 739, 774, 0,
1722 158, 158, 158, 0, 0, 0, 32, 0, 0, 0,
1723 775, 644, 605, 606, 607, 608, 609, 610, 611, 612,
1724 613, 0, 200, 0, 0, 856, 0, 856, 95, 96,
1725 97, 0, 1137, 1144, 0, 856, 116, 826, 827, 221,
1726 238, 95, 96, 97, 905, 906, 0, 910, 911, 912,
1727 913, 914, 915, 916, 917, 918, 919, 920, 921, 922,
1728 923, 924, 925, 926, 927, 261, 8, 9, 10, 7,
1729 8, 9, 10, 0, 366, 0, 0, 0, 0, 1075,
1730 1075, 1081, 98, 99, 0, 0, 200, 0, 26, 1081,
1731 119, 120, 0, 0, 0, 98, 99, 1594, 1595, 1596,
1732 0, 0, 475, 156, 21, 0, 475, 0, 21, 0,
1733 491, 491, 500, 500, 500, 95, 110, 111, 491, 27,
1734 262, 26, 0, 27, 28, 0, 517, 193, 0, 455,
1735 743, 0, 0, 744, 95, 96, 97, 194, 226, 227,
1736 228, 0, 0, 493, 496, 747, 0, 195, 0, 0,
1737 0, 32, 0, 1627, 1628, 32, 0, 213, 0, 196,
1738 0, 0, 18, 261, 399, 400, 10, 475, 229, 112,
1739 113, 8, 9, 0, 0, 12, 13, 0, 95, 110,
1740 111, 14, 709, 710, 711, 0, 26, 0, 98, 99,
1741 230, 812, 0, 0, 0, 16, 818, 17, 416, 0,
1742 0, 418, 21, 1136, 20, 0, 471, 475, 0, 1198,
1743 0, 0, 0, 23, 0, 541, 475, 27, 262, 0,
1744 0, 858, 26, 1680, 130, 131, 623, 864, 0, 0,
1745 0, 0, 112, 113, 231, 232, 233, 0, 0, 872,
1746 873, 475, 874, 1221, 0, 0, 579, 0, 0, 32,
1747 0, 0, 0, 475, 0, 0, 0, 415, 0, 0,
1748 624, 0, 0, 0, 957, 0, 0, 957, 0, 0,
1749 0, 0, 1281, 8, 9, 10, 95, 110, 111, 957,
1750 226, 227, 228, 1222, 1222, 983, 0, 475, 0, 475,
1751 8, 9, 0, 167, 12, 13, 0, 471, 470, 1137,
1752 14, 0, 0, 0, 18, 116, 826, 827, 313, 659,
1753 229, 21, 0, 0, 16, 0, 17, 18, 95, 110,
1754 111, 0, 0, 20, 26, 0, 27, 262, 0, 856,
1755 112, 113, 23, 0, 640, 972, 973, 0, 0, 0,
1756 972, 26, 0, 130, 131, 238, 95, 110, 111, 0,
1757 0, 0, 0, 0, 475, 471, 579, 641, 32, 119,
1758 120, 471, 0, 471, 471, 0, 0, 642, 0, 0,
1759 0, 0, 112, 1574, 0, 7, 127, 128, 10, 643,
1760 644, 13, 1075, 1075, 1270, 1270, 1081, 0, 0, 0,
1761 471, 1075, 0, 1270, 1270, 1081, 0, 471, 0, 0,
1762 112, 1576, 475, 18, 0, 1295, 1295, 1295, 0, 215,
1763 216, 217, 0, 0, 21, 0, 14, 7, 8, 9,
1764 10, 0, 0, 13, 0, 455, 455, 26, 801, 27,
1765 28, 0, 0, 18, 801, 7, 8, 251, 10, 20,
1766 0, 802, 0, 30, 803, 18, 493, 496, 23, 0,
1767 0, 0, 455, 31, 0, 0, 21, 455, 819, 0,
1768 0, 32, 640, 993, 0, 33, 1085, 1353, 0, 26,
1769 1136, 27, 28, 0, 21, 127, 128, 0, 0, 0,
1770 147, 252, 0, 0, 0, 773, 0, 0, 0, 27,
1771 28, 0, 0, 0, 0, 774, 1445, 1248, 0, 1101,
1772 0, 1445, 0, 32, 856, 0, 0, 775, 644, 0,
1773 743, 744, 0, 253, 80, 0, 129, 0, 747, 8,
1774 9, 32, 0, 471, 104, 0, 26, 0, 130, 131,
1775 0, 1222, 1222, 983, 133, 0, 0, 471, 0, 0,
1776 144, 144, 0, 144, 0, 80, 18, 0, 0, 0,
1777 0, 0, 80, 0, 0, 1159, 0, 1161, 0, 0,
1778 0, 0, 0, 640, 0, 204, 0, 80, 0, 0,
1779 26, 0, 130, 131, 0, 239, 0, 1075, 1075, 1270,
1780 1270, 1081, 104, 0, 1075, 0, 1523, 202, 1513, 202,
1781 0, 0, 0, 267, 104, 0, 1524, 616, 1295, 1295,
1782 1295, 1458, 1459, 1460, 1461, 0, 0, 0, 1525, 644,
1783 0, 1464, 0, 0, 0, 0, 104, 0, 455, 455,
1784 0, 455, 455, 801, 455, 0, 0, 0, 0, 1196,
1785 1197, 0, 1199, 0, 0, 1343, 617, 618, 0, 0,
1786 619, 620, 621, 622, 133, 0, 80, 0, 801, 0,
1787 144, 144, 475, 0, 0, 417, 144, 0, 1495, 144,
1788 144, 144, 0, 1218, 0, 0, 0, 1444, 0, 515,
1789 216, 217, 0, 0, 0, 80, 14, 0, 471, 80,
1790 0, 0, 0, 0, 0, 204, 80, 0, 0, 0,
1791 0, 0, 471, 18, 471, 0, 471, 0, 0, 20,
1792 0, 0, 0, 0, 204, 204, 204, 0, 23, 0,
1793 0, 0, 213, 221, 607, 608, 609, 610, 611, 612,
1794 613, 0, 493, 496, 1526, 1526, 0, 1526, 0, 0,
1795 475, 0, 0, 204, 127, 128, 0, 0, 216, 217,
1796 455, 455, 0, 0, 14, 0, 0, 0, 0, 0,
1797 526, 0, 0, 802, 803, 493, 496, 0, 200, 104,
1798 200, 819, 0, 1571, 0, 0, 0, 20, 471, 0,
1799 144, 0, 0, 1278, 0, 0, 23, 0, 640, 0,
1800 0, 0, 416, 418, 0, 26, 0, 130, 131, 0,
1801 202, 541, 0, 0, 127, 128, 0, 0, 216, 217,
1802 0, 641, 1303, 471, 14, 0, 0, 0, 0, 0,
1803 0, 642, 104, 552, 1308, 0, 0, 0, 0, 0,
1804 500, 0, 0, 650, 644, 0, 1605, 20, 0, 1526,
1805 1526, 1589, 908, 1605, 0, 0, 23, 0, 640, 0,
1806 0, 0, 455, 455, 455, 26, 0, 130, 131, 0,
1807 0, 0, 579, 0, 0, 0, 104, 0, 0, 0,
1808 638, 641, 552, 552, 653, 0, 0, 0, 0, 0,
1809 0, 642, 0, 80, 8, 9, 0, 0, 0, 801,
1810 0, 0, 0, 643, 644, 0, 0, 374, 376, 500,
1811 500, 500, 0, 0, 0, 0, 0, 0, 455, 455,
1812 0, 18, 1360, 0, 1127, 1128, 9, 10, 133, 0,
1813 0, 0, 1605, 0, 0, 0, 0, 104, 0, 204,
1814 104, 0, 0, 0, 0, 26, 0, 130, 131, 0,
1815 0, 0, 1682, 0, 144, 0, 0, 144, 0, 0,
1816 0, 1292, 801, 21, 0, 0, 0, 0, 0, 144,
1817 0, 1293, 0, 0, 1700, 0, 26, 80, 27, 28,
1818 0, 200, 0, 1294, 1129, 1421, 908, 259, 455, 0,
1819 474, 0, 194, 0, 0, 0, 0, 743, 744, 0,
1820 0, 0, 195, 0, 747, 204, 780, 204, 204, 653,
1821 32, 259, 0, 780, 196, 0, 471, 0, 471, 0,
1822 471, 204, 204, 0, 0, 204, 0, 204, 204, 204,
1823 809, 0, 0, 1453, 204, 0, 0, 1454, 0, 204,
1824 259, 0, 204, 0, 0, 802, 803, 493, 496, 0,
1825 0, 259, 0, 0, 819, 0, 493, 496, 0, 80,
1826 0, -411, 8, 9, -411, -411, 12, 247, 802, 803,
1827 819, 1470, 14, 699, 700, 701, 702, 703, 704, 705,
1828 7, 127, 128, 10, 875, 0, 16, 0, 17, -411,
1829 0, 0, 0, 0, 0, 20, 104, 104, 104, 104,
1830 -411, 0, 0, 0, 23, 0, 640, 0, 18, 0,
1831 0, 259, 0, 26, 0, 130, 131, 0, 0, 21,
1832 0, 0, 0, 0, 0, 0, 0, 471, 0, 641,
1833 0, 0, 26, 583, 27, 28, 0, 0, 1529, 642,
1834 0, 0, 1530, 0, 0, 0, 259, -411, 149, 0,
1835 0, 643, 644, 959, 962, 104, 0, 552, 150, 261,
1836 127, 128, 10, 0, 1545, 1546, 32, 0, 0, 638,
1837 151, 552, 552, 653, 259, 0, 0, 0, 0, 0,
1838 984, 0, 0, 0, 986, 603, 604, 18, 605, 606,
1839 607, 608, 609, 610, 611, 612, 613, 0, 21, 204,
1840 0, 0, 0, 0, 640, 8, 9, 732, 0, 0,
1841 540, 26, 0, 27, 262, 697, 698, 699, 700, 701,
1842 702, 703, 704, 705, 0, 127, 128, 1225, 0, 0,
1843 13, 0, 18, 0, 0, 0, 0, 1226, 0, 0,
1844 802, 803, 493, 496, 0, 32, 0, 819, 133, 1227,
1845 644, 0, 18, 0, 0, 133, 26, 0, 130, 131,
1846 0, 493, 496, 204, 239, 259, 0, 0, 0, 640,
1847 0, 0, 1292, 0, 471, 0, 26, 0, 130, 131,
1848 0, 0, 1293, 732, 0, 959, 962, 0, 0, 0,
1849 0, 0, 641, 0, 1294, 0, 0, 0, 0, 0,
1850 0, 0, 642, 204, 204, 1083, 0, 0, 0, 0,
1851 0, 1086, 0, 1083, 643, 644, 597, 598, 599, 600,
1852 601, 602, 603, 604, 259, 605, 606, 607, 608, 609,
1853 610, 611, 612, 613, 204, 204, 809, 809, 809, 602,
1854 603, 604, 204, 605, 606, 607, 608, 609, 610, 611,
1855 612, 613, 0, 0, 7, 8, 9, 10, 878, 0,
1856 879, 1438, 1439, 9, 10, 882, 883, 885, 886, 887,
1857 133, 0, 0, 80, 0, 80, 0, 0, 583, 0,
1858 1138, 80, 18, 80, 0, 0, 0, 802, 803, 104,
1859 819, 904, 0, 21, 0, 104, 0, 0, 0, 640,
1860 21, 0, 552, 552, 552, 0, 26, 0, 27, 28,
1861 0, 0, 0, 26, 552, 27, 28, 658, 8, 9,
1862 10, 1440, 773, 0, 933, 0, 0, 0, 0, 194,
1863 0, 0, 774, 259, 0, 0, 0, 0, 0, 195,
1864 32, 0, 0, 963, 775, 644, 0, 32, 0, 0,
1865 963, 196, 0, 313, 659, 0, 21, 0, 0, 259,
1866 0, 0, 0, 0, 104, 7, 127, 128, 10, 26,
1867 1210, 130, 131, 1211, 0, 0, 0, 0, 7, 8,
1868 9, 10, 0, 0, 247, 1217, 0, 552, 552, 959,
1869 962, 552, 493, 496, 552, 0, 0, 0, 0, 104,
1870 0, 0, 0, 552, 21, 104, 18, 984, 984, 984,
1871 0, 252, 0, 552, 0, 1086, 0, 21, 0, 27,
1872 28, 0, 0, 640, 0, 0, 7, 127, 128, 10,
1873 26, 0, 27, 28, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 253, 0, 259, 773, 7, 8, 9,
1875 10, 32, 493, 496, 18, 0, 774, 0, 0, 0,
1876 259, 0, 0, 0, 32, 21, 0, 0, 775, 644,
1877 104, 0, 104, 0, 0, 963, 0, 0, 26, 0,
1878 27, 28, 0, 963, 0, 0, 21, 0, 1210, 1211,
1879 959, 962, 0, 252, 30, 0, 0, 1217, 0, 959,
1880 962, 27, 28, 0, 31, 204, 204, 204, 204, 204,
1881 1083, 809, 32, 0, 0, 204, 33, 1083, 1083, 1083,
1882 0, 0, 0, 1086, 0, 253, 0, 0, 104, 809,
1883 809, 809, 0, 32, 7, 8, 9, 10, 0, 0,
1884 13, 0, 0, 0, 104, 0, 0, 1138, 0, 0,
1885 0, 0, 0, 0, 0, 0, 104, 0, 0, 474,
1886 0, 0, 18, 0, 0, 474, 0, 0, 0, 1317,
1887 0, 0, 0, 21, 0, 0, 0, 80, 0, 640,
1888 0, 0, 0, 0, 0, 0, 26, 259, 27, 28,
1889 104, 0, 104, 0, 261, 8, 542, 10, 0, 0,
1890 104, 0, 1078, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 1079, 0, 0, 0, 259, 0, 0, 0,
1892 32, 0, 0, 0, 1080, 644, 552, 552, 0, 552,
1893 0, 0, 0, 21, 1191, 0, 0, 959, 962, 0,
1894 252, 0, 0, 0, 0, 0, 0, 0, 27, 262,
1895 0, 0, 552, 0, 0, 552, 552, 653, 0, 0,
1896 7, 127, 128, 10, 0, 0, 247, 0, 0, 904,
1897 0, 0, 543, 0, 0, 474, 0, 0, 0, 963,
1898 32, 0, 259, 1210, 1211, 959, 962, 0, 18, 0,
1899 1217, 0, 0, 0, 0, 0, 0, 0, 0, 21,
1900 809, 204, 204, 809, 809, 1420, 0, 0, 204, 0,
1901 83, 0, 26, 0, 27, 28, 0, 0, 0, 0,
1902 106, 0, 809, 809, 809, 809, 0, 0, 30, 126,
1903 134, 261, 8, 9, 10, 0, 145, 145, 31, 145,
1904 732, 83, 1246, 0, 204, 0, 32, 0, 83, 144,
1905 33, 0, 80, 261, 127, 128, 10, 0, 0, 18,
1906 0, 145, 0, 83, 261, 127, 128, 10, 0, 0,
1907 21, 240, 0, 0, 0, 0, 640, 0, 249, 0,
1908 963, 0, 0, 26, 0, 27, 262, 0, 0, 963,
1909 249, 259, 21, 259, 0, 0, 0, 0, 1289, 1273,
1910 0, 0, 0, 21, 0, 0, 0, 27, 262, 1274,
1911 252, 0, 0, 0, 474, 0, 0, 32, 27, 262,
1912 0, 1275, 644, 0, 0, 0, 474, 0, 0, 0,
1913 1210, 1211, 0, 1217, 0, 204, 780, 204, 0, 32,
1914 0, 0, 83, 0, 0, 0, 145, 145, 809, 809,
1915 32, 809, 145, 104, 0, 145, 145, 145, 0, 0,
1916 474, 0, 474, 0, 0, 0, 0, 0, 0, 0,
1917 1333, 83, 0, 0, 0, 83, 0, 0, 0, 0,
1918 0, 145, 83, 0, 0, 0, 0, 0, 0, 0,
1919 259, 0, 0, 259, 0, 0, 0, 0, 0, 0,
1920 145, 145, 145, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 268, 0, 0, 8, 9, 0, 0,
1922 12, 13, 0, 0, 0, 0, 14, 963, 0, 145,
1923 0, 0, 0, 0, 0, 959, 962, 0, 0, 0,
1924 16, 0, 17, 0, 1083, 259, 0, 0, 0, 20,
1925 0, 269, 270, 809, 809, 1420, 809, 0, 23, 0,
1926 271, 0, 0, 0, 0, 0, 145, 26, 0, 130,
1927 131, 0, 272, 0, 0, 963, 273, 274, 275, 276,
1928 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1929 287, 288, 289, 290, 291, 292, 293, 0, 0, 294,
1930 295, 296, 0, 297, 0, 0, 298, 0, 249, 554,
1931 0, 0, 0, 1083, 1083, 1083, 0, 0, 0, 809,
1932 8, 9, 299, 0, 12, 13, 0, 0, 0, 0,
1933 14, 0, 0, 104, 0, 0, 0, 0, 204, 0,
1934 0, 0, 0, 0, 16, 0, 17, 0, 0, 0,
1935 0, 0, 249, 20, 0, 0, 639, 0, 554, 554,
1936 654, 0, 23, 0, 0, 663, 0, 0, 0, 83,
1937 0, 26, 0, 130, 131, 0, 0, 0, 0, 0,
1938 0, 6, 0, 7, 8, 9, 10, 11, 12, 13,
1939 0, 0, 0, 0, 14, 0, 0, 0, 0, 0,
1940 7, 127, 128, 10, 725, 0, 13, 15, 16, 934,
1941 17, 18, 19, 249, 0, 145, 249, 20, 0, 0,
1942 0, 0, 21, 1289, 259, 22, 23, 24, 18, 25,
1943 145, 0, 0, 145, 0, 26, 0, 27, 28, 21,
1944 0, 29, 0, 0, 0, 145, 0, 0, 0, 0,
1945 0, 30, 26, 83, 27, 28, 0, 0, 0, 0,
1946 0, 31, 0, 0, 0, 0, 0, 0, 149, 32,
1947 0, 0, 0, 33, 0, 0, 0, 34, 150, 0,
1948 0, 145, 781, 145, 145, 654, 32, 0, 0, 781,
1949 151, 0, 7, 8, 9, 10, 0, 145, 145, 0,
1950 0, 145, 0, 145, 145, 145, 554, 0, 0, 0,
1951 145, 0, 0, 0, 0, 145, 0, 0, 145, 0,
1952 18, 0, 0, 0, 0, 963, 0, 259, 0, 0,
1953 0, 21, 0, 0, 837, 83, 0, 0, 0, 0,
1954 0, 0, 0, 0, 26, 0, 27, 28, 0, 0,
1955 166, 0, 7, 8, 9, 10, 167, 12, 13, 0,
1956 497, 0, 0, 14, 0, 0, 0, 0, 0, 0,
1957 498, 0, 249, 249, 249, 249, 0, 16, 32, 17,
1958 18, 19, 499, 0, 0, 583, 20, 0, 0, 0,
1959 0, 21, 0, 0, 0, 23, 0, 0, 168, 0,
1960 0, 0, 0, 732, 26, 0, 27, 28, 593, 594,
1961 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
1962 30, 605, 606, 607, 608, 609, 610, 611, 612, 613,
1963 31, 249, 0, 554, 0, 0, 0, 0, 32, 0,
1964 0, 0, 33, 0, 0, 0, 34, 554, 554, 654,
1965 0, 0, 0, 0, 0, 575, 985, 261, 8, 9,
1966 10, 167, 12, 305, 306, 307, 470, 308, 14, 663,
1967 0, 0, 0, 0, 0, 145, 0, 0, 0, 0,
1968 0, 0, 16, 309, 17, 18, 19, 0, 310, 311,
1969 312, 20, 0, 313, 314, 315, 21, 316, 317, 0,
1970 23, 0, 640, 0, 318, 319, 320, 321, 322, 26,
1971 0, 27, 262, -336, 0, 0, 369, 0, 0, 0,
1972 0, 0, 325, 0, 725, 977, 0, 0, 0, 0,
1973 0, 0, 126, 327, 328, 978, 0, 0, 0, 145,
1974 240, 330, 331, 332, 0, 0, 0, 979, 644, 7,
1975 8, 9, 10, 167, 12, 13, 0, 0, 0, 0,
1976 14, 0, 0, 837, 334, 0, 0, 0, 0, 0,
1977 0, 0, 0, 0, 16, 0, 17, 18, 19, 145,
1978 145, 781, 0, 20, 0, 0, 0, 0, 21, 1093,
1979 0, 0, 23, 0, 0, 168, 0, 0, 0, 0,
1980 0, 26, 0, 27, 28, 0, 7, 8, 9, 10,
1981 145, 145, 554, 554, 554, 0, 0, 30, 145, 0,
1982 0, 0, 0, 0, 0, 0, 0, 31, 0, 0,
1983 0, 0, 0, 0, 18, 32, 0, 0, 0, 33,
1984 0, 0, 0, 34, 0, 21, 134, 0, 0, 83,
1985 0, 83, 0, 0, 0, 0, 1139, 83, 26, 83,
1986 27, 28, 0, 0, 0, 249, 0, 0, 0, 0,
1987 0, 249, 0, 0, 194, 0, 0, 0, 554, 554,
1988 554, 0, 0, 0, 195, 0, 0, 0, 0, 0,
1989 554, 0, 32, 0, 0, 0, 196, 0, 838, 0,
1990 7, 8, 839, 10, 167, 12, 13, 601, 602, 603,
1991 604, 14, 605, 606, 607, 608, 609, 610, 611, 612,
1992 613, 0, 0, 0, 0, 16, 0, 17, 18, 19,
1993 0, 0, 0, 0, 20, -544, 0, 0, 0, 21,
1994 249, 0, 0, 23, 840, 0, 168, 0, 261, 127,
1995 128, 10, 26, 0, 27, 28, 0, 0, 841, 0,
1996 842, 0, 0, 554, 554, 0, 0, 554, 30, 0,
1997 554, 0, 0, 0, 0, 249, 0, 0, 31, 554,
1998 0, 249, 0, 985, 985, 985, 32, 21, 0, 554,
1999 33, 663, 0, 0, 252, 0, 0, 0, 0, 0,
2000 0, 0, 27, 262, 0, 0, -544, 0, 838, 0,
2001 7, 8, 839, 10, 167, 12, 13, 0, 0, 0,
2002 0, 14, 0, 0, 0, 0, 543, 0, 0, 0,
2003 0, 0, 0, 0, 32, 16, 0, 17, 18, 19,
2004 0, 0, 0, 0, 20, -545, 249, 0, 249, 21,
2005 0, 0, 0, 23, 840, 0, 168, 0, 0, 0,
2006 0, 0, 26, 0, 27, 28, 0, 0, 841, 0,
2007 842, 261, 8, 9, 10, 0, 0, 0, 30, 0,
2008 0, 145, 145, 145, 145, 145, 781, 554, 31, 0,
2009 0, 145, 0, 1093, 1093, 1093, 32, 0, 0, 663,
2010 33, 0, 0, 0, 249, 554, 554, 554, 0, 0,
2011 21, 0, 0, 0, 0, 0, -545, 252, 837, 0,
2012 249, 0, 0, 1139, 0, 27, 262, 0, 0, 0,
2013 0, 0, 249, 0, 0, 0, 0, 0, 0, 7,
2014 8, 9, 10, 215, 216, 217, 0, 0, 0, 253,
2015 14, 0, 0, 83, 0, 0, 6, 32, 7, 8,
2016 9, 10, 11, 12, 13, 0, 249, 18, 249, 14,
2017 0, 0, 0, 20, 0, 0, 249, 0, 21, 0,
2018 0, 0, 23, 16, 640, 17, 18, 0, 0, 0,
2019 0, 26, 20, 27, 28, 0, 0, 21, 0, 0,
2020 0, 23, 554, 554, 443, 554, 0, 773, 0, 0,
2021 26, 0, 27, 28, 51, 0, 29, 774, 7, 8,
2022 9, 10, 0, 0, 540, 32, 30, 0, 554, 783,
2023 644, 554, 554, 654, 0, 0, 31, 0, 0, 0,
2024 51, 51, 0, 152, 32, 51, 18, 0, 33, 0,
2025 0, 0, 51, 0, 0, 0, 0, 21, 0, 0,
2026 837, 0, 0, 640, 0, 51, 0, 51, 0, 0,
2027 26, 0, 27, 28, 0, 0, 554, 145, 145, 554,
2028 554, 654, 0, 0, 145, 0, 773, 0, 0, 0,
2029 255, 0, 0, 263, 0, 0, 774, 0, 554, 554,
2030 554, 554, 0, 0, 32, 837, 0, 0, 775, 644,
2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2032 145, 0, 0, 0, 0, 145, 0, 0, 83, 7,
2033 8, 9, 10, 215, 216, 217, 0, 0, 0, 0,
2034 14, 0, 0, 401, 401, 0, 51, 0, 0, 0,
2035 51, 51, 0, 0, 255, 263, 51, 18, 0, 152,
2036 152, 152, 0, 20, 0, 0, 436, 0, 21, 0,
2037 0, 0, 23, 0, 640, 51, 0, 0, 0, 51,
2038 0, 26, 0, 27, 28, 51, 51, 0, 0, 0,
2039 0, 0, 0, 0, 0, 0, 0, 773, 0, 0,
2040 1501, 0, 0, 0, 51, 51, 152, 774, 0, 0,
2041 0, 145, 781, 145, 255, 32, 0, 0, 0, 775,
2042 644, 0, 0, 0, 554, 554, 0, 554, 0, 249,
2043 0, 0, 0, 51, 693, 694, 695, 696, 697, 698,
2044 699, 700, 701, 702, 703, 704, 705, 763, 0, 895,
2045 896, 897, 10, 0, 12, 486, 306, 307, 0, 308,
2046 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2047 51, 0, 0, 0, 16, 309, 17, 255, 19, 0,
2048 310, 311, 312, 20, 0, 313, 314, 315, 21, 316,
2049 317, 0, 23, 0, 0, 0, 318, 319, 320, 321,
2050 322, 26, 0, 898, 899, 764, 0, 0, 369, 0,
2051 0, 0, 0, 0, 325, 0, 0, 326, 0, 0,
2052 1093, 0, 0, 0, 0, 327, 328, 329, 0, 554,
2053 554, 654, 554, 330, 331, 332, 0, 0, 0, 333,
2054 900, 0, 0, 580, 0, 0, 0, 0, 0, 0,
2055 0, 0, 0, 0, 0, 1072, 334, 0, 0, 0,
2056 401, 1438, 127, 128, 10, 0, 0, 0, 255, 0,
2057 0, 8, 9, 51, 0, 0, 13, 0, 261, 127,
2058 128, 10, 0, 0, 13, 0, 0, 0, 0, 1093,
2059 1093, 1093, 0, 0, 0, 554, 0, 0, 18, 0,
2060 21, 0, 0, 0, 0, 0, 18, 0, 401, 249,
2061 0, 0, 0, 26, 145, 27, 28, 21, 0, 51,
2062 0, 1440, 26, 640, 130, 131, 0, 255, 0, 30,
2063 26, 0, 27, 262, 51, 0, 0, 51, 1292, 31,
2064 0, 0, 0, 436, 436, 436, 1225, 32, 1293, 51,
2065 0, 33, 0, 0, 0, 0, 1226, 51, 0, 0,
2066 1294, 0, 0, 0, 32, 0, 0, 0, 1227, 644,
2067 0, 0, 7, 8, 9, 10, 206, 12, 207, 0,
2068 0, 0, 0, 14, 0, 51, 51, 51, 51, 261,
2069 8, 9, 10, 51, 0, 13, 0, 16, 0, 17,
2070 18, 51, 51, 0, 0, 51, 20, 152, 152, 152,
2071 436, 21, 0, 0, 51, 23, 0, 18, 0, 51,
2072 0, 0, 51, 0, 26, 78, 27, 28, 21, 0,
2073 208, 0, 0, 0, 640, 0, 0, 0, 0, 51,
2074 30, 26, 0, 27, 262, 0, 0, 0, 0, 0,
2075 31, 78, 78, 0, 78, 0, 78, 1273, 32, 0,
2076 0, 0, 33, 78, 0, 0, 0, 1274, 580, 0,
2077 580, 0, 0, 0, 0, 32, 78, 0, 78, 1275,
2078 644, 0, 0, 0, 0, 0, 580, 580, 580, 838,
2079 0, 7, 8, 839, 10, 167, 12, 13, 0, 0,
2080 0, 580, 14, 0, 265, 0, 0, 0, 0, 0,
2081 0, 0, 0, 0, 0, 0, 16, 0, 17, 18,
2082 19, 0, 0, 0, 0, 20, 0, 0, 0, 0,
2083 21, 0, 0, 0, 23, 840, 0, 168, 0, 0,
2084 0, 0, 0, 26, 0, 27, 28, 0, 255, 841,
2085 0, 842, 0, 0, 0, 0, 0, 78, 0, 30,
2086 580, 78, 78, 0, 0, 0, 265, 78, 0, 31,
2087 78, 78, 78, 0, 0, 0, 0, 32, 0, 51,
2088 0, 33, 0, 0, 0, 0, 78, 342, 0, 342,
2089 78, 342, 0, 0, 0, 0, 78, 78, 689, 690,
2090 691, 692, 693, 694, 695, 696, 697, 698, 699, 700,
2091 701, 702, 703, 704, 705, 78, 78, 78, 838, 0,
2092 7, 8, 839, 10, 167, 12, 13, 0, 401, 0,
2093 0, 14, 0, 0, 0, 401, 342, 0, 342, 0,
2094 0, 0, 0, 51, 78, 16, 0, 17, 18, 19,
2095 0, 0, 0, 0, 20, -547, 0, 0, 0, 21,
2096 0, 0, 0, 23, 840, 0, 168, 0, 0, 0,
2097 0, 0, 26, 0, 27, 28, 0, 0, 841, 0,
2098 842, 78, 0, 51, 51, 152, 0, 0, 30, 0,
2099 255, 263, 0, 1090, 0, 0, 0, 0, 31, 0,
2100 0, 0, 0, 0, 0, 0, 32, 580, 0, 0,
2101 33, 0, 0, 0, 51, 51, 436, 436, 436, 0,
2102 0, 0, 51, 0, 0, 0, -547, 0, 0, 0,
2103 0, 0, 0, 0, 0, 0, 7, 8, 9, 10,
2104 0, 838, 13, 7, 8, 839, 10, 167, 12, 13,
2105 0, 0, 0, 51, 14, 51, 0, 0, 0, 0,
2106 51, 51, 0, 51, 18, 0, 0, 0, 16, 0,
2107 17, 18, 19, 0, 0, 21, 0, 20, -546, 0,
2108 662, 0, 21, 0, 78, 0, 23, 840, 26, 168,
2109 27, 28, 0, 0, 0, 26, 0, 27, 28, 0,
2110 0, 841, 0, 842, 194, 0, 0, 0, 0, 562,
2111 563, 30, 0, 0, 195, 0, 0, 0, 0, 0,
2112 0, 31, 32, 342, 0, 572, 196, 0, 573, 32,
2113 78, 574, 0, 33, 584, 0, 0, 0, 589, 0,
2114 0, 0, 0, 0, 0, 78, 629, 0, 78, -546,
2115 0, 0, 0, 0, 0, 0, 7, 127, 128, 10,
2116 78, 342, 540, 0, 0, 0, 0, 0, 78, 691,
2117 692, 693, 694, 695, 696, 697, 698, 699, 700, 701,
2118 702, 703, 704, 705, 18, 0, 0, 580, 580, 580,
2119 0, 0, 0, 436, 255, 21, 78, 78, 78, 78,
2120 0, 0, 0, 0, 78, 0, 0, 0, 26, 0,
2121 27, 28, 78, 78, 0, 0, 78, 0, 78, 78,
2122 78, 0, 0, 0, 30, 78, 0, 8, 9, 0,
2123 78, 12, 247, 78, 31, 0, 0, 14, 0, 0,
2124 0, 0, 32, 0, 0, 0, 33, 0, 0, 0,
2125 78, 16, 0, 17, 0, 0, 127, 128, 0, 0,
2126 20, 247, 0, 0, 0, 0, 0, 0, 0, 23,
2127 0, 640, 0, 0, 0, 0, 0, 0, 26, 0,
2128 130, 131, 0, 18, 0, 51, 51, 51, 152, 152,
2129 152, 436, 0, 255, 641, 51, 255, 1090, 1090, 1090,
2130 640, 0, 0, 263, 642, 0, 0, 26, 159, 130,
2131 131, 0, 0, 0, 8, 9, 643, 644, 12, 247,
2132 0, 342, 0, 641, 14, 0, 0, 51, 0, 0,
2133 205, 0, 0, 642, 0, 0, 0, 0, 16, 0,
2134 17, 0, 0, 0, 0, 643, 644, 20, 255, 263,
2135 0, 0, 0, 0, 0, 342, 23, 51, 0, 0,
2136 662, 0, 0, 0, 0, 26, 0, 130, 131, 0,
2137 0, 0, 0, 0, 0, 572, 573, 0, 0, 0,
2138 0, 0, 0, 0, 0, 0, 0, 342, 0, 0,
2139 78, 0, 342, 342, 0, 342, 342, 342, 342, 342,
2140 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
2141 342, 342, 342, 0, 0, 0, 0, 0, 0, 0,
2142 0, 0, 127, 128, 159, 159, 159, 540, 0, 0,
2143 0, 0, 436, 0, 0, 436, 436, 436, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
2145 205, 0, 0, 0, 78, 0, 0, 0, 0, 0,
2146 0, 0, 0, 0, 0, 0, 640, 0, 0, 205,
2147 205, 502, 0, 26, 0, 130, 131, 0, 0, 0,
2148 436, 51, 51, 436, 436, 436, 0, 0, 51, 641,
2149 0, 0, 0, 0, 78, 78, 78, 0, 205, 642,
2150 0, 0, 265, 0, 1092, 0, 0, 0, 0, 0,
2151 0, 643, 644, 0, 0, 0, 0, 0, 0, 342,
2152 0, 0, 0, 0, 51, 78, 78, 255, 0, 51,
2153 0, 0, 51, 78, 7, 8, 9, 10, 167, 12,
2154 13, 0, 0, 470, 0, 14, 0, 0, 0, 0,
2155 0, 0, 0, 0, 7, 8, 9, 10, 0, 16,
2156 247, 17, 18, 0, 78, 0, 78, 0, 20, 0,
2157 0, 78, 78, 21, 78, 0, 0, 23, 553, 640,
2158 0, 0, 18, 0, 0, 0, 26, 0, 27, 28,
2159 0, 0, 0, 21, 0, 0, 0, 0, 0, 0,
2160 0, 0, 1078, 0, 0, 0, 26, 0, 27, 28,
2161 0, 0, 1079, 0, 0, 51, 51, 51, 0, 0,
2162 32, 0, 194, 0, 1080, 644, 0, 647, 647, 647,
2163 0, 0, 195, 0, 0, 0, 0, 0, 0, 0,
2164 32, 0, 0, 0, 196, 692, 693, 694, 695, 696,
2165 697, 698, 699, 700, 701, 702, 703, 704, 705, 342,
2166 342, 0, 342, 0, 0, 0, 0, 0, 0, 1378,
2167 0, 1379, 1380, 1381, 10, 167, 12, 305, 306, 307,
2168 0, 308, 14, 1382, 205, 1383, 1384, 1385, 1386, 1387,
2169 1388, 1389, 1390, 1391, 1392, 15, 16, 309, 17, 18,
2170 19, 0, 310, 311, 312, 20, 662, 313, 314, 315,
2171 21, 316, 317, 1393, 23, 1394, 0, 0, 318, 319,
2172 320, 321, 322, 26, 1090, 1395, 262, 760, 0, 1396,
2173 369, 0, 0, 0, 0, 0, 325, 0, 0, 326,
2174 0, 0, 0, 0, 0, 1201, 0, 327, 328, 329,
2175 777, 0, 777, 777, 647, 330, 331, 332, 0, 0,
2176 0, 333, 0, 1397, 0, 0, 205, 205, 0, 0,
2177 205, 0, 502, 502, 502, 810, 572, 573, 334, 205,
2178 261, 8, 9, 10, 205, 0, 0, 205, 0, 0,
2179 0, 0, 0, 1090, 1090, 1090, 78, 78, 78, 78,
2180 78, 78, 0, 0, 0, 0, 78, 0, 1092, 1092,
2181 1092, 0, 0, 0, 1283, 0, 0, 0, 51, 21,
2182 0, 0, 0, 0, 0, 0, 252, 0, 0, 0,
2183 0, 0, 0, 0, 27, 262, 0, 0, 78, 0,
2184 0, 0, 342, 0, 0, 342, 694, 695, 696, 697,
2185 698, 699, 700, 701, 702, 703, 704, 705, 543, 0,
2186 265, 0, 0, 0, 0, 0, 32, 0, 78, 0,
2187 469, 0, 261, 8, 9, 10, 167, 12, 305, 306,
2188 307, 470, 308, 14, 0, 0, 572, 573, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 16, 309, 17,
2190 18, 19, 943, 310, 311, 312, 20, 0, 313, 314,
2191 315, 21, 316, 317, 0, 23, 647, 647, 647, 318,
2192 319, 320, 321, 322, 26, 647, 27, 262, 0, 0,
2193 0, 369, 0, 0, 0, 0, 0, 325, 0, 0,
2194 326, 0, 0, 0, 205, 0, 0, 0, 327, 328,
2195 329, 261, 127, 1448, 10, 0, 330, 331, 332, 0,
2196 0, 0, 333, 0, 0, 0, 0, 0, 0, 0,
2197 0, 0, 0, 0, 0, 0, 0, -825, 0, 334,
2198 0, 0, 203, 342, 0, 0, 0, 0, 0, 0,
2199 21, 0, 78, 78, 0, 0, 0, 252, 0, 78,
2200 0, 1354, 0, 342, 0, 27, 262, 258, 777, 0,
2201 266, 0, 0, 0, 0, 0, 0, 261, 8, 9,
2202 10, 167, 12, 13, 0, 0, 470, 0, 14, 543,
2203 0, 258, 0, 368, 0, 78, 0, 32, 0, 0,
2204 78, 0, 16, 78, 17, 18, 0, 0, 777, 777,
2205 1084, 20, 0, 0, 0, 0, 21, 0, 1084, 0,
2206 23, 0, 640, 0, 0, 261, 8, 9, 10, 26,
2207 0, 27, 262, 0, 0, 0, 0, 0, 0, 205,
2208 205, 810, 810, 810, 0, 1225, 0, 205, 0, 0,
2209 0, 0, 0, 18, 0, 1226, 0, 0, 0, 0,
2210 0, 0, 203, 32, 21, 0, 0, 1227, 644, 0,
2211 0, 0, 0, 0, 0, 0, 0, 26, 0, 27,
2212 262, 203, 203, 203, 0, 205, 78, 78, 78, 0,
2213 0, 508, 0, 806, 0, 261, 8, 9, 10, 167,
2214 12, 13, 0, 807, 470, 0, 14, 553, 553, 553,
2215 203, 32, 0, 0, 0, 808, 0, 0, 0, 647,
2216 16, 0, 17, 18, 0, 0, 0, 0, 0, 20,
2217 0, 0, 0, 0, 21, 0, 266, 0, 23, 0,
2218 640, 0, 0, 0, 0, 0, 0, 26, 0, 27,
2219 262, 0, 0, 0, 258, 0, 0, 584, 600, 601,
2220 602, 603, 604, 1273, 605, 606, 607, 608, 609, 610,
2221 611, 612, 613, 1274, 0, 0, 0, 0, 0, 0,
2222 0, 32, 0, 0, 0, 1275, 644, 0, 0, 0,
2223 0, 0, 647, 647, 0, 1092, 647, 0, 0, 647,
2224 7, 8, 9, 10, 167, 12, 13, 0, 647, 789,
2225 0, 14, 647, 647, 647, 0, 8, 9, 647, 0,
2226 12, 13, 0, 0, 0, 16, 14, 17, 18, 0,
2227 0, 0, 0, 0, 20, 0, 0, 0, 0, 21,
2228 16, 0, 17, 23, 0, 258, 266, 0, 0, 20,
2229 0, 0, 26, 0, 27, 28, 0, 0, 23, 0,
2230 0, 0, 0, 0, 1092, 1092, 1092, 26, 30, 130,
2231 131, 0, 473, 0, 0, 0, 0, 0, 31, 0,
2232 0, 0, 0, 0, 0, 0, 32, 0, 0, 78,
2233 33, 0, 0, 0, 0, 0, 203, 0, 0, 0,
2234 0, 0, 7, 8, 9, 10, 0, 0, 13, 0,
2235 777, 777, 777, 1084, 1084, 1084, 1276, 0, 0, 0,
2236 777, 0, 1084, 1084, 1084, 0, 0, 0, 0, 0,
2237 18, 0, 0, 0, 810, 810, 810, 0, 0, 0,
2238 0, 21, 572, 573, 0, 0, 0, 0, 0, 0,
2239 0, 0, 205, 0, 26, 0, 27, 28, 0, 0,
2240 0, 0, 203, 0, 203, 203, 0, 0, 0, 0,
2241 497, 0, 0, 0, 0, 0, 0, 0, 203, 203,
2242 498, 0, 203, 0, 203, 203, 203, 203, 32, 0,
2243 0, 203, 499, 0, 0, 0, 203, 0, 0, 203,
2244 0, 0, 0, 0, 7, 8, 9, 10, 0, 0,
2245 0, 1127, 8, 839, 10, 206, 12, 207, 0, 0,
2246 0, 0, 14, 0, 0, 0, 0, 0, 0, 0,
2247 0, 943, 943, 0, 943, 0, 16, 0, 17, 18,
2248 0, 0, 0, 21, 0, 20, 0, 0, 0, 0,
2249 21, 680, 0, 0, 23, 0, 26, 647, 27, 28,
2250 647, 647, 647, 26, 0, 27, 28, 0, 0, 0,
2251 0, 1129, 194, 0, 0, 0, 0, 0, 0, 30,
2252 0, 0, 195, 0, 0, 0, 0, 0, 0, 31,
2253 32, 0, 0, 0, 196, 0, 0, 32, 0, 0,
2254 0, 33, 0, 0, 0, 1276, 777, 777, 1276, 1276,
2255 1276, 0, 0, 777, 0, 0, 0, 0, 0, 0,
2256 0, 0, 0, 0, 0, 0, 0, 810, 810, 810,
2257 810, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258 258, 266, 0, 0, 0, 0, 0, 765, 473, 205,
2259 0, 0, 0, 0, 0, 0, 203, 1516, 0, 1379,
2260 1380, 1381, 10, 167, 12, 305, 306, 307, 0, 308,
2261 14, 1382, 0, 1383, 1384, 1385, 1386, 1387, 1388, 1389,
2262 1390, 1391, 1392, 15, 16, 309, 17, 18, 19, 0,
2263 310, 311, 312, 20, 0, 313, 314, 315, 21, 316,
2264 317, 1393, 23, 1394, 0, 0, 318, 319, 320, 321,
2265 322, 26, 0, 1395, 262, 760, 0, 1396, 369, 0,
2266 203, 0, 0, 0, 325, 0, 0, 326, 0, 0,
2267 7, 8, 9, 10, 0, 327, 328, 329, 0, 473,
2268 205, 0, 205, 330, 331, 332, 880, 0, 0, 333,
2269 0, 1397, 0, 1276, 1276, 0, 1276, 0, 0, 0,
2270 203, 203, 1082, 0, 0, 1517, 334, 258, 266, 21,
2271 1082, 0, 765, 0, 0, 0, 0, 0, 0, 0,
2272 0, 0, 26, 0, 27, 28, 0, 0, 1508, 0,
2273 0, 203, 203, 203, 203, 203, 508, 473, 194, 203,
2274 0, 0, 0, 473, 0, 473, 473, 0, 195, 0,
2275 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
2276 196, 0, 0, 0, 266, 0, 0, 0, 0, 0,
2277 0, 0, 473, 0, 0, 0, 0, 203, 0, 473,
2278 0, 0, 0, 0, 0, 0, 0, 0, 0, 502,
2279 0, 0, 0, 0, 0, 0, 0, 0, 1276, 1276,
2280 1276, 1276, 0, 0, 1001, 1003, 1004, 1005, 0, 1007,
2281 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
2282 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 0, 0,
2283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284 0, 0, 7, 8, 9, 10, 206, 12, 207, 7,
2285 8, 9, 10, 14, 0, 540, 102, 0, 502, 502,
2286 502, 0, 0, 0, 1276, 121, 102, 16, 0, 17,
2287 18, 0, 102, 102, 0, 102, 20, 18, 0, 0,
2288 0, 21, 0, 205, 0, 23, 765, 0, 21, 1567,
2289 0, 0, 0, 0, 26, 0, 27, 28, 0, 0,
2290 1511, 26, 0, 27, 28, 473, 0, 236, 0, 0,
2291 30, 258, 266, 258, 0, 0, 0, 194, 0, 473,
2292 31, 0, 0, 0, 0, 0, 0, 195, 32, 0,
2293 0, 0, 33, 0, 0, 32, 0, 0, 0, 196,
2294 1568, 684, 685, 686, 687, 688, 689, 690, 691, 692,
2295 693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
2296 703, 704, 705, 0, 1115, 0, 394, 0, 121, 0,
2297 0, 0, 0, 0, 0, 102, 102, 0, 0, 0,
2298 0, 0, 102, 102, 0, 0, 102, 102, 102, 0,
2299 422, 102, 102, 102, 0, 0, 0, 0, 0, 0,
2300 0, 0, 203, 203, 203, 203, 203, 1082, 203, 0,
2301 1277, 0, 203, 258, 1082, 1082, 1082, 645, 645, 645,
2302 266, 0, 1179, 0, 0, 0, 203, 203, 203, 0,
2303 0, 0, 0, 0, 0, 0, 7, 8, 9, 10,
2304 167, 12, 13, 0, 203, 0, 0, 14, 0, 0,
2305 0, 0, 0, 0, 0, 0, 0, 8, 9, 765,
2306 473, 16, 247, 17, 18, 508, 0, 0, 0, 0,
2307 20, 0, 0, 0, 473, 21, 473, 0, 473, 23,
2308 0, 236, 102, 0, 18, 0, 0, 0, 26, 0,
2309 27, 28, 0, 0, 0, 0, 0, 261, 8, 9,
2310 10, 640, 102, 13, 30, 0, 0, 0, 26, 0,
2311 130, 131, 0, 0, 31, 0, 0, 1233, 0, 0,
2312 0, 0, 32, 0, 1523, 18, 33, 0, 0, 0,
2313 0, 0, 0, 0, 1524, 0, 21, 0, 0, 0,
2314 645, 0, 645, 645, 645, 102, 1525, 644, 0, 26,
2315 473, 27, 262, 0, 0, 0, 0, 0, 598, 599,
2316 600, 601, 602, 603, 604, 806, 605, 606, 607, 608,
2317 609, 610, 611, 612, 613, 807, 0, 0, 0, 0,
2318 0, 0, 0, 32, 0, 473, 0, 808, 0, 0,
2319 0, 0, 102, 0, 102, 102, 0, 203, 203, 203,
2320 203, 203, 1082, 8, 9, 203, 0, 0, 540, 0,
2321 0, 0, 0, 0, 0, 0, 0, 765, 765, 203,
2322 203, 203, 203, 0, 0, 0, 0, 0, 0, 0,
2323 18, 0, 0, 7, 8, 9, 10, 206, 12, 207,
2324 102, 203, 0, 0, 14, 0, 0, 640, 0, 0,
2325 0, 1312, 0, 0, 26, 0, 130, 131, 16, 102,
2326 17, 18, 0, 0, 0, 0, 102, 20, 0, 102,
2327 1523, 0, 21, 8, 9, 0, 23, 0, 13, 0,
2328 1524, 102, 0, 0, 0, 26, 0, 27, 28, 0,
2329 0, 0, 1525, 644, 0, 0, 0, 0, 0, 0,
2330 18, 30, 765, 765, 0, 0, 645, 645, 645, 0,
2331 0, 31, 0, 0, 0, 981, 0, 640, 0, 32,
2332 0, 0, 0, 33, 26, 0, 130, 131, 0, 0,
2333 0, 0, 203, 0, 203, 0, 0, 0, 0, 0,
2334 1523, 0, 0, 0, 0, 203, 203, 1277, 203, 0,
2335 1524, 0, 0, 0, 0, 0, 0, 0, 1366, 0,
2336 0, 0, 1525, 644, 0, 0, 0, 0, 102, 0,
2337 830, 0, 0, 0, 0, 0, 0, 0, 473, 0,
2338 473, 0, 473, 8, 9, 0, 167, 12, 13, 0,
2339 765, 0, 0, 14, 102, 0, 102, 0, 645, 0,
2340 0, 0, 0, 0, 0, 0, 0, 16, 0, 17,
2341 18, 0, 0, 0, 0, 0, 20, 0, 765, 0,
2342 0, 0, 0, 0, 0, 726, 0, 0, 168, 0,
2343 0, 0, 1434, 1435, 26, 0, 130, 131, 645, 645,
2344 645, 1082, 0, 0, 0, 0, 0, 0, 981, 0,
2345 203, 203, 1082, 203, 0, 0, 0, 0, 0, 0,
2346 765, 0, 0, 599, 600, 601, 602, 603, 604, 102,
2347 605, 606, 607, 608, 609, 610, 611, 612, 613, 0,
2348 102, 102, 0, 102, 102, 0, 0, 0, 0, 473,
2349 0, 7, 8, 9, 10, 215, 216, 217, 0, 0,
2350 0, 0, 14, 0, 0, 0, 0, 0, 0, 1490,
2351 1082, 1082, 1082, 0, 0, 0, 203, 0, 0, 18,
2352 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
2353 21, 0, 0, 0, 23, 203, 640, 0, 0, 0,
2354 0, 0, 0, 26, 0, 27, 28, 0, 765, 645,
2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 194,
2356 102, 0, 1536, 0, 0, 0, 0, 102, 121, 195,
2357 0, 0, 0, 0, 0, 0, 236, 32, 0, 0,
2358 0, 1514, 0, 0, 0, 765, 8, 9, 0, 167,
2359 12, 13, 0, 0, 470, 0, 14, 0, 0, 830,
2360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2361 16, 0, 17, 18, 0, 0, 0, 0, 0, 20,
2362 0, 0, 645, 645, 0, 0, 645, 0, 23, 645,
2363 640, 0, 0, 0, 0, 0, 473, 26, 645, 130,
2364 131, 0, 981, 981, 981, 0, 0, 0, 645, 0,
2365 0, 0, 0, 1523, 0, 0, 1592, 1593, 18, 0,
2366 0, 0, 0, 1524, 0, 0, 0, 0, 0, 0,
2367 0, 0, 0, 0, 0, 1525, 644, 0, 0, 830,
2368 0, 0, 102, 0, 0, 0, 0, 0, 0, 1618,
2369 0, 684, 685, 686, 687, 688, 689, 690, 691, 692,
2370 693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
2371 703, 704, 705, 0, 102, 102, 102, 102, 0, 0,
2372 1632, 0, 0, 0, 0, 0, 102, 0, 0, 0,
2373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2374 645, 645, 645, 645, 645, 645, 645, 0, 0, 0,
2375 645, 0, 981, 981, 981, 0, 8, 9, 0, 167,
2376 12, 13, 0, 0, 470, 0, 14, 0, 0, 8,
2377 9, 0, 167, 12, 13, 0, 0, 1634, 0, 14,
2378 16, 0, 17, 18, 0, 0, 0, 0, 0, 20,
2379 0, 0, 0, 16, 0, 17, 18, 0, 23, 102,
2380 102, 0, 20, 102, 0, 0, 102, 26, 0, 130,
2381 131, 23, 0, 0, 0, 102, 0, 0, 0, 0,
2382 26, 0, 130, 131, 0, 102, 0, 0, 0, 8,
2383 9, 765, 206, 12, 207, 0, 0, 0, 0, 14,
2384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2385 0, 0, 0, 16, 0, 17, 18, 0, 0, 0,
2386 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
2387 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
2388 26, 0, 130, 131, 0, 0, 0, 645, 0, 0,
2389 645, 645, 645, 0, 684, 685, 686, 687, 688, 689,
2390 690, 691, 692, 693, 694, 695, 696, 697, 698, 699,
2391 700, 701, 702, 703, 704, 705, 0, 0, 0, 0,
2392 1597, 0, -502, -502, -502, -502, -502, -502, -502, 0,
2393 0, -502, 0, -502, 0, 645, 645, 645, 645, 645,
2394 645, 1338, 0, 645, -502, 0, -502, 0, 0, 0,
2395 -502, 0, 0, 0, 830, 0, -502, 0, 0, 0,
2396 0, -502, 0, 0, 0, -502, 0, -502, 0, 0,
2397 0, 0, 0, 0, -502, 0, -502, -502, -502, -502,
2398 -502, 102, -502, -502, -502, -502, -502, -502, -502, -502,
2399 -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
2400 -502, -502, -502, -502, -502, 0, -502, -502, -502, 0,
2401 -502, -502, -502, -502, -502, 0, 0, 0, 0, 0,
2402 1598, -502, 0, 0, 0, 0, -502, -502, -502, 0,
2403 -502, 0, 0, 0, 0, 0, 0, 0, 102, 102,
2404 0, 102, 684, 685, 686, 687, 688, 689, 690, 691,
2405 692, 693, 694, 695, 696, 697, 698, 699, 700, 701,
2406 702, 703, 704, 705, 102, 0, 0, 102, 102, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 645, 645, 1655, 645, 0, 0, 0,
2409 0, 0, 0, 0, 0, 0, 830, 688, 689, 690,
2410 691, 692, 693, 694, 695, 696, 697, 698, 699, 700,
2411 701, 702, 703, 704, 705, 575, 0, 7, 8, 9,
2412 10, 167, 12, 305, 306, 307, 470, 308, 14, 0,
2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2414 0, 830, 16, 309, 17, 18, 19, 0, 310, 311,
2415 312, 20, 0, 313, 314, 315, 21, 316, 317, 102,
2416 23, 102, 640, 0, 318, 319, 320, 321, 322, 26,
2417 0, 27, 28, -336, 0, 0, 369, 0, 0, 0,
2418 0, 0, 325, 0, 0, 1087, 0, 0, 645, 645,
2419 645, 645, 0, 327, 328, 1088, 0, 0, 0, 0,
2420 0, 330, 331, 332, 0, 0, 0, 1089, 644, 0,
2421 907, 0, 261, 8, 9, 10, 167, 12, 305, 306,
2422 307, 0, 308, 14, 334, 0, 0, 0, 0, 0,
2423 0, 0, 0, 0, 0, 0, 0, 16, 309, 17,
2424 18, 19, 0, 310, 311, 312, 20, 0, 313, 314,
2425 315, 21, 316, 317, 645, 23, 0, 0, 0, 318,
2426 319, 320, 321, 322, 26, 0, 27, 262, 1613, 0,
2427 -815, 369, 0, 0, 0, 0, 0, 325, 0, 0,
2428 326, 0, 0, 0, 0, 0, 0, 0, 327, 328,
2429 329, 0, 0, 0, 0, 0, 330, 331, 332, 0,
2430 0, 575, 333, 261, 8, 9, 10, 0, 12, 305,
2431 306, 307, 0, 308, 14, 0, 0, 0, 0, 334,
2432 0, 0, 0, 0, 0, 0, 0, 0, 16, 309,
2433 17, 18, 19, 0, 310, 311, 312, 20, 0, 313,
2434 314, 315, 21, 316, 317, 0, 23, 0, 0, 0,
2435 318, 319, 320, 321, 322, 26, 0, 27, 262, -336,
2436 0, 0, 369, 0, 0, 0, 0, 0, 325, 0,
2437 0, 576, 0, 0, 0, 0, 0, 0, 0, 327,
2438 328, 577, 0, 0, 0, 0, 0, 330, 331, 332,
2439 0, 0, 763, 578, 895, 896, 897, 10, 0, 12,
2440 486, 306, 307, 0, 308, 14, 0, 0, 0, 0,
2441 334, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2442 309, 17, 0, 19, 0, 310, 311, 312, 20, 0,
2443 313, 314, 315, 21, 316, 317, 0, 23, 0, 0,
2444 0, 318, 319, 320, 321, 322, 26, 0, 898, 899,
2445 764, 0, 0, 369, 0, 0, 0, 0, 0, 325,
2446 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
2447 327, 328, 329, 0, 0, 0, 0, 0, 330, 331,
2448 332, 0, 0, 0, 333, 900, 763, 0, 261, 8,
2449 9, 10, 0, 12, 486, 306, 307, 0, 308, 14,
2450 0, 334, 0, 0, 0, 0, 0, 0, 0, 0,
2451 0, 0, 0, 16, 309, 17, 0, 19, 0, 310,
2452 311, 312, 20, 0, 313, 314, 315, 21, 316, 317,
2453 0, 23, 0, 0, 0, 318, 319, 320, 321, 322,
2454 26, 0, 27, 262, 764, 0, 0, 369, 0, 0,
2455 0, 0, 0, 325, 0, 0, 326, 0, 0, 0,
2456 0, 0, 0, 0, 327, 328, 329, 0, 0, 0,
2457 0, 0, 330, 331, 332, 0, 0, 0, 333, 763,
2458 0, 895, 896, 897, 10, 1286, 12, 486, 306, 307,
2459 0, 308, 14, 0, 0, 334, 0, 0, 0, 0,
2460 0, 0, 0, 0, 0, 0, 16, 309, 17, 0,
2461 19, 0, 310, 311, 312, 20, 0, 313, 314, 315,
2462 21, 316, 317, 0, 23, 0, 0, 0, 318, 319,
2463 320, 321, 322, 26, 0, 898, 899, 764, 0, 0,
2464 369, 0, 0, 0, 0, 0, 325, 0, 0, 326,
2465 0, 0, 0, 0, 0, 0, 0, 327, 328, 329,
2466 0, 0, 0, 0, 0, 330, 331, 332, 0, 0,
2467 763, 333, 895, 896, 897, 10, 0, 12, 486, 306,
2468 307, 0, 308, 14, 0, 0, 0, -506, 334, 0,
2469 0, 0, 0, 0, 0, 0, 0, 16, 309, 17,
2470 0, 19, 0, 310, 311, 312, 20, 0, 313, 314,
2471 315, 21, 316, 317, 0, 23, 0, 0, 0, 318,
2472 319, 320, 321, 322, 26, 0, 898, 899, 764, 0,
2473 0, 369, 0, 0, 0, 0, 0, 325, 0, 0,
2474 326, 0, 0, 0, 0, 0, 0, 0, 327, 328,
2475 329, 0, 0, 0, 0, 0, 330, 331, 332, 0,
2476 0, 575, 333, 7, 8, 9, 10, 0, 12, 305,
2477 306, 307, 0, 308, 14, 0, 0, 0, 1417, 334,
2478 0, 0, 0, 0, 0, 0, 0, 0, 16, 309,
2479 17, 18, 19, 0, 310, 311, 312, 20, 0, 313,
2480 314, 315, 21, 316, 317, 0, 23, 0, 0, 0,
2481 318, 319, 320, 321, 322, 26, 0, 27, 28, -336,
2482 0, 0, 369, 0, 0, 0, 0, 0, 325, 0,
2483 0, 1583, 0, 0, 0, 0, 0, 0, 0, 327,
2484 328, 1584, 0, 0, 0, 0, 0, 330, 331, 332,
2485 0, 0, 763, 1585, 261, 8, 9, 10, 0, 12,
2486 486, 306, 307, 0, 308, 14, 0, 0, 0, 0,
2487 334, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2488 309, 17, 0, 19, 0, 310, 311, 312, 20, 0,
2489 313, 314, 315, 21, 316, 317, 0, 23, 0, 0,
2490 0, 318, 319, 320, 321, 322, 26, 0, 27, 262,
2491 764, 0, 0, 369, 0, 0, 0, 0, 0, 325,
2492 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
2493 327, 328, 329, 0, 0, 0, 0, 0, 330, 331,
2494 332, 0, 0, 907, 333, 261, 8, 9, 10, 0,
2495 12, 486, 306, 307, 0, 308, 14, 0, 0, 0,
2496 0, 334, 0, 0, 0, 0, 0, 0, 0, 0,
2497 16, 309, 17, 0, 19, 0, 310, 311, 312, 20,
2498 0, 313, 314, 315, 21, 316, 317, 0, 23, 0,
2499 0, 0, 318, 319, 320, 321, 322, 26, 0, 27,
2500 262, 0, 0, 0, 369, -815, 0, 0, 0, 0,
2501 325, 0, 0, 326, 0, 0, 0, 0, 0, 0,
2502 0, 327, 328, 329, 0, 0, 0, 0, 0, 330,
2503 331, 332, 0, 0, 1667, 333, 261, 8, 9, 10,
2504 0, 12, 305, 306, 307, 0, 308, 14, 0, 0,
2505 0, 0, 334, 0, 0, 0, 0, 0, 0, 0,
2506 0, 16, 309, 17, 0, 19, 0, 310, 311, 312,
2507 20, 0, 313, 314, 315, 21, 316, 317, 0, 23,
2508 0, 0, 0, 318, 319, 320, 321, 322, 26, 0,
2509 27, 262, 0, 0, -197, 369, 0, 0, 0, 0,
2510 0, 325, 0, 0, 326, 0, 0, 0, 0, 0,
2511 0, 0, 327, 328, 329, 0, 0, 0, 0, 0,
2512 330, 331, 332, 0, 0, 907, 333, 261, 8, 9,
2513 10, 0, 12, 486, 306, 307, 0, 308, 14, 0,
2514 0, 0, 0, 334, 0, 0, 0, 0, 0, 0,
2515 0, 0, 16, 309, 17, 0, 19, 0, 310, 311,
2516 312, 20, 0, 313, 314, 315, 21, 316, 317, 0,
2517 23, 0, 0, 0, 318, 319, 320, 321, 322, 26,
2518 0, 27, 262, 0, 0, 0, 369, 0, 0, 0,
2519 0, 0, 325, 0, 0, 326, 0, 0, 0, 0,
2520 0, 0, 0, 327, 328, 329, 0, 0, 0, 0,
2521 0, 330, 331, 332, 0, 0, 1000, 333, 261, 8,
2522 9, 10, 0, 12, 486, 306, 307, 0, 308, 14,
2523 0, 0, -815, 0, 334, 0, 0, 0, 0, 0,
2524 0, 0, 0, 16, 309, 17, 0, 19, 0, 310,
2525 311, 312, 20, 0, 313, 314, 315, 21, 316, 317,
2526 0, 23, 0, 0, 0, 318, 319, 320, 321, 322,
2527 26, 0, 27, 262, 0, 0, 0, 369, 0, 0,
2528 0, 0, 0, 325, 0, 0, 326, 0, 0, 0,
2529 0, 0, 0, 0, 327, 328, 329, 0, 0, 0,
2530 0, 0, 330, 331, 332, 0, 0, 1002, 333, 261,
2531 8, 9, 10, 0, 12, 486, 306, 307, 0, 308,
2532 14, 0, 0, 0, 0, 334, 0, 0, 0, 0,
2533 0, 0, 0, 0, 16, 309, 17, 0, 19, 0,
2534 310, 311, 312, 20, 0, 313, 314, 315, 21, 316,
2535 317, 0, 23, 0, 0, 0, 318, 319, 320, 321,
2536 322, 26, 0, 27, 262, 0, 0, 0, 369, 0,
2537 0, 0, 0, 0, 325, 0, 0, 326, 0, 0,
2538 0, 0, 0, 0, 0, 327, 328, 329, 0, 0,
2539 0, 0, 0, 330, 331, 332, 0, 0, 1631, 333,
2540 261, 8, 9, 10, 0, 12, 486, 306, 307, 0,
2541 308, 14, 0, 0, 0, 0, 334, 0, 0, 0,
2542 0, 0, 0, 0, 0, 16, 309, 17, 0, 19,
2543 0, 310, 311, 312, 20, 0, 313, 314, 315, 21,
2544 316, 317, 0, 23, 0, 0, 0, 318, 319, 320,
2545 321, 322, 26, 0, 27, 262, 0, 0, 0, 369,
2546 0, 0, 0, 0, 0, 325, 0, 0, 326, 0,
2547 0, 0, 0, 0, 0, 0, 327, 328, 329, 0,
2548 0, 0, 0, 0, 330, 331, 332, 0, 0, 0,
2549 333, 261, 8, 9, 10, 0, 12, 486, 306, 307,
2550 0, 308, 14, 0, 0, 0, 0, 334, 0, 0,
2551 0, 0, 0, 0, 0, 0, 16, 309, 17, 0,
2552 19, 0, 310, 311, 312, 20, 0, 313, 314, 315,
2553 21, 316, 317, 0, 23, 0, 0, 0, 318, 319,
2554 320, 321, 322, 26, 0, 27, 262, 0, 0, 0,
2555 369, 0, 0, 0, 0, 0, 325, 0, 0, 326,
2556 0, 0, 0, 0, 0, 0, 0, 327, 328, 329,
2557 0, 0, 0, 0, 0, 330, 331, 332, 0, 0,
2558 0, 333, 261, 8, 9, 10, 0, 12, 486, 306,
2559 307, 0, 308, 14, 0, 0, 0, 0, 334, 487,
2560 0, 0, 0, 0, 0, 0, 0, 16, 309, 17,
2561 0, 19, 0, 310, 311, 312, 20, 0, 313, 314,
2562 315, 21, 316, 317, 0, 23, 0, 0, 0, 318,
2563 319, 320, 321, 322, 26, 0, 27, 262, 0, 0,
2564 0, 369, 0, 0, 0, 0, 0, 325, 0, 0,
2565 326, 0, 0, 0, 0, 0, 0, 0, 327, 328,
2566 329, 0, 0, 0, 0, 0, 330, 331, 332, 0,
2567 0, 0, 333, 261, 8, 9, 10, 0, 12, 486,
2568 306, 307, 0, 308, 14, 0, 0, 0, 0, 334,
2569 816, 0, 0, 0, 0, 0, 0, 0, 16, 309,
2570 17, 0, 19, 0, 310, 311, 312, 20, 0, 313,
2571 314, 315, 21, 316, 317, 0, 23, 0, 0, 0,
2572 318, 319, 320, 321, 322, 26, 0, 27, 262, 0,
2573 0, 0, 369, 0, 0, 0, 0, 0, 325, 0,
2574 0, 326, 0, 0, 0, 0, 0, 0, 0, 327,
2575 328, 329, 0, 0, 0, 0, 0, 330, 331, 332,
2576 0, 0, 0, 333, 261, 8, 9, 10, 0, 12,
2577 486, 306, 307, 0, 308, 14, 0, 0, 0, 0,
2578 334, 946, 0, 0, 0, 0, 0, 0, 0, 16,
2579 309, 17, 0, 19, 0, 310, 311, 312, 20, 0,
2580 313, 314, 315, 21, 316, 317, 0, 23, 0, 0,
2581 0, 318, 319, 320, 321, 322, 26, 0, 27, 262,
2582 0, 0, 0, 369, 0, 0, 0, 0, 0, 325,
2583 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
2584 327, 328, 329, 0, 0, 0, 0, 0, 330, 331,
2585 332, 0, 0, 0, 333, 261, 8, 9, 10, 0,
2586 12, 486, 306, 307, 0, 308, 14, 0, 0, 0,
2587 0, 334, 967, 0, 0, 0, 0, 0, 0, 0,
2588 16, 309, 17, 0, 19, 0, 310, 311, 312, 20,
2589 0, 313, 314, 315, 21, 316, 317, 0, 23, 0,
2590 0, 0, 318, 319, 320, 321, 322, 26, 0, 27,
2591 262, 0, 0, 0, 369, 0, 0, 0, 0, 0,
2592 325, 0, 0, 326, 0, 0, 0, 0, 0, 0,
2593 0, 327, 328, 329, 0, 0, 0, 0, 0, 330,
2594 331, 332, 0, 0, 0, 333, 690, 691, 692, 693,
2595 694, 695, 696, 697, 698, 699, 700, 701, 702, 703,
2596 704, 705, 334, 1220, 1379, 1380, 1381, 10, 167, 12,
2597 305, 306, 307, 0, 308, 14, 1382, 0, 1383, 1384,
2598 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 15, 16,
2599 309, 17, 18, 19, 0, 310, 311, 312, 20, 0,
2600 313, 314, 315, 21, 316, 317, 1393, 23, 1394, 0,
2601 0, 318, 319, 320, 321, 322, 26, 0, 1395, 262,
2602 760, 0, 1396, 369, 0, 0, 0, 0, 0, 325,
2603 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
2604 327, 328, 329, 0, 0, 0, 0, 0, 330, 331,
2605 332, 0, 0, 0, 333, 0, 1397, 0, 0, 0,
2606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 1521, 334, 1379, 1380, 1381, 10, 167, 12, 305, 306,
2608 307, 0, 308, 14, 1382, 0, 1383, 1384, 1385, 1386,
2609 1387, 1388, 1389, 1390, 1391, 1392, 15, 16, 309, 17,
2610 18, 19, 0, 310, 311, 312, 20, 0, 313, 314,
2611 315, 21, 316, 317, 1393, 23, 1394, 0, 0, 318,
2612 319, 320, 321, 322, 26, 0, 1395, 262, 760, 0,
2613 1396, 369, 0, 0, 0, 0, 0, 325, 0, 0,
2614 326, 0, 0, 0, 0, 0, 0, 0, 327, 328,
2615 329, 0, 0, 0, 0, 0, 330, 331, 332, 0,
2616 0, 0, 333, 0, 1397, 0, 1379, 1380, 1381, 10,
2617 167, 12, 305, 306, 307, 0, 308, 14, 1382, 334,
2618 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392,
2619 15, 16, 309, 17, 18, 19, 0, 310, 311, 312,
2620 20, 0, 313, 314, 315, 21, 316, 317, 1393, 23,
2621 1394, 0, 0, 318, 319, 320, 321, 322, 26, 0,
2622 1395, 262, 1640, 0, 1396, 369, 0, 0, 0, 0,
2623 0, 325, 0, 0, 326, 0, 0, 0, 0, 0,
2624 0, 0, 327, 328, 329, 0, 0, 0, 0, 0,
2625 330, 331, 332, 0, 0, 0, 333, 0, 1397, 0,
2626 1379, 1380, 1381, 10, 167, 12, 305, 306, 307, 0,
2627 308, 14, 1382, 334, 1383, 1384, 1385, 1386, 1387, 1388,
2628 1389, 1390, 1391, 1392, 15, 16, 309, 17, 18, 19,
2629 0, 310, 311, 312, 20, 0, 313, 314, 315, 21,
2630 316, 317, 1393, 23, 1394, 0, 0, 318, 319, 320,
2631 321, 322, 26, 0, 1395, 262, 0, 0, 1396, 369,
2632 0, 0, 0, 0, 0, 325, 0, 0, 326, 0,
2633 0, 0, 0, 0, 0, 0, 327, 328, 329, 0,
2634 0, 0, 0, 0, 330, 331, 332, 0, 0, 0,
2635 333, 0, 1397, 261, 8, 9, 10, 167, 12, 305,
2636 306, 307, 470, 308, 14, 0, 0, 334, 0, 0,
2637 0, 0, 0, 0, 0, 0, 0, 0, 16, 309,
2638 17, 18, 19, 0, 310, 311, 312, 20, 0, 313,
2639 314, 315, 21, 316, 317, 0, 23, 0, 640, 0,
2640 318, 319, 320, 321, 322, 26, 0, 27, 262, 0,
2641 0, 0, 369, 0, 0, 0, 0, 0, 325, 0,
2642 0, 977, 0, 0, 0, 0, 0, 0, 0, 327,
2643 328, 978, 0, 0, 0, 0, 0, 330, 331, 332,
2644 0, 0, 0, 979, 644, 7, 8, 9, 10, 167,
2645 12, 305, 306, 307, 470, 308, 14, 0, 0, 0,
2646 334, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2647 16, 309, 17, 18, 19, 0, 310, 311, 312, 20,
2648 0, 313, 314, 315, 21, 316, 317, 0, 23, 0,
2649 640, 0, 318, 319, 320, 321, 322, 26, 0, 27,
2650 28, 0, 0, 0, 369, 0, 0, 0, 0, 0,
2651 325, 0, 0, 1087, 0, 0, 0, 0, 0, 0,
2652 0, 327, 328, 1088, 0, 0, 0, 0, 0, 330,
2653 331, 332, 0, 0, 0, 1089, 644, 261, 8, 9,
2654 10, 0, 12, 305, 306, 307, 0, 308, 14, 0,
2655 0, 0, 334, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 16, 309, 17, 18, 19, 0, 310, 311,
2657 312, 20, 0, 313, 314, 315, 21, 316, 317, 0,
2658 23, 0, 640, 0, 318, 319, 320, 321, 322, 26,
2659 0, 27, 262, 0, 0, 0, 0, 0, 0, 0,
2660 0, 0, 325, 0, 0, 977, 0, 0, 0, 0,
2661 0, 0, 0, 327, 328, 978, 0, 0, 0, 0,
2662 0, 330, 331, 332, 0, 0, 0, 979, 644, 7,
2663 8, 9, 10, 0, 12, 305, 306, 307, 0, 308,
2664 14, 0, 0, 0, 334, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 16, 309, 17, 18, 19, 0,
2666 310, 311, 312, 20, 0, 313, 314, 315, 21, 316,
2667 317, 0, 23, 0, 640, 0, 318, 319, 320, 321,
2668 322, 26, 0, 27, 28, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 325, 0, 0, 1087, 0, 0,
2670 0, 0, 0, 0, 0, 327, 328, 1088, 0, 0,
2671 0, 0, 0, 330, 331, 332, 0, 0, 0, 1089,
2672 644, 261, 8, 9, 10, 0, 12, 486, 306, 307,
2673 0, 308, 14, 0, 0, 0, 334, 0, 0, 0,
2674 0, 0, 0, 0, 0, 0, 16, 309, 17, 18,
2675 19, 0, 310, 311, 312, 20, 0, 313, 314, 315,
2676 21, 316, 317, 0, 23, 0, 0, 0, 318, 319,
2677 320, 321, 322, 26, 0, 27, 262, 0, 0, 0,
2678 369, 0, 0, 0, 0, 0, 325, 0, 0, 576,
2679 0, 0, 0, 0, 0, 0, 0, 327, 328, 577,
2680 0, 0, 0, 0, 0, 330, 331, 332, 0, 0,
2681 0, 578, 261, 8, 9, 10, 0, 12, 486, 306,
2682 307, 0, 308, 14, 0, 0, 0, 0, 334, 0,
2683 0, 0, 0, 0, 0, 0, 0, 16, 309, 17,
2684 0, 19, 0, 310, 311, 312, 20, 0, 313, 314,
2685 315, 21, 316, 317, 0, 23, 0, 0, 0, 318,
2686 319, 320, 321, 322, 26, 0, 27, 262, 0, 0,
2687 1494, 369, 0, 0, 0, 0, 0, 325, 0, 0,
2688 326, 0, 0, 0, 0, 0, 0, 0, 327, 328,
2689 329, 0, 0, 0, 0, 0, 330, 331, 332, 0,
2690 0, 0, 333, 261, 8, 9, 10, 167, 12, 305,
2691 306, 307, 0, 308, 14, 0, 0, 0, 0, 334,
2692 0, 0, 0, 0, 0, 0, 0, 0, 16, 309,
2693 17, 18, 19, 0, 310, 311, 312, 20, 0, 313,
2694 314, 315, 21, 316, 317, 0, 23, 0, 0, 0,
2695 318, 319, 320, 321, 322, 26, 0, 27, 262, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 325, 0,
2697 0, 326, 0, 0, 0, 0, 0, 0, 0, 327,
2698 328, 329, 0, 0, 0, 0, 0, 330, 331, 332,
2699 0, 0, 0, 333, 7, 8, 9, 10, 0, 12,
2700 486, 306, 307, 0, 308, 14, 0, 0, 0, 0,
2701 334, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2702 309, 17, 18, 19, 0, 310, 311, 312, 20, 0,
2703 313, 314, 315, 21, 316, 317, 0, 23, 0, 0,
2704 0, 318, 319, 320, 321, 322, 26, 0, 27, 28,
2705 0, 0, 0, 369, 0, 0, 0, 0, 0, 325,
2706 0, 0, 1583, 0, 0, 0, 0, 0, 0, 0,
2707 327, 328, 1584, 0, 0, 0, 0, 0, 330, 331,
2708 332, 0, 0, 0, 1585, 261, 8, 9, 10, 0,
2709 12, 305, 306, 307, 0, 308, 14, 0, 0, 0,
2710 0, 334, 0, 0, 0, 0, 0, 0, 0, 0,
2711 16, 309, 17, 0, 19, 0, 310, 311, 312, 20,
2712 0, 313, 314, 315, 21, 316, 317, 0, 23, 0,
2713 0, 0, 318, 319, 320, 321, 322, 26, 0, 323,
2714 262, 0, 0, 0, 324, 0, 0, 0, 0, 0,
2715 325, 0, 0, 326, 0, 0, 0, 0, 0, 0,
2716 0, 327, 328, 329, 0, 0, 0, 0, 0, 330,
2717 331, 332, 0, 0, 0, 333, 261, 8, 9, 10,
2718 0, 12, 305, 306, 307, 0, 308, 14, 0, 0,
2719 0, 0, 334, 0, 0, 0, 0, 0, 0, 0,
2720 0, 16, 309, 17, 0, 19, 0, 310, 311, 312,
2721 20, 0, 313, 314, 315, 21, 316, 317, 0, 23,
2722 0, 0, 0, 318, 319, 320, 321, 322, 26, 0,
2723 27, 262, 0, 0, 0, 369, 0, 0, 0, 0,
2724 0, 325, 0, 0, 326, 0, 0, 0, 0, 0,
2725 0, 0, 327, 328, 329, 0, 0, 0, 0, 0,
2726 330, 331, 332, 0, 0, 0, 333, 261, 8, 9,
2727 10, 0, 12, 486, 306, 307, 0, 308, 14, 0,
2728 0, 0, 0, 334, 0, 0, 0, 0, 0, 0,
2729 0, 0, 16, 309, 17, 0, 19, 0, 310, 311,
2730 312, 20, 0, 313, 314, 315, 21, 316, 317, 0,
2731 23, 0, 0, 0, 318, 319, 320, 321, 322, 26,
2732 0, 27, 262, 0, 0, 0, 324, 0, 0, 0,
2733 0, 0, 325, 0, 0, 326, 0, 0, 0, 0,
2734 0, 0, 0, 327, 328, 329, 0, 0, 0, 0,
2735 0, 330, 331, 332, 0, 0, 0, 333, 261, 8,
2736 9, 10, 0, 12, 486, 306, 307, 0, 308, 14,
2737 0, 0, 0, 0, 334, 0, 0, 0, 0, 0,
2738 0, 0, 0, 16, 309, 17, 0, 19, 0, 310,
2739 311, 312, 20, 0, 313, 314, 315, 21, 316, 317,
2740 0, 23, 0, 0, 0, 318, 319, 320, 321, 322,
2741 26, 0, 27, 262, 590, 0, 0, 0, 0, 0,
2742 0, 0, 0, 325, 0, 0, 326, 0, 0, 0,
2743 0, 0, 0, 0, 327, 328, 329, 0, 0, 0,
2744 0, 0, 330, 331, 332, 0, 0, 0, 591, 261,
2745 8, 9, 10, 0, 12, 486, 306, 307, 0, 308,
2746 14, 0, 0, 0, 0, 334, 0, 0, 0, 0,
2747 0, 0, 0, 0, 16, 309, 17, 0, 19, 0,
2748 310, 311, 312, 20, 0, 313, 314, 315, 21, 316,
2749 317, 0, 23, 0, 0, 0, 318, 319, 320, 321,
2750 322, 26, 0, 27, 262, 0, 0, 0, 0, 0,
2751 0, 0, 0, 0, 325, 0, 0, 326, 0, 0,
2752 0, 0, 0, 0, 0, 327, 328, 329, 0, 0,
2753 0, 0, 0, 330, 331, 332, 0, 0, 0, 333,
2754 628, 261, 8, 9, 10, 0, 12, 486, 306, 307,
2755 0, 308, 14, 0, 0, 0, 334, 0, 0, 0,
2756 0, 0, 0, 0, 0, 0, 16, 309, 17, 0,
2757 19, 0, 310, 311, 312, 20, 0, 313, 314, 315,
2758 21, 316, 317, 0, 23, 0, 0, 0, 318, 319,
2759 320, 321, 322, 26, 0, 27, 262, 0, 0, 0,
2760 369, 0, 0, 0, 0, 0, 325, 0, 0, 326,
2761 0, 0, 0, 0, 0, 0, 0, 327, 328, 329,
2762 0, 0, 0, 0, 0, 330, 331, 332, 0, 0,
2763 0, 333, 261, 8, 9, 10, 0, 12, 486, 306,
2764 307, 0, 308, 14, 0, 0, 0, 0, 334, 0,
2765 0, 0, 0, 0, 0, 0, 0, 16, 309, 17,
2766 18, 19, 0, 310, 311, 312, 20, 0, 313, 314,
2767 315, 21, 316, 317, 0, 23, 0, 0, 0, 318,
2768 319, 320, 321, 322, 26, 0, 27, 262, 0, 0,
2769 0, 0, 0, 0, 0, 0, 0, 325, 0, 0,
2770 576, 0, 0, 0, 0, 0, 0, 0, 327, 328,
2771 577, 0, 0, 0, 0, 0, 330, 331, 332, 0,
2772 0, 0, 578, 1239, 8, 9, 10, 0, 12, 486,
2773 306, 307, 0, 308, 14, 0, 0, 0, 0, 334,
2774 0, 0, 0, 0, 0, 0, 0, 0, 16, 309,
2775 17, 0, 19, 0, 310, 311, 312, 20, 0, 313,
2776 314, 315, 21, 316, 317, 0, 23, 0, 0, 0,
2777 318, 319, 320, 321, 322, 26, 0, 27, 262, 0,
2778 0, 0, 369, 0, 0, 0, 0, 0, 325, 0,
2779 0, 326, 0, 0, 0, 0, 0, 0, 0, 327,
2780 328, 329, 0, 0, 0, 0, 0, 330, 331, 332,
2781 0, 0, 0, 333, 7, 8, 9, 10, 0, 12,
2782 305, 306, 307, 0, 308, 14, 0, 0, 0, 0,
2783 334, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2784 309, 17, 18, 19, 0, 310, 311, 312, 20, 0,
2785 313, 314, 315, 21, 316, 317, 0, 23, 0, 0,
2786 0, 318, 319, 320, 321, 322, 26, 0, 27, 28,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 325,
2788 0, 0, 1583, 0, 0, 0, 0, 0, 0, 0,
2789 327, 328, 1584, 0, 0, 0, 0, 0, 330, 331,
2790 332, 0, 0, 0, 1585, 261, 8, 9, 10, 0,
2791 12, 486, 306, 307, 0, 308, 14, 0, 0, 0,
2792 0, 334, 0, 0, 0, 0, 0, 0, 0, 0,
2793 16, 309, 17, 0, 19, 0, 310, 311, 312, 20,
2794 0, 313, 314, 315, 21, 316, 317, 0, 23, 0,
2795 0, 0, 318, 319, 320, 321, 322, 26, 0, 27,
2796 262, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2797 325, 0, 0, 326, 0, 0, 0, 0, 0, 0,
2798 0, 327, 328, 329, 0, 0, 0, 0, 0, 330,
2799 331, 332, 0, 0, 0, 558, 261, 8, 9, 10,
2800 0, 12, 486, 306, 307, 0, 308, 14, 0, 0,
2801 0, 0, 334, 0, 0, 0, 0, 0, 0, 0,
2802 0, 16, 309, 17, 0, 19, 0, 310, 311, 312,
2803 20, 0, 313, 314, 315, 21, 316, 317, 0, 23,
2804 0, 0, 0, 318, 319, 320, 321, 322, 26, 0,
2805 27, 262, 0, 0, 0, 0, 0, 0, 0, 0,
2806 0, 325, 0, 0, 326, 0, 0, 0, 0, 0,
2807 0, 0, 327, 328, 329, 0, 0, 0, 0, 0,
2808 330, 331, 332, 0, 0, 0, 560, 261, 8, 9,
2809 10, 0, 12, 486, 306, 307, 0, 308, 14, 0,
2810 0, 0, 0, 334, 0, 0, 0, 0, 0, 0,
2811 0, 0, 16, 309, 17, 0, 19, 0, 310, 311,
2812 312, 20, 0, 313, 314, 315, 21, 316, 317, 0,
2813 23, 0, 0, 0, 318, 319, 320, 321, 322, 26,
2814 0, 27, 262, 0, 0, 0, 0, 0, 0, 0,
2815 0, 0, 325, 0, 0, 326, 0, 0, 0, 0,
2816 0, 0, 0, 327, 328, 329, 0, 0, 0, 0,
2817 0, 330, 331, 332, 0, 0, 0, 333, 0, 0,
2818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2819 0, 683, 0, 0, 334, 684, 685, 686, 687, 688,
2820 689, 690, 691, 692, 693, 694, 695, 696, 697, 698,
2821 699, 700, 701, 702, 703, 704, 705, 1170, 0, 0,
2822 0, 684, 685, 686, 687, 688, 689, 690, 691, 692,
2823 693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
2824 703, 704, 705, 1648, 684, 685, 686, 687, 688, 689,
2825 690, 691, 692, 693, 694, 695, 696, 697, 698, 699,
2826 700, 701, 702, 703, 704, 705, 684, 685, 686, 687,
2827 688, 689, 690, 691, 692, 693, 694, 695, 696, 697,
2828 698, 699, 700, 701, 702, 703, 704, 705
2831 static const short yycheck[] = { 4,
2832 55, 46, 4, 175, 174, 23, 758, 210, 176, 80,
2833 407, 14, 4, 359, 161, 353, 528, 149, 150, 22,
2834 407, 42, 407, 126, 359, 4, 84, 4, 465, 686,
2835 35, 76, 134, 35, 156, 740, 14, 42, 59, 588,
2836 42, 308, 309, 35, 4, 248, 378, 90, 666, 92,
2837 4, 42, 57, 30, 31, 252, 35, 244, 35, 133,
2838 134, 935, 65, 42, 445, 42, 843, 72, 845, 210,
2839 734, 124, 42, 144, 341, 35, 853, 133, 219, 84,
2840 190, 35, 42, 88, 1476, 90, 483, 92, 42, 1398,
2841 460, 12, 1564, 42, 137, 42, 483, 11, 301, 4,
2842 39, 1408, 107, 108, 57, 83, 38, 84, 1415, 11,
2843 11, 75, 1, 9, 1588, 1613, 55, 33, 8, 9,
2844 175, 124, 1, 741, 14, 1566, 514, 60, 106, 0,
2845 35, 136, 137, 204, 139, 1609, 48, 42, 1610, 60,
2846 478, 55, 63, 531, 1691, 148, 80, 37, 169, 63,
2847 353, 489, 218, 219, 61, 0, 46, 27, 48, 136,
2848 165, 31, 359, 1, 169, 1663, 62, 169, 1715, 214,
2849 59, 176, 149, 150, 165, 108, 136, 109, 169, 84,
2850 59, 93, 136, 136, 63, 190, 1652, 108, 165, 210,
2851 169, 61, 169, 109, 108, 65, 1670, 218, 219, 169,
2852 360, 361, 109, 93, 1645, 165, 108, 108, 25, 169,
2853 27, 165, 582, 190, 48, 169, 95, 194, 195, 12,
2854 169, 59, 169, 176, 48, 63, 1692, 248, 60, 33,
2855 49, 136, 62, 75, 27, 33, 239, 240, 31, 109,
2856 55, 25, 59, 27, 93, 757, 63, 60, 63, 252,
2857 4, 5, 1724, 413, 414, 48, 1565, 95, 1650, 93,
2858 165, 61, 1569, 76, 169, 60, 60, 60, 61, 93,
2859 63, 249, 65, 61, 108, 59, 350, 109, 95, 63,
2860 301, 859, 4, 5, 108, 190, 991, 865, 346, 994,
2861 352, 353, 354, 108, 350, 49, 398, 302, 55, 7,
2862 93, 94, 61, 57, 58, 55, 453, 1306, 1307, 109,
2863 140, 95, 1619, 108, 108, 108, 1190, 663, 75, 362,
2864 60, 109, 325, 55, 1323, 75, 156, 81, 333, 60,
2865 38, 63, 353, 267, 48, 57, 58, 390, 93, 48,
2866 60, 346, 727, 1048, 1049, 149, 150, 151, 48, 354,
2867 109, 48, 150, 151, 409, 48, 65, 362, 363, 48,
2868 93, 75, 55, 366, 1671, 497, 498, 48, 108, 346,
2869 511, 752, 753, 25, 377, 1039, 12, 108, 500, 93,
2870 94, 359, 75, 213, 93, 717, 363, 390, 108, 759,
2871 411, 221, 196, 93, 108, 75, 93, 975, 196, 25,
2872 93, 27, 407, 363, 93, 410, 75, 59, 238, 363,
2873 363, 63, 93, 475, 55, 477, 478, 479, 4, 93,
2874 475, 48, 477, 478, 60, 12, 447, 63, 407, 65,
2875 407, 4, 5, 59, 75, 48, 633, 63, 1437, 61,
2876 33, 346, 447, 95, 510, 511, 48, 1446, 1447, 35,
2877 1449, 48, 518, 872, 873, 874, 447, 478, 363, 48,
2878 3, 4, 5, 6, 530, 48, 93, 94, 65, 95,
2879 447, 476, 1346, 60, 479, 520, 63, 447, 483, 522,
2880 93, 108, 55, 549, 57, 58, 48, 447, 1106, 510,
2881 511, 93, 94, 447, 1043, 59, 93, 518, 71, 42,
2882 937, 76, 407, 78, 93, 94, 483, 667, 81, 530,
2883 93, 94, 55, 556, 57, 58, 4, 522, 4, 108,
2884 497, 498, 107, 526, 529, 1230, 1231, 529, 549, 48,
2885 55, 93, 25, 97, 27, 333, 1114, 61, 4, 5,
2886 4, 5, 447, 9, 25, 1322, 89, 35, 1126, 35,
2887 75, 556, 529, 558, 48, 560, 149, 150, 151, 48,
2888 565, 566, 567, 568, 569, 63, 59, 625, 48, 529,
2889 63, 84, 85, 578, 93, 529, 529, 75, 483, 4,
2890 5, 751, 1160, 588, 1162, 49, 591, 590, 55, 55,
2891 48, 57, 58, 57, 58, 529, 1595, 1596, 55, 93,
2892 1112, 55, 95, 196, 93, 71, 63, 31, 3, 4,
2893 5, 48, 63, 93, 669, 81, 718, 81, 75, 624,
2894 625, 75, 48, 725, 529, 455, 59, 48, 94, 75,
2895 633, 59, 57, 58, 48, 93, 434, 435, 643, 985,
2896 48, 828, 829, 1040, 48, 650, 48, 834, 625, 670,
2897 985, 725, 48, 1040, 59, 1040, 93, 48, 1095, 1096,
2898 65, 491, 57, 58, 641, 642, 643, 93, 94, 65,
2899 500, 733, 93, 650, 4, 5, 654, 720, 733, 93,
2900 94, 884, 108, 55, 63, 93, 81, 517, 504, 93,
2901 94, 93, 94, 497, 498, 499, 512, 93, 94, 1069,
2902 498, 499, 93, 94, 108, 190, 108, 48, 726, 780,
2903 55, 48, 733, 93, 981, 720, 876, 108, 48, 55,
2904 625, 4, 5, 726, 63, 55, 55, 57, 58, 108,
2905 75, 734, 60, 182, 837, 60, 61, 3, 643, 757,
2906 6, 71, 1254, 1180, 1181, 650, 55, 1093, 76, 859,
2907 78, 81, 93, 94, 820, 865, 93, 94, 1093, 76,
2908 558, 764, 560, 93, 94, 31, 49, 108, 59, 108,
2909 775, 108, 63, 63, 57, 58, 42, 63, 783, 577,
2910 578, 108, 3, 4, 5, 75, 108, 1299, 985, 75,
2911 108, 57, 58, 591, 108, 850, 773, 774, 775, 820,
2912 45, 846, 847, 781, 55, 71, 783, 63, 55, 11,
2913 55, 856, 63, 58, 109, 81, 63, 860, 861, 75,
2914 863, 97, 884, 89, 75, 61, 48, 93, 75, 806,
2915 807, 1268, 93, 55, 3, 48, 57, 58, 843, 60,
2916 845, 843, 55, 845, 1196, 1197, 851, 1199, 853, 60,
2917 61, 853, 650, 75, 859, 860, 861, 1195, 863, 1296,
2918 865, 983, 75, 884, 55, 975, 843, 61, 845, 75,
2919 775, 93, 63, 1033, 4, 5, 853, 94, 783, 9,
2920 93, 63, 859, 843, 75, 845, 1056, 94, 865, 843,
2921 843, 845, 845, 853, 93, 957, 1093, 850, 851, 853,
2922 853, 1338, 964, 27, 497, 498, 499, 31, 1565, 843,
2923 55, 845, 55, 60, 61, 4, 5, 851, 63, 853,
2924 63, 983, 1109, 1110, 1111, 55, 1678, 57, 58, 934,
2925 75, 111, 75, 938, 60, 93, 60, 61, 843, 93,
2926 845, 71, 60, 61, 60, 61, 1078, 1079, 853, 75,
2927 76, 81, 78, 75, 859, 1087, 1088, 60, 75, 1081,
2928 865, 75, 65, 75, 969, 60, 55, 11, 57, 58,
2929 975, 775, 75, 76, 979, 60, 61, 775, 60, 783,
2930 108, 466, 71, 84, 85, 783, 3, 4, 5, 1426,
2931 60, 61, 81, 108, 1154, 1155, 1156, 108, 975, 797,
2932 977, 978, 979, 108, 1114, 94, 75, 985, 55, 807,
2933 808, 27, 1083, 1075, 75, 31, 1126, 60, 61, 1081,
2934 60, 61, 75, 1026, 108, 1, 1463, 3, 4, 5,
2935 6, 109, 8, 60, 61, 1040, 1039, 1042, 1043, 65,
2936 57, 58, 1699, 109, 60, 61, 108, 65, 108, 65,
2937 1160, 1, 1162, 3, 4, 5, 81, 82, 83, 84,
2938 85, 1040, 1117, 1040, 27, 111, 42, 1138, 75, 1407,
2939 975, 108, 557, 49, 979, 1080, 108, 75, 55, 55,
2940 75, 57, 58, 111, 1089, 1130, 3, 4, 5, 6,
2941 111, 1136, 1137, 1098, 108, 1140, 1141, 108, 48, 1144,
2942 1222, 1078, 1079, 1080, 108, 55, 59, 57, 58, 1114,
2943 1087, 1088, 1089, 89, 108, 1093, 55, 1487, 8, 9,
2944 8, 1126, 93, 48, 14, 42, 109, 957, 65, 60,
2945 615, 93, 55, 1503, 964, 1040, 621, 1114, 623, 624,
2946 57, 58, 1147, 93, 109, 1147, 61, 37, 1270, 1126,
2947 37, 65, 65, 983, 65, 1160, 46, 1162, 61, 108,
2948 1222, 1204, 108, 63, 1117, 1170, 4, 5, 108, 65,
2949 1147, 65, 657, 111, 76, 1080, 4, 76, 1181, 60,
2950 978, 979, 775, 1160, 1089, 1162, 108, 1147, 108, 108,
2951 783, 76, 108, 1147, 1147, 63, 1356, 818, 108, 1204,
2952 76, 76, 108, 108, 1138, 63, 1603, 35, 1270, 1114,
2953 60, 108, 63, 1147, 42, 108, 1603, 55, 1588, 57,
2954 58, 1126, 1227, 7, 8, 9, 108, 55, 94, 57,
2955 14, 111, 109, 1405, 108, 1407, 1254, 858, 1406, 1609,
2956 111, 108, 1147, 864, 89, 1075, 75, 31, 1225, 1226,
2957 1227, 1081, 48, 37, 108, 1160, 108, 1162, 111, 1262,
2958 1265, 108, 46, 1265, 108, 1268, 1636, 108, 63, 1607,
2959 1275, 108, 1709, 1265, 1078, 1079, 1080, 4, 5, 109,
2960 61, 1079, 1080, 1087, 1088, 1089, 109, 60, 1265, 108,
2961 1088, 1089, 60, 65, 60, 108, 1273, 1274, 1275, 63,
2962 1670, 108, 93, 93, 31, 4, 5, 190, 136, 109,
2963 9, 1265, 140, 93, 93, 1292, 1293, 1322, 111, 108,
2964 1322, 48, 1227, 108, 8, 1695, 30, 31, 55, 33,
2965 57, 58, 31, 108, 108, 111, 33, 165, 108, 108,
2966 65, 169, 55, 108, 71, 1322, 108, 175, 176, 970,
2967 1405, 972, 1407, 57, 81, 59, 55, 108, 57, 58,
2968 1265, 65, 1322, 108, 107, 108, 93, 94, 1322, 1322,
2969 1275, 108, 71, 108, 823, 81, 82, 83, 84, 85,
2970 108, 63, 81, 1317, 108, 111, 1407, 48, 1322, 1392,
2971 1393, 108, 1222, 1398, 93, 223, 1398, 108, 55, 1444,
2972 1445, 1406, 96, 1408, 1607, 108, 1408, 63, 63, 61,
2973 1415, 61, 9, 1415, 61, 16, 1408, 1322, 1423, 108,
2974 108, 1398, 108, 1415, 111, 3, 4, 5, 1226, 1227,
2975 108, 1408, 108, 1580, 93, 93, 61, 141, 1415, 61,
2976 1270, 65, 146, 55, 1398, 149, 150, 151, 191, 93,
2977 93, 1583, 1584, 938, 1408, 17, 61, 55, 61, 4,
2978 5, 1415, 108, 108, 1526, 1295, 107, 952, 1513, 954,
2979 102, 956, 176, 108, 108, 1478, 1274, 1275, 182, 57,
2980 58, 59, 11, 93, 61, 1078, 1079, 1080, 1658, 61,
2981 194, 195, 196, 1398, 1087, 1088, 1089, 1500, 1501, 65,
2982 61, 108, 60, 1408, 49, 61, 210, 61, 108, 108,
2983 1415, 61, 57, 58, 218, 219, 0, 61, 175, 61,
2984 1525, 61, 0, 0, 407, 35, 2, 1589, 170, 1501,
2985 3, 4, 5, 6, 718, 363, 81, 1040, 1159, 169,
2986 1161, 1688, 165, 1028, 1691, 1657, 1523, 1524, 1525, 3,
2987 4, 5, 447, 1608, 1559, 851, 260, 94, 1254, 1564,
2988 1565, 1566, 1564, 1565, 1569, 1712, 223, 1569, 1715, 42,
2989 239, 139, 1564, 1486, 1577, 1724, 49, 1569, 1063, 1026,
2990 1585, 409, 1559, 304, 57, 58, 1607, 1564, 1565, 1566,
2991 333, 764, 1569, 1638, 243, 676, 1299, 1218, 1603, 1147,
2992 483, 55, 1112, 57, 58, 1610, 1583, 1584, 1610, 851,
2993 1564, 1565, 1319, 678, 1619, 1569, 89, 1619, 1610, 447,
2994 1525, 997, 625, 3, 4, 5, 1603, 1619, 201, 333,
2995 350, 124, 1408, 1610, 1, 1266, 3, 4, 5, 1678,
2996 1645, 1695, 1619, 1624, 1690, 1423, 792, 475, 476, 477,
2997 478, -1, -1, -1, 1559, 483, 1610, -1, -1, 1564,
2998 1565, 1566, -1, 491, 1569, 1619, 1671, -1, 1645, 1671,
2999 1119, 1120, -1, -1, -1, 55, 504, 57, 58, 1671,
3000 -1, 48, 1303, -1, 512, -1, -1, 1308, 55, -1,
3001 57, 58, 59, 60, 1671, -1, 1526, 1146, 1603, -1,
3002 -1, 529, 1151, -1, -1, 1610, 410, 411, -1, -1,
3003 1514, -1, -1, -1, 1619, -1, 1514, 1671, -1, 1724,
3004 424, -1, 1724, 427, 4, 5, 93, 31, -1, 433,
3005 434, 435, 1724, -1, -1, 439, -1, -1, -1, 1360,
3006 1645, -1, -1, 3, 4, 5, 6, 1724, 3, 4,
3007 5, -1, 409, -1, 3, 4, 5, -1, -1, 1589,
3008 643, 82, -1, 506, -1, 324, 1671, 650, -1, 49,
3009 1724, 1256, 476, 1258, 478, 1260, -1, 57, 58, 1583,
3010 1584, 1585, 42, -1, -1, -1, 1584, 1585, 492, 49,
3011 -1, 495, -1, 497, 498, 499, -1, 57, 58, 503,
3012 55, 81, 57, 58, 59, 509, 510, 511, 57, 58,
3013 514, -1, -1, -1, 518, 558, -1, 560, 475, 1724,
3014 477, 478, 565, -1, -1, -1, -1, 531, -1, 89,
3015 -1, -1, 1453, 1454, 491, 578, -1, 141, 159, -1,
3016 -1, 669, 146, 500, 3, 4, 5, 504, 591, 1470,
3017 -1, -1, 595, -1, 558, 512, 560, -1, -1, -1,
3018 -1, -1, -1, 1312, 1313, -1, 1315, 1316, -1, 1318,
3019 -1, 192, 576, 577, 578, 9, -1, -1, 12, 622,
3020 -1, -1, 1367, -1, 205, 628, -1, 591, -1, -1,
3021 49, 195, 775, 3, 4, 5, 6, -1, 57, 58,
3022 783, 644, -1, -1, -1, 733, -1, -1, 1529, 1530,
3023 3, 4, 5, 6, 48, 3, 4, 5, -1, 7,
3024 190, 1514, -1, -1, 1545, 1546, 60, -1, 62, 63,
3025 -1, 65, 42, 7, 8, 9, -1, 641, 642, 643,
3026 14, -1, 76, 686, 78, 55, 650, 57, 58, 42,
3027 38, 61, -1, 63, -1, 48, 260, 31, -1, 93,
3028 94, 71, 55, 37, 57, 58, 670, 55, -1, 57,
3029 58, 81, 46, -1, 108, -1, 859, -1, 71, 89,
3030 -1, -1, 865, 93, -1, 1434, 1435, 61, 81, -1,
3031 1583, 1584, 1585, -1, -1, -1, 89, -1, -1, -1,
3032 93, 94, 77, 78, 79, 80, 81, 82, 83, 84,
3033 85, -1, 669, -1, -1, 843, -1, 845, 3, 4,
3034 5, -1, 850, 851, -1, 853, 3, 4, 5, 733,
3035 734, 3, 4, 5, 593, 594, -1, 596, 597, 598,
3036 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
3037 609, 610, 611, 612, 613, 3, 4, 5, 6, 3,
3038 4, 5, 6, -1, 49, -1, -1, -1, -1, 773,
3039 774, 775, 57, 58, -1, -1, 733, -1, 55, 783,
3040 57, 58, -1, -1, -1, 57, 58, 1536, 1537, 1538,
3041 -1, -1, 975, 797, 42, -1, 979, -1, 42, -1,
3042 804, 805, 806, 807, 808, 3, 4, 5, 812, 57,
3043 58, 55, -1, 57, 58, -1, 820, 61, -1, 823,
3044 424, -1, -1, 427, 3, 4, 5, 71, 7, 8,
3045 9, -1, -1, 194, 195, 439, -1, 81, -1, -1,
3046 -1, 89, -1, 1592, 1593, 89, -1, 851, -1, 93,
3047 -1, -1, 31, 3, 4, 5, 6, 1040, 37, 57,
3048 58, 4, 5, -1, -1, 8, 9, -1, 3, 4,
3049 5, 14, 7, 8, 9, -1, 55, -1, 57, 58,
3050 59, 502, -1, -1, -1, 28, 507, 30, 492, -1,
3051 -1, 495, 42, 850, 37, -1, 466, 1080, -1, 942,
3052 -1, -1, -1, 46, -1, 509, 1089, 57, 58, -1,
3053 -1, 532, 55, 1662, 57, 58, 59, 538, -1, -1,
3054 -1, -1, 57, 58, 103, 104, 105, -1, -1, 550,
3055 551, 1114, 553, 976, -1, -1, 979, -1, -1, 89,
3056 -1, -1, -1, 1126, -1, -1, -1, 1075, -1, -1,
3057 93, -1, -1, -1, 958, -1, -1, 961, -1, -1,
3058 -1, -1, 3, 4, 5, 6, 3, 4, 5, 973,
3059 7, 8, 9, 977, 978, 979, -1, 1160, -1, 1162,
3060 4, 5, -1, 7, 8, 9, -1, 557, 12, 1117,
3061 14, -1, -1, -1, 31, 3, 4, 5, 39, 40,
3062 37, 42, -1, -1, 28, -1, 30, 31, 3, 4,
3063 5, -1, -1, 37, 55, -1, 57, 58, -1, 1147,
3064 57, 58, 46, -1, 48, 646, 647, -1, -1, -1,
3065 651, 55, -1, 57, 58, 1039, 3, 4, 5, -1,
3066 -1, -1, -1, -1, 1227, 615, 1089, 71, 89, 57,
3067 58, 621, -1, 623, 624, -1, -1, 81, -1, -1,
3068 -1, -1, 57, 58, -1, 3, 4, 5, 6, 93,
3069 94, 9, 1076, 1077, 1078, 1079, 1080, -1, -1, -1,
3070 650, 1085, -1, 1087, 1088, 1089, -1, 657, -1, -1,
3071 57, 58, 1275, 31, -1, 1099, 1100, 1101, -1, 7,
3072 8, 9, -1, -1, 42, -1, 14, 3, 4, 5,
3073 6, -1, -1, 9, -1, 1119, 1120, 55, 1075, 57,
3074 58, -1, -1, 31, 1081, 3, 4, 5, 6, 37,
3075 -1, 492, -1, 71, 495, 31, 497, 498, 46, -1,
3076 -1, -1, 1146, 81, -1, -1, 42, 1151, 509, -1,
3077 -1, 89, 48, 61, -1, 93, 777, 1200, -1, 55,
3078 1117, 57, 58, -1, 42, 4, 5, -1, -1, -1,
3079 774, 49, -1, -1, -1, 71, -1, -1, -1, 57,
3080 58, -1, -1, -1, -1, 81, 1314, 1046, -1, 810,
3081 -1, 1319, -1, 89, 1322, -1, -1, 93, 94, -1,
3082 804, 805, -1, 81, 4, -1, 45, -1, 812, 4,
3083 5, 89, -1, 783, 14, -1, 55, -1, 57, 58,
3084 -1, 1225, 1226, 1227, 24, -1, -1, 797, -1, -1,
3085 30, 31, -1, 33, -1, 35, 31, -1, -1, -1,
3086 -1, -1, 42, -1, -1, 866, -1, 868, -1, -1,
3087 -1, -1, -1, 48, -1, 55, -1, 57, -1, -1,
3088 55, -1, 57, 58, -1, 65, -1, 1271, 1272, 1273,
3089 1274, 1275, 72, -1, 1278, -1, 71, 1405, 1406, 1407,
3090 -1, -1, -1, 83, 84, -1, 81, 48, 1292, 1293,
3091 1294, 1334, 1335, 1336, 1337, -1, -1, -1, 93, 94,
3092 -1, 1344, -1, -1, -1, -1, 106, -1, 1312, 1313,
3093 -1, 1315, 1316, 1270, 1318, -1, -1, -1, -1, 940,
3094 941, -1, 943, -1, -1, 1184, 87, 88, -1, -1,
3095 91, 92, 93, 94, 134, -1, 136, -1, 1295, -1,
3096 140, 141, 1525, -1, -1, 145, 146, -1, 1391, 149,
3097 150, 151, -1, 974, -1, -1, -1, 1314, -1, 7,
3098 8, 9, -1, -1, -1, 165, 14, -1, 938, 169,
3099 -1, -1, -1, -1, -1, 175, 176, -1, -1, -1,
3100 -1, -1, 952, 31, 954, -1, 956, -1, -1, 37,
3101 -1, -1, -1, -1, 194, 195, 196, -1, 46, -1,
3102 -1, -1, 1406, 1407, 79, 80, 81, 82, 83, 84,
3103 85, -1, 773, 774, 1418, 1419, -1, 1421, -1, -1,
3104 1603, -1, -1, 223, 4, 5, -1, -1, 8, 9,
3105 1434, 1435, -1, -1, 14, -1, -1, -1, -1, -1,
3106 240, -1, -1, 804, 805, 806, 807, -1, 1405, 249,
3107 1407, 812, -1, 1496, -1, -1, -1, 37, 1028, -1,
3108 260, -1, -1, 1084, -1, -1, 46, -1, 48, -1,
3109 -1, -1, 1076, 1077, -1, 55, -1, 57, 58, -1,
3110 1608, 1085, -1, -1, 4, 5, -1, -1, 8, 9,
3111 -1, 71, 1113, 1063, 14, -1, -1, -1, -1, -1,
3112 -1, 81, 302, 303, 1125, -1, -1, -1, -1, -1,
3113 1514, -1, -1, 93, 94, -1, 1559, 37, -1, 1523,
3114 1524, 1525, 1565, 1566, -1, -1, 46, -1, 48, -1,
3115 -1, -1, 1536, 1537, 1538, 55, -1, 57, 58, -1,
3116 -1, -1, 1585, -1, -1, -1, 346, -1, -1, -1,
3117 350, 71, 352, 353, 354, -1, -1, -1, -1, -1,
3118 -1, 81, -1, 363, 4, 5, -1, -1, -1, 1526,
3119 -1, -1, -1, 93, 94, -1, -1, 107, 108, 1583,
3120 1584, 1585, -1, -1, -1, -1, -1, -1, 1592, 1593,
3121 -1, 31, 1213, -1, 3, 4, 5, 6, 398, -1,
3122 -1, -1, 1645, -1, -1, -1, -1, 407, -1, 409,
3123 410, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3124 -1, -1, 1665, -1, 424, -1, -1, 427, -1, -1,
3125 -1, 71, 1589, 42, -1, -1, -1, -1, -1, 439,
3126 -1, 81, -1, -1, 1687, -1, 55, 447, 57, 58,
3127 -1, 1608, -1, 93, 63, 1276, 1699, 80, 1662, -1,
3128 190, -1, 71, -1, -1, -1, -1, 1271, 1272, -1,
3129 -1, -1, 81, -1, 1278, 475, 476, 477, 478, 479,
3130 89, 104, -1, 483, 93, -1, 1256, -1, 1258, -1,
3131 1260, 491, 492, -1, -1, 495, -1, 497, 498, 499,
3132 500, -1, -1, 1324, 504, -1, -1, 1328, -1, 509,
3133 133, -1, 512, -1, -1, 1076, 1077, 1078, 1079, -1,
3134 -1, 144, -1, -1, 1085, -1, 1087, 1088, -1, 529,
3135 -1, 3, 4, 5, 6, 7, 8, 9, 1099, 1100,
3136 1101, 1362, 14, 79, 80, 81, 82, 83, 84, 85,
3137 3, 4, 5, 6, 554, -1, 28, -1, 30, 31,
3138 -1, -1, -1, -1, -1, 37, 566, 567, 568, 569,
3139 42, -1, -1, -1, 46, -1, 48, -1, 31, -1,
3140 -1, 204, -1, 55, -1, 57, 58, -1, -1, 42,
3141 -1, -1, -1, -1, -1, -1, -1, 1367, -1, 71,
3142 -1, -1, 55, 333, 57, 58, -1, -1, 1429, 81,
3143 -1, -1, 1433, -1, -1, -1, 239, 89, 71, -1,
3144 -1, 93, 94, 641, 642, 625, -1, 627, 81, 3,
3145 4, 5, 6, -1, 1455, 1456, 89, -1, -1, 639,
3146 93, 641, 642, 643, 267, -1, -1, -1, -1, -1,
3147 650, -1, -1, -1, 654, 74, 75, 31, 77, 78,
3148 79, 80, 81, 82, 83, 84, 85, -1, 42, 669,
3149 -1, -1, -1, -1, 48, 4, 5, 407, -1, -1,
3150 9, 55, -1, 57, 58, 77, 78, 79, 80, 81,
3151 82, 83, 84, 85, -1, 4, 5, 71, -1, -1,
3152 9, -1, 31, -1, -1, -1, -1, 81, -1, -1,
3153 1271, 1272, 1273, 1274, -1, 89, -1, 1278, 718, 93,
3154 94, -1, 31, -1, -1, 725, 55, -1, 57, 58,
3155 -1, 1292, 1293, 733, 734, 358, -1, -1, -1, 48,
3156 -1, -1, 71, -1, 1514, -1, 55, -1, 57, 58,
3157 -1, -1, 81, 483, -1, 773, 774, -1, -1, -1,
3158 -1, -1, 71, -1, 93, -1, -1, -1, -1, -1,
3159 -1, -1, 81, 773, 774, 775, -1, -1, -1, -1,
3160 -1, 781, -1, 783, 93, 94, 68, 69, 70, 71,
3161 72, 73, 74, 75, 417, 77, 78, 79, 80, 81,
3162 82, 83, 84, 85, 804, 805, 806, 807, 808, 73,
3163 74, 75, 812, 77, 78, 79, 80, 81, 82, 83,
3164 84, 85, -1, -1, 3, 4, 5, 6, 558, -1,
3165 560, 3, 4, 5, 6, 565, 566, 567, 568, 569,
3166 840, -1, -1, 843, -1, 845, -1, -1, 578, -1,
3167 850, 851, 31, 853, -1, -1, -1, 1418, 1419, 859,
3168 1421, 591, -1, 42, -1, 865, -1, -1, -1, 48,
3169 42, -1, 872, 873, 874, -1, 55, -1, 57, 58,
3170 -1, -1, -1, 55, 884, 57, 58, 3, 4, 5,
3171 6, 63, 71, -1, 624, -1, -1, -1, -1, 71,
3172 -1, -1, 81, 526, -1, -1, -1, -1, -1, 81,
3173 89, -1, -1, 643, 93, 94, -1, 89, -1, -1,
3174 650, 93, -1, 39, 40, -1, 42, -1, -1, 552,
3175 -1, -1, -1, -1, 934, 3, 4, 5, 6, 55,
3176 958, 57, 58, 961, -1, -1, -1, -1, 3, 4,
3177 5, 6, -1, -1, 9, 973, -1, 957, 958, 977,
3178 978, 961, 1523, 1524, 964, -1, -1, -1, -1, 969,
3179 -1, -1, -1, 973, 42, 975, 31, 977, 978, 979,
3180 -1, 49, -1, 983, -1, 985, -1, 42, -1, 57,
3181 58, -1, -1, 48, -1, -1, 3, 4, 5, 6,
3182 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
3183 -1, -1, -1, 81, -1, 638, 71, 3, 4, 5,
3184 6, 89, 1583, 1584, 31, -1, 81, -1, -1, -1,
3185 653, -1, -1, -1, 89, 42, -1, -1, 93, 94,
3186 1040, -1, 1042, -1, -1, 775, -1, -1, 55, -1,
3187 57, 58, -1, 783, -1, -1, 42, -1, 1076, 1077,
3188 1078, 1079, -1, 49, 71, -1, -1, 1085, -1, 1087,
3189 1088, 57, 58, -1, 81, 1075, 1076, 1077, 1078, 1079,
3190 1080, 1081, 89, -1, -1, 1085, 93, 1087, 1088, 1089,
3191 -1, -1, -1, 1093, -1, 81, -1, -1, 1098, 1099,
3192 1100, 1101, -1, 89, 3, 4, 5, 6, -1, -1,
3193 9, -1, -1, -1, 1114, -1, -1, 1117, -1, -1,
3194 -1, -1, -1, -1, -1, -1, 1126, -1, -1, 859,
3195 -1, -1, 31, -1, -1, 865, -1, -1, -1, 1139,
3196 -1, -1, -1, 42, -1, -1, -1, 1147, -1, 48,
3197 -1, -1, -1, -1, -1, -1, 55, 780, 57, 58,
3198 1160, -1, 1162, -1, 3, 4, 5, 6, -1, -1,
3199 1170, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3200 -1, -1, 81, -1, -1, -1, 809, -1, -1, -1,
3201 89, -1, -1, -1, 93, 94, 1196, 1197, -1, 1199,
3202 -1, -1, -1, 42, 934, -1, -1, 1225, 1226, -1,
3203 49, -1, -1, -1, -1, -1, -1, -1, 57, 58,
3204 -1, -1, 1222, -1, -1, 1225, 1226, 1227, -1, -1,
3205 3, 4, 5, 6, -1, -1, 9, -1, -1, 969,
3206 -1, -1, 81, -1, -1, 975, -1, -1, -1, 979,
3207 89, -1, 875, 1271, 1272, 1273, 1274, -1, 31, -1,
3208 1278, -1, -1, -1, -1, -1, -1, -1, -1, 42,
3209 1270, 1271, 1272, 1273, 1274, 1275, -1, -1, 1278, -1,
3210 4, -1, 55, -1, 57, 58, -1, -1, -1, -1,
3211 14, -1, 1292, 1293, 1294, 1295, -1, -1, 71, 23,
3212 24, 3, 4, 5, 6, -1, 30, 31, 81, 33,
3213 1040, 35, 1042, -1, 1314, -1, 89, -1, 42, 1319,
3214 93, -1, 1322, 3, 4, 5, 6, -1, -1, 31,
3215 -1, 55, -1, 57, 3, 4, 5, 6, -1, -1,
3216 42, 65, -1, -1, -1, -1, 48, -1, 72, -1,
3217 1080, -1, -1, 55, -1, 57, 58, -1, -1, 1089,
3218 84, 984, 42, 986, -1, -1, -1, -1, 1098, 71,
3219 -1, -1, -1, 42, -1, -1, -1, 57, 58, 81,
3220 49, -1, -1, -1, 1114, -1, -1, 89, 57, 58,
3221 -1, 93, 94, -1, -1, -1, 1126, -1, -1, -1,
3222 1418, 1419, -1, 1421, -1, 1405, 1406, 1407, -1, 89,
3223 -1, -1, 136, -1, -1, -1, 140, 141, 1418, 1419,
3224 89, 1421, 146, 1423, -1, 149, 150, 151, -1, -1,
3225 1160, -1, 1162, -1, -1, -1, -1, -1, -1, -1,
3226 1170, 165, -1, -1, -1, 169, -1, -1, -1, -1,
3227 -1, 175, 176, -1, -1, -1, -1, -1, -1, -1,
3228 1083, -1, -1, 1086, -1, -1, -1, -1, -1, -1,
3229 194, 195, 196, -1, -1, -1, -1, -1, -1, -1,
3230 -1, -1, -1, 1, -1, -1, 4, 5, -1, -1,
3231 8, 9, -1, -1, -1, -1, 14, 1227, -1, 223,
3232 -1, -1, -1, -1, -1, 1523, 1524, -1, -1, -1,
3233 28, -1, 30, -1, 1514, 1138, -1, -1, -1, 37,
3234 -1, 39, 40, 1523, 1524, 1525, 1526, -1, 46, -1,
3235 48, -1, -1, -1, -1, -1, 260, 55, -1, 57,
3236 58, -1, 60, -1, -1, 1275, 64, 65, 66, 67,
3237 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3238 78, 79, 80, 81, 82, 83, 84, -1, -1, 87,
3239 88, 89, -1, 91, -1, -1, 94, -1, 302, 303,
3240 -1, -1, -1, 1583, 1584, 1585, -1, -1, -1, 1589,
3241 4, 5, 110, -1, 8, 9, -1, -1, -1, -1,
3242 14, -1, -1, 1603, -1, -1, -1, -1, 1608, -1,
3243 -1, -1, -1, -1, 28, -1, 30, -1, -1, -1,
3244 -1, -1, 346, 37, -1, -1, 350, -1, 352, 353,
3245 354, -1, 46, -1, -1, 359, -1, -1, -1, 363,
3246 -1, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3247 -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
3248 -1, -1, -1, -1, 14, -1, -1, -1, -1, -1,
3249 3, 4, 5, 6, 398, -1, 9, 27, 28, 93,
3250 30, 31, 32, 407, -1, 409, 410, 37, -1, -1,
3251 -1, -1, 42, 1423, 1317, 45, 46, 47, 31, 49,
3252 424, -1, -1, 427, -1, 55, -1, 57, 58, 42,
3253 -1, 61, -1, -1, -1, 439, -1, -1, -1, -1,
3254 -1, 71, 55, 447, 57, 58, -1, -1, -1, -1,
3255 -1, 81, -1, -1, -1, -1, -1, -1, 71, 89,
3256 -1, -1, -1, 93, -1, -1, -1, 97, 81, -1,
3257 -1, 475, 476, 477, 478, 479, 89, -1, -1, 483,
3258 93, -1, 3, 4, 5, 6, -1, 491, 492, -1,
3259 -1, 495, -1, 497, 498, 499, 500, -1, -1, -1,
3260 504, -1, -1, -1, -1, 509, -1, -1, 512, -1,
3261 31, -1, -1, -1, -1, 1525, -1, 1420, -1, -1,
3262 -1, 42, -1, -1, 528, 529, -1, -1, -1, -1,
3263 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3264 1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3265 71, -1, -1, 14, -1, -1, -1, -1, -1, -1,
3266 81, -1, 566, 567, 568, 569, -1, 28, 89, 30,
3267 31, 32, 93, -1, -1, 1585, 37, -1, -1, -1,
3268 -1, 42, -1, -1, -1, 46, -1, -1, 49, -1,
3269 -1, -1, -1, 1603, 55, -1, 57, 58, 64, 65,
3270 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3271 71, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3272 81, 625, -1, 627, -1, -1, -1, -1, 89, -1,
3273 -1, -1, 93, -1, -1, -1, 97, 641, 642, 643,
3274 -1, -1, -1, -1, -1, 1, 650, 3, 4, 5,
3275 6, 7, 8, 9, 10, 11, 12, 13, 14, 663,
3276 -1, -1, -1, -1, -1, 669, -1, -1, -1, -1,
3277 -1, -1, 28, 29, 30, 31, 32, -1, 34, 35,
3278 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3279 46, -1, 48, -1, 50, 51, 52, 53, 54, 55,
3280 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3281 -1, -1, 68, -1, 718, 71, -1, -1, -1, -1,
3282 -1, -1, 726, 79, 80, 81, -1, -1, -1, 733,
3283 734, 87, 88, 89, -1, -1, -1, 93, 94, 3,
3284 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
3285 14, -1, -1, 757, 110, -1, -1, -1, -1, -1,
3286 -1, -1, -1, -1, 28, -1, 30, 31, 32, 773,
3287 774, 775, -1, 37, -1, -1, -1, -1, 42, 783,
3288 -1, -1, 46, -1, -1, 49, -1, -1, -1, -1,
3289 -1, 55, -1, 57, 58, -1, 3, 4, 5, 6,
3290 804, 805, 806, 807, 808, -1, -1, 71, 812, -1,
3291 -1, -1, -1, -1, -1, -1, -1, 81, -1, -1,
3292 -1, -1, -1, -1, 31, 89, -1, -1, -1, 93,
3293 -1, -1, -1, 97, -1, 42, 840, -1, -1, 843,
3294 -1, 845, -1, -1, -1, -1, 850, 851, 55, 853,
3295 57, 58, -1, -1, -1, 859, -1, -1, -1, -1,
3296 -1, 865, -1, -1, 71, -1, -1, -1, 872, 873,
3297 874, -1, -1, -1, 81, -1, -1, -1, -1, -1,
3298 884, -1, 89, -1, -1, -1, 93, -1, 1, -1,
3299 3, 4, 5, 6, 7, 8, 9, 72, 73, 74,
3300 75, 14, 77, 78, 79, 80, 81, 82, 83, 84,
3301 85, -1, -1, -1, -1, 28, -1, 30, 31, 32,
3302 -1, -1, -1, -1, 37, 38, -1, -1, -1, 42,
3303 934, -1, -1, 46, 47, -1, 49, -1, 3, 4,
3304 5, 6, 55, -1, 57, 58, -1, -1, 61, -1,
3305 63, -1, -1, 957, 958, -1, -1, 961, 71, -1,
3306 964, -1, -1, -1, -1, 969, -1, -1, 81, 973,
3307 -1, 975, -1, 977, 978, 979, 89, 42, -1, 983,
3308 93, 985, -1, -1, 49, -1, -1, -1, -1, -1,
3309 -1, -1, 57, 58, -1, -1, 109, -1, 1, -1,
3310 3, 4, 5, 6, 7, 8, 9, -1, -1, -1,
3311 -1, 14, -1, -1, -1, -1, 81, -1, -1, -1,
3312 -1, -1, -1, -1, 89, 28, -1, 30, 31, 32,
3313 -1, -1, -1, -1, 37, 38, 1040, -1, 1042, 42,
3314 -1, -1, -1, 46, 47, -1, 49, -1, -1, -1,
3315 -1, -1, 55, -1, 57, 58, -1, -1, 61, -1,
3316 63, 3, 4, 5, 6, -1, -1, -1, 71, -1,
3317 -1, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 81, -1,
3318 -1, 1085, -1, 1087, 1088, 1089, 89, -1, -1, 1093,
3319 93, -1, -1, -1, 1098, 1099, 1100, 1101, -1, -1,
3320 42, -1, -1, -1, -1, -1, 109, 49, 1112, -1,
3321 1114, -1, -1, 1117, -1, 57, 58, -1, -1, -1,
3322 -1, -1, 1126, -1, -1, -1, -1, -1, -1, 3,
3323 4, 5, 6, 7, 8, 9, -1, -1, -1, 81,
3324 14, -1, -1, 1147, -1, -1, 1, 89, 3, 4,
3325 5, 6, 7, 8, 9, -1, 1160, 31, 1162, 14,
3326 -1, -1, -1, 37, -1, -1, 1170, -1, 42, -1,
3327 -1, -1, 46, 28, 48, 30, 31, -1, -1, -1,
3328 -1, 55, 37, 57, 58, -1, -1, 42, -1, -1,
3329 -1, 46, 1196, 1197, 49, 1199, -1, 71, -1, -1,
3330 55, -1, 57, 58, 4, -1, 61, 81, 3, 4,
3331 5, 6, -1, -1, 9, 89, 71, -1, 1222, 93,
3332 94, 1225, 1226, 1227, -1, -1, 81, -1, -1, -1,
3333 30, 31, -1, 33, 89, 35, 31, -1, 93, -1,
3334 -1, -1, 42, -1, -1, -1, -1, 42, -1, -1,
3335 1254, -1, -1, 48, -1, 55, -1, 57, -1, -1,
3336 55, -1, 57, 58, -1, -1, 1270, 1271, 1272, 1273,
3337 1274, 1275, -1, -1, 1278, -1, 71, -1, -1, -1,
3338 80, -1, -1, 83, -1, -1, 81, -1, 1292, 1293,
3339 1294, 1295, -1, -1, 89, 1299, -1, -1, 93, 94,
3340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3341 1314, -1, -1, -1, -1, 1319, -1, -1, 1322, 3,
3342 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
3343 14, -1, -1, 133, 134, -1, 136, -1, -1, -1,
3344 140, 141, -1, -1, 144, 145, 146, 31, -1, 149,
3345 150, 151, -1, 37, -1, -1, 156, -1, 42, -1,
3346 -1, -1, 46, -1, 48, 165, -1, -1, -1, 169,
3347 -1, 55, -1, 57, 58, 175, 176, -1, -1, -1,
3348 -1, -1, -1, -1, -1, -1, -1, 71, -1, -1,
3349 1394, -1, -1, -1, 194, 195, 196, 81, -1, -1,
3350 -1, 1405, 1406, 1407, 204, 89, -1, -1, -1, 93,
3351 94, -1, -1, -1, 1418, 1419, -1, 1421, -1, 1423,
3352 -1, -1, -1, 223, 73, 74, 75, 76, 77, 78,
3353 79, 80, 81, 82, 83, 84, 85, 1, -1, 3,
3354 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3355 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3356 260, -1, -1, -1, 28, 29, 30, 267, 32, -1,
3357 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3358 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3359 54, 55, -1, 57, 58, 59, -1, -1, 62, -1,
3360 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3361 1514, -1, -1, -1, -1, 79, 80, 81, -1, 1523,
3362 1524, 1525, 1526, 87, 88, 89, -1, -1, -1, 93,
3363 94, -1, -1, 333, -1, -1, -1, -1, -1, -1,
3364 -1, -1, -1, -1, -1, 109, 110, -1, -1, -1,
3365 350, 3, 4, 5, 6, -1, -1, -1, 358, -1,
3366 -1, 4, 5, 363, -1, -1, 9, -1, 3, 4,
3367 5, 6, -1, -1, 9, -1, -1, -1, -1, 1583,
3368 1584, 1585, -1, -1, -1, 1589, -1, -1, 31, -1,
3369 42, -1, -1, -1, -1, -1, 31, -1, 398, 1603,
3370 -1, -1, -1, 55, 1608, 57, 58, 42, -1, 409,
3371 -1, 63, 55, 48, 57, 58, -1, 417, -1, 71,
3372 55, -1, 57, 58, 424, -1, -1, 427, 71, 81,
3373 -1, -1, -1, 433, 434, 435, 71, 89, 81, 439,
3374 -1, 93, -1, -1, -1, -1, 81, 447, -1, -1,
3375 93, -1, -1, -1, 89, -1, -1, -1, 93, 94,
3376 -1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3377 -1, -1, -1, 14, -1, 475, 476, 477, 478, 3,
3378 4, 5, 6, 483, -1, 9, -1, 28, -1, 30,
3379 31, 491, 492, -1, -1, 495, 37, 497, 498, 499,
3380 500, 42, -1, -1, 504, 46, -1, 31, -1, 509,
3381 -1, -1, 512, -1, 55, 4, 57, 58, 42, -1,
3382 61, -1, -1, -1, 48, -1, -1, -1, -1, 529,
3383 71, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3384 81, 30, 31, -1, 33, -1, 35, 71, 89, -1,
3385 -1, -1, 93, 42, -1, -1, -1, 81, 558, -1,
3386 560, -1, -1, -1, -1, 89, 55, -1, 57, 93,
3387 94, -1, -1, -1, -1, -1, 576, 577, 578, 1,
3388 -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3389 -1, 591, 14, -1, 83, -1, -1, -1, -1, -1,
3390 -1, -1, -1, -1, -1, -1, 28, -1, 30, 31,
3391 32, -1, -1, -1, -1, 37, -1, -1, -1, -1,
3392 42, -1, -1, -1, 46, 47, -1, 49, -1, -1,
3393 -1, -1, -1, 55, -1, 57, 58, -1, 638, 61,
3394 -1, 63, -1, -1, -1, -1, -1, 136, -1, 71,
3395 650, 140, 141, -1, -1, -1, 145, 146, -1, 81,
3396 149, 150, 151, -1, -1, -1, -1, 89, -1, 669,
3397 -1, 93, -1, -1, -1, -1, 165, 88, -1, 90,
3398 169, 92, -1, -1, -1, -1, 175, 176, 69, 70,
3399 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3400 81, 82, 83, 84, 85, 194, 195, 196, 1, -1,
3401 3, 4, 5, 6, 7, 8, 9, -1, 718, -1,
3402 -1, 14, -1, -1, -1, 725, 137, -1, 139, -1,
3403 -1, -1, -1, 733, 223, 28, -1, 30, 31, 32,
3404 -1, -1, -1, -1, 37, 38, -1, -1, -1, 42,
3405 -1, -1, -1, 46, 47, -1, 49, -1, -1, -1,
3406 -1, -1, 55, -1, 57, 58, -1, -1, 61, -1,
3407 63, 260, -1, 773, 774, 775, -1, -1, 71, -1,
3408 780, 781, -1, 783, -1, -1, -1, -1, 81, -1,
3409 -1, -1, -1, -1, -1, -1, 89, 797, -1, -1,
3410 93, -1, -1, -1, 804, 805, 806, 807, 808, -1,
3411 -1, -1, 812, -1, -1, -1, 109, -1, -1, -1,
3412 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
3413 -1, 1, 9, 3, 4, 5, 6, 7, 8, 9,
3414 -1, -1, -1, 843, 14, 845, -1, -1, -1, -1,
3415 850, 851, -1, 853, 31, -1, -1, -1, 28, -1,
3416 30, 31, 32, -1, -1, 42, -1, 37, 38, -1,
3417 359, -1, 42, -1, 363, -1, 46, 47, 55, 49,
3418 57, 58, -1, -1, -1, 55, -1, 57, 58, -1,
3419 -1, 61, -1, 63, 71, -1, -1, -1, -1, 310,
3420 311, 71, -1, -1, 81, -1, -1, -1, -1, -1,
3421 -1, 81, 89, 324, -1, 326, 93, -1, 329, 89,
3422 409, 332, -1, 93, 335, -1, -1, -1, 339, -1,
3423 -1, -1, -1, -1, -1, 424, 347, -1, 427, 109,
3424 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
3425 439, 362, 9, -1, -1, -1, -1, -1, 447, 71,
3426 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3427 82, 83, 84, 85, 31, -1, -1, 977, 978, 979,
3428 -1, -1, -1, 983, 984, 42, 475, 476, 477, 478,
3429 -1, -1, -1, -1, 483, -1, -1, -1, 55, -1,
3430 57, 58, 491, 492, -1, -1, 495, -1, 497, 498,
3431 499, -1, -1, -1, 71, 504, -1, 4, 5, -1,
3432 509, 8, 9, 512, 81, -1, -1, 14, -1, -1,
3433 -1, -1, 89, -1, -1, -1, 93, -1, -1, -1,
3434 529, 28, -1, 30, -1, -1, 4, 5, -1, -1,
3435 37, 9, -1, -1, -1, -1, -1, -1, -1, 46,
3436 -1, 48, -1, -1, -1, -1, -1, -1, 55, -1,
3437 57, 58, -1, 31, -1, 1075, 1076, 1077, 1078, 1079,
3438 1080, 1081, -1, 1083, 71, 1085, 1086, 1087, 1088, 1089,
3439 48, -1, -1, 1093, 81, -1, -1, 55, 33, 57,
3440 58, -1, -1, -1, 4, 5, 93, 94, 8, 9,
3441 -1, 522, -1, 71, 14, -1, -1, 1117, -1, -1,
3442 55, -1, -1, 81, -1, -1, -1, -1, 28, -1,
3443 30, -1, -1, -1, -1, 93, 94, 37, 1138, 1139,
3444 -1, -1, -1, -1, -1, 556, 46, 1147, -1, -1,
3445 639, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3446 -1, -1, -1, -1, -1, 576, 577, -1, -1, -1,
3447 -1, -1, -1, -1, -1, -1, -1, 588, -1, -1,
3448 669, -1, 593, 594, -1, 596, 597, 598, 599, 600,
3449 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
3450 611, 612, 613, -1, -1, -1, -1, -1, -1, -1,
3451 -1, -1, 4, 5, 149, 150, 151, 9, -1, -1,
3452 -1, -1, 1222, -1, -1, 1225, 1226, 1227, -1, -1,
3453 -1, -1, -1, -1, -1, -1, -1, -1, -1, 31,
3454 175, -1, -1, -1, 733, -1, -1, -1, -1, -1,
3455 -1, -1, -1, -1, -1, -1, 48, -1, -1, 194,
3456 195, 196, -1, 55, -1, 57, 58, -1, -1, -1,
3457 1270, 1271, 1272, 1273, 1274, 1275, -1, -1, 1278, 71,
3458 -1, -1, -1, -1, 773, 774, 775, -1, 223, 81,
3459 -1, -1, 781, -1, 783, -1, -1, -1, -1, -1,
3460 -1, 93, 94, -1, -1, -1, -1, -1, -1, 720,
3461 -1, -1, -1, -1, 1314, 804, 805, 1317, -1, 1319,
3462 -1, -1, 1322, 812, 3, 4, 5, 6, 7, 8,
3463 9, -1, -1, 12, -1, 14, -1, -1, -1, -1,
3464 -1, -1, -1, -1, 3, 4, 5, 6, -1, 28,
3465 9, 30, 31, -1, 843, -1, 845, -1, 37, -1,
3466 -1, 850, 851, 42, 853, -1, -1, 46, 303, 48,
3467 -1, -1, 31, -1, -1, -1, 55, -1, 57, 58,
3468 -1, -1, -1, 42, -1, -1, -1, -1, -1, -1,
3469 -1, -1, 71, -1, -1, -1, 55, -1, 57, 58,
3470 -1, -1, 81, -1, -1, 1405, 1406, 1407, -1, -1,
3471 89, -1, 71, -1, 93, 94, -1, 352, 353, 354,
3472 -1, -1, 81, -1, -1, -1, -1, -1, -1, -1,
3473 89, -1, -1, -1, 93, 72, 73, 74, 75, 76,
3474 77, 78, 79, 80, 81, 82, 83, 84, 85, 860,
3475 861, -1, 863, -1, -1, -1, -1, -1, -1, 1,
3476 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3477 -1, 13, 14, 15, 409, 17, 18, 19, 20, 21,
3478 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3479 32, -1, 34, 35, 36, 37, 985, 39, 40, 41,
3480 42, 43, 44, 45, 46, 47, -1, -1, 50, 51,
3481 52, 53, 54, 55, 1514, 57, 58, 59, -1, 61,
3482 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3483 -1, -1, -1, -1, -1, 946, -1, 79, 80, 81,
3484 475, -1, 477, 478, 479, 87, 88, 89, -1, -1,
3485 -1, 93, -1, 95, -1, -1, 491, 492, -1, -1,
3486 495, -1, 497, 498, 499, 500, 977, 978, 110, 504,
3487 3, 4, 5, 6, 509, -1, -1, 512, -1, -1,
3488 -1, -1, -1, 1583, 1584, 1585, 1075, 1076, 1077, 1078,
3489 1079, 1080, -1, -1, -1, -1, 1085, -1, 1087, 1088,
3490 1089, -1, -1, -1, 1093, -1, -1, -1, 1608, 42,
3491 -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
3492 -1, -1, -1, -1, 57, 58, -1, -1, 1117, -1,
3493 -1, -1, 1043, -1, -1, 1046, 74, 75, 76, 77,
3494 78, 79, 80, 81, 82, 83, 84, 85, 81, -1,
3495 1139, -1, -1, -1, -1, -1, 89, -1, 1147, -1,
3496 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
3497 11, 12, 13, 14, -1, -1, 1087, 1088, -1, -1,
3498 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3499 31, 32, 627, 34, 35, 36, 37, -1, 39, 40,
3500 41, 42, 43, 44, -1, 46, 641, 642, 643, 50,
3501 51, 52, 53, 54, 55, 650, 57, 58, -1, -1,
3502 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3503 71, -1, -1, -1, 669, -1, -1, -1, 79, 80,
3504 81, 3, 4, 5, 6, -1, 87, 88, 89, -1,
3505 -1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
3506 -1, -1, -1, -1, -1, -1, -1, 108, -1, 110,
3507 -1, -1, 55, 1184, -1, -1, -1, -1, -1, -1,
3508 42, -1, 1271, 1272, -1, -1, -1, 49, -1, 1278,
3509 -1, 1202, -1, 1204, -1, 57, 58, 80, 733, -1,
3510 83, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3511 6, 7, 8, 9, -1, -1, 12, -1, 14, 81,
3512 -1, 104, -1, 106, -1, 1314, -1, 89, -1, -1,
3513 1319, -1, 28, 1322, 30, 31, -1, -1, 773, 774,
3514 775, 37, -1, -1, -1, -1, 42, -1, 783, -1,
3515 46, -1, 48, -1, -1, 3, 4, 5, 6, 55,
3516 -1, 57, 58, -1, -1, -1, -1, -1, -1, 804,
3517 805, 806, 807, 808, -1, 71, -1, 812, -1, -1,
3518 -1, -1, -1, 31, -1, 81, -1, -1, -1, -1,
3519 -1, -1, 175, 89, 42, -1, -1, 93, 94, -1,
3520 -1, -1, -1, -1, -1, -1, -1, 55, -1, 57,
3521 58, 194, 195, 196, -1, 850, 1405, 1406, 1407, -1,
3522 -1, 204, -1, 71, -1, 3, 4, 5, 6, 7,
3523 8, 9, -1, 81, 12, -1, 14, 872, 873, 874,
3524 223, 89, -1, -1, -1, 93, -1, -1, -1, 884,
3525 28, -1, 30, 31, -1, -1, -1, -1, -1, 37,
3526 -1, -1, -1, -1, 42, -1, 249, -1, 46, -1,
3527 48, -1, -1, -1, -1, -1, -1, 55, -1, 57,
3528 58, -1, -1, -1, 267, -1, -1, 1398, 71, 72,
3529 73, 74, 75, 71, 77, 78, 79, 80, 81, 82,
3530 83, 84, 85, 81, -1, -1, -1, -1, -1, -1,
3531 -1, 89, -1, -1, -1, 93, 94, -1, -1, -1,
3532 -1, -1, 957, 958, -1, 1514, 961, -1, -1, 964,
3533 3, 4, 5, 6, 7, 8, 9, -1, 973, 12,
3534 -1, 14, 977, 978, 979, -1, 4, 5, 983, -1,
3535 8, 9, -1, -1, -1, 28, 14, 30, 31, -1,
3536 -1, -1, -1, -1, 37, -1, -1, -1, -1, 42,
3537 28, -1, 30, 46, -1, 358, 359, -1, -1, 37,
3538 -1, -1, 55, -1, 57, 58, -1, -1, 46, -1,
3539 -1, -1, -1, -1, 1583, 1584, 1585, 55, 71, 57,
3540 58, -1, 190, -1, -1, -1, -1, -1, 81, -1,
3541 -1, -1, -1, -1, -1, -1, 89, -1, -1, 1608,
3542 93, -1, -1, -1, -1, -1, 409, -1, -1, -1,
3543 -1, -1, 3, 4, 5, 6, -1, -1, 9, -1,
3544 1075, 1076, 1077, 1078, 1079, 1080, 1081, -1, -1, -1,
3545 1085, -1, 1087, 1088, 1089, -1, -1, -1, -1, -1,
3546 31, -1, -1, -1, 1099, 1100, 1101, -1, -1, -1,
3547 -1, 42, 1583, 1584, -1, -1, -1, -1, -1, -1,
3548 -1, -1, 1117, -1, 55, -1, 57, 58, -1, -1,
3549 -1, -1, 475, -1, 477, 478, -1, -1, -1, -1,
3550 71, -1, -1, -1, -1, -1, -1, -1, 491, 492,
3551 81, -1, 495, -1, 497, 498, 499, 500, 89, -1,
3552 -1, 504, 93, -1, -1, -1, 509, -1, -1, 512,
3553 -1, -1, -1, -1, 3, 4, 5, 6, -1, -1,
3554 -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3555 -1, -1, 14, -1, -1, -1, -1, -1, -1, -1,
3556 -1, 1196, 1197, -1, 1199, -1, 28, -1, 30, 31,
3557 -1, -1, -1, 42, -1, 37, -1, -1, -1, -1,
3558 42, 369, -1, -1, 46, -1, 55, 1222, 57, 58,
3559 1225, 1226, 1227, 55, -1, 57, 58, -1, -1, -1,
3560 -1, 63, 71, -1, -1, -1, -1, -1, -1, 71,
3561 -1, -1, 81, -1, -1, -1, -1, -1, -1, 81,
3562 89, -1, -1, -1, 93, -1, -1, 89, -1, -1,
3563 -1, 93, -1, -1, -1, 1270, 1271, 1272, 1273, 1274,
3564 1275, -1, -1, 1278, -1, -1, -1, -1, -1, -1,
3565 -1, -1, -1, -1, -1, -1, -1, 1292, 1293, 1294,
3566 1295, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 653, 654, -1, -1, -1, -1, -1, 465, 466, 1314,
3568 -1, -1, -1, -1, -1, -1, 669, 1, -1, 3,
3569 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
3570 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
3571 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
3572 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3573 44, 45, 46, 47, -1, -1, 50, 51, 52, 53,
3574 54, 55, -1, 57, 58, 59, -1, 61, 62, -1,
3575 733, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3576 3, 4, 5, 6, -1, 79, 80, 81, -1, 557,
3577 1405, -1, 1407, 87, 88, 89, 564, -1, -1, 93,
3578 -1, 95, -1, 1418, 1419, -1, 1421, -1, -1, -1,
3579 773, 774, 775, -1, -1, 109, 110, 780, 781, 42,
3580 783, -1, 590, -1, -1, -1, -1, -1, -1, -1,
3581 -1, -1, 55, -1, 57, 58, -1, -1, 61, -1,
3582 -1, 804, 805, 806, 807, 808, 809, 615, 71, 812,
3583 -1, -1, -1, 621, -1, 623, 624, -1, 81, -1,
3584 -1, -1, -1, -1, -1, -1, 89, -1, -1, -1,
3585 93, -1, -1, -1, 837, -1, -1, -1, -1, -1,
3586 -1, -1, 650, -1, -1, -1, -1, 850, -1, 657,
3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1514,
3588 -1, -1, -1, -1, -1, -1, -1, -1, 1523, 1524,
3589 1525, 1526, -1, -1, 682, 683, 684, 685, -1, 687,
3590 688, 689, 690, 691, 692, 693, 694, 695, 696, 697,
3591 698, 699, 700, 701, 702, 703, 704, 705, -1, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, 3, 4, 5, 6, 7, 8, 9, 3,
3594 4, 5, 6, 14, -1, 9, 14, -1, 1583, 1584,
3595 1585, -1, -1, -1, 1589, 23, 24, 28, -1, 30,
3596 31, -1, 30, 31, -1, 33, 37, 31, -1, -1,
3597 -1, 42, -1, 1608, -1, 46, 764, -1, 42, 12,
3598 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3599 61, 55, -1, 57, 58, 783, -1, 65, -1, -1,
3600 71, 984, 985, 986, -1, -1, -1, 71, -1, 797,
3601 81, -1, -1, -1, -1, -1, -1, 81, 89, -1,
3602 -1, -1, 93, -1, -1, 89, -1, -1, -1, 93,
3603 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3604 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3605 83, 84, 85, -1, 842, -1, 124, -1, 126, -1,
3606 -1, -1, -1, -1, -1, 133, 134, -1, -1, -1,
3607 -1, -1, 140, 141, -1, -1, 144, 145, 146, -1,
3608 148, 149, 150, 151, -1, -1, -1, -1, -1, -1,
3609 -1, -1, 1075, 1076, 1077, 1078, 1079, 1080, 1081, -1,
3610 1083, -1, 1085, 1086, 1087, 1088, 1089, 352, 353, 354,
3611 1093, -1, 900, -1, -1, -1, 1099, 1100, 1101, -1,
3612 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
3613 7, 8, 9, -1, 1117, -1, -1, 14, -1, -1,
3614 -1, -1, -1, -1, -1, -1, -1, 4, 5, 937,
3615 938, 28, 9, 30, 31, 1138, -1, -1, -1, -1,
3616 37, -1, -1, -1, 952, 42, 954, -1, 956, 46,
3617 -1, 239, 240, -1, 31, -1, -1, -1, 55, -1,
3618 57, 58, -1, -1, -1, -1, -1, 3, 4, 5,
3619 6, 48, 260, 9, 71, -1, -1, -1, 55, -1,
3620 57, 58, -1, -1, 81, -1, -1, 995, -1, -1,
3621 -1, -1, 89, -1, 71, 31, 93, -1, -1, -1,
3622 -1, -1, -1, -1, 81, -1, 42, -1, -1, -1,
3623 475, -1, 477, 478, 479, 303, 93, 94, -1, 55,
3624 1028, 57, 58, -1, -1, -1, -1, -1, 69, 70,
3625 71, 72, 73, 74, 75, 71, 77, 78, 79, 80,
3626 81, 82, 83, 84, 85, 81, -1, -1, -1, -1,
3627 -1, -1, -1, 89, -1, 1063, -1, 93, -1, -1,
3628 -1, -1, 350, -1, 352, 353, -1, 1270, 1271, 1272,
3629 1273, 1274, 1275, 4, 5, 1278, -1, -1, 9, -1,
3630 -1, -1, -1, -1, -1, -1, -1, 1095, 1096, 1292,
3631 1293, 1294, 1295, -1, -1, -1, -1, -1, -1, -1,
3632 31, -1, -1, 3, 4, 5, 6, 7, 8, 9,
3633 398, 1314, -1, -1, 14, -1, -1, 48, -1, -1,
3634 -1, 1129, -1, -1, 55, -1, 57, 58, 28, 417,
3635 30, 31, -1, -1, -1, -1, 424, 37, -1, 427,
3636 71, -1, 42, 4, 5, -1, 46, -1, 9, -1,
3637 81, 439, -1, -1, -1, 55, -1, 57, 58, -1,
3638 -1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
3639 31, 71, 1180, 1181, -1, -1, 641, 642, 643, -1,
3640 -1, 81, -1, -1, -1, 650, -1, 48, -1, 89,
3641 -1, -1, -1, 93, 55, -1, 57, 58, -1, -1,
3642 -1, -1, 1405, -1, 1407, -1, -1, -1, -1, -1,
3643 71, -1, -1, -1, -1, 1418, 1419, 1420, 1421, -1,
3644 81, -1, -1, -1, -1, -1, -1, -1, 1236, -1,
3645 -1, -1, 93, 94, -1, -1, -1, -1, 526, -1,
3646 528, -1, -1, -1, -1, -1, -1, -1, 1256, -1,
3647 1258, -1, 1260, 4, 5, -1, 7, 8, 9, -1,
3648 1268, -1, -1, 14, 552, -1, 554, -1, 733, -1,
3649 -1, -1, -1, -1, -1, -1, -1, 28, -1, 30,
3650 31, -1, -1, -1, -1, -1, 37, -1, 1296, -1,
3651 -1, -1, -1, -1, -1, 46, -1, -1, 49, -1,
3652 -1, -1, 1310, 1311, 55, -1, 57, 58, 773, 774,
3653 775, 1514, -1, -1, -1, -1, -1, -1, 783, -1,
3654 1523, 1524, 1525, 1526, -1, -1, -1, -1, -1, -1,
3655 1338, -1, -1, 70, 71, 72, 73, 74, 75, 627,
3656 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
3657 638, 639, -1, 641, 642, -1, -1, -1, -1, 1367,
3658 -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3659 -1, -1, 14, -1, -1, -1, -1, -1, -1, 1387,
3660 1583, 1584, 1585, -1, -1, -1, 1589, -1, -1, 31,
3661 -1, -1, -1, -1, -1, 37, -1, -1, -1, -1,
3662 42, -1, -1, -1, 46, 1608, 48, -1, -1, -1,
3663 -1, -1, -1, 55, -1, 57, 58, -1, 1426, 884,
3664 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
3665 718, -1, 1440, -1, -1, -1, -1, 725, 726, 81,
3666 -1, -1, -1, -1, -1, -1, 734, 89, -1, -1,
3667 -1, 93, -1, -1, -1, 1463, 4, 5, -1, 7,
3668 8, 9, -1, -1, 12, -1, 14, -1, -1, 757,
3669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3670 28, -1, 30, 31, -1, -1, -1, -1, -1, 37,
3671 -1, -1, 957, 958, -1, -1, 961, -1, 46, 964,
3672 48, -1, -1, -1, -1, -1, 1514, 55, 973, 57,
3673 58, -1, 977, 978, 979, -1, -1, -1, 983, -1,
3674 -1, -1, -1, 71, -1, -1, 1534, 1535, 31, -1,
3675 -1, -1, -1, 81, -1, -1, -1, -1, -1, -1,
3676 -1, -1, -1, -1, -1, 93, 94, -1, -1, 837,
3677 -1, -1, 840, -1, -1, -1, -1, -1, -1, 1567,
3678 -1, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3679 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3680 83, 84, 85, -1, 872, 873, 874, 875, -1, -1,
3681 1598, -1, -1, -1, -1, -1, 884, -1, -1, -1,
3682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3683 1075, 1076, 1077, 1078, 1079, 1080, 1081, -1, -1, -1,
3684 1085, -1, 1087, 1088, 1089, -1, 4, 5, -1, 7,
3685 8, 9, -1, -1, 12, -1, 14, -1, -1, 4,
3686 5, -1, 7, 8, 9, -1, -1, 12, -1, 14,
3687 28, -1, 30, 31, -1, -1, -1, -1, -1, 37,
3688 -1, -1, -1, 28, -1, 30, 31, -1, 46, 957,
3689 958, -1, 37, 961, -1, -1, 964, 55, -1, 57,
3690 58, 46, -1, -1, -1, 973, -1, -1, -1, -1,
3691 55, -1, 57, 58, -1, 983, -1, -1, -1, 4,
3692 5, 1709, 7, 8, 9, -1, -1, -1, -1, 14,
3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3694 -1, -1, -1, 28, -1, 30, 31, -1, -1, -1,
3695 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1,
3696 -1, 46, -1, -1, -1, -1, -1, -1, -1, -1,
3697 55, -1, 57, 58, -1, -1, -1, 1222, -1, -1,
3698 1225, 1226, 1227, -1, 64, 65, 66, 67, 68, 69,
3699 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3700 80, 81, 82, 83, 84, 85, -1, -1, -1, -1,
3701 1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3702 -1, 12, -1, 14, -1, 1270, 1271, 1272, 1273, 1274,
3703 1275, 111, -1, 1278, 25, -1, 27, -1, -1, -1,
3704 31, -1, -1, -1, 1112, -1, 37, -1, -1, -1,
3705 -1, 42, -1, -1, -1, 46, -1, 48, -1, -1,
3706 -1, -1, -1, -1, 55, -1, 57, 58, 59, 60,
3707 61, 1139, 63, 64, 65, 66, 67, 68, 69, 70,
3708 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3709 81, 82, 83, 84, 85, -1, 87, 88, 89, -1,
3710 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
3711 101, 102, -1, -1, -1, -1, 107, 108, 109, -1,
3712 111, -1, -1, -1, -1, -1, -1, -1, 1196, 1197,
3713 -1, 1199, 64, 65, 66, 67, 68, 69, 70, 71,
3714 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3715 82, 83, 84, 85, 1222, -1, -1, 1225, 1226, -1,
3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3717 -1, -1, -1, 1418, 1419, 107, 1421, -1, -1, -1,
3718 -1, -1, -1, -1, -1, -1, 1254, 68, 69, 70,
3719 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3720 81, 82, 83, 84, 85, 1, -1, 3, 4, 5,
3721 6, 7, 8, 9, 10, 11, 12, 13, 14, -1,
3722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3723 -1, 1299, 28, 29, 30, 31, 32, -1, 34, 35,
3724 36, 37, -1, 39, 40, 41, 42, 43, 44, 1317,
3725 46, 1319, 48, -1, 50, 51, 52, 53, 54, 55,
3726 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3727 -1, -1, 68, -1, -1, 71, -1, -1, 1523, 1524,
3728 1525, 1526, -1, 79, 80, 81, -1, -1, -1, -1,
3729 -1, 87, 88, 89, -1, -1, -1, 93, 94, -1,
3730 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
3731 11, -1, 13, 14, 110, -1, -1, -1, -1, -1,
3732 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3733 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3734 41, 42, 43, 44, 1589, 46, -1, -1, -1, 50,
3735 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3736 61, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3737 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3738 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3739 -1, 1, 93, 3, 4, 5, 6, -1, 8, 9,
3740 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
3741 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
3742 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
3743 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3744 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3745 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3746 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3747 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3748 -1, -1, 1, 93, 3, 4, 5, 6, -1, 8,
3749 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3750 110, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3751 29, 30, -1, 32, -1, 34, 35, 36, 37, -1,
3752 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3753 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3754 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3755 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3756 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3757 89, -1, -1, -1, 93, 94, 1, -1, 3, 4,
3758 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3759 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
3760 -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
3761 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3762 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3763 55, -1, 57, 58, 59, -1, -1, 62, -1, -1,
3764 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3765 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3766 -1, -1, 87, 88, 89, -1, -1, -1, 93, 1,
3767 -1, 3, 4, 5, 6, 100, 8, 9, 10, 11,
3768 -1, 13, 14, -1, -1, 110, -1, -1, -1, -1,
3769 -1, -1, -1, -1, -1, -1, 28, 29, 30, -1,
3770 32, -1, 34, 35, 36, 37, -1, 39, 40, 41,
3771 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3772 52, 53, 54, 55, -1, 57, 58, 59, -1, -1,
3773 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3774 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3775 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3776 1, 93, 3, 4, 5, 6, -1, 8, 9, 10,
3777 11, -1, 13, 14, -1, -1, -1, 109, 110, -1,
3778 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3779 -1, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3780 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3781 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3782 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3783 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3784 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3785 -1, 1, 93, 3, 4, 5, 6, -1, 8, 9,
3786 10, 11, -1, 13, 14, -1, -1, -1, 109, 110,
3787 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
3788 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
3789 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3790 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3791 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3792 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3793 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3794 -1, -1, 1, 93, 3, 4, 5, 6, -1, 8,
3795 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3796 110, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3797 29, 30, -1, 32, -1, 34, 35, 36, 37, -1,
3798 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3799 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3800 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3801 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3802 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3803 89, -1, -1, 1, 93, 3, 4, 5, 6, -1,
3804 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3805 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
3806 28, 29, 30, -1, 32, -1, 34, 35, 36, 37,
3807 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3808 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3809 58, -1, -1, -1, 62, 63, -1, -1, -1, -1,
3810 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3811 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3812 88, 89, -1, -1, 1, 93, 3, 4, 5, 6,
3813 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3814 -1, -1, 110, -1, -1, -1, -1, -1, -1, -1,
3815 -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
3816 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3817 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3818 57, 58, -1, -1, 61, 62, -1, -1, -1, -1,
3819 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3820 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3821 87, 88, 89, -1, -1, 1, 93, 3, 4, 5,
3822 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3823 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
3824 -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
3825 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3826 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3827 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3828 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3829 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3830 -1, 87, 88, 89, -1, -1, 1, 93, 3, 4,
3831 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3832 -1, -1, 108, -1, 110, -1, -1, -1, -1, -1,
3833 -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
3834 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3835 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3836 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3837 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3838 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3839 -1, -1, 87, 88, 89, -1, -1, 1, 93, 3,
3840 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3841 14, -1, -1, -1, -1, 110, -1, -1, -1, -1,
3842 -1, -1, -1, -1, 28, 29, 30, -1, 32, -1,
3843 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3844 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3845 54, 55, -1, 57, 58, -1, -1, -1, 62, -1,
3846 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3847 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3848 -1, -1, -1, 87, 88, 89, -1, -1, 1, 93,
3849 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3850 13, 14, -1, -1, -1, -1, 110, -1, -1, -1,
3851 -1, -1, -1, -1, -1, 28, 29, 30, -1, 32,
3852 -1, 34, 35, 36, 37, -1, 39, 40, 41, 42,
3853 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3854 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3855 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3856 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3857 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3858 93, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3859 -1, 13, 14, -1, -1, -1, -1, 110, -1, -1,
3860 -1, -1, -1, -1, -1, -1, 28, 29, 30, -1,
3861 32, -1, 34, 35, 36, 37, -1, 39, 40, 41,
3862 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3863 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3864 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3865 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3866 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3867 -1, 93, 3, 4, 5, 6, -1, 8, 9, 10,
3868 11, -1, 13, 14, -1, -1, -1, -1, 110, 111,
3869 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3870 -1, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3871 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3872 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3873 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3874 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3875 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3876 -1, -1, 93, 3, 4, 5, 6, -1, 8, 9,
3877 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
3878 111, -1, -1, -1, -1, -1, -1, -1, 28, 29,
3879 30, -1, 32, -1, 34, 35, 36, 37, -1, 39,
3880 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3881 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3882 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3883 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3884 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3885 -1, -1, -1, 93, 3, 4, 5, 6, -1, 8,
3886 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3887 110, 111, -1, -1, -1, -1, -1, -1, -1, 28,
3888 29, 30, -1, 32, -1, 34, 35, 36, 37, -1,
3889 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3890 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3891 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3892 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3893 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3894 89, -1, -1, -1, 93, 3, 4, 5, 6, -1,
3895 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3896 -1, 110, 111, -1, -1, -1, -1, -1, -1, -1,
3897 28, 29, 30, -1, 32, -1, 34, 35, 36, 37,
3898 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3899 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3900 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3901 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3902 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3903 88, 89, -1, -1, -1, 93, 70, 71, 72, 73,
3904 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3905 84, 85, 110, 111, 3, 4, 5, 6, 7, 8,
3906 9, 10, 11, -1, 13, 14, 15, -1, 17, 18,
3907 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3908 29, 30, 31, 32, -1, 34, 35, 36, 37, -1,
3909 39, 40, 41, 42, 43, 44, 45, 46, 47, -1,
3910 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3911 59, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3912 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3913 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3914 89, -1, -1, -1, 93, -1, 95, -1, -1, -1,
3915 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3916 109, 110, 3, 4, 5, 6, 7, 8, 9, 10,
3917 11, -1, 13, 14, 15, -1, 17, 18, 19, 20,
3918 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
3919 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3920 41, 42, 43, 44, 45, 46, 47, -1, -1, 50,
3921 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3922 61, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3923 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3924 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3925 -1, -1, 93, -1, 95, -1, 3, 4, 5, 6,
3926 7, 8, 9, 10, 11, -1, 13, 14, 15, 110,
3927 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3928 27, 28, 29, 30, 31, 32, -1, 34, 35, 36,
3929 37, -1, 39, 40, 41, 42, 43, 44, 45, 46,
3930 47, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3931 57, 58, 59, -1, 61, 62, -1, -1, -1, -1,
3932 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3933 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3934 87, 88, 89, -1, -1, -1, 93, -1, 95, -1,
3935 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3936 13, 14, 15, 110, 17, 18, 19, 20, 21, 22,
3937 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3938 -1, 34, 35, 36, 37, -1, 39, 40, 41, 42,
3939 43, 44, 45, 46, 47, -1, -1, 50, 51, 52,
3940 53, 54, 55, -1, 57, 58, -1, -1, 61, 62,
3941 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3942 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3943 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3944 93, -1, 95, 3, 4, 5, 6, 7, 8, 9,
3945 10, 11, 12, 13, 14, -1, -1, 110, -1, -1,
3946 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
3947 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
3948 40, 41, 42, 43, 44, -1, 46, -1, 48, -1,
3949 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3950 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3951 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3952 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3953 -1, -1, -1, 93, 94, 3, 4, 5, 6, 7,
3954 8, 9, 10, 11, 12, 13, 14, -1, -1, -1,
3955 110, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3956 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
3957 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3958 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3959 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3960 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3961 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3962 88, 89, -1, -1, -1, 93, 94, 3, 4, 5,
3963 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3964 -1, -1, 110, -1, -1, -1, -1, -1, -1, -1,
3965 -1, -1, 28, 29, 30, 31, 32, -1, 34, 35,
3966 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3967 46, -1, 48, -1, 50, 51, 52, 53, 54, 55,
3968 -1, 57, 58, -1, -1, -1, -1, -1, -1, -1,
3969 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3970 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3971 -1, 87, 88, 89, -1, -1, -1, 93, 94, 3,
3972 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3973 14, -1, -1, -1, 110, -1, -1, -1, -1, -1,
3974 -1, -1, -1, -1, 28, 29, 30, 31, 32, -1,
3975 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3976 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
3977 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3978 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3979 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3980 -1, -1, -1, 87, 88, 89, -1, -1, -1, 93,
3981 94, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3982 -1, 13, 14, -1, -1, -1, 110, -1, -1, -1,
3983 -1, -1, -1, -1, -1, -1, 28, 29, 30, 31,
3984 32, -1, 34, 35, 36, 37, -1, 39, 40, 41,
3985 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3986 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3987 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3988 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3989 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3990 -1, 93, 3, 4, 5, 6, -1, 8, 9, 10,
3991 11, -1, 13, 14, -1, -1, -1, -1, 110, -1,
3992 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3993 -1, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3994 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3995 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3996 61, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3997 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3998 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3999 -1, -1, 93, 3, 4, 5, 6, 7, 8, 9,
4000 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
4001 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
4002 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
4003 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
4004 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
4005 -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
4006 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
4007 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
4008 -1, -1, -1, 93, 3, 4, 5, 6, -1, 8,
4009 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
4010 110, -1, -1, -1, -1, -1, -1, -1, -1, 28,
4011 29, 30, 31, 32, -1, 34, 35, 36, 37, -1,
4012 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
4013 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
4014 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
4015 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
4016 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
4017 89, -1, -1, -1, 93, 3, 4, 5, 6, -1,
4018 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
4019 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
4020 28, 29, 30, -1, 32, -1, 34, 35, 36, 37,
4021 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
4022 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
4023 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
4024 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
4025 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
4026 88, 89, -1, -1, -1, 93, 3, 4, 5, 6,
4027 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
4028 -1, -1, 110, -1, -1, -1, -1, -1, -1, -1,
4029 -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
4030 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
4031 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
4032 57, 58, -1, -1, -1, 62, -1, -1, -1, -1,
4033 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
4034 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
4035 87, 88, 89, -1, -1, -1, 93, 3, 4, 5,
4036 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
4037 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
4038 -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
4039 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
4040 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
4041 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
4042 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
4043 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
4044 -1, 87, 88, 89, -1, -1, -1, 93, 3, 4,
4045 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
4046 -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
4047 -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
4048 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
4049 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
4050 55, -1, 57, 58, 59, -1, -1, -1, -1, -1,
4051 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
4052 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
4053 -1, -1, 87, 88, 89, -1, -1, -1, 93, 3,
4054 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
4055 14, -1, -1, -1, -1, 110, -1, -1, -1, -1,
4056 -1, -1, -1, -1, 28, 29, 30, -1, 32, -1,
4057 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
4058 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
4059 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
4060 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
4061 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
4062 -1, -1, -1, 87, 88, 89, -1, -1, -1, 93,
4063 94, 3, 4, 5, 6, -1, 8, 9, 10, 11,
4064 -1, 13, 14, -1, -1, -1, 110, -1, -1, -1,
4065 -1, -1, -1, -1, -1, -1, 28, 29, 30, -1,
4066 32, -1, 34, 35, 36, 37, -1, 39, 40, 41,
4067 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
4068 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
4069 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
4070 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
4071 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
4072 -1, 93, 3, 4, 5, 6, -1, 8, 9, 10,
4073 11, -1, 13, 14, -1, -1, -1, -1, 110, -1,
4074 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
4075 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
4076 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
4077 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
4078 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
4079 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
4080 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
4081 -1, -1, 93, 3, 4, 5, 6, -1, 8, 9,
4082 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
4083 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
4084 30, -1, 32, -1, 34, 35, 36, 37, -1, 39,
4085 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
4086 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
4087 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
4088 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
4089 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
4090 -1, -1, -1, 93, 3, 4, 5, 6, -1, 8,
4091 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
4092 110, -1, -1, -1, -1, -1, -1, -1, -1, 28,
4093 29, 30, 31, 32, -1, 34, 35, 36, 37, -1,
4094 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
4095 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
4096 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
4097 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
4098 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
4099 89, -1, -1, -1, 93, 3, 4, 5, 6, -1,
4100 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
4101 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
4102 28, 29, 30, -1, 32, -1, 34, 35, 36, 37,
4103 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
4104 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
4105 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4106 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
4107 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
4108 88, 89, -1, -1, -1, 93, 3, 4, 5, 6,
4109 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
4110 -1, -1, 110, -1, -1, -1, -1, -1, -1, -1,
4111 -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
4112 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
4113 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
4114 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
4115 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
4116 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
4117 87, 88, 89, -1, -1, -1, 93, 3, 4, 5,
4118 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
4119 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
4120 -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
4121 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
4122 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
4123 -1, 57, 58, -1, -1, -1, -1, -1, -1, -1,
4124 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
4125 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
4126 -1, 87, 88, 89, -1, -1, -1, 93, -1, -1,
4127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4128 -1, 60, -1, -1, 110, 64, 65, 66, 67, 68,
4129 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
4130 79, 80, 81, 82, 83, 84, 85, 60, -1, -1,
4131 -1, 64, 65, 66, 67, 68, 69, 70, 71, 72,
4132 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
4133 83, 84, 85, 63, 64, 65, 66, 67, 68, 69,
4134 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4135 80, 81, 82, 83, 84, 85, 64, 65, 66, 67,
4136 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
4137 78, 79, 80, 81, 82, 83, 84, 85
4139 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
4140 #line 3 "/usr/lib/bison.simple"
4141 /* This file comes from bison-1.28. */
4143 /* Skeleton output parser for bison,
4144 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
4146 This program is free software; you can redistribute it and/or modify
4147 it under the terms of the GNU General Public License as published by
4148 the Free Software Foundation; either version 2, or (at your option)
4149 any later version.
4151 This program is distributed in the hope that it will be useful,
4152 but WITHOUT ANY WARRANTY; without even the implied warranty of
4153 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4154 GNU General Public License for more details.
4156 You should have received a copy of the GNU General Public License
4157 along with this program; if not, write to the Free Software
4158 Foundation, Inc., 59 Temple Place - Suite 330,
4159 Boston, MA 02111-1307, USA. */
4161 /* As a special exception, when this file is copied by Bison into a
4162 Bison output file, you may use that output file without restriction.
4163 This special exception was added by the Free Software Foundation
4164 in version 1.24 of Bison. */
4166 /* This is the parser code that is written into each bison parser
4167 when the %semantic_parser declaration is not specified in the grammar.
4168 It was written by Richard Stallman by simplifying the hairy parser
4169 used when %semantic_parser is specified. */
4171 #ifndef YYSTACK_USE_ALLOCA
4172 #ifdef alloca
4173 #define YYSTACK_USE_ALLOCA
4174 #else /* alloca not defined */
4175 #ifdef __GNUC__
4176 #define YYSTACK_USE_ALLOCA
4177 #define alloca __builtin_alloca
4178 #else /* not GNU C. */
4179 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
4180 #define YYSTACK_USE_ALLOCA
4181 #include <alloca.h>
4182 #else /* not sparc */
4183 /* We think this test detects Watcom and Microsoft C. */
4184 /* This used to test MSDOS, but that is a bad idea
4185 since that symbol is in the user namespace. */
4186 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
4187 #if 0 /* No need for malloc.h, which pollutes the namespace;
4188 instead, just don't use alloca. */
4189 #include <malloc.h>
4190 #endif
4191 #else /* not MSDOS, or __TURBOC__ */
4192 #if defined(_AIX)
4193 /* I don't know what this was needed for, but it pollutes the namespace.
4194 So I turned it off. rms, 2 May 1997. */
4195 /* #include <malloc.h> */
4196 #pragma alloca
4197 #define YYSTACK_USE_ALLOCA
4198 #else /* not MSDOS, or __TURBOC__, or _AIX */
4199 #if 0
4200 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
4201 and on HPUX 10. Eventually we can turn this on. */
4202 #define YYSTACK_USE_ALLOCA
4203 #define alloca __builtin_alloca
4204 #endif /* __hpux */
4205 #endif
4206 #endif /* not _AIX */
4207 #endif /* not MSDOS, or __TURBOC__ */
4208 #endif /* not sparc */
4209 #endif /* not GNU C */
4210 #endif /* alloca not defined */
4211 #endif /* YYSTACK_USE_ALLOCA not defined */
4213 #ifdef YYSTACK_USE_ALLOCA
4214 #define YYSTACK_ALLOC alloca
4215 #else
4216 #define YYSTACK_ALLOC malloc
4217 #endif
4219 /* Note: there must be only one dollar sign in this file.
4220 It is replaced by the list of actions, each action
4221 as one case of the switch. */
4223 #define yyerrok (yyerrstatus = 0)
4224 #define yyclearin (yychar = YYEMPTY)
4225 #define YYEMPTY -2
4226 #define YYEOF 0
4227 #define YYACCEPT goto yyacceptlab
4228 #define YYABORT goto yyabortlab
4229 #define YYERROR goto yyerrlab1
4230 /* Like YYERROR except do call yyerror.
4231 This remains here temporarily to ease the
4232 transition to the new meaning of YYERROR, for GCC.
4233 Once GCC version 2 has supplanted version 1, this can go. */
4234 #define YYFAIL goto yyerrlab
4235 #define YYRECOVERING() (!!yyerrstatus)
4236 #define YYBACKUP(token, value) \
4237 do \
4238 if (yychar == YYEMPTY && yylen == 1) \
4239 { yychar = (token), yylval = (value); \
4240 yychar1 = YYTRANSLATE (yychar); \
4241 YYPOPSTACK; \
4242 goto yybackup; \
4244 else \
4245 { yyerror ("syntax error: cannot back up"); YYERROR; } \
4246 while (0)
4248 #define YYTERROR 1
4249 #define YYERRCODE 256
4251 #ifndef YYPURE
4252 #define YYLEX yylex()
4253 #endif
4255 #ifdef YYPURE
4256 #ifdef YYLSP_NEEDED
4257 #ifdef YYLEX_PARAM
4258 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
4259 #else
4260 #define YYLEX yylex(&yylval, &yylloc)
4261 #endif
4262 #else /* not YYLSP_NEEDED */
4263 #ifdef YYLEX_PARAM
4264 #define YYLEX yylex(&yylval, YYLEX_PARAM)
4265 #else
4266 #define YYLEX yylex(&yylval)
4267 #endif
4268 #endif /* not YYLSP_NEEDED */
4269 #endif
4271 /* If nonreentrant, generate the variables here */
4273 #ifndef YYPURE
4275 int yychar; /* the lookahead symbol */
4276 YYSTYPE yylval; /* the semantic value of the */
4277 /* lookahead symbol */
4279 #ifdef YYLSP_NEEDED
4280 YYLTYPE yylloc; /* location data for the lookahead */
4281 /* symbol */
4282 #endif
4284 int yynerrs; /* number of parse errors so far */
4285 #endif /* not YYPURE */
4287 #if YYDEBUG != 0
4288 int yydebug; /* nonzero means print parse trace */
4289 /* Since this is uninitialized, it does not stop multiple parsers
4290 from coexisting. */
4291 #endif
4293 /* YYINITDEPTH indicates the initial size of the parser's stacks */
4295 #ifndef YYINITDEPTH
4296 #define YYINITDEPTH 200
4297 #endif
4299 /* YYMAXDEPTH is the maximum size the stacks can grow to
4300 (effective only if the built-in stack extension method is used). */
4302 #if YYMAXDEPTH == 0
4303 #undef YYMAXDEPTH
4304 #endif
4306 #ifndef YYMAXDEPTH
4307 #define YYMAXDEPTH 10000
4308 #endif
4310 /* Define __yy_memcpy. Note that the size argument
4311 should be passed with type unsigned int, because that is what the non-GCC
4312 definitions require. With GCC, __builtin_memcpy takes an arg
4313 of type size_t, but it can handle unsigned int. */
4315 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
4316 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
4317 #else /* not GNU C or C++ */
4318 #ifndef __cplusplus
4320 /* This is the most reliable way to avoid incompatibilities
4321 in available built-in functions on various systems. */
4322 static void
4323 __yy_memcpy (to, from, count)
4324 char *to;
4325 char *from;
4326 unsigned int count;
4328 register char *f = from;
4329 register char *t = to;
4330 register int i = count;
4332 while (i-- > 0)
4333 *t++ = *f++;
4336 #else /* __cplusplus */
4338 /* This is the most reliable way to avoid incompatibilities
4339 in available built-in functions on various systems. */
4340 static void
4341 __yy_memcpy (char *to, char *from, unsigned int count)
4343 register char *t = to;
4344 register char *f = from;
4345 register int i = count;
4347 while (i-- > 0)
4348 *t++ = *f++;
4351 #endif
4352 #endif
4354 #line 217 "/usr/lib/bison.simple"
4356 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
4357 into yyparse. The argument should have type void *.
4358 It should actually point to an object.
4359 Grammar actions can access the variable by casting it
4360 to the proper pointer type. */
4362 #ifdef YYPARSE_PARAM
4363 #ifdef __cplusplus
4364 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
4365 #define YYPARSE_PARAM_DECL
4366 #else /* not __cplusplus */
4367 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
4368 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
4369 #endif /* not __cplusplus */
4370 #else /* not YYPARSE_PARAM */
4371 #define YYPARSE_PARAM_ARG
4372 #define YYPARSE_PARAM_DECL
4373 #endif /* not YYPARSE_PARAM */
4375 /* Prevent warning if -Wstrict-prototypes. */
4376 #ifdef __GNUC__
4377 #ifdef YYPARSE_PARAM
4378 int yyparse (void *);
4379 #else
4380 int yyparse (void);
4381 #endif
4382 #endif
4385 yyparse(YYPARSE_PARAM_ARG)
4386 YYPARSE_PARAM_DECL
4388 register int yystate;
4389 register int yyn;
4390 register short *yyssp;
4391 register YYSTYPE *yyvsp;
4392 int yyerrstatus; /* number of tokens to shift before error messages enabled */
4393 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
4395 short yyssa[YYINITDEPTH]; /* the state stack */
4396 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
4398 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
4399 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
4401 #ifdef YYLSP_NEEDED
4402 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
4403 YYLTYPE *yyls = yylsa;
4404 YYLTYPE *yylsp;
4406 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
4407 #else
4408 #define YYPOPSTACK (yyvsp--, yyssp--)
4409 #endif
4411 int yystacksize = YYINITDEPTH;
4412 int yyfree_stacks = 0;
4414 #ifdef YYPURE
4415 int yychar;
4416 YYSTYPE yylval;
4417 int yynerrs;
4418 #ifdef YYLSP_NEEDED
4419 YYLTYPE yylloc;
4420 #endif
4421 #endif
4423 YYSTYPE yyval; /* the variable used to return */
4424 /* semantic values from the action */
4425 /* routines */
4427 int yylen;
4429 #if YYDEBUG != 0
4430 if (yydebug)
4431 fprintf(stderr, "Starting parse\n");
4432 #endif
4434 yystate = 0;
4435 yyerrstatus = 0;
4436 yynerrs = 0;
4437 yychar = YYEMPTY; /* Cause a token to be read. */
4439 /* Initialize stack pointers.
4440 Waste one element of value and location stack
4441 so that they stay on the same level as the state stack.
4442 The wasted elements are never initialized. */
4444 yyssp = yyss - 1;
4445 yyvsp = yyvs;
4446 #ifdef YYLSP_NEEDED
4447 yylsp = yyls;
4448 #endif
4450 /* Push a new state, which is found in yystate . */
4451 /* In all cases, when you get here, the value and location stacks
4452 have just been pushed. so pushing a state here evens the stacks. */
4453 yynewstate:
4455 *++yyssp = yystate;
4457 if (yyssp >= yyss + yystacksize - 1)
4459 /* Give user a chance to reallocate the stack */
4460 /* Use copies of these so that the &'s don't force the real ones into memory. */
4461 YYSTYPE *yyvs1 = yyvs;
4462 short *yyss1 = yyss;
4463 #ifdef YYLSP_NEEDED
4464 YYLTYPE *yyls1 = yyls;
4465 #endif
4467 /* Get the current used size of the three stacks, in elements. */
4468 int size = yyssp - yyss + 1;
4470 #ifdef yyoverflow
4471 /* Each stack pointer address is followed by the size of
4472 the data in use in that stack, in bytes. */
4473 #ifdef YYLSP_NEEDED
4474 /* This used to be a conditional around just the two extra args,
4475 but that might be undefined if yyoverflow is a macro. */
4476 yyoverflow("parser stack overflow",
4477 &yyss1, size * sizeof (*yyssp),
4478 &yyvs1, size * sizeof (*yyvsp),
4479 &yyls1, size * sizeof (*yylsp),
4480 &yystacksize);
4481 #else
4482 yyoverflow("parser stack overflow",
4483 &yyss1, size * sizeof (*yyssp),
4484 &yyvs1, size * sizeof (*yyvsp),
4485 &yystacksize);
4486 #endif
4488 yyss = yyss1; yyvs = yyvs1;
4489 #ifdef YYLSP_NEEDED
4490 yyls = yyls1;
4491 #endif
4492 #else /* no yyoverflow */
4493 /* Extend the stack our own way. */
4494 if (yystacksize >= YYMAXDEPTH)
4496 yyerror("parser stack overflow");
4497 if (yyfree_stacks)
4499 free (yyss);
4500 free (yyvs);
4501 #ifdef YYLSP_NEEDED
4502 free (yyls);
4503 #endif
4505 return 2;
4507 yystacksize *= 2;
4508 if (yystacksize > YYMAXDEPTH)
4509 yystacksize = YYMAXDEPTH;
4510 #ifndef YYSTACK_USE_ALLOCA
4511 yyfree_stacks = 1;
4512 #endif
4513 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
4514 __yy_memcpy ((char *)yyss, (char *)yyss1,
4515 size * (unsigned int) sizeof (*yyssp));
4516 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
4517 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
4518 size * (unsigned int) sizeof (*yyvsp));
4519 #ifdef YYLSP_NEEDED
4520 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
4521 __yy_memcpy ((char *)yyls, (char *)yyls1,
4522 size * (unsigned int) sizeof (*yylsp));
4523 #endif
4524 #endif /* no yyoverflow */
4526 yyssp = yyss + size - 1;
4527 yyvsp = yyvs + size - 1;
4528 #ifdef YYLSP_NEEDED
4529 yylsp = yyls + size - 1;
4530 #endif
4532 #if YYDEBUG != 0
4533 if (yydebug)
4534 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
4535 #endif
4537 if (yyssp >= yyss + yystacksize - 1)
4538 YYABORT;
4541 #if YYDEBUG != 0
4542 if (yydebug)
4543 fprintf(stderr, "Entering state %d\n", yystate);
4544 #endif
4546 goto yybackup;
4547 yybackup:
4549 /* Do appropriate processing given the current state. */
4550 /* Read a lookahead token if we need one and don't already have one. */
4551 /* yyresume: */
4553 /* First try to decide what to do without reference to lookahead token. */
4555 yyn = yypact[yystate];
4556 if (yyn == YYFLAG)
4557 goto yydefault;
4559 /* Not known => get a lookahead token if don't already have one. */
4561 /* yychar is either YYEMPTY or YYEOF
4562 or a valid token in external form. */
4564 if (yychar == YYEMPTY)
4566 #if YYDEBUG != 0
4567 if (yydebug)
4568 fprintf(stderr, "Reading a token: ");
4569 #endif
4570 yychar = YYLEX;
4573 /* Convert token to internal form (in yychar1) for indexing tables with */
4575 if (yychar <= 0) /* This means end of input. */
4577 yychar1 = 0;
4578 yychar = YYEOF; /* Don't call YYLEX any more */
4580 #if YYDEBUG != 0
4581 if (yydebug)
4582 fprintf(stderr, "Now at end of input.\n");
4583 #endif
4585 else
4587 yychar1 = YYTRANSLATE(yychar);
4589 #if YYDEBUG != 0
4590 if (yydebug)
4592 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
4593 /* Give the individual parser a way to print the precise meaning
4594 of a token, for further debugging info. */
4595 #ifdef YYPRINT
4596 YYPRINT (stderr, yychar, yylval);
4597 #endif
4598 fprintf (stderr, ")\n");
4600 #endif
4603 yyn += yychar1;
4604 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
4605 goto yydefault;
4607 yyn = yytable[yyn];
4609 /* yyn is what to do for this token type in this state.
4610 Negative => reduce, -yyn is rule number.
4611 Positive => shift, yyn is new state.
4612 New state is final state => don't bother to shift,
4613 just return success.
4614 0, or most negative number => error. */
4616 if (yyn < 0)
4618 if (yyn == YYFLAG)
4619 goto yyerrlab;
4620 yyn = -yyn;
4621 goto yyreduce;
4623 else if (yyn == 0)
4624 goto yyerrlab;
4626 if (yyn == YYFINAL)
4627 YYACCEPT;
4629 /* Shift the lookahead token. */
4631 #if YYDEBUG != 0
4632 if (yydebug)
4633 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
4634 #endif
4636 /* Discard the token being shifted unless it is eof. */
4637 if (yychar != YYEOF)
4638 yychar = YYEMPTY;
4640 *++yyvsp = yylval;
4641 #ifdef YYLSP_NEEDED
4642 *++yylsp = yylloc;
4643 #endif
4645 /* count tokens shifted since error; after three, turn off error status. */
4646 if (yyerrstatus) yyerrstatus--;
4648 yystate = yyn;
4649 goto yynewstate;
4651 /* Do the default action for the current state. */
4652 yydefault:
4654 yyn = yydefact[yystate];
4655 if (yyn == 0)
4656 goto yyerrlab;
4658 /* Do a reduction. yyn is the number of a rule to reduce with. */
4659 yyreduce:
4660 yylen = yyr2[yyn];
4661 if (yylen > 0)
4662 yyval = yyvsp[1-yylen]; /* implement default value of the action */
4664 #if YYDEBUG != 0
4665 if (yydebug)
4667 int i;
4669 fprintf (stderr, "Reducing via rule %d (line %d), ",
4670 yyn, yyrline[yyn]);
4672 /* Print the symbols being reduced, and their result. */
4673 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
4674 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
4675 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
4677 #endif
4680 switch (yyn) {
4682 case 1:
4683 #line 435 "parse.y"
4684 { finish_translation_unit (); ;
4685 break;}
4686 case 2:
4687 #line 437 "parse.y"
4688 { finish_translation_unit (); ;
4689 break;}
4690 case 3:
4691 #line 445 "parse.y"
4692 { yyval.ttype = NULL_TREE; ;
4693 break;}
4694 case 4:
4695 #line 447 "parse.y"
4696 { yyval.ttype = NULL_TREE; ggc_collect (); ;
4697 break;}
4698 case 5:
4699 #line 449 "parse.y"
4700 { yyval.ttype = NULL_TREE; ggc_collect (); ;
4701 break;}
4702 case 8:
4703 #line 458 "parse.y"
4704 { have_extern_spec = 1;
4705 used_extern_spec = 0;
4706 yyval.ttype = NULL_TREE; ;
4707 break;}
4708 case 9:
4709 #line 463 "parse.y"
4710 { have_extern_spec = 0; ;
4711 break;}
4712 case 10:
4713 #line 468 "parse.y"
4714 { yyval.itype = pedantic;
4715 pedantic = 0; ;
4716 break;}
4717 case 12:
4718 #line 477 "parse.y"
4719 { if (pending_lang_change) do_pending_lang_change();
4720 type_lookups = NULL_TREE; ;
4721 break;}
4722 case 13:
4723 #line 480 "parse.y"
4724 { if (! toplevel_bindings_p ())
4725 pop_everything (); ;
4726 break;}
4727 case 14:
4728 #line 486 "parse.y"
4729 { if (pending_inlines) do_pending_inlines (); ;
4730 break;}
4731 case 15:
4732 #line 488 "parse.y"
4733 { if (pending_inlines) do_pending_inlines (); ;
4734 break;}
4735 case 16:
4736 #line 490 "parse.y"
4737 { if (pending_inlines) do_pending_inlines (); ;
4738 break;}
4739 case 17:
4740 #line 492 "parse.y"
4741 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4742 assemble_asm (yyvsp[-2].ttype); ;
4743 break;}
4744 case 18:
4745 #line 495 "parse.y"
4746 { pop_lang_context (); ;
4747 break;}
4748 case 19:
4749 #line 497 "parse.y"
4750 { if (pending_inlines) do_pending_inlines ();
4751 pop_lang_context (); ;
4752 break;}
4753 case 20:
4754 #line 500 "parse.y"
4755 { if (pending_inlines) do_pending_inlines ();
4756 pop_lang_context (); ;
4757 break;}
4758 case 21:
4759 #line 503 "parse.y"
4760 { push_namespace (yyvsp[-1].ttype); ;
4761 break;}
4762 case 22:
4763 #line 505 "parse.y"
4764 { pop_namespace (); ;
4765 break;}
4766 case 23:
4767 #line 507 "parse.y"
4768 { push_namespace (NULL_TREE); ;
4769 break;}
4770 case 24:
4771 #line 509 "parse.y"
4772 { pop_namespace (); ;
4773 break;}
4774 case 26:
4775 #line 512 "parse.y"
4776 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4777 break;}
4778 case 28:
4779 #line 515 "parse.y"
4780 { pedantic = yyvsp[-1].itype; ;
4781 break;}
4782 case 29:
4783 #line 520 "parse.y"
4784 { begin_only_namespace_names (); ;
4785 break;}
4786 case 30:
4787 #line 522 "parse.y"
4789 end_only_namespace_names ();
4790 if (lastiddecl)
4791 yyvsp[-1].ttype = lastiddecl;
4792 do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
4794 break;}
4795 case 31:
4796 #line 532 "parse.y"
4797 { yyval.ttype = yyvsp[0].ttype; ;
4798 break;}
4799 case 32:
4800 #line 534 "parse.y"
4801 { yyval.ttype = yyvsp[0].ttype; ;
4802 break;}
4803 case 33:
4804 #line 536 "parse.y"
4805 { yyval.ttype = yyvsp[0].ttype; ;
4806 break;}
4807 case 34:
4808 #line 541 "parse.y"
4809 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4810 break;}
4811 case 35:
4812 #line 543 "parse.y"
4813 { yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
4814 break;}
4815 case 36:
4816 #line 545 "parse.y"
4817 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4818 break;}
4819 case 37:
4820 #line 550 "parse.y"
4821 { begin_only_namespace_names (); ;
4822 break;}
4823 case 38:
4824 #line 552 "parse.y"
4826 end_only_namespace_names ();
4827 /* If no declaration was found, the using-directive is
4828 invalid. Since that was not reported, we need the
4829 identifier for the error message. */
4830 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
4831 yyvsp[-1].ttype = lastiddecl;
4832 do_using_directive (yyvsp[-1].ttype);
4834 break;}
4835 case 39:
4836 #line 565 "parse.y"
4838 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4839 yyval.ttype = lastiddecl;
4840 got_scope = yyval.ttype;
4842 break;}
4843 case 40:
4844 #line 571 "parse.y"
4846 yyval.ttype = yyvsp[-1].ttype;
4847 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4848 yyval.ttype = lastiddecl;
4849 got_scope = yyval.ttype;
4851 break;}
4852 case 43:
4853 #line 582 "parse.y"
4854 { yyval.ttype = yyvsp[0].ttype; ;
4855 break;}
4856 case 44:
4857 #line 584 "parse.y"
4858 { yyval.ttype = yyvsp[0].ttype; ;
4859 break;}
4860 case 45:
4861 #line 589 "parse.y"
4862 { push_lang_context (yyvsp[0].ttype); ;
4863 break;}
4864 case 46:
4865 #line 591 "parse.y"
4866 { if (current_lang_name != yyvsp[0].ttype)
4867 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4868 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4869 break;}
4870 case 47:
4871 #line 598 "parse.y"
4872 { begin_template_parm_list (); ;
4873 break;}
4874 case 48:
4875 #line 600 "parse.y"
4876 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4877 break;}
4878 case 49:
4879 #line 602 "parse.y"
4880 { begin_specialization();
4881 yyval.ttype = NULL_TREE; ;
4882 break;}
4883 case 50:
4884 #line 608 "parse.y"
4885 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4886 break;}
4887 case 51:
4888 #line 610 "parse.y"
4889 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4890 break;}
4891 case 52:
4892 #line 615 "parse.y"
4893 { yyval.ttype = yyvsp[0].ttype; ;
4894 break;}
4895 case 53:
4896 #line 617 "parse.y"
4897 { yyval.ttype = NULL_TREE; ;
4898 break;}
4899 case 54:
4900 #line 621 "parse.y"
4901 { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4902 break;}
4903 case 55:
4904 #line 623 "parse.y"
4905 { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
4906 break;}
4907 case 56:
4908 #line 628 "parse.y"
4909 { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4910 break;}
4911 case 57:
4912 #line 640 "parse.y"
4913 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4914 break;}
4915 case 58:
4916 #line 642 "parse.y"
4917 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4918 break;}
4919 case 59:
4920 #line 644 "parse.y"
4921 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4922 break;}
4923 case 60:
4924 #line 646 "parse.y"
4925 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4926 break;}
4927 case 61:
4928 #line 648 "parse.y"
4929 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4930 break;}
4931 case 62:
4932 #line 650 "parse.y"
4934 if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4935 && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4936 && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4938 error ("invalid default template argument");
4939 yyvsp[0].ttype = error_mark_node;
4941 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4943 break;}
4944 case 63:
4945 #line 664 "parse.y"
4946 { finish_template_decl (yyvsp[-1].ttype); ;
4947 break;}
4948 case 64:
4949 #line 666 "parse.y"
4950 { finish_template_decl (yyvsp[-1].ttype); ;
4951 break;}
4952 case 65:
4953 #line 671 "parse.y"
4954 { if (pending_inlines) do_pending_inlines (); ;
4955 break;}
4956 case 66:
4957 #line 673 "parse.y"
4958 { if (pending_inlines) do_pending_inlines (); ;
4959 break;}
4960 case 67:
4961 #line 675 "parse.y"
4962 { if (pending_inlines) do_pending_inlines (); ;
4963 break;}
4964 case 68:
4965 #line 677 "parse.y"
4966 { if (pending_inlines) do_pending_inlines ();
4967 pop_lang_context (); ;
4968 break;}
4969 case 69:
4970 #line 680 "parse.y"
4971 { if (pending_inlines) do_pending_inlines ();
4972 pop_lang_context (); ;
4973 break;}
4974 case 70:
4975 #line 683 "parse.y"
4976 { pedantic = yyvsp[-1].itype; ;
4977 break;}
4978 case 72:
4979 #line 689 "parse.y"
4981 break;}
4982 case 73:
4983 #line 691 "parse.y"
4984 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4985 break;}
4986 case 74:
4987 #line 693 "parse.y"
4988 { maybe_process_partial_specialization (yyvsp[-1].ftype.t);
4989 note_got_semicolon (yyvsp[-1].ftype.t); ;
4990 break;}
4991 case 76:
4992 #line 700 "parse.y"
4994 break;}
4995 case 77:
4996 #line 702 "parse.y"
4997 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4998 break;}
4999 case 78:
5000 #line 704 "parse.y"
5001 { pedwarn ("empty declaration"); ;
5002 break;}
5003 case 80:
5004 #line 707 "parse.y"
5006 tree t, attrs;
5007 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
5008 shadow_tag (t);
5009 note_list_got_semicolon (yyvsp[-1].ftype.t);
5011 break;}
5012 case 84:
5013 #line 720 "parse.y"
5014 { yyval.itype = 0; ;
5015 break;}
5016 case 85:
5017 #line 722 "parse.y"
5018 { yyval.itype = 1; ;
5019 break;}
5020 case 91:
5021 #line 738 "parse.y"
5022 { expand_body (finish_function ((int)yyvsp[-1].itype)); ;
5023 break;}
5024 case 92:
5025 #line 740 "parse.y"
5026 { expand_body (finish_function ((int)yyvsp[0].itype)); ;
5027 break;}
5028 case 93:
5029 #line 742 "parse.y"
5031 break;}
5032 case 94:
5033 #line 747 "parse.y"
5034 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5035 break;}
5036 case 95:
5037 #line 749 "parse.y"
5038 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
5039 break;}
5040 case 96:
5041 #line 751 "parse.y"
5042 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
5043 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
5045 break;}
5046 case 97:
5047 #line 755 "parse.y"
5048 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5049 break;}
5050 case 98:
5051 #line 757 "parse.y"
5052 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
5053 break;}
5054 case 99:
5055 #line 759 "parse.y"
5056 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
5057 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
5059 break;}
5060 case 100:
5061 #line 763 "parse.y"
5062 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5063 break;}
5064 case 101:
5065 #line 765 "parse.y"
5066 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
5067 break;}
5068 case 102:
5069 #line 767 "parse.y"
5070 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
5071 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
5073 break;}
5074 case 103:
5075 #line 771 "parse.y"
5076 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5077 break;}
5078 case 104:
5079 #line 773 "parse.y"
5080 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
5081 break;}
5082 case 105:
5083 #line 775 "parse.y"
5084 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
5085 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
5087 break;}
5088 case 106:
5089 #line 782 "parse.y"
5090 { check_for_new_type ("return type", yyvsp[-1].ftype);
5091 if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
5092 YYERROR1; ;
5093 break;}
5094 case 107:
5095 #line 786 "parse.y"
5096 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
5097 YYERROR1; ;
5098 break;}
5099 case 108:
5100 #line 789 "parse.y"
5101 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
5102 YYERROR1; ;
5103 break;}
5104 case 109:
5105 #line 792 "parse.y"
5106 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
5107 YYERROR1; ;
5108 break;}
5109 case 110:
5110 #line 795 "parse.y"
5111 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
5112 YYERROR1; ;
5113 break;}
5114 case 111:
5115 #line 801 "parse.y"
5116 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
5117 break;}
5118 case 112:
5119 #line 803 "parse.y"
5120 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
5121 break;}
5122 case 113:
5123 #line 805 "parse.y"
5124 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
5125 break;}
5126 case 114:
5127 #line 807 "parse.y"
5128 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
5129 break;}
5130 case 115:
5131 #line 814 "parse.y"
5132 { yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups);
5133 rest_of_mdef:
5134 if (! yyval.ttype)
5135 YYERROR1;
5136 if (yychar == YYEMPTY)
5137 yychar = YYLEX;
5138 reinit_parse_for_method (yychar, yyval.ttype); ;
5139 break;}
5140 case 116:
5141 #line 822 "parse.y"
5142 { yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE);
5143 goto rest_of_mdef; ;
5144 break;}
5145 case 117:
5146 #line 825 "parse.y"
5147 { yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;;
5148 break;}
5149 case 118:
5150 #line 827 "parse.y"
5151 { yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;;
5152 break;}
5153 case 119:
5154 #line 829 "parse.y"
5155 { yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE);
5156 goto rest_of_mdef; ;
5157 break;}
5158 case 120:
5159 #line 832 "parse.y"
5160 { yyval.ttype = parse_method (yyvsp[0].ttype, yyvsp[-1].ftype.t, yyvsp[-1].ftype.lookups); goto rest_of_mdef;;
5161 break;}
5162 case 121:
5163 #line 834 "parse.y"
5164 { yyval.ttype = parse_method (yyvsp[0].ttype, NULL_TREE, NULL_TREE);
5165 goto rest_of_mdef; ;
5166 break;}
5167 case 122:
5168 #line 840 "parse.y"
5170 if (! current_function_parms_stored)
5171 store_parm_decls ();
5172 yyval.ttype = yyvsp[0].ttype;
5174 break;}
5175 case 123:
5176 #line 849 "parse.y"
5177 { finish_named_return_value (yyval.ttype, yyvsp[0].ttype); ;
5178 break;}
5179 case 124:
5180 #line 851 "parse.y"
5181 { finish_named_return_value (yyval.ttype, yyvsp[-1].ttype); ;
5182 break;}
5183 case 125:
5184 #line 853 "parse.y"
5185 { finish_named_return_value (yyval.ttype, NULL_TREE); ;
5186 break;}
5187 case 126:
5188 #line 858 "parse.y"
5190 if (yyvsp[0].ftype.new_type_flag == 0)
5191 error ("no base or member initializers given following ':'");
5193 finish_mem_initializers (yyvsp[0].ftype.t);
5195 break;}
5196 case 127:
5197 #line 868 "parse.y"
5199 if (! current_function_parms_stored)
5200 store_parm_decls ();
5202 if (DECL_CONSTRUCTOR_P (current_function_decl))
5203 /* Make a contour for the initializer list. */
5204 do_pushlevel ();
5205 else if (current_class_type == NULL_TREE)
5206 error ("base initializers not allowed for non-member functions");
5207 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
5208 error ("only constructors take base initializers");
5210 break;}
5211 case 128:
5212 #line 884 "parse.y"
5214 yyval.ftype.new_type_flag = 0;
5215 yyval.ftype.t = NULL_TREE;
5217 break;}
5218 case 129:
5219 #line 889 "parse.y"
5221 yyval.ftype.new_type_flag = 1;
5222 yyval.ftype.t = yyvsp[0].ttype;
5224 break;}
5225 case 130:
5226 #line 894 "parse.y"
5228 if (yyvsp[0].ttype)
5230 yyval.ftype.new_type_flag = 1;
5231 TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-2].ftype.t;
5232 yyval.ftype.t = yyvsp[0].ttype;
5234 else
5235 yyval.ftype = yyvsp[-2].ftype;
5237 break;}
5238 case 132:
5239 #line 909 "parse.y"
5241 if (current_class_name)
5242 pedwarn ("anachronistic old style base class initializer");
5243 yyval.ttype = expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
5245 break;}
5246 case 133:
5247 #line 915 "parse.y"
5249 if (current_class_name)
5250 pedwarn ("anachronistic old style base class initializer");
5251 yyval.ttype = expand_member_init (current_class_ref,
5252 NULL_TREE,
5253 void_type_node);
5255 break;}
5256 case 134:
5257 #line 923 "parse.y"
5258 { yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5259 break;}
5260 case 135:
5261 #line 925 "parse.y"
5262 { yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype,
5263 void_type_node); ;
5264 break;}
5265 case 136:
5266 #line 928 "parse.y"
5267 { yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5268 break;}
5269 case 137:
5270 #line 930 "parse.y"
5271 { yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype,
5272 void_type_node); ;
5273 break;}
5274 case 138:
5275 #line 933 "parse.y"
5276 { yyval.ttype = expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5277 break;}
5278 case 139:
5279 #line 935 "parse.y"
5280 { yyval.ttype = expand_member_init (current_class_ref, yyvsp[-1].ttype,
5281 void_type_node); ;
5282 break;}
5283 case 140:
5284 #line 938 "parse.y"
5285 { yyval.ttype = NULL_TREE ;
5286 break;}
5287 case 152:
5288 #line 963 "parse.y"
5289 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
5290 yyungetc (';', 1); ;
5291 break;}
5292 case 154:
5293 #line 967 "parse.y"
5294 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
5295 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
5296 break;}
5297 case 156:
5298 #line 971 "parse.y"
5299 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
5300 break;}
5301 case 158:
5302 #line 974 "parse.y"
5303 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
5304 break;}
5305 case 160:
5306 #line 977 "parse.y"
5307 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
5308 yyungetc (';', 1); ;
5309 break;}
5310 case 162:
5311 #line 982 "parse.y"
5312 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
5313 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
5314 break;}
5315 case 164:
5316 #line 986 "parse.y"
5317 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
5318 break;}
5319 case 166:
5320 #line 989 "parse.y"
5321 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
5322 break;}
5323 case 168:
5324 #line 994 "parse.y"
5325 { begin_explicit_instantiation(); ;
5326 break;}
5327 case 169:
5328 #line 997 "parse.y"
5329 { end_explicit_instantiation(); ;
5330 break;}
5331 case 170:
5332 #line 1006 "parse.y"
5333 { yyval.ttype = yyvsp[0].ttype; ;
5334 break;}
5335 case 171:
5336 #line 1009 "parse.y"
5337 { yyval.ttype = yyvsp[0].ttype; ;
5338 break;}
5339 case 174:
5340 #line 1017 "parse.y"
5341 { yyval.ttype = yyvsp[0].ttype; ;
5342 break;}
5343 case 175:
5344 #line 1022 "parse.y"
5345 { yyval.ttype = yyvsp[0].ttype; ;
5346 break;}
5347 case 176:
5348 #line 1026 "parse.y"
5350 if (yychar == YYEMPTY)
5351 yychar = YYLEX;
5353 yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype,
5354 yychar == SCOPE);
5356 break;}
5357 case 178:
5358 #line 1037 "parse.y"
5360 /* Handle `Class<Class<Type>>' without space in the `>>' */
5361 pedwarn ("`>>' should be `> >' in template class name");
5362 yyungetc ('>', 1);
5364 break;}
5365 case 179:
5366 #line 1046 "parse.y"
5367 { yyval.ttype = NULL_TREE; ;
5368 break;}
5369 case 181:
5370 #line 1052 "parse.y"
5371 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5372 break;}
5373 case 182:
5374 #line 1054 "parse.y"
5375 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5376 break;}
5377 case 183:
5378 #line 1059 "parse.y"
5379 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
5380 break;}
5381 case 184:
5382 #line 1061 "parse.y"
5384 yyval.ttype = lastiddecl;
5385 if (DECL_TEMPLATE_TEMPLATE_PARM_P (yyval.ttype))
5386 yyval.ttype = TREE_TYPE (yyval.ttype);
5388 break;}
5389 case 186:
5390 #line 1071 "parse.y"
5391 { yyval.code = NEGATE_EXPR; ;
5392 break;}
5393 case 187:
5394 #line 1073 "parse.y"
5395 { yyval.code = CONVERT_EXPR; ;
5396 break;}
5397 case 188:
5398 #line 1075 "parse.y"
5399 { yyval.code = PREINCREMENT_EXPR; ;
5400 break;}
5401 case 189:
5402 #line 1077 "parse.y"
5403 { yyval.code = PREDECREMENT_EXPR; ;
5404 break;}
5405 case 190:
5406 #line 1079 "parse.y"
5407 { yyval.code = TRUTH_NOT_EXPR; ;
5408 break;}
5409 case 191:
5410 #line 1084 "parse.y"
5411 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
5412 break;}
5413 case 193:
5414 #line 1090 "parse.y"
5415 { error ("ISO C++ forbids an empty condition for `%s'",
5416 cond_stmt_keyword);
5417 yyval.ttype = integer_zero_node; ;
5418 break;}
5419 case 194:
5420 #line 1094 "parse.y"
5421 { yyval.ttype = yyvsp[-1].ttype; ;
5422 break;}
5423 case 195:
5424 #line 1099 "parse.y"
5425 { error ("ISO C++ forbids an empty condition for `%s'",
5426 cond_stmt_keyword);
5427 yyval.ttype = integer_zero_node; ;
5428 break;}
5429 case 196:
5430 #line 1103 "parse.y"
5431 { yyval.ttype = yyvsp[-1].ttype; ;
5432 break;}
5433 case 197:
5434 #line 1108 "parse.y"
5435 { yyval.ttype = NULL_TREE; ;
5436 break;}
5437 case 199:
5438 #line 1111 "parse.y"
5439 { yyval.ttype = NULL_TREE; ;
5440 break;}
5441 case 200:
5442 #line 1116 "parse.y"
5444 tree d;
5445 for (d = getdecls (); d; d = TREE_CHAIN (d))
5446 if (TREE_CODE (d) == TYPE_DECL) {
5447 tree s = TREE_TYPE (d);
5448 if (TREE_CODE (s) == RECORD_TYPE)
5449 cp_error ("definition of class `%T' in condition", s);
5450 else if (TREE_CODE (s) == ENUMERAL_TYPE)
5451 cp_error ("definition of enum `%T' in condition", s);
5454 current_declspecs = yyvsp[-4].ftype.t;
5455 yyval.ttype = parse_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, 1);
5457 break;}
5458 case 201:
5459 #line 1131 "parse.y"
5461 parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
5462 yyval.ttype = convert_from_reference (yyvsp[-1].ttype);
5463 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
5464 cp_error ("definition of array `%#D' in condition", yyval.ttype);
5466 break;}
5467 case 207:
5468 #line 1149 "parse.y"
5469 { yyval.ttype = begin_compound_stmt (1); ;
5470 break;}
5471 case 208:
5472 #line 1151 "parse.y"
5473 { finish_compound_stmt (1, yyvsp[-1].ttype); ;
5474 break;}
5475 case 210:
5476 #line 1158 "parse.y"
5477 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype,
5478 build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5479 break;}
5480 case 211:
5481 #line 1161 "parse.y"
5482 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype,
5483 build_tree_list (NULL_TREE, error_mark_node)); ;
5484 break;}
5485 case 212:
5486 #line 1164 "parse.y"
5487 { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5488 break;}
5489 case 213:
5490 #line 1166 "parse.y"
5491 { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
5492 break;}
5493 case 214:
5494 #line 1171 "parse.y"
5495 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5496 break;}
5497 case 216:
5498 #line 1177 "parse.y"
5499 { yyval.ttype = yyvsp[0].ttype; ;
5500 break;}
5501 case 217:
5502 #line 1180 "parse.y"
5503 { yyval.ttype = yyvsp[0].ttype;
5504 pedantic = yyvsp[-1].itype; ;
5505 break;}
5506 case 218:
5507 #line 1183 "parse.y"
5508 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
5509 break;}
5510 case 219:
5511 #line 1185 "parse.y"
5512 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
5513 break;}
5514 case 220:
5515 #line 1187 "parse.y"
5516 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5517 break;}
5518 case 221:
5519 #line 1189 "parse.y"
5520 { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
5521 break;}
5522 case 222:
5523 #line 1192 "parse.y"
5524 { if (pedantic)
5525 pedwarn ("ISO C++ forbids `&&'");
5526 yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
5527 break;}
5528 case 223:
5529 #line 1196 "parse.y"
5530 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
5531 break;}
5532 case 224:
5533 #line 1198 "parse.y"
5534 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t));
5535 check_for_new_type ("sizeof", yyvsp[-1].ftype); ;
5536 break;}
5537 case 225:
5538 #line 1201 "parse.y"
5539 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
5540 break;}
5541 case 226:
5542 #line 1203 "parse.y"
5543 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
5544 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
5545 break;}
5546 case 227:
5547 #line 1209 "parse.y"
5548 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
5549 check_for_new_type ("new", yyvsp[0].ftype); ;
5550 break;}
5551 case 228:
5552 #line 1212 "parse.y"
5553 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
5554 check_for_new_type ("new", yyvsp[-1].ftype); ;
5555 break;}
5556 case 229:
5557 #line 1215 "parse.y"
5558 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
5559 check_for_new_type ("new", yyvsp[0].ftype); ;
5560 break;}
5561 case 230:
5562 #line 1218 "parse.y"
5563 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
5564 check_for_new_type ("new", yyvsp[-1].ftype); ;
5565 break;}
5566 case 231:
5567 #line 1222 "parse.y"
5568 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
5569 NULL_TREE, yyvsp[-3].itype);
5570 check_for_new_type ("new", yyvsp[-1].ftype); ;
5571 break;}
5572 case 232:
5573 #line 1226 "parse.y"
5574 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype);
5575 check_for_new_type ("new", yyvsp[-2].ftype); ;
5576 break;}
5577 case 233:
5578 #line 1229 "parse.y"
5579 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype);
5580 check_for_new_type ("new", yyvsp[-1].ftype); ;
5581 break;}
5582 case 234:
5583 #line 1232 "parse.y"
5584 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
5585 check_for_new_type ("new", yyvsp[-2].ftype); ;
5586 break;}
5587 case 235:
5588 #line 1236 "parse.y"
5589 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
5590 break;}
5591 case 236:
5592 #line 1238 "parse.y"
5593 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
5594 if (yychar == YYEMPTY)
5595 yychar = YYLEX; ;
5596 break;}
5597 case 237:
5598 #line 1242 "parse.y"
5599 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
5600 if (yychar == YYEMPTY)
5601 yychar = YYLEX; ;
5602 break;}
5603 case 238:
5604 #line 1246 "parse.y"
5605 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
5606 break;}
5607 case 239:
5608 #line 1248 "parse.y"
5609 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
5610 break;}
5611 case 240:
5612 #line 1250 "parse.y"
5613 { yyval.ttype = build_x_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ftype.t));
5614 check_for_new_type ("__builtin_va_arg", yyvsp[-1].ftype); ;
5615 break;}
5616 case 241:
5617 #line 1256 "parse.y"
5618 { yyval.ttype = yyvsp[-1].ttype; ;
5619 break;}
5620 case 242:
5621 #line 1258 "parse.y"
5622 { cp_pedwarn ("old style placement syntax, use () instead");
5623 yyval.ttype = yyvsp[-1].ttype; ;
5624 break;}
5625 case 243:
5626 #line 1264 "parse.y"
5627 { yyval.ttype = yyvsp[-1].ttype; ;
5628 break;}
5629 case 244:
5630 #line 1266 "parse.y"
5631 { yyval.ttype = NULL_TREE; ;
5632 break;}
5633 case 245:
5634 #line 1268 "parse.y"
5636 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
5637 yyval.ttype = error_mark_node;
5639 break;}
5640 case 246:
5641 #line 1276 "parse.y"
5643 if (pedantic)
5644 pedwarn ("ISO C++ forbids initialization of new expression with `='");
5645 if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
5646 && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
5647 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
5648 else
5649 yyval.ttype = yyvsp[0].ttype;
5651 break;}
5652 case 247:
5653 #line 1290 "parse.y"
5654 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
5655 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5656 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5657 break;}
5658 case 248:
5659 #line 1294 "parse.y"
5660 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
5661 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5662 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5663 break;}
5664 case 250:
5665 #line 1302 "parse.y"
5666 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5667 break;}
5668 case 251:
5669 #line 1304 "parse.y"
5671 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5672 nreverse (yyvsp[-2].ttype));
5673 if (pedantic)
5674 pedwarn ("ISO C++ forbids constructor-expressions");
5675 /* Indicate that this was a GNU C constructor expression. */
5676 TREE_HAS_CONSTRUCTOR (init) = 1;
5678 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5680 break;}
5681 case 253:
5682 #line 1320 "parse.y"
5683 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5684 break;}
5685 case 254:
5686 #line 1322 "parse.y"
5687 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5688 break;}
5689 case 255:
5690 #line 1324 "parse.y"
5691 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5692 break;}
5693 case 256:
5694 #line 1326 "parse.y"
5695 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5696 break;}
5697 case 257:
5698 #line 1328 "parse.y"
5699 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5700 break;}
5701 case 258:
5702 #line 1330 "parse.y"
5703 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5704 break;}
5705 case 259:
5706 #line 1332 "parse.y"
5707 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5708 break;}
5709 case 260:
5710 #line 1334 "parse.y"
5711 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5712 break;}
5713 case 261:
5714 #line 1336 "parse.y"
5715 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5716 break;}
5717 case 262:
5718 #line 1338 "parse.y"
5719 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5720 break;}
5721 case 263:
5722 #line 1340 "parse.y"
5723 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5724 break;}
5725 case 264:
5726 #line 1342 "parse.y"
5727 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5728 break;}
5729 case 265:
5730 #line 1344 "parse.y"
5731 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5732 break;}
5733 case 266:
5734 #line 1346 "parse.y"
5735 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5736 break;}
5737 case 267:
5738 #line 1348 "parse.y"
5739 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5740 break;}
5741 case 268:
5742 #line 1350 "parse.y"
5743 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5744 break;}
5745 case 269:
5746 #line 1352 "parse.y"
5747 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5748 break;}
5749 case 270:
5750 #line 1354 "parse.y"
5751 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5752 break;}
5753 case 271:
5754 #line 1356 "parse.y"
5755 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5756 break;}
5757 case 272:
5758 #line 1358 "parse.y"
5759 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5760 break;}
5761 case 273:
5762 #line 1360 "parse.y"
5763 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5764 if (yyval.ttype != error_mark_node)
5765 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5766 break;}
5767 case 274:
5768 #line 1364 "parse.y"
5769 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5770 break;}
5771 case 275:
5772 #line 1366 "parse.y"
5773 { yyval.ttype = build_throw (NULL_TREE); ;
5774 break;}
5775 case 276:
5776 #line 1368 "parse.y"
5777 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5778 break;}
5779 case 278:
5780 #line 1375 "parse.y"
5781 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5782 break;}
5783 case 279:
5784 #line 1377 "parse.y"
5785 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5786 break;}
5787 case 280:
5788 #line 1379 "parse.y"
5789 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5790 break;}
5791 case 281:
5792 #line 1381 "parse.y"
5793 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5794 break;}
5795 case 282:
5796 #line 1383 "parse.y"
5797 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5798 break;}
5799 case 283:
5800 #line 1385 "parse.y"
5801 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5802 break;}
5803 case 284:
5804 #line 1387 "parse.y"
5805 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5806 break;}
5807 case 285:
5808 #line 1389 "parse.y"
5809 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5810 break;}
5811 case 286:
5812 #line 1391 "parse.y"
5813 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5814 break;}
5815 case 287:
5816 #line 1393 "parse.y"
5817 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5818 break;}
5819 case 288:
5820 #line 1395 "parse.y"
5821 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5822 break;}
5823 case 289:
5824 #line 1397 "parse.y"
5825 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5826 break;}
5827 case 290:
5828 #line 1399 "parse.y"
5829 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5830 break;}
5831 case 291:
5832 #line 1401 "parse.y"
5833 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5834 break;}
5835 case 292:
5836 #line 1403 "parse.y"
5837 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5838 break;}
5839 case 293:
5840 #line 1405 "parse.y"
5841 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5842 break;}
5843 case 294:
5844 #line 1407 "parse.y"
5845 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5846 break;}
5847 case 295:
5848 #line 1409 "parse.y"
5849 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5850 break;}
5851 case 296:
5852 #line 1411 "parse.y"
5853 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5854 break;}
5855 case 297:
5856 #line 1413 "parse.y"
5857 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5858 if (yyval.ttype != error_mark_node)
5859 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5860 break;}
5861 case 298:
5862 #line 1417 "parse.y"
5863 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5864 break;}
5865 case 299:
5866 #line 1419 "parse.y"
5867 { yyval.ttype = build_throw (NULL_TREE); ;
5868 break;}
5869 case 300:
5870 #line 1421 "parse.y"
5871 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5872 break;}
5873 case 301:
5874 #line 1426 "parse.y"
5875 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5876 break;}
5877 case 302:
5878 #line 1428 "parse.y"
5879 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5880 break;}
5881 case 308:
5882 #line 1437 "parse.y"
5884 /* If lastiddecl is a TREE_LIST, it's a baselink, which
5885 means that we're in an expression like S::f<int>, so
5886 don't do_identifier; we only do that for unqualified
5887 identifiers. */
5888 if (lastiddecl && TREE_CODE (lastiddecl) != TREE_LIST)
5889 yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE);
5890 else
5891 yyval.ttype = yyvsp[-1].ttype;
5893 break;}
5894 case 309:
5895 #line 1450 "parse.y"
5896 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5897 break;}
5898 case 310:
5899 #line 1452 "parse.y"
5900 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5901 break;}
5902 case 311:
5903 #line 1457 "parse.y"
5904 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5905 break;}
5906 case 312:
5907 #line 1459 "parse.y"
5908 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5909 break;}
5910 case 313:
5911 #line 1462 "parse.y"
5912 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5913 break;}
5914 case 318:
5915 #line 1474 "parse.y"
5917 /* Provide support for '(' attributes '*' declarator ')'
5918 etc */
5919 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
5921 break;}
5922 case 320:
5923 #line 1484 "parse.y"
5924 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5925 break;}
5926 case 321:
5927 #line 1486 "parse.y"
5928 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5929 break;}
5930 case 322:
5931 #line 1488 "parse.y"
5932 { yyval.ttype = yyvsp[-1].ttype; ;
5933 break;}
5934 case 323:
5935 #line 1493 "parse.y"
5936 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5937 break;}
5938 case 324:
5939 #line 1495 "parse.y"
5940 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5941 break;}
5942 case 328:
5943 #line 1505 "parse.y"
5944 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5945 break;}
5946 case 329:
5947 #line 1510 "parse.y"
5949 if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
5950 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
5951 else
5952 yyval.ttype = finish_id_expr (yyvsp[0].ttype);
5954 break;}
5955 case 332:
5956 #line 1519 "parse.y"
5958 yyval.ttype = combine_strings (yyval.ttype);
5959 /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
5960 a const array the way we want, so fix it. */
5961 if (flag_const_strings)
5962 TREE_TYPE (yyval.ttype) = build_cplus_array_type
5963 (TREE_TYPE (TREE_TYPE (yyval.ttype)),
5964 TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
5966 break;}
5967 case 333:
5968 #line 1529 "parse.y"
5969 { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5970 break;}
5971 case 334:
5972 #line 1531 "parse.y"
5973 { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5974 yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5975 break;}
5976 case 335:
5977 #line 1534 "parse.y"
5978 { yyval.ttype = error_mark_node; ;
5979 break;}
5980 case 336:
5981 #line 1536 "parse.y"
5982 { tree scope = current_scope ();
5983 if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
5985 error ("braced-group within expression allowed only inside a function");
5986 YYERROR;
5988 if (pedantic)
5989 pedwarn ("ISO C++ forbids braced-groups within expressions");
5990 yyval.ttype = begin_stmt_expr ();
5992 break;}
5993 case 337:
5994 #line 1547 "parse.y"
5995 { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype); ;
5996 break;}
5997 case 338:
5998 #line 1552 "parse.y"
5999 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
6000 break;}
6001 case 339:
6002 #line 1554 "parse.y"
6003 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
6004 break;}
6005 case 340:
6006 #line 1556 "parse.y"
6007 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
6008 break;}
6009 case 341:
6010 #line 1558 "parse.y"
6011 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
6012 break;}
6013 case 342:
6014 #line 1560 "parse.y"
6015 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
6016 break;}
6017 case 343:
6018 #line 1562 "parse.y"
6019 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
6020 break;}
6021 case 344:
6022 #line 1564 "parse.y"
6023 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
6024 break;}
6025 case 345:
6026 #line 1567 "parse.y"
6027 { yyval.ttype = finish_this_expr (); ;
6028 break;}
6029 case 346:
6030 #line 1569 "parse.y"
6032 /* This is a C cast in C++'s `functional' notation
6033 using the "implicit int" extension so that:
6034 `const (3)' is equivalent to `const int (3)'. */
6035 tree type;
6037 type = hash_tree_cons (NULL_TREE, yyvsp[-3].ttype, NULL_TREE);
6038 type = groktypename (build_decl_list (type, NULL_TREE));
6039 yyval.ttype = build_functional_cast (type, yyvsp[-1].ttype);
6041 break;}
6042 case 348:
6043 #line 1581 "parse.y"
6044 { tree type = groktypename (yyvsp[-4].ftype.t);
6045 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
6046 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
6047 break;}
6048 case 349:
6049 #line 1585 "parse.y"
6050 { tree type = groktypename (yyvsp[-4].ftype.t);
6051 check_for_new_type ("static_cast", yyvsp[-4].ftype);
6052 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
6053 break;}
6054 case 350:
6055 #line 1589 "parse.y"
6056 { tree type = groktypename (yyvsp[-4].ftype.t);
6057 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
6058 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
6059 break;}
6060 case 351:
6061 #line 1593 "parse.y"
6062 { tree type = groktypename (yyvsp[-4].ftype.t);
6063 check_for_new_type ("const_cast", yyvsp[-4].ftype);
6064 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
6065 break;}
6066 case 352:
6067 #line 1597 "parse.y"
6068 { yyval.ttype = build_typeid (yyvsp[-1].ttype); ;
6069 break;}
6070 case 353:
6071 #line 1599 "parse.y"
6072 { tree type = groktypename (yyvsp[-1].ftype.t);
6073 check_for_new_type ("typeid", yyvsp[-1].ftype);
6074 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
6075 break;}
6076 case 354:
6077 #line 1603 "parse.y"
6078 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
6079 break;}
6080 case 355:
6081 #line 1605 "parse.y"
6082 { yyval.ttype = yyvsp[0].ttype; ;
6083 break;}
6084 case 356:
6085 #line 1607 "parse.y"
6087 got_scope = NULL_TREE;
6088 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6089 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
6090 else
6091 yyval.ttype = yyvsp[0].ttype;
6093 break;}
6094 case 357:
6095 #line 1615 "parse.y"
6096 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
6097 break;}
6098 case 358:
6099 #line 1617 "parse.y"
6100 { yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6101 break;}
6102 case 359:
6103 #line 1619 "parse.y"
6104 { yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
6105 break;}
6106 case 360:
6107 #line 1621 "parse.y"
6109 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
6111 break;}
6112 case 361:
6113 #line 1625 "parse.y"
6114 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
6115 break;}
6116 case 362:
6117 #line 1627 "parse.y"
6118 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
6119 break;}
6120 case 363:
6121 #line 1629 "parse.y"
6122 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
6123 break;}
6124 case 364:
6125 #line 1631 "parse.y"
6126 { if (processing_template_decl)
6127 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
6128 else
6129 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
6130 break;}
6131 case 365:
6132 #line 1636 "parse.y"
6133 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
6134 break;}
6135 case 366:
6136 #line 1638 "parse.y"
6137 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
6138 break;}
6139 case 367:
6140 #line 1640 "parse.y"
6141 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
6142 break;}
6143 case 368:
6144 #line 1642 "parse.y"
6145 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
6146 break;}
6147 case 369:
6148 #line 1645 "parse.y"
6149 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
6150 break;}
6151 case 370:
6152 #line 1647 "parse.y"
6153 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
6154 break;}
6155 case 371:
6156 #line 1649 "parse.y"
6158 yyval.ttype = error_mark_node;
6160 break;}
6161 case 372:
6162 #line 1694 "parse.y"
6163 { yyval.itype = 0; ;
6164 break;}
6165 case 373:
6166 #line 1696 "parse.y"
6167 { got_scope = NULL_TREE; yyval.itype = 1; ;
6168 break;}
6169 case 374:
6170 #line 1701 "parse.y"
6171 { yyval.itype = 0; ;
6172 break;}
6173 case 375:
6174 #line 1703 "parse.y"
6175 { got_scope = NULL_TREE; yyval.itype = 1; ;
6176 break;}
6177 case 376:
6178 #line 1708 "parse.y"
6179 { yyval.ttype = boolean_true_node; ;
6180 break;}
6181 case 377:
6182 #line 1710 "parse.y"
6183 { yyval.ttype = boolean_false_node; ;
6184 break;}
6185 case 379:
6186 #line 1717 "parse.y"
6187 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6188 break;}
6189 case 380:
6190 #line 1722 "parse.y"
6192 if (! current_function_parms_stored)
6193 store_parm_decls ();
6194 setup_vtbl_ptr (NULL_TREE, NULL_TREE);
6196 break;}
6197 case 381:
6198 #line 1731 "parse.y"
6199 { got_object = TREE_TYPE (yyval.ttype); ;
6200 break;}
6201 case 382:
6202 #line 1733 "parse.y"
6204 yyval.ttype = build_x_arrow (yyval.ttype);
6205 got_object = TREE_TYPE (yyval.ttype);
6207 break;}
6208 case 383:
6209 #line 1741 "parse.y"
6211 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
6212 note_got_semicolon (yyvsp[-2].ftype.t);
6214 break;}
6215 case 384:
6216 #line 1746 "parse.y"
6218 note_list_got_semicolon (yyvsp[-2].ftype.t);
6220 break;}
6221 case 385:
6222 #line 1750 "parse.y"
6224 break;}
6225 case 386:
6226 #line 1752 "parse.y"
6228 shadow_tag (yyvsp[-1].ftype.t);
6229 note_list_got_semicolon (yyvsp[-1].ftype.t);
6231 break;}
6232 case 387:
6233 #line 1757 "parse.y"
6234 { warning ("empty declaration"); ;
6235 break;}
6236 case 388:
6237 #line 1759 "parse.y"
6238 { pedantic = yyvsp[-1].itype; ;
6239 break;}
6240 case 391:
6241 #line 1773 "parse.y"
6242 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
6243 NULL_TREE, NULL_TREE); ;
6244 break;}
6245 case 392:
6246 #line 1776 "parse.y"
6247 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
6248 NULL_TREE); ;
6249 break;}
6250 case 393:
6251 #line 1783 "parse.y"
6252 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6253 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6254 break;}
6255 case 394:
6256 #line 1786 "parse.y"
6257 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6258 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6259 break;}
6260 case 395:
6261 #line 1789 "parse.y"
6262 { yyval.ftype.t = build_decl_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
6263 yyvsp[0].ttype);
6264 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6265 break;}
6266 case 396:
6267 #line 1793 "parse.y"
6268 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6269 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6270 break;}
6271 case 397:
6272 #line 1796 "parse.y"
6273 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6274 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6275 break;}
6276 case 398:
6277 #line 1807 "parse.y"
6278 { yyval.ftype.lookups = type_lookups; ;
6279 break;}
6280 case 399:
6281 #line 1809 "parse.y"
6282 { yyval.ftype.lookups = type_lookups; ;
6283 break;}
6284 case 400:
6285 #line 1814 "parse.y"
6286 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
6287 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6288 break;}
6289 case 401:
6290 #line 1817 "parse.y"
6291 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
6292 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6293 break;}
6294 case 402:
6295 #line 1820 "parse.y"
6296 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
6297 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
6298 break;}
6299 case 403:
6300 #line 1823 "parse.y"
6301 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
6302 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6303 break;}
6304 case 404:
6305 #line 1826 "parse.y"
6306 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
6307 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6308 break;}
6309 case 405:
6310 #line 1829 "parse.y"
6311 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
6312 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ftype.t)));
6313 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
6314 break;}
6315 case 406:
6316 #line 1836 "parse.y"
6317 { if (extra_warnings)
6318 warning ("`%s' is not at beginning of declaration",
6319 IDENTIFIER_POINTER (yyval.ttype));
6320 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
6321 break;}
6322 case 407:
6323 #line 1841 "parse.y"
6324 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
6325 break;}
6326 case 408:
6327 #line 1843 "parse.y"
6328 { if (extra_warnings)
6329 warning ("`%s' is not at beginning of declaration",
6330 IDENTIFIER_POINTER (yyvsp[0].ttype));
6331 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6332 break;}
6333 case 409:
6334 #line 1848 "parse.y"
6335 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
6336 break;}
6337 case 410:
6338 #line 1850 "parse.y"
6339 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
6340 break;}
6341 case 411:
6342 #line 1869 "parse.y"
6343 { yyval.ftype.lookups = NULL_TREE; TREE_STATIC (yyval.ftype.t) = 1; ;
6344 break;}
6345 case 412:
6346 #line 1871 "parse.y"
6348 yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
6349 yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE;
6351 break;}
6352 case 413:
6353 #line 1876 "parse.y"
6355 yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6356 TREE_STATIC (yyval.ftype.t) = 1;
6358 break;}
6359 case 414:
6360 #line 1881 "parse.y"
6362 if (extra_warnings && TREE_STATIC (yyval.ftype.t))
6363 warning ("`%s' is not at beginning of declaration",
6364 IDENTIFIER_POINTER (yyvsp[0].ttype));
6365 yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6366 TREE_STATIC (yyval.ftype.t) = TREE_STATIC (yyvsp[-1].ftype.t);
6368 break;}
6369 case 415:
6370 #line 1889 "parse.y"
6371 { yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ftype.t); ;
6372 break;}
6373 case 416:
6374 #line 1891 "parse.y"
6376 yyval.ftype.t = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE);
6377 yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE;
6379 break;}
6380 case 417:
6381 #line 1905 "parse.y"
6382 { yyval.ftype.t = build_decl_list (NULL_TREE, yyvsp[0].ftype.t);
6383 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6384 break;}
6385 case 418:
6386 #line 1908 "parse.y"
6387 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
6388 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6389 break;}
6390 case 419:
6391 #line 1911 "parse.y"
6392 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
6393 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6394 break;}
6395 case 420:
6396 #line 1914 "parse.y"
6397 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
6398 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6399 break;}
6400 case 421:
6401 #line 1920 "parse.y"
6402 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
6403 break;}
6404 case 422:
6405 #line 1922 "parse.y"
6406 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
6407 break;}
6408 case 423:
6409 #line 1931 "parse.y"
6410 { yyval.ftype.lookups = NULL_TREE; ;
6411 break;}
6412 case 424:
6413 #line 1933 "parse.y"
6414 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ;
6415 break;}
6416 case 425:
6417 #line 1935 "parse.y"
6418 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ;
6419 break;}
6420 case 426:
6421 #line 1937 "parse.y"
6422 { yyval.ftype.t = finish_typeof (yyvsp[-1].ttype);
6423 yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ;
6424 break;}
6425 case 427:
6426 #line 1940 "parse.y"
6427 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
6428 yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE; ;
6429 break;}
6430 case 428:
6431 #line 1943 "parse.y"
6432 { tree type = TREE_TYPE (yyvsp[-1].ttype);
6434 yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE;
6435 if (IS_AGGR_TYPE (type))
6437 sorry ("sigof type specifier");
6438 yyval.ftype.t = type;
6440 else
6442 error ("`sigof' applied to non-aggregate expression");
6443 yyval.ftype.t = error_mark_node;
6446 break;}
6447 case 429:
6448 #line 1958 "parse.y"
6449 { tree type = groktypename (yyvsp[-1].ftype.t);
6451 yyval.ftype.new_type_flag = 0; yyval.ftype.lookups = NULL_TREE;
6452 if (IS_AGGR_TYPE (type))
6454 sorry ("sigof type specifier");
6455 yyval.ftype.t = type;
6457 else
6459 error("`sigof' applied to non-aggregate type");
6460 yyval.ftype.t = error_mark_node;
6463 break;}
6464 case 430:
6465 #line 1978 "parse.y"
6466 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6467 break;}
6468 case 431:
6469 #line 1980 "parse.y"
6470 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6471 break;}
6472 case 434:
6473 #line 1987 "parse.y"
6474 { check_multiple_declarators (); ;
6475 break;}
6476 case 436:
6477 #line 1993 "parse.y"
6478 { check_multiple_declarators (); ;
6479 break;}
6480 case 438:
6481 #line 1999 "parse.y"
6482 { check_multiple_declarators (); ;
6483 break;}
6484 case 439:
6485 #line 2004 "parse.y"
6486 { yyval.ttype = NULL_TREE; ;
6487 break;}
6488 case 440:
6489 #line 2006 "parse.y"
6490 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
6491 break;}
6492 case 441:
6493 #line 2011 "parse.y"
6494 { yyval.ttype = parse_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
6495 break;}
6496 case 442:
6497 #line 2014 "parse.y"
6498 { parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
6499 break;}
6500 case 443:
6501 #line 2016 "parse.y"
6503 yyval.ttype = parse_decl (yyvsp[-2].ttype, yyvsp[0].ttype, 0);
6504 parse_end_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype);
6506 break;}
6507 case 444:
6508 #line 2030 "parse.y"
6509 { yyval.ttype = parse_decl0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t,
6510 yyvsp[-4].ftype.lookups, yyvsp[-1].ttype, 1); ;
6511 break;}
6512 case 445:
6513 #line 2035 "parse.y"
6514 { parse_end_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
6515 break;}
6516 case 446:
6517 #line 2037 "parse.y"
6518 { tree d = parse_decl0 (yyvsp[-2].ttype, yyvsp[-3].ftype.t,
6519 yyvsp[-3].ftype.lookups, yyvsp[0].ttype, 0);
6520 parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
6521 break;}
6522 case 447:
6523 #line 2044 "parse.y"
6525 break;}
6526 case 448:
6527 #line 2049 "parse.y"
6529 break;}
6530 case 449:
6531 #line 2054 "parse.y"
6532 { /* Set things up as initdcl0_innards expects. */
6533 yyvsp[0].ttype = yyvsp[-1].ttype;
6534 yyvsp[-1].ttype = NULL_TREE; ;
6535 break;}
6536 case 450:
6537 #line 2058 "parse.y"
6539 break;}
6540 case 451:
6541 #line 2060 "parse.y"
6542 { tree d = parse_decl0 (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, yyvsp[0].ttype, 0);
6543 parse_end_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
6544 break;}
6545 case 452:
6546 #line 2068 "parse.y"
6547 { yyval.ttype = NULL_TREE; ;
6548 break;}
6549 case 453:
6550 #line 2070 "parse.y"
6551 { yyval.ttype = yyvsp[0].ttype; ;
6552 break;}
6553 case 454:
6554 #line 2075 "parse.y"
6555 { yyval.ttype = yyvsp[0].ttype; ;
6556 break;}
6557 case 455:
6558 #line 2077 "parse.y"
6559 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6560 break;}
6561 case 456:
6562 #line 2082 "parse.y"
6563 { yyval.ttype = yyvsp[-2].ttype; ;
6564 break;}
6565 case 457:
6566 #line 2087 "parse.y"
6567 { yyval.ttype = yyvsp[0].ttype; ;
6568 break;}
6569 case 458:
6570 #line 2089 "parse.y"
6571 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6572 break;}
6573 case 459:
6574 #line 2094 "parse.y"
6575 { yyval.ttype = NULL_TREE; ;
6576 break;}
6577 case 460:
6578 #line 2096 "parse.y"
6579 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
6580 break;}
6581 case 461:
6582 #line 2098 "parse.y"
6583 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
6584 break;}
6585 case 462:
6586 #line 2100 "parse.y"
6587 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
6588 break;}
6589 case 463:
6590 #line 2102 "parse.y"
6591 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6592 break;}
6593 case 468:
6594 #line 2118 "parse.y"
6595 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
6596 break;}
6597 case 469:
6598 #line 2120 "parse.y"
6599 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6600 break;}
6601 case 470:
6602 #line 2125 "parse.y"
6603 { yyval.ttype = NULL_TREE; ;
6604 break;}
6605 case 471:
6606 #line 2127 "parse.y"
6607 { yyval.ttype = yyvsp[0].ttype; ;
6608 break;}
6609 case 473:
6610 #line 2135 "parse.y"
6611 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
6612 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6613 break;}
6614 case 474:
6615 #line 2138 "parse.y"
6616 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6617 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6618 break;}
6619 case 475:
6620 #line 2141 "parse.y"
6621 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6622 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6623 break;}
6624 case 476:
6625 #line 2144 "parse.y"
6626 { yyval.ttype = NULL_TREE; ;
6627 break;}
6628 case 477:
6629 #line 2151 "parse.y"
6630 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6631 break;}
6632 case 478:
6633 #line 2153 "parse.y"
6634 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6635 break;}
6636 case 479:
6637 #line 2156 "parse.y"
6638 { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6639 break;}
6640 case 480:
6641 #line 2158 "parse.y"
6642 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
6643 break;}
6644 case 481:
6645 #line 2160 "parse.y"
6646 { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6647 break;}
6648 case 482:
6649 #line 2165 "parse.y"
6650 { start_function (NULL_TREE, yyvsp[0].pi->fndecl, NULL_TREE,
6651 (SF_DEFAULT | SF_PRE_PARSED
6652 | SF_INCLASS_INLINE)); ;
6653 break;}
6654 case 483:
6655 #line 2171 "parse.y"
6657 expand_body (finish_function ((int)yyvsp[-1].itype | 2));
6658 process_next_inline (yyvsp[-3].pi);
6660 break;}
6661 case 484:
6662 #line 2176 "parse.y"
6664 expand_body (finish_function ((int)yyvsp[0].itype | 2));
6665 process_next_inline (yyvsp[-2].pi);
6667 break;}
6668 case 485:
6669 #line 2181 "parse.y"
6671 finish_function (2);
6672 process_next_inline (yyvsp[-2].pi); ;
6673 break;}
6674 case 488:
6675 #line 2195 "parse.y"
6676 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6677 break;}
6678 case 489:
6679 #line 2197 "parse.y"
6680 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6681 break;}
6682 case 491:
6683 #line 2202 "parse.y"
6684 { do_pending_defargs (); ;
6685 break;}
6686 case 492:
6687 #line 2204 "parse.y"
6688 { do_pending_defargs (); ;
6689 break;}
6690 case 493:
6691 #line 2209 "parse.y"
6692 { yyval.ttype = current_enum_type;
6693 current_enum_type = start_enum (yyvsp[-1].ttype); ;
6694 break;}
6695 case 494:
6696 #line 2212 "parse.y"
6697 { yyval.ftype.t = finish_enum (current_enum_type);
6698 yyval.ftype.new_type_flag = 1;
6699 current_enum_type = yyvsp[-2].ttype;
6700 check_for_missing_semicolon (yyval.ftype.t); ;
6701 break;}
6702 case 495:
6703 #line 2217 "parse.y"
6704 { yyval.ttype = current_enum_type;
6705 current_enum_type = start_enum (make_anon_name ()); ;
6706 break;}
6707 case 496:
6708 #line 2220 "parse.y"
6709 { yyval.ftype.t = finish_enum (current_enum_type);
6710 yyval.ftype.new_type_flag = 1;
6711 current_enum_type = yyvsp[-2].ttype;
6712 check_for_missing_semicolon (yyval.ftype.t); ;
6713 break;}
6714 case 497:
6715 #line 2225 "parse.y"
6716 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1);
6717 yyval.ftype.new_type_flag = 0; ;
6718 break;}
6719 case 498:
6720 #line 2228 "parse.y"
6721 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1);
6722 yyval.ftype.new_type_flag = 0; ;
6723 break;}
6724 case 499:
6725 #line 2231 "parse.y"
6726 { yyval.ftype.t = yyvsp[0].ttype;
6727 yyval.ftype.new_type_flag = 0;
6728 if (!processing_template_decl)
6729 cp_pedwarn ("using `typename' outside of template"); ;
6730 break;}
6731 case 500:
6732 #line 2237 "parse.y"
6733 { yyvsp[-1].ftype.t = begin_class_definition (yyvsp[-1].ftype.t); ;
6734 break;}
6735 case 501:
6736 #line 2239 "parse.y"
6738 int semi;
6740 if (yychar == YYEMPTY)
6741 yychar = YYLEX;
6742 semi = yychar == ';';
6744 yyval.ttype = finish_class_definition (yyvsp[-5].ftype.t, yyvsp[0].ttype, semi,
6745 yyvsp[-5].ftype.new_type_flag);
6747 break;}
6748 case 502:
6749 #line 2250 "parse.y"
6751 begin_inline_definitions ();
6753 break;}
6754 case 503:
6755 #line 2254 "parse.y"
6757 finish_inline_definitions ();
6758 yyval.ftype.t = yyvsp[-3].ttype;
6759 yyval.ftype.new_type_flag = 1;
6761 break;}
6762 case 504:
6763 #line 2260 "parse.y"
6765 if (yyvsp[0].ftype.new_type_flag && yyvsp[0].ftype.t != error_mark_node)
6766 pop_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (yyvsp[0].ftype.t)));
6767 yyval.ftype.new_type_flag = 0;
6768 if (yyvsp[0].ftype.t == error_mark_node)
6769 yyval.ftype.t = yyvsp[0].ftype.t;
6770 else if (TYPE_BINFO (yyvsp[0].ftype.t) == NULL_TREE)
6772 cp_error ("%T is not a class type", yyvsp[0].ftype.t);
6773 yyval.ftype.t = error_mark_node;
6775 else
6777 yyval.ftype.t = yyvsp[0].ftype.t;
6778 /* struct B: public A; is not accepted by the standard grammar. */
6779 if (CLASS_TYPE_P (yyval.ftype.t)
6780 && TYPE_BINFO_BASETYPES (yyval.ftype.t)
6781 && !COMPLETE_TYPE_P (yyval.ftype.t)
6782 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6783 cp_error ("base clause without member specification for `%#T'",
6784 yyval.ftype.t);
6787 break;}
6788 case 508:
6789 #line 2293 "parse.y"
6790 { if (pedantic && !in_system_header)
6791 pedwarn ("comma at end of enumerator list"); ;
6792 break;}
6793 case 510:
6794 #line 2300 "parse.y"
6795 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6796 break;}
6797 case 511:
6798 #line 2302 "parse.y"
6799 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6800 break;}
6801 case 512:
6802 #line 2304 "parse.y"
6803 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6804 break;}
6805 case 513:
6806 #line 2306 "parse.y"
6807 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6808 break;}
6809 case 514:
6810 #line 2308 "parse.y"
6811 { yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
6812 break;}
6813 case 515:
6814 #line 2313 "parse.y"
6816 current_aggr = yyvsp[-1].ttype;
6817 yyval.ttype = yyvsp[0].ttype;
6819 break;}
6820 case 516:
6821 #line 2321 "parse.y"
6822 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6823 break;}
6824 case 517:
6825 #line 2323 "parse.y"
6826 { yyungetc ('{', 1); ;
6827 break;}
6828 case 518:
6829 #line 2325 "parse.y"
6830 { yyungetc (':', 1); ;
6831 break;}
6832 case 519:
6833 #line 2330 "parse.y"
6835 current_aggr = yyvsp[-2].ttype;
6836 yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6837 yyval.ftype.new_type_flag = 1;
6839 break;}
6840 case 520:
6841 #line 2336 "parse.y"
6843 current_aggr = yyvsp[-3].ttype;
6844 yyval.ftype.t = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6845 yyval.ftype.new_type_flag = 1;
6847 break;}
6848 case 521:
6849 #line 2342 "parse.y"
6851 current_aggr = yyvsp[-2].ttype;
6852 yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6853 yyval.ftype.new_type_flag = 1;
6855 break;}
6856 case 522:
6857 #line 2348 "parse.y"
6859 current_aggr = yyvsp[-1].ttype;
6860 yyval.ftype.t = yyvsp[0].ttype;
6861 yyval.ftype.new_type_flag = 0;
6863 break;}
6864 case 523:
6865 #line 2354 "parse.y"
6867 current_aggr = yyvsp[-2].ttype;
6868 yyval.ftype.t = yyvsp[0].ttype;
6869 if (CP_DECL_CONTEXT (yyval.ftype.t))
6870 push_scope (CP_DECL_CONTEXT (yyval.ftype.t));
6871 yyval.ftype.new_type_flag = 1;
6873 break;}
6874 case 524:
6875 #line 2365 "parse.y"
6877 yyval.ftype.t = xref_tag (current_aggr, yyvsp[0].ttype, 1);
6878 yyval.ftype.new_type_flag = 0;
6880 break;}
6881 case 525:
6882 #line 2370 "parse.y"
6883 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
6884 break;}
6885 case 526:
6886 #line 2374 "parse.y"
6888 yyval.ftype.t = yyvsp[-1].ttype;
6889 yyval.ftype.new_type_flag = 0;
6890 if (yyvsp[0].ttype)
6891 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6893 break;}
6894 case 527:
6895 #line 2382 "parse.y"
6897 if (yyvsp[-1].ftype.t != error_mark_node)
6899 yyval.ftype.t = TREE_TYPE (yyvsp[-1].ftype.t);
6900 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
6901 if (current_aggr == union_type_node
6902 && TREE_CODE (yyval.ftype.t) != UNION_TYPE)
6903 cp_pedwarn ("`union' tag used in declaring `%#T'",
6904 yyval.ftype.t);
6905 else if (TREE_CODE (yyval.ftype.t) == UNION_TYPE
6906 && current_aggr != union_type_node)
6907 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ftype);
6908 else if (TREE_CODE (yyval.ftype.t) == RECORD_TYPE)
6909 /* We might be specializing a template with a different
6910 class-key; deal. */
6911 CLASSTYPE_DECLARED_CLASS (yyval.ftype.t)
6912 = (current_aggr == class_type_node);
6913 if (yyvsp[0].ttype)
6915 maybe_process_partial_specialization (yyval.ftype.t);
6916 xref_basetypes (current_aggr, yyvsp[-1].ftype.t, yyval.ftype.t, yyvsp[0].ttype);
6920 break;}
6921 case 528:
6922 #line 2410 "parse.y"
6923 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
6924 yyungetc ('{', 1); ;
6925 break;}
6926 case 529:
6927 #line 2420 "parse.y"
6929 yyval.ftype.t = yyvsp[0].ttype;
6930 yyval.ftype.new_type_flag = 0;
6932 break;}
6933 case 531:
6934 #line 2429 "parse.y"
6935 { yyval.ttype = NULL_TREE; ;
6936 break;}
6937 case 532:
6938 #line 2431 "parse.y"
6939 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6940 break;}
6941 case 533:
6942 #line 2433 "parse.y"
6943 { yyval.ttype = yyvsp[0].ttype; ;
6944 break;}
6945 case 535:
6946 #line 2439 "parse.y"
6947 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6948 break;}
6949 case 536:
6950 #line 2444 "parse.y"
6951 { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype); ;
6952 break;}
6953 case 537:
6954 #line 2446 "parse.y"
6955 { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6956 break;}
6957 case 538:
6958 #line 2451 "parse.y"
6959 { if (yyval.ttype == error_mark_node)
6961 else if (!TYPE_P (yyval.ttype))
6962 yyval.ttype = error_mark_node;
6963 else
6964 yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6965 break;}
6966 case 541:
6967 #line 2463 "parse.y"
6968 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6969 cp_error ("`%D' access", yyvsp[-1].ttype);
6970 yyval.ttype = access_default_virtual_node; ;
6971 break;}
6972 case 542:
6973 #line 2467 "parse.y"
6975 if (yyvsp[-2].ttype != access_default_virtual_node)
6976 error ("multiple access specifiers");
6977 else if (yyvsp[-1].ttype == access_public_node)
6978 yyval.ttype = access_public_virtual_node;
6979 else if (yyvsp[-1].ttype == access_protected_node)
6980 yyval.ttype = access_protected_virtual_node;
6981 else /* $2 == access_private_node */
6982 yyval.ttype = access_private_virtual_node;
6984 break;}
6985 case 543:
6986 #line 2478 "parse.y"
6987 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6988 cp_error ("`%D' access", yyvsp[-1].ttype);
6989 else if (yyval.ttype == access_public_node)
6990 yyval.ttype = access_public_virtual_node;
6991 else if (yyval.ttype == access_protected_node)
6992 yyval.ttype = access_protected_virtual_node;
6993 else if (yyval.ttype == access_private_node)
6994 yyval.ttype = access_private_virtual_node;
6995 else
6996 error ("multiple `virtual' specifiers");
6998 break;}
6999 case 548:
7000 #line 2499 "parse.y"
7002 current_access_specifier = yyvsp[-1].ttype;
7004 break;}
7005 case 549:
7006 #line 2508 "parse.y"
7008 finish_member_declaration (yyvsp[0].ttype);
7010 break;}
7011 case 550:
7012 #line 2512 "parse.y"
7014 finish_member_declaration (yyvsp[0].ttype);
7016 break;}
7017 case 552:
7018 #line 2520 "parse.y"
7019 { error ("missing ';' before right brace");
7020 yyungetc ('}', 0); ;
7021 break;}
7022 case 553:
7023 #line 2525 "parse.y"
7024 { yyval.ttype = finish_method (yyval.ttype); ;
7025 break;}
7026 case 554:
7027 #line 2527 "parse.y"
7028 { yyval.ttype = finish_method (yyval.ttype); ;
7029 break;}
7030 case 555:
7031 #line 2529 "parse.y"
7032 { yyval.ttype = finish_method (yyval.ttype); ;
7033 break;}
7034 case 556:
7035 #line 2531 "parse.y"
7036 { yyval.ttype = finish_method (yyval.ttype); ;
7037 break;}
7038 case 557:
7039 #line 2533 "parse.y"
7040 { yyval.ttype = NULL_TREE; ;
7041 break;}
7042 case 558:
7043 #line 2535 "parse.y"
7044 { yyval.ttype = yyvsp[0].ttype;
7045 pedantic = yyvsp[-1].itype; ;
7046 break;}
7047 case 559:
7048 #line 2538 "parse.y"
7050 if (yyvsp[0].ttype)
7051 yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
7052 else
7053 /* The component was already processed. */
7054 yyval.ttype = NULL_TREE;
7056 finish_template_decl (yyvsp[-1].ttype);
7058 break;}
7059 case 560:
7060 #line 2548 "parse.y"
7062 yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t);
7063 finish_template_decl (yyvsp[-2].ttype);
7065 break;}
7066 case 561:
7067 #line 2559 "parse.y"
7069 /* Most of the productions for component_decl only
7070 allow the creation of one new member, so we call
7071 finish_member_declaration in component_decl_list.
7072 For this rule and the next, however, there can be
7073 more than one member, e.g.:
7075 int i, j;
7077 and we need the first member to be fully
7078 registered before the second is processed.
7079 Therefore, the rules for components take care of
7080 this processing. To avoid registering the
7081 components more than once, we send NULL_TREE up
7082 here; that lets finish_member_declaration know
7083 that there is nothing to do. */
7084 if (!yyvsp[0].itype)
7085 grok_x_components (yyvsp[-1].ftype.t);
7086 yyval.ttype = NULL_TREE;
7088 break;}
7089 case 562:
7090 #line 2580 "parse.y"
7092 if (!yyvsp[0].itype)
7093 grok_x_components (yyvsp[-1].ftype.t);
7094 yyval.ttype = NULL_TREE;
7096 break;}
7097 case 563:
7098 #line 2586 "parse.y"
7099 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
7100 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
7101 break;}
7102 case 564:
7103 #line 2589 "parse.y"
7104 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
7105 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
7106 break;}
7107 case 565:
7108 #line 2592 "parse.y"
7109 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
7110 break;}
7111 case 566:
7112 #line 2594 "parse.y"
7113 { yyval.ttype = NULL_TREE; ;
7114 break;}
7115 case 567:
7116 #line 2605 "parse.y"
7117 { tree specs, attrs;
7118 split_specs_attrs (yyvsp[-4].ftype.t, &specs, &attrs);
7119 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
7120 build_tree_list (yyvsp[-1].ttype, attrs)); ;
7121 break;}
7122 case 568:
7123 #line 2610 "parse.y"
7124 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
7125 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
7126 break;}
7127 case 569:
7128 #line 2613 "parse.y"
7129 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
7130 break;}
7131 case 570:
7132 #line 2619 "parse.y"
7133 { yyval.itype = 0; ;
7134 break;}
7135 case 571:
7136 #line 2621 "parse.y"
7138 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
7139 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
7140 finish_member_declaration (yyvsp[0].ttype);
7141 yyval.itype = 1;
7143 break;}
7144 case 572:
7145 #line 2628 "parse.y"
7147 check_multiple_declarators ();
7148 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
7149 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
7150 finish_member_declaration (yyvsp[0].ttype);
7151 yyval.itype = 2;
7153 break;}
7154 case 573:
7155 #line 2639 "parse.y"
7156 { yyval.itype = 0; ;
7157 break;}
7158 case 574:
7159 #line 2641 "parse.y"
7161 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
7162 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
7163 finish_member_declaration (yyvsp[0].ttype);
7164 yyval.itype = 1;
7166 break;}
7167 case 575:
7168 #line 2648 "parse.y"
7170 check_multiple_declarators ();
7171 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
7172 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
7173 finish_member_declaration (yyvsp[0].ttype);
7174 yyval.itype = 2;
7176 break;}
7177 case 580:
7178 #line 2669 "parse.y"
7179 { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
7180 yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
7181 break;}
7182 case 581:
7183 #line 2672 "parse.y"
7184 { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
7185 yyvsp[0].ttype, yyvsp[-1].ttype); ;
7186 break;}
7187 case 582:
7188 #line 2678 "parse.y"
7189 { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
7190 yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
7191 break;}
7192 case 583:
7193 #line 2681 "parse.y"
7194 { yyval.ttype = parse_field0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
7195 yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
7196 break;}
7197 case 584:
7198 #line 2684 "parse.y"
7199 { yyval.ttype = parse_bitfield0 (yyvsp[-3].ttype, yyvsp[-4].ftype.t, yyvsp[-4].ftype.lookups,
7200 yyvsp[0].ttype, yyvsp[-1].ttype); ;
7201 break;}
7202 case 585:
7203 #line 2687 "parse.y"
7204 { yyval.ttype = parse_bitfield0 (NULL_TREE, yyvsp[-3].ftype.t,
7205 yyvsp[-3].ftype.lookups, yyvsp[0].ttype, yyvsp[-1].ttype); ;
7206 break;}
7207 case 586:
7208 #line 2693 "parse.y"
7209 { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
7210 break;}
7211 case 587:
7212 #line 2695 "parse.y"
7213 { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ;
7214 break;}
7215 case 588:
7216 #line 2700 "parse.y"
7217 { yyval.ttype = parse_field (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
7218 break;}
7219 case 589:
7220 #line 2702 "parse.y"
7221 { yyval.ttype = parse_bitfield (yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ;
7222 break;}
7223 case 590:
7224 #line 2704 "parse.y"
7225 { yyval.ttype = parse_bitfield (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
7226 break;}
7227 case 595:
7228 #line 2723 "parse.y"
7229 { build_enumerator (yyvsp[0].ttype, NULL_TREE, current_enum_type); ;
7230 break;}
7231 case 596:
7232 #line 2725 "parse.y"
7233 { build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype, current_enum_type); ;
7234 break;}
7235 case 597:
7236 #line 2731 "parse.y"
7237 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
7238 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7239 break;}
7240 case 598:
7241 #line 2734 "parse.y"
7242 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
7243 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7244 break;}
7245 case 599:
7246 #line 2739 "parse.y"
7248 if (pedantic)
7249 pedwarn ("ISO C++ forbids array dimensions with parenthesized type in new");
7250 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
7251 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
7252 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
7254 break;}
7255 case 600:
7256 #line 2750 "parse.y"
7257 { yyval.ttype = NULL_TREE; ;
7258 break;}
7259 case 601:
7260 #line 2752 "parse.y"
7261 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7262 break;}
7263 case 602:
7264 #line 2757 "parse.y"
7265 { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
7266 yyval.ftype.new_type_flag = 0; ;
7267 break;}
7268 case 603:
7269 #line 2760 "parse.y"
7270 { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
7271 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7272 break;}
7273 case 604:
7274 #line 2770 "parse.y"
7275 { yyval.ttype = yyvsp[-1].ttype; ;
7276 break;}
7277 case 605:
7278 #line 2772 "parse.y"
7279 { yyval.ttype = yyvsp[-1].ttype; ;
7280 break;}
7281 case 606:
7282 #line 2774 "parse.y"
7283 { yyval.ttype = empty_parms (); ;
7284 break;}
7285 case 607:
7286 #line 2776 "parse.y"
7287 { yyval.ttype = NULL_TREE; ;
7288 break;}
7289 case 609:
7290 #line 2784 "parse.y"
7292 /* Provide support for '(' attributes '*' declarator ')'
7293 etc */
7294 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7296 break;}
7297 case 610:
7298 #line 2794 "parse.y"
7299 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7300 break;}
7301 case 611:
7302 #line 2796 "parse.y"
7303 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7304 break;}
7305 case 612:
7306 #line 2798 "parse.y"
7307 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7308 break;}
7309 case 613:
7310 #line 2800 "parse.y"
7311 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7312 break;}
7313 case 614:
7314 #line 2802 "parse.y"
7315 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7316 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7318 break;}
7319 case 616:
7320 #line 2810 "parse.y"
7321 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7322 break;}
7323 case 617:
7324 #line 2812 "parse.y"
7325 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7326 break;}
7327 case 618:
7328 #line 2814 "parse.y"
7329 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7330 break;}
7331 case 619:
7332 #line 2816 "parse.y"
7333 { yyval.ttype = yyvsp[-1].ttype; ;
7334 break;}
7335 case 620:
7336 #line 2818 "parse.y"
7337 { push_nested_class (yyvsp[-1].ttype, 3);
7338 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
7339 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
7340 break;}
7341 case 622:
7342 #line 2826 "parse.y"
7344 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7346 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
7347 maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype);
7349 else
7350 yyval.ttype = yyvsp[0].ttype;
7352 break;}
7353 case 623:
7354 #line 2836 "parse.y"
7356 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7357 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7358 else
7359 yyval.ttype = yyvsp[0].ttype;
7360 got_scope = NULL_TREE;
7362 break;}
7363 case 626:
7364 #line 2849 "parse.y"
7365 { yyval.ttype = yyvsp[0].ttype; ;
7366 break;}
7367 case 627:
7368 #line 2854 "parse.y"
7369 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
7370 break;}
7371 case 629:
7372 #line 2863 "parse.y"
7374 /* Provide support for '(' attributes '*' declarator ')'
7375 etc */
7376 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7378 break;}
7379 case 630:
7380 #line 2872 "parse.y"
7381 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7382 break;}
7383 case 631:
7384 #line 2874 "parse.y"
7385 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7386 break;}
7387 case 632:
7388 #line 2876 "parse.y"
7389 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7390 break;}
7391 case 633:
7392 #line 2878 "parse.y"
7393 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7394 break;}
7395 case 634:
7396 #line 2880 "parse.y"
7397 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7398 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7400 break;}
7401 case 636:
7402 #line 2888 "parse.y"
7403 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7404 break;}
7405 case 637:
7406 #line 2890 "parse.y"
7407 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7408 break;}
7409 case 638:
7410 #line 2892 "parse.y"
7411 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7412 break;}
7413 case 639:
7414 #line 2894 "parse.y"
7415 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7416 break;}
7417 case 640:
7418 #line 2896 "parse.y"
7419 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7420 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7422 break;}
7423 case 642:
7424 #line 2904 "parse.y"
7425 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7426 break;}
7427 case 643:
7428 #line 2906 "parse.y"
7429 { yyval.ttype = yyvsp[-1].ttype; ;
7430 break;}
7431 case 644:
7432 #line 2908 "parse.y"
7433 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7434 break;}
7435 case 645:
7436 #line 2910 "parse.y"
7437 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7438 break;}
7439 case 646:
7440 #line 2912 "parse.y"
7441 { enter_scope_of (yyvsp[0].ttype); ;
7442 break;}
7443 case 647:
7444 #line 2914 "parse.y"
7445 { enter_scope_of (yyvsp[0].ttype); yyval.ttype = yyvsp[0].ttype;;
7446 break;}
7447 case 648:
7448 #line 2916 "parse.y"
7449 { yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype);
7450 enter_scope_of (yyval.ttype);
7452 break;}
7453 case 649:
7454 #line 2920 "parse.y"
7455 { got_scope = NULL_TREE;
7456 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7457 enter_scope_of (yyval.ttype);
7459 break;}
7460 case 650:
7461 #line 2928 "parse.y"
7462 { got_scope = NULL_TREE;
7463 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7464 break;}
7465 case 651:
7466 #line 2931 "parse.y"
7467 { got_scope = NULL_TREE;
7468 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7469 break;}
7470 case 652:
7471 #line 2937 "parse.y"
7472 { got_scope = NULL_TREE;
7473 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7474 break;}
7475 case 653:
7476 #line 2940 "parse.y"
7477 { got_scope = NULL_TREE;
7478 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7479 break;}
7480 case 655:
7481 #line 2947 "parse.y"
7482 { yyval.ttype = yyvsp[0].ttype; ;
7483 break;}
7484 case 656:
7485 #line 2952 "parse.y"
7486 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7487 break;}
7488 case 657:
7489 #line 2954 "parse.y"
7490 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7491 break;}
7492 case 658:
7493 #line 2956 "parse.y"
7494 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7495 break;}
7496 case 663:
7497 #line 2968 "parse.y"
7498 { yyval.ttype = yyvsp[0].ttype; ;
7499 break;}
7500 case 664:
7501 #line 2970 "parse.y"
7502 { got_scope = yyval.ttype
7503 = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, /*complain=*/1); ;
7504 break;}
7505 case 665:
7506 #line 2978 "parse.y"
7508 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7510 yyval.ttype = lastiddecl;
7511 maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype);
7513 got_scope = yyval.ttype =
7514 complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype)));
7516 break;}
7517 case 666:
7518 #line 2988 "parse.y"
7520 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7521 yyval.ttype = lastiddecl;
7522 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7524 break;}
7525 case 667:
7526 #line 2994 "parse.y"
7528 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7529 yyval.ttype = lastiddecl;
7530 got_scope = yyval.ttype;
7532 break;}
7533 case 668:
7534 #line 3000 "parse.y"
7535 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7536 break;}
7537 case 670:
7538 #line 3016 "parse.y"
7539 { yyval.ttype = yyvsp[0].ttype; ;
7540 break;}
7541 case 671:
7542 #line 3021 "parse.y"
7544 if (TYPE_P (yyvsp[-1].ttype))
7545 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1);
7546 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7547 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7548 else
7550 yyval.ttype = yyvsp[0].ttype;
7551 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7552 yyval.ttype = TREE_TYPE (yyval.ttype);
7555 break;}
7556 case 672:
7557 #line 3034 "parse.y"
7558 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
7559 break;}
7560 case 673:
7561 #line 3036 "parse.y"
7562 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1); ;
7563 break;}
7564 case 674:
7565 #line 3038 "parse.y"
7566 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype, /*complain=*/1); ;
7567 break;}
7568 case 675:
7569 #line 3043 "parse.y"
7571 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7572 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7574 break;}
7575 case 676:
7576 #line 3048 "parse.y"
7578 if (TYPE_P (yyvsp[-1].ttype))
7579 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1);
7580 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7581 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7582 else
7584 yyval.ttype = yyvsp[0].ttype;
7585 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7586 yyval.ttype = TREE_TYPE (yyval.ttype);
7589 break;}
7590 case 677:
7591 #line 3061 "parse.y"
7592 { got_scope = yyval.ttype
7593 = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, /*complain=*/1); ;
7594 break;}
7595 case 678:
7596 #line 3064 "parse.y"
7597 { got_scope = yyval.ttype
7598 = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, /*complain=*/1); ;
7599 break;}
7600 case 679:
7601 #line 3070 "parse.y"
7603 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7604 yyvsp[-1].ttype = lastiddecl;
7606 /* Retrieve the type for the identifier, which might involve
7607 some computation. */
7608 got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));
7610 if (yyval.ttype == error_mark_node)
7611 cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
7613 break;}
7614 case 680:
7615 #line 3082 "parse.y"
7617 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7618 yyval.ttype = lastiddecl;
7619 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7621 break;}
7622 case 681:
7623 #line 3088 "parse.y"
7624 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7625 break;}
7626 case 684:
7627 #line 3092 "parse.y"
7629 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7630 yyval.ttype = lastiddecl;
7631 got_scope = yyval.ttype;
7633 break;}
7634 case 685:
7635 #line 3101 "parse.y"
7636 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7637 break;}
7638 case 686:
7639 #line 3106 "parse.y"
7641 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7642 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7643 else
7644 yyval.ttype = yyvsp[0].ttype;
7645 got_scope = NULL_TREE;
7647 break;}
7648 case 688:
7649 #line 3115 "parse.y"
7650 { yyval.ttype = yyvsp[0].ttype; ;
7651 break;}
7652 case 689:
7653 #line 3120 "parse.y"
7654 { got_scope = NULL_TREE; ;
7655 break;}
7656 case 690:
7657 #line 3122 "parse.y"
7658 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7659 break;}
7660 case 691:
7661 #line 3129 "parse.y"
7662 { got_scope = void_type_node; ;
7663 break;}
7664 case 692:
7665 #line 3135 "parse.y"
7666 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7667 break;}
7668 case 693:
7669 #line 3137 "parse.y"
7670 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7671 break;}
7672 case 694:
7673 #line 3139 "parse.y"
7674 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7675 break;}
7676 case 695:
7677 #line 3141 "parse.y"
7678 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7679 break;}
7680 case 696:
7681 #line 3143 "parse.y"
7682 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7683 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7685 break;}
7686 case 697:
7687 #line 3147 "parse.y"
7688 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7689 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7691 break;}
7692 case 699:
7693 #line 3156 "parse.y"
7694 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7695 break;}
7696 case 700:
7697 #line 3158 "parse.y"
7698 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7699 break;}
7700 case 702:
7701 #line 3164 "parse.y"
7703 /* Provide support for '(' attributes '*' declarator ')'
7704 etc */
7705 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7707 break;}
7708 case 703:
7709 #line 3174 "parse.y"
7710 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7711 break;}
7712 case 704:
7713 #line 3176 "parse.y"
7714 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7715 break;}
7716 case 705:
7717 #line 3178 "parse.y"
7718 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7719 break;}
7720 case 706:
7721 #line 3180 "parse.y"
7722 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7723 break;}
7724 case 707:
7725 #line 3182 "parse.y"
7726 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7727 break;}
7728 case 708:
7729 #line 3184 "parse.y"
7730 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7731 break;}
7732 case 709:
7733 #line 3186 "parse.y"
7734 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7735 break;}
7736 case 710:
7737 #line 3188 "parse.y"
7738 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7739 break;}
7740 case 711:
7741 #line 3190 "parse.y"
7742 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7743 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7745 break;}
7746 case 712:
7747 #line 3194 "parse.y"
7748 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7749 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7751 break;}
7752 case 714:
7753 #line 3203 "parse.y"
7754 { yyval.ttype = yyvsp[-1].ttype; ;
7755 break;}
7756 case 715:
7757 #line 3206 "parse.y"
7758 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7759 break;}
7760 case 716:
7761 #line 3208 "parse.y"
7762 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7763 break;}
7764 case 717:
7765 #line 3210 "parse.y"
7766 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7767 break;}
7768 case 718:
7769 #line 3212 "parse.y"
7770 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7771 break;}
7772 case 719:
7773 #line 3214 "parse.y"
7774 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7775 break;}
7776 case 720:
7777 #line 3216 "parse.y"
7778 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7779 break;}
7780 case 721:
7781 #line 3218 "parse.y"
7782 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7783 break;}
7784 case 722:
7785 #line 3220 "parse.y"
7786 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7787 break;}
7788 case 723:
7789 #line 3222 "parse.y"
7790 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7791 break;}
7792 case 730:
7793 #line 3245 "parse.y"
7794 { if (pedantic)
7795 pedwarn ("ISO C++ forbids label declarations"); ;
7796 break;}
7797 case 733:
7798 #line 3256 "parse.y"
7800 while (yyvsp[-1].ttype)
7802 finish_label_decl (TREE_VALUE (yyvsp[-1].ttype));
7803 yyvsp[-1].ttype = TREE_CHAIN (yyvsp[-1].ttype);
7806 break;}
7807 case 734:
7808 #line 3269 "parse.y"
7810 break;}
7811 case 736:
7812 #line 3275 "parse.y"
7813 { yyval.ttype = begin_compound_stmt (0); ;
7814 break;}
7815 case 737:
7816 #line 3277 "parse.y"
7817 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7818 break;}
7819 case 738:
7820 #line 3282 "parse.y"
7822 yyval.ttype = begin_if_stmt ();
7823 cond_stmt_keyword = "if";
7825 break;}
7826 case 739:
7827 #line 3287 "parse.y"
7828 { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7829 break;}
7830 case 740:
7831 #line 3289 "parse.y"
7832 { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
7833 break;}
7834 case 742:
7835 #line 3294 "parse.y"
7836 { yyval.ttype = begin_compound_stmt (0); ;
7837 break;}
7838 case 743:
7839 #line 3296 "parse.y"
7840 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7841 break;}
7842 case 744:
7843 #line 3301 "parse.y"
7845 break;}
7846 case 746:
7847 #line 3307 "parse.y"
7848 { finish_stmt (); ;
7849 break;}
7850 case 747:
7851 #line 3309 "parse.y"
7852 { finish_expr_stmt (yyvsp[-1].ttype); ;
7853 break;}
7854 case 748:
7855 #line 3311 "parse.y"
7856 { begin_else_clause (); ;
7857 break;}
7858 case 749:
7859 #line 3313 "parse.y"
7861 finish_else_clause (yyvsp[-3].ttype);
7862 finish_if_stmt ();
7864 break;}
7865 case 750:
7866 #line 3318 "parse.y"
7867 { finish_if_stmt (); ;
7868 break;}
7869 case 751:
7870 #line 3320 "parse.y"
7872 yyval.ttype = begin_while_stmt ();
7873 cond_stmt_keyword = "while";
7875 break;}
7876 case 752:
7877 #line 3325 "parse.y"
7878 { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7879 break;}
7880 case 753:
7881 #line 3327 "parse.y"
7882 { finish_while_stmt (yyvsp[-3].ttype); ;
7883 break;}
7884 case 754:
7885 #line 3329 "parse.y"
7886 { yyval.ttype = begin_do_stmt (); ;
7887 break;}
7888 case 755:
7889 #line 3331 "parse.y"
7891 finish_do_body (yyvsp[-2].ttype);
7892 cond_stmt_keyword = "do";
7894 break;}
7895 case 756:
7896 #line 3336 "parse.y"
7897 { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7898 break;}
7899 case 757:
7900 #line 3338 "parse.y"
7901 { yyval.ttype = begin_for_stmt (); ;
7902 break;}
7903 case 758:
7904 #line 3340 "parse.y"
7905 { finish_for_init_stmt (yyvsp[-2].ttype); ;
7906 break;}
7907 case 759:
7908 #line 3342 "parse.y"
7909 { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7910 break;}
7911 case 760:
7912 #line 3344 "parse.y"
7913 { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
7914 break;}
7915 case 761:
7916 #line 3346 "parse.y"
7917 { finish_for_stmt (yyvsp[-10].ttype); ;
7918 break;}
7919 case 762:
7920 #line 3348 "parse.y"
7921 { yyval.ttype = begin_switch_stmt (); ;
7922 break;}
7923 case 763:
7924 #line 3350 "parse.y"
7925 { finish_switch_cond (yyvsp[-1].ttype, yyvsp[-3].ttype); ;
7926 break;}
7927 case 764:
7928 #line 3352 "parse.y"
7929 { finish_switch_stmt (yyvsp[-5].ttype); ;
7930 break;}
7931 case 765:
7932 #line 3354 "parse.y"
7933 { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
7934 break;}
7935 case 767:
7936 #line 3357 "parse.y"
7937 { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7938 break;}
7939 case 769:
7940 #line 3360 "parse.y"
7941 { finish_case_label (NULL_TREE, NULL_TREE); ;
7942 break;}
7943 case 771:
7944 #line 3363 "parse.y"
7945 { finish_break_stmt (); ;
7946 break;}
7947 case 772:
7948 #line 3365 "parse.y"
7949 { finish_continue_stmt (); ;
7950 break;}
7951 case 773:
7952 #line 3367 "parse.y"
7953 { finish_return_stmt (NULL_TREE); ;
7954 break;}
7955 case 774:
7956 #line 3369 "parse.y"
7957 { finish_return_stmt (yyvsp[-1].ttype); ;
7958 break;}
7959 case 775:
7960 #line 3371 "parse.y"
7962 finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7963 NULL_TREE);
7965 break;}
7966 case 776:
7967 #line 3377 "parse.y"
7969 finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7970 NULL_TREE);
7972 break;}
7973 case 777:
7974 #line 3383 "parse.y"
7975 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
7976 break;}
7977 case 778:
7978 #line 3385 "parse.y"
7979 { finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype, NULL_TREE); ;
7980 break;}
7981 case 779:
7982 #line 3389 "parse.y"
7983 { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7984 break;}
7985 case 780:
7986 #line 3392 "parse.y"
7987 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, NULL_TREE, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7988 break;}
7989 case 781:
7990 #line 3395 "parse.y"
7991 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, NULL_TREE, yyvsp[-2].ttype); ;
7992 break;}
7993 case 782:
7994 #line 3397 "parse.y"
7996 if (pedantic)
7997 pedwarn ("ISO C++ forbids computed gotos");
7998 finish_goto_stmt (yyvsp[-1].ttype);
8000 break;}
8001 case 783:
8002 #line 3403 "parse.y"
8003 { finish_goto_stmt (yyvsp[-1].ttype); ;
8004 break;}
8005 case 785:
8006 #line 3406 "parse.y"
8007 { error ("label must be followed by statement");
8008 yyungetc ('}', 0); ;
8009 break;}
8010 case 786:
8011 #line 3409 "parse.y"
8012 { finish_stmt (); ;
8013 break;}
8014 case 789:
8015 #line 3413 "parse.y"
8016 { do_local_using_decl (yyvsp[0].ttype); ;
8017 break;}
8018 case 791:
8019 #line 3419 "parse.y"
8020 { yyval.ttype = begin_function_try_block (); ;
8021 break;}
8022 case 792:
8023 #line 3421 "parse.y"
8024 { finish_function_try_block (yyvsp[-2].ttype); ;
8025 break;}
8026 case 793:
8027 #line 3423 "parse.y"
8029 finish_function_handler_sequence (yyvsp[-4].ttype);
8030 yyval.itype = yyvsp[-3].itype;
8032 break;}
8033 case 794:
8034 #line 3431 "parse.y"
8035 { yyval.ttype = begin_try_block (); ;
8036 break;}
8037 case 795:
8038 #line 3433 "parse.y"
8039 { finish_try_block (yyvsp[-1].ttype); ;
8040 break;}
8041 case 796:
8042 #line 3435 "parse.y"
8043 { finish_handler_sequence (yyvsp[-3].ttype); ;
8044 break;}
8045 case 799:
8046 #line 3445 "parse.y"
8047 { yyval.ttype = begin_handler(); ;
8048 break;}
8049 case 800:
8050 #line 3447 "parse.y"
8051 { yyval.ttype = finish_handler_parms (yyvsp[0].ttype, yyvsp[-1].ttype); ;
8052 break;}
8053 case 801:
8054 #line 3449 "parse.y"
8055 { finish_handler (yyvsp[-1].ttype, yyvsp[-3].ttype); ;
8056 break;}
8057 case 804:
8058 #line 3459 "parse.y"
8059 { yyval.ttype = NULL_TREE; ;
8060 break;}
8061 case 805:
8062 #line 3475 "parse.y"
8064 check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
8065 yyval.ttype = start_handler_parms (TREE_PURPOSE (yyvsp[-1].ftype.t),
8066 TREE_VALUE (yyvsp[-1].ftype.t));
8068 break;}
8069 case 806:
8070 #line 3484 "parse.y"
8071 { finish_label_stmt (yyvsp[-1].ttype); ;
8072 break;}
8073 case 807:
8074 #line 3486 "parse.y"
8075 { finish_label_stmt (yyvsp[-1].ttype); ;
8076 break;}
8077 case 808:
8078 #line 3488 "parse.y"
8079 { finish_label_stmt (yyvsp[-1].ttype); ;
8080 break;}
8081 case 809:
8082 #line 3490 "parse.y"
8083 { finish_label_stmt (yyvsp[-1].ttype); ;
8084 break;}
8085 case 810:
8086 #line 3495 "parse.y"
8087 { finish_expr_stmt (yyvsp[-1].ttype); ;
8088 break;}
8089 case 812:
8090 #line 3498 "parse.y"
8091 { if (pedantic)
8092 pedwarn ("ISO C++ forbids compound statements inside for initializations");
8094 break;}
8095 case 813:
8096 #line 3507 "parse.y"
8097 { yyval.ttype = NULL_TREE; ;
8098 break;}
8099 case 815:
8100 #line 3513 "parse.y"
8101 { yyval.ttype = NULL_TREE; ;
8102 break;}
8103 case 817:
8104 #line 3516 "parse.y"
8105 { yyval.ttype = NULL_TREE; ;
8106 break;}
8107 case 818:
8108 #line 3523 "parse.y"
8109 { yyval.ttype = NULL_TREE; ;
8110 break;}
8111 case 821:
8112 #line 3530 "parse.y"
8113 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
8114 break;}
8115 case 822:
8116 #line 3535 "parse.y"
8117 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
8118 break;}
8119 case 823:
8120 #line 3540 "parse.y"
8121 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE);;
8122 break;}
8123 case 824:
8124 #line 3542 "parse.y"
8125 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
8126 break;}
8127 case 825:
8128 #line 3553 "parse.y"
8130 yyval.ttype = empty_parms();
8132 break;}
8133 case 827:
8134 #line 3558 "parse.y"
8135 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
8136 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
8137 break;}
8138 case 828:
8139 #line 3566 "parse.y"
8140 { yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
8141 break;}
8142 case 829:
8143 #line 3568 "parse.y"
8144 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
8145 break;}
8146 case 830:
8147 #line 3571 "parse.y"
8148 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
8149 break;}
8150 case 831:
8151 #line 3573 "parse.y"
8152 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
8153 yyvsp[-1].ftype.t), 1); ;
8154 break;}
8155 case 832:
8156 #line 3576 "parse.y"
8157 { yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
8158 break;}
8159 case 833:
8160 #line 3578 "parse.y"
8162 /* This helps us recover from really nasty
8163 parse errors, for example, a missing right
8164 parenthesis. */
8165 yyerror ("possibly missing ')'");
8166 yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
8167 yyungetc (':', 0);
8168 yychar = ')';
8170 break;}
8171 case 834:
8172 #line 3588 "parse.y"
8174 /* This helps us recover from really nasty
8175 parse errors, for example, a missing right
8176 parenthesis. */
8177 yyerror ("possibly missing ')'");
8178 yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
8179 yyvsp[-1].ftype.t), 0);
8180 yyungetc (':', 0);
8181 yychar = ')';
8183 break;}
8184 case 835:
8185 #line 3603 "parse.y"
8186 { maybe_snarf_defarg (); ;
8187 break;}
8188 case 836:
8189 #line 3605 "parse.y"
8190 { yyval.ttype = yyvsp[0].ttype; ;
8191 break;}
8192 case 839:
8193 #line 3616 "parse.y"
8194 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8195 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
8196 break;}
8197 case 840:
8198 #line 3619 "parse.y"
8199 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8200 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
8201 break;}
8202 case 841:
8203 #line 3622 "parse.y"
8204 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8205 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
8206 break;}
8207 case 842:
8208 #line 3625 "parse.y"
8209 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
8210 break;}
8211 case 843:
8212 #line 3627 "parse.y"
8213 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
8214 break;}
8215 case 845:
8216 #line 3633 "parse.y"
8217 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8218 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
8219 break;}
8220 case 846:
8221 #line 3643 "parse.y"
8222 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8223 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
8224 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
8225 break;}
8226 case 847:
8227 #line 3647 "parse.y"
8228 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
8229 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8230 break;}
8231 case 848:
8232 #line 3650 "parse.y"
8233 { yyval.ftype.t = build_tree_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
8234 yyvsp[0].ttype);
8235 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8236 break;}
8237 case 849:
8238 #line 3654 "parse.y"
8239 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8240 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8241 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8242 break;}
8243 case 850:
8244 #line 3658 "parse.y"
8245 { tree specs = strip_attrs (yyvsp[0].ftype.t);
8246 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
8247 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8248 break;}
8249 case 851:
8250 #line 3662 "parse.y"
8251 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8252 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8253 yyval.ftype.new_type_flag = 0; ;
8254 break;}
8255 case 852:
8256 #line 3669 "parse.y"
8257 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
8258 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8259 break;}
8260 case 853:
8261 #line 3672 "parse.y"
8262 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
8263 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8264 break;}
8265 case 856:
8266 #line 3683 "parse.y"
8267 { see_typename (); ;
8268 break;}
8269 case 857:
8270 #line 3688 "parse.y"
8272 error ("type specifier omitted for parameter");
8273 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
8275 break;}
8276 case 858:
8277 #line 3693 "parse.y"
8279 error ("type specifier omitted for parameter");
8280 if (TREE_CODE (yyval.ttype) == SCOPE_REF
8281 && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
8282 || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
8283 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
8284 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8286 break;}
8287 case 859:
8288 #line 3705 "parse.y"
8289 { yyval.ttype = NULL_TREE; ;
8290 break;}
8291 case 860:
8292 #line 3707 "parse.y"
8293 { yyval.ttype = yyvsp[-1].ttype; ;
8294 break;}
8295 case 861:
8296 #line 3709 "parse.y"
8297 { yyval.ttype = empty_except_spec; ;
8298 break;}
8299 case 862:
8300 #line 3714 "parse.y"
8302 check_for_new_type ("exception specifier", yyvsp[0].ftype);
8303 yyval.ttype = groktypename (yyvsp[0].ftype.t);
8305 break;}
8306 case 863:
8307 #line 3722 "parse.y"
8308 { yyval.ttype = add_exception_specifier (NULL_TREE, yyvsp[0].ttype, 1); ;
8309 break;}
8310 case 864:
8311 #line 3724 "parse.y"
8312 { yyval.ttype = add_exception_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 1); ;
8313 break;}
8314 case 865:
8315 #line 3729 "parse.y"
8316 { yyval.ttype = NULL_TREE; ;
8317 break;}
8318 case 866:
8319 #line 3731 "parse.y"
8320 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8321 break;}
8322 case 867:
8323 #line 3733 "parse.y"
8324 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8325 break;}
8326 case 868:
8327 #line 3735 "parse.y"
8328 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8329 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8331 break;}
8332 case 869:
8333 #line 3742 "parse.y"
8334 { got_scope = NULL_TREE; ;
8335 break;}
8336 case 870:
8337 #line 3747 "parse.y"
8338 { yyval.ttype = ansi_opname (MULT_EXPR); ;
8339 break;}
8340 case 871:
8341 #line 3749 "parse.y"
8342 { yyval.ttype = ansi_opname (TRUNC_DIV_EXPR); ;
8343 break;}
8344 case 872:
8345 #line 3751 "parse.y"
8346 { yyval.ttype = ansi_opname (TRUNC_MOD_EXPR); ;
8347 break;}
8348 case 873:
8349 #line 3753 "parse.y"
8350 { yyval.ttype = ansi_opname (PLUS_EXPR); ;
8351 break;}
8352 case 874:
8353 #line 3755 "parse.y"
8354 { yyval.ttype = ansi_opname (MINUS_EXPR); ;
8355 break;}
8356 case 875:
8357 #line 3757 "parse.y"
8358 { yyval.ttype = ansi_opname (BIT_AND_EXPR); ;
8359 break;}
8360 case 876:
8361 #line 3759 "parse.y"
8362 { yyval.ttype = ansi_opname (BIT_IOR_EXPR); ;
8363 break;}
8364 case 877:
8365 #line 3761 "parse.y"
8366 { yyval.ttype = ansi_opname (BIT_XOR_EXPR); ;
8367 break;}
8368 case 878:
8369 #line 3763 "parse.y"
8370 { yyval.ttype = ansi_opname (BIT_NOT_EXPR); ;
8371 break;}
8372 case 879:
8373 #line 3765 "parse.y"
8374 { yyval.ttype = ansi_opname (COMPOUND_EXPR); ;
8375 break;}
8376 case 880:
8377 #line 3767 "parse.y"
8378 { yyval.ttype = ansi_opname (yyvsp[0].code); ;
8379 break;}
8380 case 881:
8381 #line 3769 "parse.y"
8382 { yyval.ttype = ansi_opname (LT_EXPR); ;
8383 break;}
8384 case 882:
8385 #line 3771 "parse.y"
8386 { yyval.ttype = ansi_opname (GT_EXPR); ;
8387 break;}
8388 case 883:
8389 #line 3773 "parse.y"
8390 { yyval.ttype = ansi_opname (yyvsp[0].code); ;
8391 break;}
8392 case 884:
8393 #line 3775 "parse.y"
8394 { yyval.ttype = ansi_assopname (yyvsp[0].code); ;
8395 break;}
8396 case 885:
8397 #line 3777 "parse.y"
8398 { yyval.ttype = ansi_assopname (NOP_EXPR); ;
8399 break;}
8400 case 886:
8401 #line 3779 "parse.y"
8402 { yyval.ttype = ansi_opname (yyvsp[0].code); ;
8403 break;}
8404 case 887:
8405 #line 3781 "parse.y"
8406 { yyval.ttype = ansi_opname (yyvsp[0].code); ;
8407 break;}
8408 case 888:
8409 #line 3783 "parse.y"
8410 { yyval.ttype = ansi_opname (POSTINCREMENT_EXPR); ;
8411 break;}
8412 case 889:
8413 #line 3785 "parse.y"
8414 { yyval.ttype = ansi_opname (PREDECREMENT_EXPR); ;
8415 break;}
8416 case 890:
8417 #line 3787 "parse.y"
8418 { yyval.ttype = ansi_opname (TRUTH_ANDIF_EXPR); ;
8419 break;}
8420 case 891:
8421 #line 3789 "parse.y"
8422 { yyval.ttype = ansi_opname (TRUTH_ORIF_EXPR); ;
8423 break;}
8424 case 892:
8425 #line 3791 "parse.y"
8426 { yyval.ttype = ansi_opname (TRUTH_NOT_EXPR); ;
8427 break;}
8428 case 893:
8429 #line 3793 "parse.y"
8430 { yyval.ttype = ansi_opname (COND_EXPR); ;
8431 break;}
8432 case 894:
8433 #line 3795 "parse.y"
8434 { yyval.ttype = ansi_opname (yyvsp[0].code); ;
8435 break;}
8436 case 895:
8437 #line 3797 "parse.y"
8438 { yyval.ttype = ansi_opname (COMPONENT_REF); ;
8439 break;}
8440 case 896:
8441 #line 3799 "parse.y"
8442 { yyval.ttype = ansi_opname (MEMBER_REF); ;
8443 break;}
8444 case 897:
8445 #line 3801 "parse.y"
8446 { yyval.ttype = ansi_opname (CALL_EXPR); ;
8447 break;}
8448 case 898:
8449 #line 3803 "parse.y"
8450 { yyval.ttype = ansi_opname (ARRAY_REF); ;
8451 break;}
8452 case 899:
8453 #line 3805 "parse.y"
8454 { yyval.ttype = ansi_opname (NEW_EXPR); ;
8455 break;}
8456 case 900:
8457 #line 3807 "parse.y"
8458 { yyval.ttype = ansi_opname (DELETE_EXPR); ;
8459 break;}
8460 case 901:
8461 #line 3809 "parse.y"
8462 { yyval.ttype = ansi_opname (VEC_NEW_EXPR); ;
8463 break;}
8464 case 902:
8465 #line 3811 "parse.y"
8466 { yyval.ttype = ansi_opname (VEC_DELETE_EXPR); ;
8467 break;}
8468 case 903:
8469 #line 3814 "parse.y"
8470 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8471 break;}
8472 case 904:
8473 #line 3816 "parse.y"
8474 { yyval.ttype = ansi_opname (ERROR_MARK); ;
8475 break;}
8477 /* the action file gets copied in in place of this dollarsign */
8478 #line 543 "/usr/lib/bison.simple"
8480 yyvsp -= yylen;
8481 yyssp -= yylen;
8482 #ifdef YYLSP_NEEDED
8483 yylsp -= yylen;
8484 #endif
8486 #if YYDEBUG != 0
8487 if (yydebug)
8489 short *ssp1 = yyss - 1;
8490 fprintf (stderr, "state stack now");
8491 while (ssp1 != yyssp)
8492 fprintf (stderr, " %d", *++ssp1);
8493 fprintf (stderr, "\n");
8495 #endif
8497 *++yyvsp = yyval;
8499 #ifdef YYLSP_NEEDED
8500 yylsp++;
8501 if (yylen == 0)
8503 yylsp->first_line = yylloc.first_line;
8504 yylsp->first_column = yylloc.first_column;
8505 yylsp->last_line = (yylsp-1)->last_line;
8506 yylsp->last_column = (yylsp-1)->last_column;
8507 yylsp->text = 0;
8509 else
8511 yylsp->last_line = (yylsp+yylen-1)->last_line;
8512 yylsp->last_column = (yylsp+yylen-1)->last_column;
8514 #endif
8516 /* Now "shift" the result of the reduction.
8517 Determine what state that goes to,
8518 based on the state we popped back to
8519 and the rule number reduced by. */
8521 yyn = yyr1[yyn];
8523 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8524 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8525 yystate = yytable[yystate];
8526 else
8527 yystate = yydefgoto[yyn - YYNTBASE];
8529 goto yynewstate;
8531 yyerrlab: /* here on detecting error */
8533 if (! yyerrstatus)
8534 /* If not already recovering from an error, report this error. */
8536 ++yynerrs;
8538 #ifdef YYERROR_VERBOSE
8539 yyn = yypact[yystate];
8541 if (yyn > YYFLAG && yyn < YYLAST)
8543 int size = 0;
8544 char *msg;
8545 int x, count;
8547 count = 0;
8548 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8549 for (x = (yyn < 0 ? -yyn : 0);
8550 x < (sizeof(yytname) / sizeof(char *)); x++)
8551 if (yycheck[x + yyn] == x)
8552 size += strlen(yytname[x]) + 15, count++;
8553 msg = (char *) malloc(size + 15);
8554 if (msg != 0)
8556 strcpy(msg, "parse error");
8558 if (count < 5)
8560 count = 0;
8561 for (x = (yyn < 0 ? -yyn : 0);
8562 x < (sizeof(yytname) / sizeof(char *)); x++)
8563 if (yycheck[x + yyn] == x)
8565 strcat(msg, count == 0 ? ", expecting `" : " or `");
8566 strcat(msg, yytname[x]);
8567 strcat(msg, "'");
8568 count++;
8571 yyerror(msg);
8572 free(msg);
8574 else
8575 yyerror ("parse error; also virtual memory exceeded");
8577 else
8578 #endif /* YYERROR_VERBOSE */
8579 yyerror("parse error");
8582 goto yyerrlab1;
8583 yyerrlab1: /* here on error raised explicitly by an action */
8585 if (yyerrstatus == 3)
8587 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8589 /* return failure if at end of input */
8590 if (yychar == YYEOF)
8591 YYABORT;
8593 #if YYDEBUG != 0
8594 if (yydebug)
8595 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8596 #endif
8598 yychar = YYEMPTY;
8601 /* Else will try to reuse lookahead token
8602 after shifting the error token. */
8604 yyerrstatus = 3; /* Each real token shifted decrements this */
8606 goto yyerrhandle;
8608 yyerrdefault: /* current state does not do anything special for the error token. */
8610 #if 0
8611 /* This is wrong; only states that explicitly want error tokens
8612 should shift them. */
8613 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8614 if (yyn) goto yydefault;
8615 #endif
8617 yyerrpop: /* pop the current state because it cannot handle the error token */
8619 if (yyssp == yyss) YYABORT;
8620 yyvsp--;
8621 yystate = *--yyssp;
8622 #ifdef YYLSP_NEEDED
8623 yylsp--;
8624 #endif
8626 #if YYDEBUG != 0
8627 if (yydebug)
8629 short *ssp1 = yyss - 1;
8630 fprintf (stderr, "Error: state stack now");
8631 while (ssp1 != yyssp)
8632 fprintf (stderr, " %d", *++ssp1);
8633 fprintf (stderr, "\n");
8635 #endif
8637 yyerrhandle:
8639 yyn = yypact[yystate];
8640 if (yyn == YYFLAG)
8641 goto yyerrdefault;
8643 yyn += YYTERROR;
8644 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8645 goto yyerrdefault;
8647 yyn = yytable[yyn];
8648 if (yyn < 0)
8650 if (yyn == YYFLAG)
8651 goto yyerrpop;
8652 yyn = -yyn;
8653 goto yyreduce;
8655 else if (yyn == 0)
8656 goto yyerrpop;
8658 if (yyn == YYFINAL)
8659 YYACCEPT;
8661 #if YYDEBUG != 0
8662 if (yydebug)
8663 fprintf(stderr, "Shifting error token, ");
8664 #endif
8666 *++yyvsp = yylval;
8667 #ifdef YYLSP_NEEDED
8668 *++yylsp = yylloc;
8669 #endif
8671 yystate = yyn;
8672 goto yynewstate;
8674 yyacceptlab:
8675 /* YYACCEPT comes here. */
8676 if (yyfree_stacks)
8678 free (yyss);
8679 free (yyvs);
8680 #ifdef YYLSP_NEEDED
8681 free (yyls);
8682 #endif
8684 return 0;
8686 yyabortlab:
8687 /* YYABORT comes here. */
8688 if (yyfree_stacks)
8690 free (yyss);
8691 free (yyvs);
8692 #ifdef YYLSP_NEEDED
8693 free (yyls);
8694 #endif
8696 return 1;
8698 #line 3819 "parse.y"
8701 #ifdef SPEW_DEBUG
8702 const char *
8703 debug_yytranslate (value)
8704 int value;
8706 return yytname[YYTRANSLATE (value)];
8709 #endif