2 /* A Bison parser, made from parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
14 #define CV_QUALIFIER 264
32 #define ASM_KEYWORD 282
33 #define GCC_ASM_KEYWORD 283
51 #define TYPENAME_KEYWORD 301
53 #define LEFT_RIGHT 303
56 #define DYNAMIC_CAST 306
57 #define STATIC_CAST 307
58 #define REINTERPRET_CAST 308
59 #define CONST_CAST 309
70 #define ARITHCOMPARE 320
73 #define POINTSAT_STAR 323
77 #define MINUSMINUS 327
78 #define HYPERUNARY 328
79 #define PAREN_STAR_PAREN 329
83 #define TYPENAME_ELLIPSIS 333
84 #define PRE_PARSED_FUNCTION_DECL 334
85 #define EXTERN_LANG_STRING 335
87 #define PRE_PARSED_CLASS_DECL 337
89 #define DEFARG_MARKER 339
90 #define TYPENAME_DEFN 340
91 #define IDENTIFIER_DEFN 341
92 #define PTYPENAME_DEFN 342
93 #define END_OF_LINE 343
94 #define END_OF_SAVED_INPUT 344
98 /* Cause the `yydebug' variable to be defined. */
114 /* Since parsers are distinct for each language, put the language string
115 definition here. (fnf) */
116 char *language_string = "GNU C++";
118 extern tree void_list_node;
119 extern struct obstack permanent_obstack;
125 extern int end_of_file;
126 extern int current_class_depth;
127 extern tree last_tree;
129 /* FSF LOCAL dje prefix attributes */
130 extern tree strip_attrs PROTO((tree));
133 /* Like YYERROR but do call yyerror. */
134 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
136 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
137 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
139 /* Contains the statement keyword (if/while/do) to include in an
140 error message if the user supplies an empty conditional expression. */
141 static char *cond_stmt_keyword;
143 static tree empty_parms PROTO((void));
145 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
146 int have_extern_spec;
147 int used_extern_spec;
149 /* Cons up an empty parameter list. */
159 || current_class_type != NULL)
160 parms = void_list_node;
167 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
170 /* List of types and structure classes of the current declaration. */
171 static tree current_declspecs = NULL_TREE;
172 /* List of prefix attributes in effect.
173 Prefix attributes are parsed by the reserved_declspecs and declmods
174 rules. They create a list that contains *both* declspecs and attrs. */
175 /* ??? It is not clear yet that all cases where an attribute can now appear in
176 a declspec list have been updated. */
177 static tree prefix_attributes = NULL_TREE;
179 /* When defining an aggregate, this is the most recent one being defined. */
180 static tree current_aggr;
182 /* Tell yyparse how to print a token's value, if yydebug is set. */
184 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
185 extern void yyprint PROTO((FILE *, int, YYSTYPE));
186 extern tree combine_strings PROTO((tree));
198 #define YYFLAG -32768
201 #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 376)
203 static const char yytranslate[] = { 0,
204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
207 2, 2, 112, 2, 2, 2, 83, 71, 2, 94,
208 110, 81, 79, 60, 80, 93, 82, 2, 2, 2,
209 2, 2, 2, 2, 2, 2, 2, 63, 61, 75,
210 65, 76, 66, 2, 2, 2, 2, 2, 2, 2,
211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
213 95, 2, 113, 70, 2, 2, 2, 2, 2, 2,
214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
216 2, 2, 59, 69, 111, 89, 2, 2, 2, 2,
217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
219 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
223 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
224 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
225 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
226 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
227 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
228 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
229 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
230 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
231 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
232 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
233 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
234 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
235 56, 57, 58, 62, 64, 67, 68, 72, 73, 74,
236 77, 78, 84, 85, 86, 87, 88, 90, 91, 92,
237 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
242 static const short yyprhs[] = { 0,
243 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
244 17, 19, 21, 22, 25, 28, 30, 32, 38, 43,
245 49, 54, 55, 62, 63, 69, 75, 78, 83, 86,
246 89, 93, 97, 99, 101, 104, 107, 109, 112, 113,
247 119, 123, 125, 129, 131, 134, 136, 139, 141, 145,
248 147, 151, 154, 157, 160, 164, 168, 171, 174, 177,
249 180, 183, 185, 187, 189, 190, 192, 195, 196, 198,
250 203, 207, 211, 212, 221, 227, 228, 238, 245, 246,
251 255, 261, 262, 272, 279, 282, 285, 287, 290, 292,
252 299, 304, 311, 316, 319, 321, 324, 327, 329, 332,
253 334, 337, 340, 343, 348, 351, 355, 356, 357, 359,
254 363, 366, 370, 372, 377, 380, 385, 388, 393, 396,
255 398, 400, 402, 404, 406, 408, 410, 412, 414, 416,
256 418, 422, 426, 429, 432, 437, 442, 446, 450, 455,
257 459, 464, 468, 470, 475, 479, 481, 483, 485, 489,
258 491, 493, 495, 497, 499, 501, 503, 505, 507, 509,
259 513, 515, 519, 520, 522, 524, 525, 533, 535, 537,
260 541, 546, 550, 551, 555, 557, 561, 565, 569, 573,
261 575, 577, 579, 582, 585, 588, 591, 594, 597, 600,
262 605, 608, 613, 616, 620, 624, 629, 634, 640, 646,
263 653, 656, 661, 667, 670, 673, 677, 681, 685, 687,
264 691, 694, 698, 703, 705, 708, 714, 716, 720, 724,
265 728, 732, 736, 740, 744, 748, 752, 756, 760, 764,
266 768, 772, 776, 780, 784, 788, 792, 798, 802, 806,
267 808, 811, 815, 817, 819, 821, 823, 825, 830, 834,
268 839, 843, 849, 855, 861, 863, 865, 867, 869, 872,
269 875, 879, 884, 889, 891, 893, 895, 899, 901, 903,
270 905, 907, 911, 915, 919, 920, 925, 930, 933, 938,
271 941, 944, 946, 951, 953, 961, 969, 977, 985, 990,
272 995, 998, 1001, 1003, 1008, 1011, 1014, 1020, 1024, 1027,
273 1030, 1036, 1040, 1046, 1050, 1055, 1062, 1065, 1067, 1070,
274 1072, 1075, 1077, 1079, 1081, 1084, 1085, 1088, 1091, 1095,
275 1099, 1103, 1106, 1109, 1112, 1114, 1116, 1118, 1121, 1124,
276 1127, 1130, 1132, 1134, 1136, 1138, 1141, 1144, 1148, 1152,
277 1156, 1161, 1163, 1166, 1169, 1172, 1174, 1176, 1178, 1181,
278 1184, 1187, 1189, 1191, 1194, 1197, 1201, 1203, 1206, 1208,
279 1210, 1212, 1217, 1222, 1227, 1232, 1234, 1236, 1238, 1240,
280 1244, 1246, 1250, 1252, 1256, 1257, 1262, 1263, 1270, 1274,
281 1275, 1282, 1286, 1287, 1294, 1298, 1299, 1306, 1310, 1311,
282 1313, 1315, 1318, 1325, 1327, 1331, 1332, 1334, 1339, 1346,
283 1351, 1353, 1355, 1357, 1359, 1361, 1365, 1366, 1369, 1371,
284 1374, 1378, 1383, 1385, 1387, 1391, 1396, 1403, 1407, 1413,
285 1415, 1420, 1424, 1428, 1429, 1433, 1437, 1441, 1442, 1445,
286 1448, 1449, 1457, 1462, 1463, 1470, 1474, 1477, 1480, 1483,
287 1484, 1485, 1486, 1497, 1499, 1500, 1502, 1503, 1505, 1507,
288 1510, 1513, 1516, 1519, 1522, 1525, 1529, 1534, 1538, 1541,
289 1545, 1546, 1548, 1552, 1555, 1558, 1560, 1562, 1563, 1566,
290 1570, 1572, 1577, 1579, 1583, 1585, 1587, 1592, 1597, 1600,
291 1603, 1607, 1611, 1613, 1614, 1616, 1619, 1624, 1628, 1630,
292 1633, 1636, 1639, 1642, 1645, 1648, 1651, 1653, 1656, 1659,
293 1662, 1667, 1672, 1675, 1677, 1683, 1688, 1690, 1693, 1694,
294 1696, 1700, 1701, 1703, 1707, 1709, 1711, 1713, 1715, 1720,
295 1725, 1730, 1735, 1740, 1744, 1749, 1754, 1759, 1764, 1768,
296 1770, 1774, 1776, 1780, 1783, 1785, 1792, 1793, 1796, 1798,
297 1801, 1802, 1805, 1810, 1815, 1818, 1823, 1827, 1831, 1834,
298 1837, 1841, 1843, 1845, 1848, 1850, 1852, 1855, 1858, 1863,
299 1868, 1872, 1876, 1879, 1881, 1885, 1889, 1892, 1895, 1899,
300 1901, 1905, 1909, 1912, 1915, 1919, 1921, 1926, 1930, 1935,
301 1939, 1941, 1944, 1947, 1950, 1953, 1956, 1958, 1961, 1966,
302 1971, 1974, 1976, 1978, 1980, 1982, 1985, 1988, 1991, 1994,
303 1997, 1999, 2002, 2005, 2007, 2010, 2013, 2016, 2019, 2022,
304 2025, 2028, 2031, 2033, 2036, 2039, 2043, 2045, 2049, 2052,
305 2056, 2059, 2062, 2066, 2068, 2072, 2077, 2081, 2084, 2087,
306 2089, 2093, 2096, 2099, 2101, 2104, 2108, 2110, 2114, 2116,
307 2123, 2128, 2133, 2137, 2143, 2147, 2151, 2155, 2158, 2160,
308 2162, 2165, 2168, 2171, 2172, 2173, 2174, 2176, 2178, 2181,
309 2185, 2187, 2190, 2191, 2197, 2198, 2199, 2206, 2208, 2209,
310 2214, 2216, 2218, 2220, 2223, 2224, 2225, 2232, 2234, 2235,
311 2236, 2244, 2245, 2246, 2254, 2255, 2256, 2257, 2258, 2273,
312 2274, 2275, 2285, 2286, 2292, 2293, 2301, 2302, 2307, 2310,
313 2313, 2316, 2320, 2327, 2336, 2347, 2360, 2365, 2369, 2372,
314 2375, 2377, 2379, 2380, 2381, 2388, 2389, 2390, 2396, 2398,
315 2401, 2402, 2403, 2404, 2413, 2415, 2417, 2421, 2425, 2428,
316 2431, 2434, 2437, 2440, 2442, 2445, 2446, 2448, 2449, 2451,
317 2453, 2454, 2456, 2458, 2462, 2467, 2469, 2473, 2474, 2476,
318 2478, 2480, 2483, 2486, 2489, 2491, 2493, 2496, 2499, 2502,
319 2505, 2506, 2510, 2512, 2514, 2516, 2519, 2522, 2525, 2530,
320 2533, 2536, 2539, 2542, 2545, 2548, 2550, 2553, 2555, 2558,
321 2560, 2562, 2563, 2564, 2566, 2567, 2572, 2575, 2577, 2579,
322 2583, 2584, 2588, 2592, 2596, 2598, 2601, 2604, 2607, 2610,
323 2613, 2616, 2619, 2622, 2625, 2628, 2631, 2634, 2637, 2640,
324 2643, 2646, 2649, 2652, 2655, 2658, 2661, 2664, 2667, 2671,
325 2674, 2677, 2680, 2683, 2687, 2690, 2693, 2698, 2703, 2707
328 static const short yyrhs[] = { -1,
329 115, 0, 0, 116, 122, 0, 115, 122, 0, 115,
330 0, 0, 0, 0, 33, 0, 27, 0, 28, 0,
331 0, 123, 124, 0, 140, 139, 0, 136, 0, 135,
332 0, 121, 94, 194, 110, 61, 0, 129, 59, 117,
333 111, 0, 129, 118, 140, 119, 139, 0, 129, 118,
334 136, 119, 0, 0, 45, 155, 59, 125, 117, 111,
335 0, 0, 45, 59, 126, 117, 111, 0, 45, 155,
336 65, 128, 61, 0, 127, 61, 0, 47, 45, 128,
337 61, 0, 120, 124, 0, 47, 287, 0, 47, 300,
338 287, 0, 47, 300, 185, 0, 185, 0, 287, 0,
339 300, 287, 0, 300, 185, 0, 100, 0, 129, 100,
340 0, 0, 49, 75, 131, 132, 76, 0, 49, 75,
341 76, 0, 134, 0, 132, 60, 134, 0, 244, 0,
342 244, 155, 0, 46, 0, 46, 155, 0, 133, 0,
343 133, 65, 200, 0, 367, 0, 367, 65, 181, 0,
344 130, 124, 0, 130, 1, 0, 211, 61, 0, 204,
345 210, 61, 0, 201, 209, 61, 0, 204, 61, 0,
346 158, 61, 0, 201, 61, 0, 1, 61, 0, 1,
347 111, 0, 61, 0, 195, 0, 151, 0, 0, 150,
348 0, 150, 61, 0, 0, 109, 0, 146, 138, 137,
349 312, 0, 146, 138, 337, 0, 146, 138, 1, 0,
350 0, 292, 5, 94, 142, 358, 110, 274, 370, 0,
351 292, 5, 48, 274, 370, 0, 0, 300, 292, 5,
352 94, 143, 358, 110, 274, 370, 0, 300, 292, 5,
353 48, 274, 370, 0, 0, 292, 160, 94, 144, 358,
354 110, 274, 370, 0, 292, 160, 48, 274, 370, 0,
355 0, 300, 292, 160, 94, 145, 358, 110, 274, 370,
356 0, 300, 292, 160, 48, 274, 370, 0, 201, 198,
357 0, 204, 284, 0, 284, 0, 204, 141, 0, 141,
358 0, 5, 94, 358, 110, 274, 370, 0, 5, 48,
359 274, 370, 0, 160, 94, 358, 110, 274, 370, 0,
360 160, 48, 274, 370, 0, 204, 147, 0, 147, 0,
361 201, 198, 0, 204, 284, 0, 284, 0, 204, 141,
362 0, 141, 0, 130, 148, 0, 25, 3, 0, 149,
363 228, 0, 149, 94, 175, 110, 0, 149, 48, 0,
364 63, 152, 153, 0, 0, 0, 154, 0, 153, 60,
365 154, 0, 153, 1, 0, 94, 175, 110, 0, 48,
366 0, 156, 94, 175, 110, 0, 156, 48, 0, 280,
367 94, 175, 110, 0, 280, 48, 0, 294, 94, 175,
368 110, 0, 294, 48, 0, 3, 0, 4, 0, 5,
369 0, 57, 0, 58, 0, 3, 0, 57, 0, 58,
370 0, 106, 0, 105, 0, 107, 0, 49, 207, 61,
371 0, 49, 201, 198, 0, 49, 284, 0, 49, 141,
372 0, 7, 49, 207, 61, 0, 7, 49, 201, 198,
373 0, 7, 49, 284, 0, 7, 49, 141, 0, 57,
374 75, 162, 161, 0, 57, 75, 161, 0, 4, 75,
375 162, 161, 0, 4, 75, 161, 0, 160, 0, 5,
376 75, 162, 161, 0, 5, 75, 161, 0, 76, 0,
377 78, 0, 163, 0, 162, 60, 163, 0, 200, 0,
378 181, 0, 80, 0, 79, 0, 87, 0, 88, 0,
379 112, 0, 174, 0, 181, 0, 48, 0, 94, 165,
380 110, 0, 48, 0, 94, 169, 110, 0, 0, 169,
381 0, 1, 0, 0, 348, 198, 212, 221, 65, 170,
382 229, 0, 165, 0, 111, 0, 309, 305, 111, 0,
383 309, 305, 1, 111, 0, 309, 1, 111, 0, 0,
384 59, 173, 171, 0, 321, 0, 181, 60, 181, 0,
385 181, 60, 1, 0, 174, 60, 181, 0, 174, 60,
386 1, 0, 181, 0, 174, 0, 189, 0, 120, 180,
387 0, 81, 180, 0, 71, 180, 0, 89, 180, 0,
388 164, 180, 0, 68, 155, 0, 13, 176, 0, 13,
389 94, 200, 110, 0, 30, 176, 0, 30, 94, 200,
390 110, 0, 191, 273, 0, 191, 273, 178, 0, 191,
391 177, 273, 0, 191, 177, 273, 178, 0, 191, 94,
392 200, 110, 0, 191, 94, 200, 110, 178, 0, 191,
393 177, 94, 200, 110, 0, 191, 177, 94, 200, 110,
394 178, 0, 192, 180, 0, 192, 95, 113, 180, 0,
395 192, 95, 165, 113, 180, 0, 35, 180, 0, 36,
396 180, 0, 94, 175, 110, 0, 59, 175, 111, 0,
397 94, 175, 110, 0, 48, 0, 94, 207, 110, 0,
398 65, 229, 0, 94, 200, 110, 0, 179, 94, 200,
399 110, 0, 176, 0, 179, 176, 0, 179, 59, 230,
400 242, 111, 0, 180, 0, 181, 84, 181, 0, 181,
401 85, 181, 0, 181, 79, 181, 0, 181, 80, 181,
402 0, 181, 81, 181, 0, 181, 82, 181, 0, 181,
403 83, 181, 0, 181, 77, 181, 0, 181, 78, 181,
404 0, 181, 74, 181, 0, 181, 75, 181, 0, 181,
405 76, 181, 0, 181, 73, 181, 0, 181, 72, 181,
406 0, 181, 71, 181, 0, 181, 69, 181, 0, 181,
407 70, 181, 0, 181, 68, 181, 0, 181, 67, 181,
408 0, 181, 66, 353, 63, 181, 0, 181, 65, 181,
409 0, 181, 64, 181, 0, 62, 0, 62, 181, 0,
410 89, 368, 155, 0, 183, 0, 375, 0, 3, 0,
411 57, 0, 58, 0, 6, 75, 162, 161, 0, 6,
412 75, 161, 0, 375, 75, 162, 161, 0, 375, 75,
413 161, 0, 49, 155, 75, 162, 161, 0, 49, 6,
414 75, 162, 161, 0, 49, 375, 75, 162, 161, 0,
415 182, 0, 4, 0, 5, 0, 182, 0, 81, 186,
416 0, 71, 186, 0, 94, 186, 110, 0, 3, 75,
417 162, 161, 0, 58, 75, 162, 161, 0, 286, 0,
418 182, 0, 187, 0, 94, 186, 110, 0, 182, 0,
419 10, 0, 193, 0, 194, 0, 94, 165, 110, 0,
420 94, 186, 110, 0, 94, 1, 110, 0, 0, 94,
421 190, 313, 110, 0, 189, 94, 175, 110, 0, 189,
422 48, 0, 189, 95, 165, 113, 0, 189, 87, 0,
423 189, 88, 0, 41, 0, 9, 94, 175, 110, 0,
424 290, 0, 51, 75, 200, 76, 94, 165, 110, 0,
425 52, 75, 200, 76, 94, 165, 110, 0, 53, 75,
426 200, 76, 94, 165, 110, 0, 54, 75, 200, 76,
427 94, 165, 110, 0, 50, 94, 165, 110, 0, 50,
428 94, 200, 110, 0, 300, 3, 0, 300, 375, 0,
429 289, 0, 289, 94, 175, 110, 0, 289, 48, 0,
430 196, 184, 0, 196, 184, 94, 175, 110, 0, 196,
431 184, 48, 0, 196, 185, 0, 196, 289, 0, 196,
432 185, 94, 175, 110, 0, 196, 185, 48, 0, 196,
433 289, 94, 175, 110, 0, 196, 289, 48, 0, 196,
434 89, 8, 48, 0, 196, 8, 55, 89, 8, 48,
435 0, 196, 1, 0, 40, 0, 300, 40, 0, 39,
436 0, 300, 192, 0, 43, 0, 44, 0, 11, 0,
437 194, 11, 0, 0, 189, 93, 0, 189, 92, 0,
438 207, 209, 61, 0, 201, 209, 61, 0, 204, 210,
439 61, 0, 201, 61, 0, 204, 61, 0, 120, 197,
440 0, 279, 0, 284, 0, 48, 0, 199, 48, 0,
441 205, 303, 0, 275, 303, 0, 207, 303, 0, 205,
442 0, 275, 0, 205, 0, 202, 0, 204, 207, 0,
443 207, 203, 0, 207, 206, 203, 0, 204, 207, 203,
444 0, 204, 207, 206, 0, 204, 207, 206, 203, 0,
445 7, 0, 203, 208, 0, 203, 7, 0, 203, 222,
446 0, 222, 0, 275, 0, 7, 0, 204, 9, 0,
447 204, 7, 0, 204, 222, 0, 222, 0, 207, 0,
448 275, 207, 0, 207, 206, 0, 275, 207, 206, 0,
449 208, 0, 206, 208, 0, 236, 0, 8, 0, 281,
450 0, 29, 94, 165, 110, 0, 29, 94, 200, 110,
451 0, 31, 94, 165, 110, 0, 31, 94, 200, 110,
452 0, 8, 0, 9, 0, 236, 0, 213, 0, 209,
453 60, 215, 0, 217, 0, 210, 60, 215, 0, 219,
454 0, 211, 60, 215, 0, 0, 121, 94, 194, 110,
455 0, 0, 198, 212, 221, 65, 214, 229, 0, 198,
456 212, 221, 0, 0, 198, 212, 221, 65, 216, 229,
457 0, 198, 212, 221, 0, 0, 284, 212, 221, 65,
458 218, 229, 0, 284, 212, 221, 0, 0, 284, 212,
459 221, 65, 220, 229, 0, 284, 212, 221, 0, 0,
460 222, 0, 223, 0, 222, 223, 0, 32, 94, 94,
461 224, 110, 110, 0, 225, 0, 224, 60, 225, 0,
462 0, 226, 0, 226, 94, 3, 110, 0, 226, 94,
463 3, 60, 175, 110, 0, 226, 94, 175, 110, 0,
464 155, 0, 7, 0, 8, 0, 9, 0, 155, 0,
465 227, 60, 155, 0, 0, 65, 229, 0, 181, 0,
466 59, 111, 0, 59, 230, 111, 0, 59, 230, 60,
467 111, 0, 1, 0, 229, 0, 230, 60, 229, 0,
468 95, 181, 113, 229, 0, 230, 60, 21, 181, 63,
469 229, 0, 155, 63, 229, 0, 230, 60, 155, 63,
470 229, 0, 99, 0, 231, 138, 137, 312, 0, 231,
471 138, 337, 0, 231, 138, 1, 0, 0, 233, 232,
472 139, 0, 104, 181, 109, 0, 104, 1, 109, 0,
473 0, 235, 234, 0, 235, 1, 0, 0, 14, 155,
474 59, 237, 271, 243, 111, 0, 14, 155, 59, 111,
475 0, 0, 14, 59, 238, 271, 243, 111, 0, 14,
476 59, 111, 0, 14, 155, 0, 14, 298, 0, 46,
477 294, 0, 0, 0, 0, 251, 257, 239, 259, 111,
478 221, 240, 235, 241, 233, 0, 251, 0, 0, 60,
479 0, 0, 60, 0, 37, 0, 244, 7, 0, 244,
480 8, 0, 244, 9, 0, 244, 37, 0, 244, 155,
481 0, 244, 157, 0, 244, 292, 155, 0, 244, 300,
482 292, 155, 0, 244, 300, 155, 0, 244, 159, 0,
483 244, 292, 159, 0, 0, 245, 0, 246, 248, 252,
484 0, 247, 252, 0, 244, 59, 0, 250, 0, 249,
485 0, 0, 63, 368, 0, 63, 368, 253, 0, 254,
486 0, 253, 60, 368, 254, 0, 255, 0, 256, 368,
487 255, 0, 294, 0, 280, 0, 31, 94, 165, 110,
488 0, 31, 94, 200, 110, 0, 38, 368, 0, 7,
489 368, 0, 256, 38, 368, 0, 256, 7, 368, 0,
490 59, 0, 0, 258, 0, 258, 260, 0, 259, 38,
491 63, 260, 0, 259, 38, 63, 0, 261, 0, 260,
492 261, 0, 262, 61, 0, 262, 111, 0, 148, 63,
493 0, 148, 96, 0, 148, 25, 0, 148, 59, 0,
494 61, 0, 120, 261, 0, 201, 263, 0, 204, 264,
495 0, 284, 212, 221, 228, 0, 141, 212, 221, 228,
496 0, 63, 181, 0, 1, 0, 204, 147, 212, 221,
497 228, 0, 147, 212, 221, 228, 0, 127, 0, 130,
498 262, 0, 0, 265, 0, 263, 60, 266, 0, 0,
499 268, 0, 264, 60, 270, 0, 267, 0, 268, 0,
500 269, 0, 270, 0, 279, 212, 221, 228, 0, 4,
501 63, 181, 221, 0, 284, 212, 221, 228, 0, 141,
502 212, 221, 228, 0, 3, 63, 181, 221, 0, 63,
503 181, 221, 0, 279, 212, 221, 228, 0, 4, 63,
504 181, 221, 0, 284, 212, 221, 228, 0, 3, 63,
505 181, 221, 0, 63, 181, 221, 0, 272, 0, 271,
506 60, 272, 0, 155, 0, 155, 65, 181, 0, 348,
507 301, 0, 348, 0, 94, 200, 110, 95, 165, 113,
508 0, 0, 274, 9, 0, 9, 0, 275, 9, 0,
509 0, 276, 165, 0, 276, 94, 175, 110, 0, 276,
510 94, 358, 110, 0, 276, 48, 0, 276, 94, 1,
511 110, 0, 81, 275, 279, 0, 71, 275, 279, 0,
512 81, 279, 0, 71, 279, 0, 299, 274, 279, 0,
513 283, 0, 291, 0, 300, 291, 0, 280, 0, 282,
514 0, 300, 282, 0, 292, 291, 0, 283, 278, 274,
515 370, 0, 283, 95, 277, 113, 0, 283, 95, 113,
516 0, 94, 279, 110, 0, 292, 291, 0, 291, 0,
517 81, 275, 284, 0, 71, 275, 284, 0, 81, 284,
518 0, 71, 284, 0, 299, 274, 284, 0, 188, 0,
519 81, 275, 284, 0, 71, 275, 284, 0, 81, 285,
520 0, 71, 285, 0, 299, 274, 284, 0, 286, 0,
521 188, 278, 274, 370, 0, 94, 285, 110, 0, 188,
522 95, 277, 113, 0, 188, 95, 113, 0, 288, 0,
523 292, 187, 0, 292, 185, 0, 292, 184, 0, 292,
524 182, 0, 292, 184, 0, 288, 0, 300, 288, 0,
525 207, 94, 175, 110, 0, 207, 94, 186, 110, 0,
526 207, 199, 0, 4, 0, 5, 0, 159, 0, 293,
527 0, 292, 293, 0, 4, 55, 0, 5, 55, 0,
528 58, 55, 0, 159, 55, 0, 295, 0, 300, 295,
529 0, 296, 155, 0, 297, 0, 296, 297, 0, 4,
530 55, 0, 5, 55, 0, 159, 55, 0, 57, 55,
531 0, 3, 55, 0, 58, 55, 0, 300, 291, 0,
532 282, 0, 300, 282, 0, 292, 81, 0, 300, 292,
533 81, 0, 55, 0, 81, 274, 301, 0, 81, 274,
534 0, 71, 274, 301, 0, 71, 274, 0, 299, 274,
535 0, 299, 274, 301, 0, 302, 0, 95, 165, 113,
536 0, 302, 95, 277, 113, 0, 81, 275, 303, 0,
537 81, 303, 0, 81, 275, 0, 81, 0, 71, 275,
538 303, 0, 71, 303, 0, 71, 275, 0, 71, 0,
539 299, 274, 0, 299, 274, 303, 0, 304, 0, 94,
540 303, 110, 0, 91, 0, 304, 94, 358, 110, 274,
541 370, 0, 304, 48, 274, 370, 0, 304, 95, 277,
542 113, 0, 304, 95, 113, 0, 94, 359, 110, 274,
543 370, 0, 179, 274, 370, 0, 199, 274, 370, 0,
544 95, 277, 113, 0, 95, 113, 0, 320, 0, 306,
545 0, 305, 320, 0, 305, 306, 0, 1, 61, 0,
546 0, 0, 0, 310, 0, 311, 0, 310, 311, 0,
547 34, 227, 61, 0, 313, 0, 1, 313, 0, 0,
548 59, 314, 307, 171, 308, 0, 0, 0, 15, 316,
549 307, 167, 317, 318, 0, 313, 0, 0, 307, 319,
550 321, 308, 0, 313, 0, 321, 0, 197, 0, 165,
551 61, 0, 0, 0, 315, 16, 322, 318, 323, 308,
552 0, 315, 0, 0, 0, 17, 324, 307, 167, 325,
553 172, 308, 0, 0, 0, 18, 326, 318, 17, 327,
554 166, 61, 0, 0, 0, 0, 0, 19, 328, 94,
555 351, 329, 307, 168, 61, 330, 353, 110, 331, 172,
556 308, 0, 0, 0, 20, 307, 94, 169, 110, 332,
557 318, 333, 308, 0, 0, 21, 181, 63, 334, 320,
558 0, 0, 21, 181, 12, 181, 63, 335, 320, 0,
559 0, 22, 63, 336, 320, 0, 23, 61, 0, 24,
560 61, 0, 25, 61, 0, 25, 165, 61, 0, 121,
561 352, 94, 194, 110, 61, 0, 121, 352, 94, 194,
562 63, 354, 110, 61, 0, 121, 352, 94, 194, 63,
563 354, 63, 354, 110, 61, 0, 121, 352, 94, 194,
564 63, 354, 63, 354, 63, 357, 110, 61, 0, 26,
565 81, 165, 61, 0, 26, 155, 61, 0, 350, 320,
566 0, 350, 111, 0, 61, 0, 340, 0, 0, 0,
567 96, 338, 137, 313, 339, 343, 0, 0, 0, 96,
568 341, 313, 342, 343, 0, 344, 0, 343, 344, 0,
569 0, 0, 0, 97, 345, 307, 349, 346, 313, 347,
570 308, 0, 205, 0, 275, 0, 94, 12, 110, 0,
571 94, 367, 110, 0, 3, 63, 0, 57, 63, 0,
572 4, 63, 0, 5, 63, 0, 353, 61, 0, 197,
573 0, 59, 171, 0, 0, 9, 0, 0, 165, 0,
574 1, 0, 0, 355, 0, 356, 0, 355, 60, 356,
575 0, 11, 94, 165, 110, 0, 11, 0, 357, 60,
576 11, 0, 0, 359, 0, 200, 0, 363, 0, 364,
577 12, 0, 363, 12, 0, 200, 12, 0, 12, 0,
578 98, 0, 363, 98, 0, 200, 98, 0, 363, 63,
579 0, 200, 63, 0, 0, 65, 361, 362, 0, 103,
580 0, 229, 0, 365, 0, 367, 360, 0, 364, 366,
581 0, 364, 369, 0, 364, 369, 65, 229, 0, 363,
582 60, 0, 200, 60, 0, 202, 198, 0, 205, 198,
583 0, 207, 198, 0, 202, 303, 0, 202, 0, 204,
584 284, 0, 367, 0, 367, 360, 0, 365, 0, 200,
585 0, 0, 0, 284, 0, 0, 62, 94, 372, 110,
586 0, 62, 48, 0, 200, 0, 371, 0, 372, 60,
587 371, 0, 0, 81, 274, 373, 0, 71, 274, 373,
588 0, 299, 274, 373, 0, 42, 0, 374, 81, 0,
589 374, 82, 0, 374, 83, 0, 374, 79, 0, 374,
590 80, 0, 374, 71, 0, 374, 69, 0, 374, 70,
591 0, 374, 89, 0, 374, 60, 0, 374, 74, 0,
592 374, 75, 0, 374, 76, 0, 374, 73, 0, 374,
593 64, 0, 374, 65, 0, 374, 77, 0, 374, 78,
594 0, 374, 87, 0, 374, 88, 0, 374, 68, 0,
595 374, 67, 0, 374, 112, 0, 374, 66, 63, 0,
596 374, 72, 0, 374, 92, 0, 374, 84, 0, 374,
597 48, 0, 374, 95, 113, 0, 374, 40, 0, 374,
598 39, 0, 374, 40, 95, 113, 0, 374, 39, 95,
599 113, 0, 374, 348, 373, 0, 374, 1, 0
605 static const short yyrline[] = { 0,
606 310, 312, 326, 329, 330, 334, 336, 339, 344, 348,
607 354, 356, 359, 362, 366, 369, 371, 373, 376, 378,
608 381, 384, 386, 388, 390, 392, 394, 396, 402, 406,
609 409, 411, 415, 417, 418, 420, 424, 427, 433, 436,
610 438, 443, 446, 450, 463, 465, 467, 471, 481, 483,
611 485, 489, 498, 508, 511, 513, 517, 519, 520, 527,
612 528, 529, 532, 535, 539, 541, 542, 545, 547, 550,
613 553, 555, 559, 569, 571, 581, 590, 592, 602, 611,
614 613, 623, 632, 634, 646, 654, 661, 666, 673, 680,
615 683, 685, 687, 693, 703, 705, 708, 711, 713, 716,
616 718, 741, 750, 753, 755, 759, 772, 792, 795, 797,
617 798, 801, 808, 814, 816, 818, 820, 822, 825, 830,
618 832, 833, 834, 835, 838, 840, 841, 844, 846, 847,
619 850, 854, 857, 859, 861, 864, 867, 869, 877, 884,
620 890, 896, 902, 905, 912, 920, 922, 930, 933, 937,
621 940, 943, 946, 948, 950, 952, 956, 959, 962, 967,
622 971, 976, 980, 983, 985, 989, 1009, 1016, 1019, 1021,
623 1022, 1023, 1026, 1037, 1046, 1050, 1054, 1057, 1059, 1063,
624 1066, 1069, 1073, 1076, 1078, 1080, 1082, 1089, 1102, 1104,
625 1106, 1108, 1114, 1117, 1120, 1123, 1126, 1130, 1133, 1136,
626 1140, 1142, 1146, 1150, 1152, 1156, 1159, 1166, 1169, 1171,
627 1179, 1188, 1194, 1201, 1203, 1205, 1218, 1221, 1223, 1225,
628 1227, 1229, 1231, 1233, 1235, 1237, 1239, 1241, 1243, 1245,
629 1247, 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1265, 1267,
630 1269, 1286, 1289, 1290, 1291, 1292, 1293, 1296, 1299, 1301,
631 1304, 1309, 1312, 1314, 1318, 1320, 1321, 1324, 1326, 1328,
632 1330, 1334, 1337, 1341, 1343, 1344, 1345, 1349, 1357, 1358,
633 1359, 1367, 1375, 1383, 1385, 1393, 1414, 1421, 1428, 1430,
634 1439, 1444, 1467, 1511, 1512, 1516, 1520, 1524, 1528, 1530,
635 1534, 1536, 1544, 1546, 1551, 1557, 1561, 1566, 1571, 1573,
636 1578, 1593, 1608, 1619, 1631, 1639, 1648, 1692, 1695, 1699,
637 1702, 1706, 1709, 1714, 1716, 1720, 1733, 1736, 1743, 1750,
638 1755, 1757, 1762, 1764, 1771, 1773, 1777, 1781, 1787, 1791,
639 1794, 1797, 1800, 1810, 1812, 1815, 1819, 1822, 1825, 1828,
640 1831, 1837, 1843, 1845, 1850, 1852, 1861, 1864, 1866, 1869,
641 1875, 1877, 1887, 1891, 1894, 1897, 1902, 1905, 1913, 1915,
642 1917, 1919, 1922, 1925, 1940, 1959, 1962, 1964, 1967, 1969,
643 1972, 1974, 1977, 1979, 1982, 1985, 1989, 2008, 2010, 2030,
644 2036, 2037, 2043, 2052, 2054, 2064, 2073, 2075, 2087, 2090,
645 2094, 2097, 2101, 2106, 2109, 2113, 2116, 2118, 2120, 2122,
646 2129, 2131, 2132, 2133, 2137, 2140, 2144, 2147, 2153, 2155,
647 2158, 2161, 2164, 2170, 2173, 2176, 2178, 2180, 2182, 2186,
648 2192, 2200, 2202, 2206, 2208, 2213, 2216, 2219, 2221, 2223,
649 2227, 2231, 2236, 2240, 2243, 2248, 2252, 2255, 2258, 2262,
650 2264, 2299, 2305, 2311, 2323, 2325, 2328, 2330, 2335, 2337,
651 2339, 2341, 2343, 2347, 2352, 2357, 2363, 2368, 2373, 2375,
652 2379, 2384, 2387, 2394, 2422, 2428, 2430, 2433, 2436, 2438,
653 2442, 2444, 2448, 2474, 2503, 2506, 2507, 2528, 2551, 2553,
654 2557, 2583, 2592, 2675, 2682, 2685, 2693, 2704, 2713, 2717,
655 2732, 2735, 2740, 2742, 2744, 2746, 2748, 2750, 2755, 2761,
656 2763, 2766, 2769, 2771, 2782, 2787, 2790, 2792, 2816, 2819,
657 2820, 2831, 2834, 2835, 2846, 2848, 2851, 2853, 2856, 2863,
658 2871, 2878, 2884, 2890, 2898, 2902, 2907, 2911, 2914, 2923,
659 2925, 2929, 2932, 2937, 2941, 2946, 2956, 2959, 2963, 2967,
660 2975, 2980, 2986, 2989, 2991, 2993, 2999, 3002, 3004, 3006,
661 3008, 3012, 3015, 3036, 3046, 3048, 3049, 3053, 3058, 3061,
662 3063, 3065, 3067, 3071, 3077, 3080, 3082, 3084, 3086, 3090,
663 3093, 3096, 3098, 3100, 3102, 3106, 3109, 3112, 3114, 3116,
664 3118, 3125, 3136, 3140, 3145, 3149, 3154, 3156, 3160, 3163,
665 3165, 3169, 3171, 3172, 3175, 3177, 3183, 3198, 3204, 3210,
666 3224, 3226, 3230, 3242, 3248, 3259, 3266, 3272, 3274, 3275,
667 3276, 3284, 3293, 3294, 3298, 3301, 3307, 3313, 3316, 3318,
668 3320, 3322, 3326, 3330, 3334, 3337, 3342, 3345, 3347, 3349,
669 3351, 3353, 3355, 3357, 3359, 3363, 3367, 3371, 3375, 3376,
670 3378, 3380, 3382, 3384, 3386, 3388, 3390, 3392, 3400, 3402,
671 3403, 3404, 3407, 3415, 3420, 3427, 3429, 3434, 3436, 3439,
672 3453, 3456, 3459, 3468, 3480, 3491, 3511, 3521, 3524, 3532,
673 3544, 3547, 3550, 3553, 3569, 3572, 3583, 3584, 3588, 3603,
674 3622, 3634, 3648, 3662, 3675, 3694, 3712, 3731, 3739, 3760,
675 3778, 3791, 3792, 3795, 3795, 3798, 3798, 3801, 3801, 3807,
676 3813, 3816, 3821, 3828, 3837, 3846, 3855, 3863, 3876, 3878,
677 3882, 3884, 3887, 3894, 3897, 3905, 3921, 3932, 3944, 3946,
678 3949, 3959, 3969, 3980, 3982, 3984, 3987, 4004, 4010, 4018,
679 4020, 4022, 4026, 4029, 4030, 4038, 4042, 4046, 4049, 4050,
680 4056, 4059, 4062, 4064, 4068, 4073, 4076, 4086, 4091, 4092,
681 4100, 4106, 4111, 4115, 4120, 4124, 4128, 4132, 4137, 4148,
682 4162, 4166, 4169, 4171, 4175, 4179, 4182, 4185, 4187, 4191,
683 4193, 4200, 4207, 4210, 4213, 4217, 4221, 4227, 4231, 4236,
684 4238, 4241, 4246, 4252, 4262, 4265, 4267, 4271, 4276, 4278,
685 4285, 4288, 4290, 4292, 4298, 4303, 4306, 4308, 4310, 4312,
686 4314, 4316, 4318, 4320, 4322, 4324, 4326, 4328, 4330, 4332,
687 4334, 4336, 4338, 4340, 4342, 4344, 4346, 4348, 4350, 4352,
688 4354, 4356, 4358, 4360, 4362, 4364, 4366, 4368, 4371, 4373
693 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
695 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
696 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
697 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
698 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
699 "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
700 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
701 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
702 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
703 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
704 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
705 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
706 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
707 "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
708 "DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
709 "END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
710 "@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
711 "@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
712 "@5","template_parm_list","template_type_parm","template_parm","template_def",
713 "datadef","ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef",
714 "constructor_declarator","@6","@7","@8","@9","fn.def1","component_constructor_declarator",
715 "fn.def2","return_id","return_init","base_init",".set_base_init","member_init_list",
716 "member_init","identifier","notype_identifier","identifier_defn","explicit_instantiation",
717 "template_type","self_template_type","template_close_bracket","template_arg_list",
718 "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
719 "condition","@10","compstmtend","already_scoped_stmt","@11","nontrivial_exprlist",
720 "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
721 "cast_expr","expr_no_commas","notype_unqualified_id","template_id","object_template_id",
722 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
723 "primary","@12","new","delete","boolean.literal","string","nodecls","object",
724 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
725 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
726 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
727 "initdcl0","@13","initdcl","@14","notype_initdcl0","@15","nomods_initdcl0","@16",
728 "maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
729 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
730 "pending_inlines","defarg_again","pending_defargs","structsp","@17","@18","@19",
731 "@20","@21","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
732 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
733 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
734 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
735 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
736 "component_decl_1","components","notype_components","component_declarator0",
737 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
738 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
739 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
740 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
741 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
742 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
743 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
744 "typename_sub","typename_sub0","typename_sub1","typename_sub2","complex_type_name",
745 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl",
746 "direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel","maybe_label_decls",
747 "label_decls","label_decl","compstmt_or_error","compstmt","@22","simple_if",
748 "@23","@24","implicitly_scoped_stmt","@25","stmt","simple_stmt","@26","@27",
749 "@28","@29","@30","@31","@32","@33","@34","@35","@36","@37","@38","@39","@40",
750 "function_try_block","@41","@42","try_block","@43","@44","handler_seq","handler",
751 "@45","@46","@47","type_specifier_seq","handler_args","label_colon","for.init.statement",
752 "maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
753 "asm_clobbers","parmlist","complex_parmlist","defarg","@48","defarg1","parms",
754 "parms_comma","named_parm","full_parm","parm","see_typename","bad_parm","exception_specification_opt",
755 "ansi_raise_identifier","ansi_raise_identifiers","conversion_declarator","operator",
756 "operator_name", NULL
760 static const short yyr1[] = { 0,
761 114, 114, 116, 115, 115, 117, 117, 118, 119, 120,
762 121, 121, 123, 122, 124, 124, 124, 124, 124, 124,
763 124, 125, 124, 126, 124, 124, 124, 124, 124, 127,
764 127, 127, 128, 128, 128, 128, 129, 129, 131, 130,
765 130, 132, 132, 133, 133, 133, 133, 134, 134, 134,
766 134, 135, 135, 136, 136, 136, 136, 136, 136, 136,
767 136, 136, 137, 137, 138, 138, 138, 139, 139, 140,
768 140, 140, 142, 141, 141, 143, 141, 141, 144, 141,
769 141, 145, 141, 141, 146, 146, 146, 146, 146, 147,
770 147, 147, 147, 148, 148, 148, 148, 148, 148, 148,
771 148, 149, 150, 150, 150, 151, 152, 153, 153, 153,
772 153, 154, 154, 154, 154, 154, 154, 154, 154, 155,
773 155, 155, 155, 155, 156, 156, 156, 157, 157, 157,
774 158, 158, 158, 158, 158, 158, 158, 158, 159, 159,
775 159, 159, 159, 160, 160, 161, 161, 162, 162, 163,
776 163, 164, 164, 164, 164, 164, 165, 165, 166, 166,
777 167, 167, 168, 168, 168, 170, 169, 169, 171, 171,
778 171, 171, 173, 172, 172, 174, 174, 174, 174, 175,
779 175, 176, 176, 176, 176, 176, 176, 176, 176, 176,
780 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
781 176, 176, 176, 176, 176, 177, 177, 178, 178, 178,
782 178, 179, 179, 180, 180, 180, 181, 181, 181, 181,
783 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
784 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
785 181, 182, 182, 182, 182, 182, 182, 183, 183, 183,
786 183, 184, 184, 184, 185, 185, 185, 186, 186, 186,
787 186, 187, 187, 188, 188, 188, 188, 189, 189, 189,
788 189, 189, 189, 189, 190, 189, 189, 189, 189, 189,
789 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
790 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
791 189, 189, 189, 189, 189, 189, 189, 191, 191, 192,
792 192, 193, 193, 194, 194, 195, 196, 196, 197, 197,
793 197, 197, 197, 197, 198, 198, 199, 199, 200, 200,
794 200, 200, 200, 201, 201, 202, 202, 202, 202, 202,
795 202, 203, 203, 203, 203, 203, 204, 204, 204, 204,
796 204, 204, 205, 205, 205, 205, 206, 206, 207, 207,
797 207, 207, 207, 207, 207, 208, 208, 208, 209, 209,
798 210, 210, 211, 211, 212, 212, 214, 213, 213, 216,
799 215, 215, 218, 217, 217, 220, 219, 219, 221, 221,
800 222, 222, 223, 224, 224, 225, 225, 225, 225, 225,
801 226, 226, 226, 226, 227, 227, 228, 228, 229, 229,
802 229, 229, 229, 230, 230, 230, 230, 230, 230, 231,
803 232, 232, 232, 233, 233, 234, 234, 235, 235, 235,
804 237, 236, 236, 238, 236, 236, 236, 236, 236, 239,
805 240, 241, 236, 236, 242, 242, 243, 243, 244, 244,
806 244, 244, 244, 245, 246, 247, 247, 247, 247, 247,
807 248, 249, 249, 249, 250, 251, 251, 252, 252, 252,
808 253, 253, 254, 254, 255, 255, 255, 255, 256, 256,
809 256, 256, 257, 258, 259, 259, 259, 259, 260, 260,
810 261, 261, 261, 261, 261, 261, 261, 261, 262, 262,
811 262, 262, 262, 262, 262, 262, 262, 262, 263, 263,
812 263, 264, 264, 264, 265, 265, 266, 266, 267, 267,
813 268, 268, 268, 268, 269, 269, 270, 270, 270, 271,
814 271, 272, 272, 273, 273, 273, 274, 274, 275, 275,
815 276, 277, 278, 278, 278, 278, 279, 279, 279, 279,
816 279, 279, 280, 280, 281, 281, 281, 282, 283, 283,
817 283, 283, 283, 283, 284, 284, 284, 284, 284, 284,
818 285, 285, 285, 285, 285, 285, 286, 286, 286, 286,
819 286, 286, 287, 287, 288, 288, 289, 289, 290, 290,
820 290, 291, 291, 291, 292, 292, 293, 293, 293, 293,
821 294, 294, 295, 296, 296, 297, 297, 297, 297, 297,
822 297, 298, 298, 298, 299, 299, 300, 301, 301, 301,
823 301, 301, 301, 301, 302, 302, 303, 303, 303, 303,
824 303, 303, 303, 303, 303, 303, 303, 304, 304, 304,
825 304, 304, 304, 304, 304, 304, 304, 304, 305, 305,
826 305, 305, 306, 307, 308, 309, 309, 310, 310, 311,
827 312, 312, 314, 313, 316, 317, 315, 318, 319, 318,
828 320, 320, 321, 321, 322, 323, 321, 321, 324, 325,
829 321, 326, 327, 321, 328, 329, 330, 331, 321, 332,
830 333, 321, 334, 321, 335, 321, 336, 321, 321, 321,
831 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
832 321, 321, 338, 339, 337, 341, 342, 340, 343, 343,
833 345, 346, 347, 344, 348, 348, 349, 349, 350, 350,
834 350, 350, 351, 351, 351, 352, 352, 353, 353, 353,
835 354, 354, 355, 355, 356, 357, 357, 358, 358, 358,
836 359, 359, 359, 359, 359, 359, 359, 359, 359, 359,
837 361, 360, 362, 362, 363, 363, 363, 363, 363, 364,
838 364, 365, 365, 365, 365, 365, 365, 366, 366, 367,
839 367, 368, 369, 369, 370, 370, 370, 371, 372, 372,
840 373, 373, 373, 373, 374, 375, 375, 375, 375, 375,
841 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
842 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
843 375, 375, 375, 375, 375, 375, 375, 375, 375, 375
846 static const short yyr2[] = { 0,
847 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
848 1, 1, 0, 2, 2, 1, 1, 5, 4, 5,
849 4, 0, 6, 0, 5, 5, 2, 4, 2, 2,
850 3, 3, 1, 1, 2, 2, 1, 2, 0, 5,
851 3, 1, 3, 1, 2, 1, 2, 1, 3, 1,
852 3, 2, 2, 2, 3, 3, 2, 2, 2, 2,
853 2, 1, 1, 1, 0, 1, 2, 0, 1, 4,
854 3, 3, 0, 8, 5, 0, 9, 6, 0, 8,
855 5, 0, 9, 6, 2, 2, 1, 2, 1, 6,
856 4, 6, 4, 2, 1, 2, 2, 1, 2, 1,
857 2, 2, 2, 4, 2, 3, 0, 0, 1, 3,
858 2, 3, 1, 4, 2, 4, 2, 4, 2, 1,
859 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
860 3, 3, 2, 2, 4, 4, 3, 3, 4, 3,
861 4, 3, 1, 4, 3, 1, 1, 1, 3, 1,
862 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
863 1, 3, 0, 1, 1, 0, 7, 1, 1, 3,
864 4, 3, 0, 3, 1, 3, 3, 3, 3, 1,
865 1, 1, 2, 2, 2, 2, 2, 2, 2, 4,
866 2, 4, 2, 3, 3, 4, 4, 5, 5, 6,
867 2, 4, 5, 2, 2, 3, 3, 3, 1, 3,
868 2, 3, 4, 1, 2, 5, 1, 3, 3, 3,
869 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
870 3, 3, 3, 3, 3, 3, 5, 3, 3, 1,
871 2, 3, 1, 1, 1, 1, 1, 4, 3, 4,
872 3, 5, 5, 5, 1, 1, 1, 1, 2, 2,
873 3, 4, 4, 1, 1, 1, 3, 1, 1, 1,
874 1, 3, 3, 3, 0, 4, 4, 2, 4, 2,
875 2, 1, 4, 1, 7, 7, 7, 7, 4, 4,
876 2, 2, 1, 4, 2, 2, 5, 3, 2, 2,
877 5, 3, 5, 3, 4, 6, 2, 1, 2, 1,
878 2, 1, 1, 1, 2, 0, 2, 2, 3, 3,
879 3, 2, 2, 2, 1, 1, 1, 2, 2, 2,
880 2, 1, 1, 1, 1, 2, 2, 3, 3, 3,
881 4, 1, 2, 2, 2, 1, 1, 1, 2, 2,
882 2, 1, 1, 2, 2, 3, 1, 2, 1, 1,
883 1, 4, 4, 4, 4, 1, 1, 1, 1, 3,
884 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
885 6, 3, 0, 6, 3, 0, 6, 3, 0, 1,
886 1, 2, 6, 1, 3, 0, 1, 4, 6, 4,
887 1, 1, 1, 1, 1, 3, 0, 2, 1, 2,
888 3, 4, 1, 1, 3, 4, 6, 3, 5, 1,
889 4, 3, 3, 0, 3, 3, 3, 0, 2, 2,
890 0, 7, 4, 0, 6, 3, 2, 2, 2, 0,
891 0, 0, 10, 1, 0, 1, 0, 1, 1, 2,
892 2, 2, 2, 2, 2, 3, 4, 3, 2, 3,
893 0, 1, 3, 2, 2, 1, 1, 0, 2, 3,
894 1, 4, 1, 3, 1, 1, 4, 4, 2, 2,
895 3, 3, 1, 0, 1, 2, 4, 3, 1, 2,
896 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
897 4, 4, 2, 1, 5, 4, 1, 2, 0, 1,
898 3, 0, 1, 3, 1, 1, 1, 1, 4, 4,
899 4, 4, 4, 3, 4, 4, 4, 4, 3, 1,
900 3, 1, 3, 2, 1, 6, 0, 2, 1, 2,
901 0, 2, 4, 4, 2, 4, 3, 3, 2, 2,
902 3, 1, 1, 2, 1, 1, 2, 2, 4, 4,
903 3, 3, 2, 1, 3, 3, 2, 2, 3, 1,
904 3, 3, 2, 2, 3, 1, 4, 3, 4, 3,
905 1, 2, 2, 2, 2, 2, 1, 2, 4, 4,
906 2, 1, 1, 1, 1, 2, 2, 2, 2, 2,
907 1, 2, 2, 1, 2, 2, 2, 2, 2, 2,
908 2, 2, 1, 2, 2, 3, 1, 3, 2, 3,
909 2, 2, 3, 1, 3, 4, 3, 2, 2, 1,
910 3, 2, 2, 1, 2, 3, 1, 3, 1, 6,
911 4, 4, 3, 5, 3, 3, 3, 2, 1, 1,
912 2, 2, 2, 0, 0, 0, 1, 1, 2, 3,
913 1, 2, 0, 5, 0, 0, 6, 1, 0, 4,
914 1, 1, 1, 2, 0, 0, 6, 1, 0, 0,
915 7, 0, 0, 7, 0, 0, 0, 0, 14, 0,
916 0, 9, 0, 5, 0, 7, 0, 4, 2, 2,
917 2, 3, 6, 8, 10, 12, 4, 3, 2, 2,
918 1, 1, 0, 0, 6, 0, 0, 5, 1, 2,
919 0, 0, 0, 8, 1, 1, 3, 3, 2, 2,
920 2, 2, 2, 1, 2, 0, 1, 0, 1, 1,
921 0, 1, 1, 3, 4, 1, 3, 0, 1, 1,
922 1, 2, 2, 2, 1, 1, 2, 2, 2, 2,
923 0, 3, 1, 1, 1, 2, 2, 2, 4, 2,
924 2, 2, 2, 2, 2, 1, 2, 1, 2, 1,
925 1, 0, 0, 1, 0, 4, 2, 1, 1, 3,
926 0, 3, 3, 3, 1, 2, 2, 2, 2, 2,
927 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
928 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
929 2, 2, 2, 3, 2, 2, 4, 4, 3, 2
932 static const short yydefact[] = { 3,
933 13, 13, 5, 0, 4, 0, 245, 592, 593, 0,
934 348, 360, 539, 0, 11, 12, 0, 0, 0, 10,
935 449, 795, 0, 0, 0, 0, 617, 246, 247, 62,
936 0, 0, 782, 0, 37, 0, 0, 14, 0, 8,
937 0, 17, 16, 68, 89, 65, 0, 594, 143, 265,
938 243, 266, 570, 0, 335, 0, 334, 353, 0, 373,
939 352, 391, 359, 0, 462, 461, 468, 467, 466, 444,
940 347, 555, 361, 556, 87, 264, 581, 553, 0, 595,
941 537, 0, 0, 244, 60, 61, 0, 597, 0, 598,
942 0, 0, 0, 120, 121, 122, 123, 124, 434, 437,
943 0, 613, 0, 438, 0, 0, 0, 0, 121, 122,
944 123, 124, 24, 0, 0, 0, 0, 0, 0, 0,
945 439, 601, 0, 604, 0, 0, 0, 0, 0, 0,
946 30, 0, 0, 348, 39, 134, 0, 0, 353, 133,
947 0, 599, 0, 0, 568, 0, 0, 0, 567, 0,
948 0, 0, 0, 265, 0, 541, 0, 264, 537, 29,
949 0, 27, 3, 38, 0, 53, 52, 69, 15, 0,
950 0, 407, 66, 58, 600, 541, 0, 537, 59, 0,
951 0, 0, 85, 0, 369, 325, 552, 326, 564, 0,
952 537, 350, 349, 57, 88, 336, 0, 371, 351, 86,
953 342, 366, 367, 337, 355, 357, 346, 368, 0, 54,
954 392, 450, 451, 452, 453, 465, 129, 128, 130, 454,
955 455, 459, 0, 0, 468, 782, 464, 483, 440, 540,
956 354, 0, 0, 389, 593, 0, 615, 143, 585, 586,
957 582, 558, 596, 0, 557, 554, 0, 830, 826, 825,
958 823, 805, 810, 811, 0, 817, 816, 802, 803, 801,
959 820, 809, 806, 807, 808, 812, 813, 799, 800, 796,
960 797, 798, 822, 814, 815, 804, 821, 0, 818, 725,
961 353, 726, 791, 0, 245, 539, 269, 314, 0, 0,
962 0, 0, 310, 308, 282, 312, 313, 0, 0, 0,
963 0, 0, 247, 240, 0, 0, 153, 152, 0, 154,
964 155, 0, 0, 156, 0, 0, 148, 0, 214, 0,
965 217, 151, 268, 182, 0, 0, 270, 271, 0, 150,
966 332, 353, 333, 587, 293, 284, 0, 0, 146, 147,
967 142, 0, 145, 0, 249, 0, 138, 0, 353, 137,
968 436, 0, 431, 614, 612, 0, 157, 158, 0, 0,
969 0, 396, 3, 22, 0, 610, 606, 607, 609, 611,
970 608, 120, 121, 122, 123, 124, 603, 605, 602, 256,
971 257, 0, 255, 33, 34, 0, 584, 583, 32, 31,
972 41, 0, 132, 131, 140, 0, 0, 566, 0, 565,
973 242, 260, 0, 574, 259, 0, 573, 0, 267, 578,
974 0, 0, 13, 0, 0, 9, 9, 102, 72, 107,
975 713, 0, 64, 63, 71, 105, 0, 0, 103, 67,
976 580, 0, 0, 545, 0, 785, 0, 550, 0, 549,
977 0, 0, 0, 0, 537, 389, 0, 56, 541, 537,
978 563, 0, 339, 340, 0, 55, 389, 344, 343, 345,
979 338, 358, 375, 374, 456, 460, 458, 0, 463, 469,
980 484, 356, 0, 388, 390, 537, 73, 0, 0, 0,
981 537, 79, 538, 569, 593, 616, 143, 0, 0, 819,
982 824, 355, 537, 537, 0, 537, 829, 251, 0, 0,
983 0, 0, 189, 0, 0, 191, 204, 205, 0, 0,
984 0, 0, 0, 241, 188, 185, 184, 186, 0, 0,
985 0, 0, 0, 268, 0, 0, 0, 183, 0, 262,
986 187, 0, 0, 215, 0, 0, 0, 0, 0, 0,
987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
988 0, 0, 0, 0, 0, 0, 278, 280, 281, 318,
989 317, 0, 0, 0, 0, 0, 193, 535, 0, 201,
990 315, 307, 0, 782, 296, 299, 300, 0, 0, 327,
991 634, 630, 639, 0, 541, 537, 537, 537, 329, 637,
992 0, 591, 331, 0, 0, 330, 295, 0, 291, 309,
993 311, 588, 0, 292, 141, 144, 248, 136, 135, 532,
994 447, 530, 433, 0, 362, 0, 0, 363, 364, 365,
995 402, 403, 404, 401, 0, 394, 397, 0, 3, 0,
996 28, 36, 35, 46, 0, 48, 42, 781, 776, 0,
997 332, 353, 44, 333, 780, 50, 139, 263, 572, 571,
998 267, 575, 0, 19, 21, 68, 108, 316, 0, 663,
999 70, 661, 413, 0, 409, 408, 181, 0, 180, 542,
1000 579, 0, 755, 756, 0, 750, 353, 0, 749, 751,
1001 783, 765, 0, 0, 577, 548, 547, 0, 0, 562,
1002 0, 379, 370, 561, 0, 785, 551, 341, 372, 385,
1003 389, 457, 592, 593, 782, 0, 782, 594, 470, 471,
1004 473, 782, 476, 475, 0, 0, 0, 0, 386, 785,
1005 748, 0, 0, 0, 785, 748, 537, 76, 537, 82,
1006 828, 827, 791, 791, 791, 250, 0, 0, 0, 591,
1007 0, 0, 0, 0, 353, 0, 0, 0, 274, 0,
1008 272, 273, 0, 212, 149, 245, 592, 593, 246, 247,
1009 0, 0, 414, 445, 0, 239, 238, 740, 739, 0,
1010 236, 235, 233, 234, 232, 231, 230, 227, 228, 229,
1011 225, 226, 220, 221, 222, 223, 224, 218, 219, 0,
1012 0, 0, 0, 0, 0, 195, 209, 0, 0, 194,
1013 537, 537, 0, 537, 534, 624, 0, 0, 0, 0,
1014 298, 0, 302, 0, 304, 0, 633, 632, 629, 628,
1015 781, 0, 0, 648, 0, 0, 785, 328, 785, 635,
1016 537, 748, 541, 634, 630, 0, 0, 537, 0, 0,
1017 0, 0, 0, 0, 448, 0, 447, 179, 178, 177,
1018 176, 396, 0, 0, 25, 0, 26, 47, 0, 40,
1019 0, 634, 630, 0, 772, 537, 775, 777, 0, 773,
1020 774, 454, 0, 18, 20, 125, 113, 126, 127, 0,
1021 106, 109, 0, 0, 0, 0, 662, 654, 410, 0,
1022 104, 546, 543, 754, 771, 760, 758, 0, 544, 753,
1023 770, 759, 757, 752, 784, 767, 778, 768, 761, 766,
1024 787, 0, 377, 560, 559, 383, 382, 480, 0, 479,
1025 782, 782, 782, 0, 504, 593, 0, 0, 497, 0,
1026 0, 507, 0, 100, 95, 0, 143, 509, 512, 0,
1027 489, 0, 98, 0, 389, 376, 0, 75, 0, 0,
1028 0, 0, 81, 0, 785, 748, 785, 748, 793, 792,
1029 794, 283, 190, 192, 289, 290, 0, 0, 0, 0,
1030 273, 276, 0, 0, 0, 0, 213, 0, 277, 279,
1031 207, 206, 197, 0, 196, 211, 0, 0, 621, 619,
1032 0, 622, 541, 202, 0, 0, 305, 0, 0, 0,
1033 631, 627, 638, 537, 647, 645, 646, 636, 785, 0,
1034 643, 0, 589, 590, 0, 294, 533, 531, 435, 0,
1035 395, 393, 245, 0, 23, 43, 49, 633, 629, 634,
1036 630, 0, 553, 0, 537, 635, 51, 0, 111, 0,
1037 115, 0, 117, 0, 119, 0, 714, 656, 0, 411,
1038 634, 630, 0, 268, 0, 587, 779, 0, 0, 788,
1039 789, 0, 0, 0, 380, 0, 0, 0, 482, 481,
1040 474, 537, 748, 503, 498, 101, 508, 389, 389, 495,
1041 496, 493, 494, 537, 748, 245, 592, 0, 375, 96,
1042 499, 510, 515, 516, 375, 375, 0, 0, 375, 94,
1043 500, 513, 375, 490, 491, 492, 389, 0, 441, 387,
1044 537, 253, 252, 254, 537, 78, 0, 84, 0, 0,
1045 0, 0, 0, 0, 418, 0, 0, 415, 216, 237,
1046 0, 198, 199, 208, 210, 620, 618, 625, 623, 0,
1047 203, 0, 297, 301, 303, 785, 641, 537, 642, 432,
1048 0, 398, 400, 633, 629, 558, 635, 112, 110, 0,
1049 0, 0, 0, 0, 169, 655, 0, 657, 658, 412,
1050 0, 590, 769, 763, 764, 762, 0, 786, 378, 384,
1051 0, 477, 478, 472, 785, 0, 407, 407, 785, 0,
1052 0, 0, 389, 389, 0, 389, 389, 0, 389, 0,
1053 407, 0, 428, 785, 785, 537, 537, 0, 0, 0,
1054 0, 416, 0, 0, 0, 200, 626, 306, 644, 785,
1055 0, 114, 116, 118, 721, 715, 719, 405, 0, 664,
1056 0, 245, 592, 593, 665, 679, 682, 685, 654, 0,
1057 0, 0, 0, 0, 0, 246, 711, 716, 0, 736,
1058 0, 673, 0, 0, 353, 0, 650, 671, 678, 649,
1059 672, 712, 0, 659, 273, 790, 381, 91, 537, 502,
1060 506, 93, 537, 389, 389, 524, 407, 245, 592, 0,
1061 511, 517, 518, 375, 375, 407, 407, 0, 407, 514,
1062 501, 0, 74, 80, 785, 785, 285, 286, 287, 288,
1063 0, 419, 536, 640, 399, 654, 720, 0, 660, 653,
1064 172, 729, 731, 732, 654, 654, 654, 0, 0, 0,
1065 697, 699, 700, 701, 0, 0, 0, 730, 0, 324,
1066 737, 0, 674, 322, 375, 0, 323, 0, 375, 0,
1067 0, 0, 170, 652, 651, 675, 710, 709, 785, 785,
1068 523, 520, 522, 0, 0, 389, 389, 389, 519, 521,
1069 505, 430, 0, 429, 424, 77, 83, 417, 0, 406,
1070 0, 0, 669, 668, 0, 0, 0, 0, 693, 0,
1071 702, 0, 708, 717, 0, 320, 321, 0, 0, 0,
1072 319, 171, 654, 90, 92, 389, 389, 529, 407, 407,
1073 0, 0, 443, 0, 722, 161, 0, 666, 680, 0,
1074 683, 656, 734, 686, 0, 168, 0, 353, 0, 0,
1075 0, 698, 707, 0, 0, 676, 528, 526, 525, 527,
1076 427, 426, 420, 65, 68, 0, 0, 0, 0, 654,
1077 0, 655, 0, 735, 654, 733, 690, 375, 695, 694,
1078 718, 741, 0, 655, 0, 425, 727, 728, 723, 162,
1079 667, 173, 655, 175, 670, 159, 0, 0, 0, 654,
1080 389, 0, 0, 0, 742, 743, 703, 677, 423, 0,
1081 422, 655, 656, 681, 0, 684, 165, 0, 164, 691,
1082 0, 696, 0, 741, 0, 0, 421, 724, 174, 160,
1083 687, 655, 166, 0, 0, 704, 744, 0, 692, 0,
1084 745, 0, 0, 0, 167, 746, 0, 705, 688, 0,
1085 0, 0, 747, 706, 655, 689, 0, 0, 0
1088 static const short yydefgoto[] = { 1527,
1089 413, 2, 414, 165, 655, 315, 233, 3, 4, 38,
1090 629, 363, 932, 382, 40, 933, 392, 635, 636, 637,
1091 42, 43, 422, 171, 169, 44, 934, 721, 956, 726,
1092 958, 46, 935, 936, 172, 173, 423, 657, 881, 882,
1093 610, 883, 221, 47, 48, 49, 341, 316, 317, 318,
1094 1251, 1468, 1408, 1488, 1417, 1510, 1166, 1463, 1483, 357,
1095 837, 319, 566, 800, 320, 321, 358, 323, 51, 240,
1096 384, 402, 52, 53, 324, 526, 325, 326, 327, 328,
1097 424, 329, 1252, 463, 587, 330, 1253, 55, 204, 640,
1098 331, 205, 504, 206, 184, 197, 59, 446, 185, 1063,
1099 464, 1181, 198, 1064, 60, 947, 474, 61, 62, 625,
1100 626, 627, 1229, 429, 763, 764, 1434, 1435, 1403, 1364,
1101 1292, 63, 614, 352, 471, 1203, 1365, 976, 846, 64,
1102 65, 66, 67, 225, 68, 69, 70, 227, 709, 710,
1103 711, 712, 229, 716, 717, 940, 941, 942, 1091, 1101,
1104 1092, 1281, 1093, 1094, 1282, 1283, 611, 612, 567, 827,
1105 333, 432, 433, 178, 186, 72, 73, 74, 187, 188,
1106 157, 76, 131, 334, 335, 336, 78, 337, 80, 714,
1107 122, 123, 124, 104, 81, 338, 805, 806, 822, 590,
1108 1256, 1257, 1373, 1230, 1167, 1168, 1169, 661, 1258, 888,
1109 1259, 1315, 1440, 1375, 1410, 1260, 1261, 1393, 1454, 1316,
1110 1441, 1317, 1443, 1318, 1445, 1508, 1522, 1470, 1502, 1421,
1111 1472, 1380, 425, 658, 1163, 1262, 1329, 1424, 1226, 1227,
1112 1306, 1438, 1482, 1419, 1405, 1263, 1414, 1332, 770, 1474,
1113 1475, 1476, 1517, 678, 679, 910, 1059, 1176, 680, 681,
1114 682, 906, 683, 150, 908, 685, 1061, 1062, 497, 83,
1118 static const short yypact[] = { 114,
1119 129,-32768,-32768, 10013,-32768, 40, 57, 45, 73, 68,
1120 155,-32768,-32768, 1229,-32768,-32768, 202, 239, 260,-32768,
1121 -32768,-32768, 1097, 1036, 915, 10243,-32768, 264, 168,-32768,
1122 2214, 2214,-32768, 2014,-32768, 10013, 323,-32768, 317, 182,
1123 10072,-32768,-32768, 311,-32768, 398, 366, 389,-32768,-32768,
1124 -32768,-32768, 246, 3367,-32768, 4571,-32768, 975, 284,-32768,
1125 414,-32768,-32768, 1604,-32768,-32768, 415,-32768,-32768, 438,
1126 10673,-32768,-32768,-32768, 1694,-32768,-32768,-32768, 2132,-32768,
1127 -32768, 609, 7413, 377,-32768,-32768, 8981,-32768, 8529,-32768,
1128 8529, 8529, 10450,-32768, 45, 73, 264, 447, 408, 467,
1129 389,-32768, 609,-32768, 609, 8981, 8981, 450,-32768,-32768,
1130 -32768,-32768,-32768, 207, 528, 419, 503, 556, 537, 578,
1131 -32768,-32768, 814,-32768, 1121, 45, 73, 508, 264, 447,
1132 -32768, 1164, 1000,-32768, 495,-32768, 5263, 5847, 1894,-32768,
1133 8529,-32768, 8981, 4134,-32768, 2240, 649, 4134,-32768, 1259,
1134 4258, 4258, 2014, 531, 552, 570, 559, 562,-32768,-32768,
1135 670,-32768, 573,-32768, 5005, 40,-32768,-32768,-32768, 694,
1136 130, 370, 642,-32768,-32768, 610, 212,-32768,-32768, 4314,
1137 4314, 5429, 1694, 399,-32768,-32768, 256,-32768,-32768, 2528,
1138 -32768,-32768,-32768,-32768,-32768, 975, 492,-32768, 414, 1694,
1139 -32768,-32768,-32768, 1501, 975,-32768, 414,-32768, 5263,-32768,
1140 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1141 -32768, 389, 1289, 1289, 415,-32768,-32768,-32768,-32768,-32768,
1142 767, 609, 627, 414, 441, 1133,-32768, 338,-32768,-32768,
1143 -32768,-32768,-32768, 4666,-32768,-32768, 231,-32768, 632, 645,
1144 -32768,-32768,-32768,-32768, 674,-32768,-32768,-32768,-32768,-32768,
1145 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1146 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 620,-32768,-32768,
1147 767, 10673, 820, 8529,-32768, 668,-32768,-32768, 9596, 9683,
1148 9770, 9770,-32768,-32768,-32768,-32768,-32768, 679, 704, 708,
1149 714, 719, 447, 9068, 1259, 9770,-32768,-32768, 9770,-32768,
1150 -32768, 9770, 6885,-32768, 9770, 270,-32768, 9770,-32768, 9155,
1151 -32768, 10546,-32768, 1405, 3136, 9242,-32768, 786, 1307,-32768,
1152 752, 3651, 3496,-32768, 360,-32768, 1295, 2118,-32768,-32768,
1153 -32768, 270,-32768, 270,-32768, 270,-32768, 5263, 1999,-32768,
1154 -32768, 1259, 697,-32768,-32768, 693, 745, 10765, 705, 716,
1155 724, 1784, 573,-32768, 508,-32768,-32768,-32768,-32768,-32768,
1156 -32768, 528, 419, 503, 556, 537,-32768,-32768,-32768, 45,
1157 73, 784,-32768,-32768,-32768, 1000,-32768,-32768,-32768,-32768,
1158 -32768, 10666,-32768,-32768,-32768, 270, 270,-32768, 536,-32768,
1159 -32768,-32768, 4134,-32768,-32768, 4134,-32768, 732,-32768,-32768,
1160 4666, 36, 741, 748, 10450,-32768,-32768,-32768,-32768,-32768,
1161 -32768, 124,-32768,-32768,-32768,-32768, 6977, 9068,-32768,-32768,
1162 -32768, 9068, 750,-32768, 6213, 103, 4770,-32768, 4770,-32768,
1163 4797, 4797, 5429, 757,-32768, 414, 5263,-32768, 761,-32768,
1164 -32768, 5108, 1501, 975, 5263,-32768, 414,-32768,-32768, 414,
1165 1501,-32768, 673,-32768,-32768, 389,-32768, 1289,-32768, 1596,
1166 -32768, 767, 670, 762, 414,-32768,-32768, 801, 807, 809,
1167 -32768,-32768,-32768,-32768, 580,-32768, 374, 772, 775,-32768,
1168 -32768, 767,-32768,-32768, 551,-32768,-32768,-32768, 270, 9068,
1169 668, 6885,-32768, 451, 6885,-32768,-32768,-32768, 8981, 10680,
1170 10680, 10680, 10680, 10833,-32768,-32768,-32768,-32768, 782, 9857,
1171 9857, 6885, 785, 531, 789, 841, 795,-32768, 8981,-32768,
1172 -32768, 6694, 6885,-32768, 9068, 9068, 7069, 9068, 9068, 9068,
1173 9068, 9068, 9068, 9068, 9068, 9068, 9068, 9068, 9068, 9068,
1174 9068, 9068, 9068, 9068, 9068, 9068,-32768,-32768,-32768,-32768,
1175 -32768, 9068, 9068, 9068, 8981, 4897, 439, 876, 7777,-32768,
1176 -32768,-32768, 859, 914, 491, 516, 525, 1537, 649,-32768,
1177 1863, 1863,-32768, 2957, 813, 834, 882,-32768,-32768, 269,
1178 8337, 648,-32768, 730, 609,-32768,-32768, 9068,-32768,-32768,
1179 -32768,-32768, 200,-32768,-32768,-32768,-32768,-32768,-32768, 872,
1180 881,-32768,-32768, 1259,-32768, 7506, 7598,-32768,-32768,-32768,
1181 -32768,-32768,-32768,-32768, 78,-32768, 849, 835, 573, 884,
1182 -32768,-32768,-32768, 1058, 187, 885,-32768,-32768, 3026, 10506,
1183 3026, 10131, 1604, 5167,-32768, 886,-32768,-32768,-32768,-32768,
1184 848,-32768, 898,-32768,-32768, 311, 322, 903, 841,-32768,
1185 -32768,-32768,-32768, 6415, 10833,-32768, 745, 866, 10765,-32768,
1186 -32768, 867,-32768,-32768, 869, 188, 10187, 870,-32768, 245,
1187 10299, 922, 923, 526,-32768,-32768,-32768, 4770, 4770,-32768,
1188 5108, 926,-32768,-32768, 883, 103,-32768, 1501,-32768, 933,
1189 414,-32768, 419, 503,-32768, 906,-32768, 578, 942,-32768,
1190 -32768, 220,-32768,-32768, 1330, 3254, 58, 66,-32768, 103,
1191 1767, 8981, 8981, 8981, 103, 1767,-32768,-32768,-32768,-32768,
1192 -32768,-32768, 618, 618, 618,-32768, 899, 904, 9335, 882,
1193 905, 913, 917, 948, 4231, 955, 958, 961,-32768, 934,
1194 -32768,-32768, 941,-32768,-32768, 980, 684, 717, 286, 201,
1195 9068, 990,-32768, 994, 945, 10833, 10833,-32768,-32768, 993,
1196 3688, 4340, 3916, 4445, 4416, 2273, 2982, 2009, 2009, 2009,
1197 1064, 1064, 1243, 1243, 664, 664, 664,-32768,-32768, 950,
1198 957, 962, 966, 967, 10680, 439,-32768, 6977, 9068,-32768,
1199 -32768,-32768, 9068,-32768,-32768, 977, 9770, 971, 1010, 1031,
1200 -32768, 9068,-32768, 9068,-32768, 9068, 3128,-32768, 3128,-32768,
1201 205, 995, 999,-32768, 1007, 10680, 103,-32768, 103, 3833,
1202 -32768, 1767, 1008, 8616, 8616, 6002, 1013, 9155, 1017, 3489,
1203 2118, 773, 1018, 9068, 1259, 992, 881,-32768, 10833,-32768,
1204 10833, 1784, 1021, 9422,-32768, 1029,-32768,-32768, 10666,-32768,
1205 10680, 2070, 2070, 3775,-32768,-32768,-32768,-32768, 2528,-32768,
1206 -32768, 59, 9068,-32768,-32768, 528,-32768, 556, 537, 9068,
1207 1069,-32768, 553, 591, 611, 841,-32768,-32768,-32768, 31,
1208 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 8433,-32768,-32768,
1209 -32768,-32768,-32768,-32768,-32768,-32768, 923, 1076,-32768,-32768,
1210 -32768, 10680,-32768,-32768,-32768,-32768, 1085,-32768, 8981,-32768,
1211 -32768,-32768,-32768, 1404,-32768, 608, 1191, 1082,-32768, 9068,
1212 5357,-32768, 3428, 291, 291, 365, 622, 1689, 10344, 5508,
1213 -32768, 110, 291, 1095, 414,-32768, 6977,-32768, 1049, 270,
1214 270, 270,-32768, 1051, 103, 1767, 103, 1767,-32768,-32768,
1215 -32768,-32768,-32768,-32768,-32768,-32768, 1070, 1072, 1077, 1078,
1216 848,-32768, 10697, 6977, 6510, 1073,-32768, 9068,-32768,-32768,
1217 -32768,-32768, 388, 1071,-32768,-32768, 1083, 42, 633, 633,
1218 1074, 633,-32768,-32768, 9770, 1175,-32768, 1087, 1089, 1093,
1219 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 103, 1099,
1220 -32768, 1092,-32768,-32768, 3635,-32768, 10833,-32768,-32768, 1096,
1221 -32768,-32768, 142, 1100,-32768,-32768,-32768, 2358, 2358, 2480,
1222 2480, 3775,-32768, 2528,-32768, 2623, 10546, 1102,-32768, 322,
1223 -32768, 9068,-32768, 9068,-32768, 9068,-32768, 64, 6602,-32768,
1224 8709, 8709, 6098, 305, 1106, 356,-32768, 6977, 6789,-32768,
1225 -32768, 151, 6977, 6977,-32768, 1108, 1109, 1596,-32768,-32768,
1226 -32768,-32768, 1767, 10833,-32768,-32768,-32768, 414, 414,-32768,
1227 -32768,-32768,-32768,-32768, 1767, 297, 727, 9068, 673,-32768,
1228 1160,-32768,-32768,-32768, 181, 879, 2132, 649, 936, 291,
1229 1163,-32768, 1055,-32768,-32768,-32768, 414, 5635,-32768,-32768,
1230 -32768,-32768,-32768,-32768,-32768,-32768, 1115,-32768, 1119, 9068,
1231 9068, 9068, 9068, 6977,-32768, 9068, 1168,-32768,-32768, 10833,
1232 9068,-32768, 388,-32768,-32768,-32768,-32768,-32768,-32768, 1122,
1233 -32768, 1189,-32768,-32768,-32768, 103,-32768,-32768,-32768,-32768,
1234 9068,-32768,-32768, 2358, 2358,-32768, 2623,-32768,-32768, 1129,
1235 1130, 1132, 1147, 1259,-32768,-32768, 5908, 1217,-32768,-32768,
1236 1144, 1610,-32768,-32768,-32768,-32768, 10680,-32768,-32768,-32768,
1237 6977,-32768,-32768,-32768, 103, 1145, 1192, 1192, 103, 1146,
1238 9068, 9068, 10675, 414, 3067, 414, 414, 780, 414, 4911,
1239 1192, 7846,-32768, 103, 103,-32768,-32768, 1157, 1166, 1167,
1240 1170,-32768, 10788, 6977, 1161,-32768,-32768,-32768,-32768, 103,
1241 1171,-32768,-32768,-32768,-32768, 1147,-32768,-32768, 692,-32768,
1242 158, 1207, 766, 781,-32768,-32768,-32768,-32768,-32768, 9068,
1243 1226, 1234, 1235, 8802, 518, 428,-32768,-32768, 8894, 1296,
1244 1245,-32768, 5246, 10405, 10551, 5754,-32768,-32768, 1288,-32768,
1245 -32768,-32768, 7941,-32768, 436,-32768,-32768,-32768,-32768,-32768,
1246 -32768,-32768,-32768, 10675, 10675,-32768, 1192, 605, 893, 9068,
1247 -32768,-32768,-32768, 673, 673, 1192, 1192, 580, 1192,-32768,
1248 -32768, 4001,-32768,-32768, 103, 103,-32768,-32768,-32768,-32768,
1249 6977,-32768,-32768,-32768,-32768,-32768,-32768, 1259,-32768,-32768,
1250 -32768,-32768,-32768,-32768,-32768,-32768, 841, 1213, 1215, 10584,
1251 -32768,-32768,-32768,-32768, 1253, 9068, 1261,-32768, 841,-32768,
1252 -32768, 1236,-32768,-32768, 673, 707,-32768, 779, 673, 9509,
1253 788, 164,-32768,-32768,-32768,-32768,-32768,-32768, 103, 103,
1254 -32768,-32768,-32768, 9068, 9068, 10675, 414, 414,-32768,-32768,
1255 -32768,-32768, 7690,-32768,-32768,-32768,-32768,-32768, 1237,-32768,
1256 638, 638,-32768,-32768, 1321, 6323, 8981, 9068,-32768, 8051,
1257 -32768, 1281,-32768,-32768, 670,-32768,-32768, 9944, 9944, 7161,
1258 -32768,-32768, 841,-32768,-32768, 10675, 10675,-32768, 1192, 1192,
1259 1239, 10719, 1246, 5696,-32768,-32768, 8981,-32768,-32768, 8243,
1260 -32768, 64,-32768,-32768, 1290,-32768, 1240, 373, 5263, 10811,
1261 8051,-32768,-32768, 1147, 44,-32768,-32768,-32768,-32768,-32768,
1262 -32768,-32768,-32768, 398, 311, 1244, 1247, 841, 1251, 841,
1263 8147,-32768, 647,-32768,-32768,-32768,-32768, 673,-32768,-32768,
1264 1147, 1352, 1305,-32768, 132,-32768,-32768,-32768,-32768,-32768,
1265 -32768,-32768,-32768,-32768,-32768,-32768, 9068, 1306, 7253, 841,
1266 414, 8051, 1275, 257, 1310,-32768,-32768,-32768,-32768, 124,
1267 -32768,-32768, 64,-32768, 1264,-32768,-32768, 1314,-32768,-32768,
1268 1312,-32768, 9068, 1352, 1332, 1352,-32768,-32768,-32768,-32768,
1269 -32768,-32768,-32768, 1272, 274,-32768,-32768, 7345,-32768, 6977,
1270 -32768, 1380, 1333, 1285,-32768,-32768, 171,-32768,-32768, 1386,
1271 1340, 8147,-32768,-32768,-32768,-32768, 1412, 1413,-32768
1274 static const short yypgoto[] = {-32768,
1275 1415,-32768, -329,-32768, 1001, 9, 10, 1414,-32768, 69,
1276 -32768,-32768, 226, 1056,-32768, 393,-32768,-32768,-32768, 565,
1277 -32768, 1260, -657, -8, -649, 1262, 136,-32768,-32768,-32768,
1278 -32768,-32768, 489, 496,-32768,-32768,-32768,-32768,-32768, 394,
1279 219,-32768,-32768,-32768, 5249, 77, 146, -30, 907,-32768,
1280 1490,-32768, 61,-32768, -1303,-32768, -1330, -83,-32768, 1186,
1281 -230, -249,-32768, -767, 3615, 83, 1019, 3530,-32768, -97,
1282 -79, 15, -49, 288,-32768,-32768,-32768, -313,-32768, -157,
1283 -32768,-32768, -1173, -51, -330, 1866, 119, 808, -163, 22,
1284 80, -188, -4, -96, -917, 186,-32768, -70,-32768,-32768,
1285 -176,-32768,-32768,-32768,-32768,-32768, 845, 540, 11,-32768,
1286 590,-32768,-32768, -1107, -415, 794,-32768,-32768,-32768,-32768,
1287 -32768, -47,-32768,-32768,-32768,-32768,-32768,-32768, 598, -374,
1288 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1223,-32768, 381,
1289 542,-32768,-32768,-32768,-32768, 344, -904, 534,-32768,-32768,
1290 -32768,-32768,-32768, 530,-32768, 273, 856, 629, 910, 2154,
1291 34, 3, -421, 1291, 1443, -461,-32768, 17,-32768, 2697,
1292 -128, 328, -55, 4100, 1148,-32768, 4430, 1823, 2703, -5,
1293 -110,-32768, 1357,-32768, 4154, 2763, -422,-32768, 4073,-32768,
1294 -32768, 227, -868, -1069,-32768,-32768, 318, 8, -348,-32768,
1295 -32768,-32768,-32768, -1246,-32768, -1199, -1315,-32768,-32768,-32768,
1296 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1297 -32768,-32768, 41,-32768,-32768,-32768,-32768,-32768, 67, -1205,
1298 -32768,-32768,-32768, -66,-32768,-32768,-32768,-32768, -1307, 1,
1299 -32768, 6,-32768, -682, -371, 597,-32768,-32768,-32768,-32768,
1300 -386,-32768, -382, -158,-32768, 978, 330,-32768, 176,-32768,
1305 #define YYLAST 10918
1308 static const short yytable[] = { 58,
1309 886, 592, 183, 412, 234, 645, 875, 454, 713, 646,
1310 208, 666, 36, 37, 379, 480, 283, 643, 121, 1048,
1311 1307, 139, 404, 407, 601, 56, 1075, 695, 985, 241,
1312 102, 58, 453, 628, 387, 1104, 58, 71, 949, 503,
1313 506, 461, 472, 954, 36, 37, 571, 138, 155, 36,
1314 37, 196, 388, 389, 571, 177, 1345, 56, 342, 71,
1315 344, 346, 56, 1348, 144, 148, 231, 470, 1415, 71,
1316 534, 211, 385, 662, 71, 1330, 571, 390, 281, 1270,
1317 1271, 1444, 332, 57, 332, 393, 332, 332, 349, 580,
1318 1049, 208, 492, 1291, 1442, 944, 241, 1164, 245, 88,
1319 85, 332, 332, 1439, 160, 57, 1452, 459, 462, 167,
1320 396, 483, 397, -1, 138, 57, 282, 604, -45, 89,
1321 57, 354, 54, -45, 659, 1464, 71, 90, -2, 457,
1322 419, 87, 1479, 196, -45, 739, 332, 852, 332, 45,
1323 241, 1050, 92, 492, 137, 653, 1426, 91, 208, 1010,
1324 86, 1135, 1499, 1453, 54, 238, 208, 208, 177, 54,
1325 58, 136, 280, 825, 684, 1489, 405, 408, 945, 1353,
1326 1105, 45, 57, 740, 1165, 946, 45, 753, 1359, 1360,
1327 1422, 1361, 660, 208, 403, 406, 56, 853, -316, 177,
1328 -316, 195, 420, 1461, 420, 884, 155, 668, 71, 894,
1329 1514, 1151, 1413, 93, 675, -325, 1464, 15, 16, 211,
1330 1177, 348, 823, 437, 439, 1132, 894, 211, 1310, 823,
1331 1106, 1450, 142, 1490, 1310, 421, 922, 421, 347, 39,
1332 1520, 575, 100, 208, 8, 485, 343, 345, 293, -325,
1333 163, 114, 143, -325, 57, 1307, 859, 895, 245, 576,
1334 896, 1152, -781, 499, 27, 142, 900, 923, 568, 434,
1335 1178, 39, 860, -124, 895, 364, 39, 896, 1311, 737,
1336 693, 365, 1492, 1117, 1392, 1119, -325, 231, 699, 332,
1337 1521, 164, 220, 54, 208, 897, 395, 129, 130, 601,
1338 698, 1429, 1430, -541, 645, 106, 608, 1104, 907, 856,
1339 45, 208, 897, -541, 901, 435, 632, 902, 332, 385,
1340 887, 486, 404, 407, 754, 718, 831, 15, 16, 1494,
1341 281, 156, -375, 487, 876, 703, 704, 525, 231, 529,
1342 633, 790, 107, 792, 793, 1336, 1512, 1341, 141, -541,
1343 176, 377, 903, 209, 210, 339, 592, 340, -123, -541,
1344 449, -375, -265, 108, 245, -375, 459, 462, 282, 1191,
1345 141, 158, 832, 833, 459, 1216, 1495, 843, 401, 877,
1346 1319, 87, 1465, 507, 508, 462, 27, 162, 878, 879,
1347 202, 203, 986, 1513, 1478, 481, 14, 642, 516, 1080,
1348 1186, 517, 701, 1484, 518, 462, 41, 528, -265, -265,
1349 531, -375, 1190, -581, 280, 208, 208, 597, 570, 21,
1350 139, 1012, 1498, 208, -258, 880, 161, 426, 24, 168,
1351 580, 729, 170, 1081, 208, 644, 174, 1082, 41, 498,
1352 677, 482, 1509, 41, 427, 797, 138, 1369, 156, 156,
1353 156, 465, 467, 175, 208, 19, 1371, 1372, 71, -581,
1354 -581, 284, 798, 598, 479, 1526, 405, 408, 447, 448,
1355 1083, 530, 713, 428, 823, -581, 739, 730, 644, 156,
1356 211, 641, 645, 367, 688, 689, 646, 226, 158, 158,
1357 158, 799, 1131, -267, 643, 211, 797, 605, 476, 606,
1358 1328, 607, 823, 89, 57, 90, 228, 332, 580, 568,
1359 332, 142, 141, 798, 332, 745, 745, 745, 745, 158,
1360 285, 380, 381, 10, 641, 91, 525, 332, 351, 525,
1361 94, 109, 110, 515, 332, 353, 823, 601, 332, -267,
1362 -267, 1110, 799, 137, 477, 405, 750, 1047, 811, 126,
1363 127, 647, 648, 362, 739, -261, 918, 525, 920, 22,
1364 136, 455, 456, 924, 126, 127, 492, 368, 1125, 1128,
1365 332, 281, 27, 813, 28, 303, 1136, 1137, 987, 1139,
1366 391, 1140, 815, 911, 111, 112, 1469, 91, 884, 642,
1367 624, 998, 366, 999, 812, 1000, 677, 865, 534, 870,
1368 871, 370, 129, 130, 208, 199, 33, 207, 1326, 282,
1369 1041, 459, 516, 517, 379, 839, 713, 129, 130, 814,
1370 369, 245, 8, 9, 817, 819, 486, 644, 816, 912,
1371 604, 126, 127, 1024, 644, 871, 483, 727, 121, 208,
1372 141, 237, 371, 1128, 90, 196, 126, 127, 1043, 231,
1373 -258, 483, 1173, 1175, 736, 280, 1042, 1179, 1180, 1038,
1374 208, 885, 126, 127, 91, 1072, -537, 740, 1045, -537,
1375 823, 409, 90, 641, 176, 129, 130, 1354, 410, 1084,
1376 641, -576, 27, 728, 129, 130, 642, 199, 207, 87,
1377 288, 823, 91, -7, 1044, 1406, 702, 27, 493, 129,
1378 130, 950, 951, 952, 1466, 828, 418, 208, 494, 15,
1379 16, 1073, 430, 801, 1046, 129, 130, -537, 1212, -537,
1380 -537, 58, -537, 802, 644, 1085, 642, 332, 332, 332,
1381 473, 642, 431, -537, 931, -537, 488, 803, 156, 156,
1382 156, 1407, 491, 8, 9, 207, 490, 939, 88, 489,
1383 1467, -537, -537, 460, 207, -537, -121, 555, 556, 71,
1384 762, 1308, 1309, 839, 644, 126, 127, -537, 89, 644,
1385 641, 500, 1068, 1069, 1070, 1267, 447, 1386, 158, 158,
1386 158, 90, 509, 475, 202, 203, 8, 9, 510, -122,
1387 14, 88, 511, 126, 1288, 1456, 129, 130, 512, 1192,
1388 745, 91, 937, 513, 988, 57, 571, 1480, 1302, 580,
1389 641, 89, 615, 21, 616, 641, 27, 613, 129, 130,
1390 237, 1160, 24, 1161, 618, 1162, 372, 373, 374, 241,
1391 88, 745, 581, 126, 127, 619, 719, 642, 1313, 129,
1392 130, 677, 582, 620, 938, 90, 129, 130, 455, 1387,
1393 89, 651, 583, 1314, 631, 584, 585, 447, 1391, 405,
1394 750, -6, 858, 486, 642, 91, 745, 245, 654, 642,
1395 486, 872, 671, 1078, 1079, 644, 690, 817, 819, 644,
1396 375, 376, 1107, 694, 27, 722, 129, 130, 155, 126,
1397 127, 723, 762, 724, 731, 1368, 1090, 732, 207, 994,
1398 493, 749, 644, 677, 751, 1028, 1029, 644, 752, 660,
1399 494, 404, 407, -326, 754, 15, 16, 745, 959, 960,
1400 961, 641, 1055, 809, 332, 641, 516, 517, 126, 127,
1401 1221, 810, 404, 407, 740, 824, 58, 826, 58, 828,
1402 27, 644, 129, 130, 196, 58, 844, -326, 641, 931,
1403 845, -326, 854, 641, 857, 855, 801, 88, 931, 861,
1404 873, 642, 939, 642, 939, 1355, 802, -261, 874, 128,
1405 -99, 939, 15, 16, 71, 420, 71, 89, 1374, 27,
1406 803, 129, 130, 71, -326, 891, 892, 641, 893, 899,
1407 1384, 201, 202, 203, 241, 475, -780, 909, 14, 644,
1408 913, 644, 460, 207, -99, 914, 475, 916, -99, 919,
1409 460, 921, 285, 380, 381, 10, 19, 937, 962, 937,
1410 57, 21, 57, 963, 964, 937, 937, 645, 1194, 57,
1411 24, 1437, 965, 967, 1196, 1197, 966, 642, 1194, 1199,
1412 968, -99, 1197, 969, 885, 641, 970, 641, 115, 116,
1413 117, 22, -120, 971, 1374, 405, 408, 241, 677, 938,
1414 972, 938, 974, 975, 977, 978, 28, 303, 938, 979,
1415 372, 373, 374, 1154, 1155, 644, 405, 1171, 642, 980,
1416 624, 993, 981, 1089, 1099, 982, 983, 1141, 997, -97,
1417 642, 15, 16, 995, 1154, 1155, 644, 740, 33, 1459,
1418 27, 1374, 118, 119, 1515, 1112, 1113, 1114, 996, 94,
1419 109, 110, 1019, 58, 1003, 322, 644, 322, 1004, 322,
1420 322, 641, 27, -97, 375, 376, 931, -97, 644, 1005,
1421 1011, 1374, 1013, 115, 116, 117, 1014, 1016, 1040, 939,
1422 1022, 662, 641, 516, 517, 94, 109, 110, 478, 1025,
1423 1058, 71, 550, 551, 552, 553, 554, 555, 556, 1065,
1424 -97, 156, 641, 111, 112, 113, 135, 1108, 1111, 322,
1425 1115, 322, 1255, 1120, 641, 1121, 285, 380, 381, 10,
1426 1122, 1123, 745, 238, 22, 1249, 1250, 118, 119, 199,
1427 1133, 207, 1142, 1129, 937, 156, 1138, 57, 1254, 111,
1428 112, 158, 1134, 1127, 126, 127, 1143, 58, 1144, 639,
1429 71, 1335, 1145, 1335, 1149, 22, 1150, 208, 1148, 1153,
1430 931, 1158, 236, 1357, 1358, 1172, 207, 1182, 1183, 1195,
1431 28, 303, 1200, 939, 1206, 158, 938, 1425, 1207, 492,
1432 1214, 94, 95, 96, 1217, 71, 1218, 460, 1222, 1223,
1433 475, 1224, 639, 1225, 1255, 27, 57, 129, 130, 196,
1434 1164, 1255, 33, 1265, 1269, 1273, 427, 1249, 1255, 404,
1435 407, 94, 109, 110, 1249, 1250, 1297, 1127, 457, 1312,
1436 1254, 1249, 1250, 1303, 487, 1298, 1299, 1254, 937, 1300,
1437 1305, 57, 71, 27, 1254, 97, 98, 99, 1321, 71,
1438 692, 94, 95, 96, 1322, 1323, 71, 285, 8, 9,
1439 10, 700, 322, 1346, 1331, 1333, 1376, 572, 1377, 285,
1440 380, 381, 10, 1381, 573, 111, 112, 156, 156, 156,
1441 938, 1383, 514, 552, 553, 554, 555, 556, 57, 1385,
1442 1404, 528, 115, 703, 704, 57, 22, 1411, 156, 156,
1443 156, 1423, 57, 236, 1433, 97, 98, 1431, 22, 1447,
1444 1446, 28, 303, 1457, 1055, 236, 1458, 158, 158, 158,
1445 1460, 27, 1473, 28, 303, 1477, 1486, 1448, 1493, 1496,
1446 208, 1255, 1418, 1500, 1501, 1255, 1503, 1471, 158, 158,
1447 158, 1511, 1228, 33, 1249, 332, 118, 119, 1249, 1250,
1448 1516, 639, 1506, 1518, 1519, 574, 1523, 1254, 639, 642,
1449 1524, 1254, 1418, 405, 1171, 1255, 115, 703, 704, 71,
1450 282, 1528, 1529, 71, 1, 5, 1255, 656, 1249, 1250,
1451 630, 688, 689, 1026, 416, 1455, 417, 1100, 1076, 1249,
1452 1250, 1254, 1409, 1159, 706, 755, 1255, 644, 1525, 1338,
1453 282, 1021, 1254, 71, 1020, 665, 669, 469, 1184, 1249,
1454 1250, 1202, 557, 669, 71, 57, 280, 890, 27, 57,
1455 118, 119, 1254, 1327, 1418, 1071, 1077, 1255, 1102, 847,
1456 516, 517, 1290, 1018, 71, 796, 577, 450, 199, 378,
1457 1249, 1250, 1344, 641, 475, 1264, 280, 1497, 639, 57,
1458 1451, 558, 559, 1254, 1505, 1481, 560, 561, 562, 563,
1459 57, 1507, 282, 1057, 0, 71, 1266, 458, 202, 203,
1460 0, 0, 0, 0, 14, 0, 0, 1255, 669, 0,
1461 57, 0, 0, 0, 0, 0, 1370, 0, 639, 0,
1462 1249, 1250, 19, 639, 0, 0, 0, 21, 0, 285,
1463 126, 127, 10, 1254, 0, 917, 24, 322, 280, 0,
1464 665, 57, 0, 766, 767, 71, 771, 772, 773, 774,
1465 775, 776, 777, 778, 779, 780, 781, 782, 783, 784,
1466 785, 786, 787, 788, 789, 0, 0, 0, 22, 0,
1467 669, 0, 669, 669, 0, 236, 0, 0, 0, 0,
1468 0, 0, 0, 28, 303, 356, 360, 0, 115, 703,
1469 704, 57, 705, 0, 0, 0, 94, 95, 96, 669,
1470 212, 213, 214, 667, 0, 0, 669, 475, 475, 0,
1471 667, -267, 438, 440, 444, 33, 706, 156, 0, 0,
1472 0, 0, 0, 707, 849, 851, -267, -267, 0, 639,
1473 215, -267, 0, 639, 0, 0, 475, 0, 0, 0,
1474 27, 0, 118, 119, 0, 0, 0, -267, 27, 0,
1475 97, 98, 216, 0, 0, 0, 639, 158, 0, -267,
1476 -267, 639, -267, 915, -267, 156, 156, 156, 0, 0,
1477 0, 0, 665, 0, 0, 667, 0, 0, 0, 0,
1478 0, 1086, 1087, 9, 10, 0, 0, 948, 0, 0,
1479 0, 0, 953, -267, -267, 639, 0, -267, 217, 218,
1480 219, 0, 0, 0, 0, 158, 158, 158, 0, -267,
1481 15, 16, 0, 0, 0, -375, 0, 0, 0, 0,
1482 22, 0, 475, 475, 0, 475, 475, 0, 475, 0,
1483 322, 322, 322, 27, 0, 28, 29, 667, 0, 667,
1484 667, 1088, 0, -375, -375, 0, 0, 669, -375, 180,
1485 0, 0, 0, 639, 0, 639, 0, 0, 0, 181,
1486 8, 9, 0, 134, 12, 13, 667, 33, 673, 973,
1487 14, 0, 182, 667, 0, 0, 94, 109, 110, 1109,
1488 621, 622, 623, 199, 207, 17, 0, 18, 19, 0,
1489 0, 0, 523, 21, 1006, 0, 1007, 0, 0, 0,
1490 0, 0, 24, 475, 475, 0, 665, 669, 0, 0,
1491 0, 27, 0, 129, 130, 0, 79, 0, 0, 0,
1492 669, 0, 669, 0, 669, 0, 103, 0, 0, 639,
1493 111, 112, 0, 0, 0, 0, 0, 132, 79, 0,
1494 0, 0, 0, 146, 146, 0, 146, 0, 79, 0,
1495 639, 0, 1017, 79, 674, 0, 126, 127, 0, 0,
1496 0, 13, 669, 0, 0, 0, 190, 0, 79, 686,
1497 639, 687, 0, 438, 440, 444, 223, 0, 0, 0,
1498 0, 1037, 639, 103, 697, 475, 475, 475, 669, 0,
1499 201, 202, 203, 0, 247, 103, 0, 14, 0, 0,
1500 580, 0, 0, 0, 0, 79, 669, 27, 0, 129,
1501 130, 670, 1187, 1188, 667, 19, 0, 103, 0, 0,
1502 21, 0, 1116, 581, 1118, 475, 475, 0, 0, 24,
1503 0, 0, 0, 582, 0, 0, 0, 0, 1074, 0,
1504 132, 1201, 0, 583, 394, 132, 584, 585, 0, 190,
1505 103, 0, 0, 0, 0, 665, 146, 0, 0, 399,
1506 146, 359, 361, 146, 146, 146, 0, 0, 0, 0,
1507 0, 0, 0, 0, 667, 0, 1147, 79, 0, 0,
1508 0, 523, 665, 665, 523, 0, 1130, 667, 742, 667,
1509 0, 667, 190, 190, 190, 201, 202, 203, 0, 0,
1510 475, 523, 14, 0, 0, 0, 7, 126, 127, 10,
1511 0, 0, 523, 0, 0, 0, 769, 0, 0, 0,
1512 19, 190, 0, 0, 0, 21, 0, 1276, 1277, 667,
1513 1286, 1287, 0, 1289, 24, 0, 468, 0, 0, 0,
1514 0, 0, 791, 0, 103, 22, 0, 0, 808, 609,
1515 669, 0, 669, 0, 669, 667, 146, 665, 27, 0,
1516 28, 29, 7, 8, 9, 10, 665, 665, 13, 0,
1517 0, 665, 665, 667, 151, 548, 549, 550, 551, 552,
1518 553, 554, 555, 556, 152, 0, 0, 0, 0, 0,
1519 0, 0, 33, 0, 103, 495, 1193, 153, 0, 0,
1520 0, 22, 0, 0, 0, 0, 0, 580, 1351, 1352,
1521 599, 8, 9, 1219, 27, 0, 28, 29, 0, 0,
1522 686, 687, 0, 697, 7, 8, 235, 10, 0, 0,
1523 862, 0, 665, 0, 1213, 0, 0, 103, 0, 0,
1524 863, 578, 0, 495, 495, 594, 293, 600, 33, 22,
1525 583, 0, 1268, 864, 585, 0, 1272, 0, 0, 669,
1526 190, 0, 27, 22, 129, 130, 0, 0, 527, 0,
1527 236, 1293, 1294, 0, 0, 0, 0, 132, 28, 29,
1528 0, 0, 0, 0, 0, 0, 0, 1304, 0, 665,
1529 1398, 1399, 1400, 0, 0, 0, 0, 0, 132, 1274,
1530 1275, 639, 237, 0, 103, 0, 7, 126, 127, 10,
1531 33, 0, 13, 0, 0, 146, 0, 667, 146, 667,
1532 0, 667, 665, 146, 244, 0, 0, 79, 0, 0,
1533 1427, 1428, 7, 126, 127, 10, 0, 0, 0, 0,
1534 0, 0, 0, 0, 0, 22, 0, 638, 1320, 190,
1535 0, 190, 0, 190, 190, 190, 0, 0, 27, 190,
1536 28, 29, 1366, 1367, 190, 0, 0, 190, 0, 0,
1537 0, 22, 0, 0, 31, 0, 0, 0, 236, 0,
1538 0, 0, 991, 0, 32, 0, 28, 29, 1356, 0,
1539 676, 0, 33, 0, 438, 440, 444, 34, 0, 0,
1540 0, 0, 411, 0, 0, 1491, 0, 0, 0, 665,
1541 237, 0, 0, 0, 0, 523, 1394, 1395, 33, 0,
1542 0, 436, 103, 103, 103, 103, 667, 0, 0, 0,
1543 444, 0, 0, 0, 452, 544, 545, 546, 547, 548,
1544 549, 550, 551, 552, 553, 554, 555, 556, 669, 0,
1545 7, 8, 9, 10, 0, 0, 230, 738, 0, 0,
1546 741, 0, 1396, 1397, 743, 744, 746, 747, 748, 0,
1547 1095, 1402, 0, 0, 0, 0, 0, 527, 103, 0,
1548 495, 0, 0, 0, 0, 0, 1420, 0, 765, 22,
1549 0, 578, 0, 495, 495, 580, 594, 0, 1066, 0,
1550 0, 0, 27, 840, 28, 29, 0, 842, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 862, 0,
1552 794, 0, 0, 0, 0, 0, 0, 0, 863, 0,
1553 0, 0, 0, 0, 0, 0, 33, 0, 583, 821,
1554 0, 864, 585, 0, 0, 0, 821, 0, 0, 0,
1555 0, 190, 869, 190, 190, 223, 594, 0, 0, 0,
1556 686, 687, 438, 440, 444, 0, 0, 0, 697, 0,
1557 0, 0, 7, 8, 9, 10, 0, 0, 13, 0,
1558 0, 0, 0, 438, 440, 444, 0, 0, 0, 190,
1559 0, 0, 0, 869, 0, 0, 0, 0, 0, 0,
1560 190, 190, 0, 190, 0, 0, 0, 0, 0, 0,
1561 0, 22, 0, 0, 0, 667, 0, 580, 665, 0,
1562 7, 8, 9, 10, 27, 0, 28, 29, 79, 0,
1563 0, 0, 523, 103, 0, 0, 638, 0, 103, 0,
1564 1030, 0, 0, 0, 0, 495, 495, 495, 0, 0,
1565 1031, 0, 0, 0, 0, 0, 0, 495, 33, 22,
1566 583, 0, 0, 1032, 585, 0, 236, 0, 0, 0,
1567 0, 0, 0, 0, 28, 29, 676, 0, 0, 0,
1568 0, 676, 0, 0, 0, 0, 686, 687, 691, 697,
1569 0, 0, 0, 696, 0, 0, 0, 0, 237, 1208,
1570 1209, 1210, 1211, 0, 0, 0, 33, 103, 0, 0,
1571 1215, 0, 0, 0, 0, 7, 8, 9, 10, 720,
1572 0, 483, 0, 0, 725, 0, 0, 1284, 0, 495,
1573 0, 495, 0, 0, 0, 0, 733, 734, 103, 735,
1574 0, 0, 495, 0, 103, 0, 840, 840, 840, 0,
1575 984, 0, 0, 1015, 22, 0, 0, 0, 0, 0,
1576 580, 0, 0, 0, 0, 0, 0, 27, 0, 28,
1577 29, 103, 0, 103, 190, 190, 1034, 0, 0, 0,
1578 0, 765, 0, 862, 0, 0, 0, 676, 0, 0,
1579 75, 821, 0, 863, 0, 0, 0, 0, 0, 0,
1580 0, 33, 0, 583, 0, 0, 864, 585, 0, 0,
1581 1034, 0, 140, 0, 638, 0, 1027, 145, 149, 821,
1582 0, 0, 75, 1325, 103, 0, 0, 75, 0, 0,
1583 829, 830, 0, 0, 0, 829, 0, 0, 0, 132,
1584 0, 0, 200, 79, 0, 79, 0, 0, 0, 0,
1585 1097, 79, 79, 821, 0, 0, 82, 0, 0, 0,
1586 0, 0, 0, 0, 0, 0, 105, 1060, 103, 0,
1587 103, 243, 444, 0, 1067, 0, 125, 133, 82, 350,
1588 0, 0, 0, 147, 147, 0, 147, 0, 82, 0,
1589 0, 0, 0, 82, 0, 243, 0, 0, 0, 0,
1590 0, 495, 495, 0, 495, 1382, 147, 0, 82, 0,
1591 0, 676, 0, 676, 0, 0, 224, 0, 0, 0,
1592 438, 440, 444, 232, 243, 0, 0, 0, 0, 0,
1593 398, 0, 0, 0, 400, 232, 0, 0, 243, 0,
1594 190, 190, 190, 190, 1034, 82, 0, 0, 190, 0,
1595 0, 75, 0, 0, 0, 769, 1416, 0, 0, 0,
1596 0, 0, 0, 1034, 1034, 1034, 145, 149, 0, 523,
1597 955, 0, 957, 0, 0, 0, 0, 0, 0, 0,
1598 386, 0, 243, 0, 0, 103, 1416, 821, 0, 147,
1599 232, 0, 0, 0, 0, 0, 147, 103, 0, 0,
1600 147, 0, 0, 147, 147, 147, 0, 0, 821, 0,
1601 1198, 0, 0, 0, 0, 243, 0, 82, 0, 0,
1602 79, 0, 0, 0, 0, 0, 0, 0, 676, 0,
1603 484, 0, 147, 147, 147, 0, 0, 0, 0, 243,
1604 676, 0, 0, 0, 989, 990, 1485, 992, 1416, 0,
1605 8, 9, 0, 134, 12, 13, 0, 0, 673, 0,
1606 14, 147, 0, 0, 0, 0, 190, 190, 0, 190,
1607 0, 0, 1504, 0, 1009, 17, 0, 18, 19, 0,
1608 0, 0, 0, 21, 0, 0, 0, 769, 0, 103,
1609 0, 0, 24, 0, 580, 0, 147, 0, 0, 0,
1610 0, 27, 0, 129, 130, 0, 0, 190, 0, 1036,
1611 0, 0, 146, 0, 79, 0, 0, 581, 7, 8,
1612 9, 10, 0, 0, 0, 0, 0, 582, 0, 243,
1613 0, 0, 1060, 0, 232, 147, 0, 583, 0, 0,
1614 584, 585, 0, 0, 674, 545, 546, 547, 548, 549,
1615 550, 551, 552, 553, 554, 555, 556, 22, 0, 1278,
1616 1279, 9, 10, 580, 0, 190, 869, 190, 0, 0,
1617 27, 0, 28, 29, 0, 0, 0, 232, 0, 0,
1618 0, 579, 0, 147, 147, 595, 862, 0, 0, 649,
1619 603, 243, 650, 0, 0, 0, 863, 652, 22, 0,
1620 147, 140, 0, 0, 33, 0, 583, 0, 0, 864,
1621 585, 27, 0, 28, 29, 0, 0, 386, 0, 1280,
1622 0, 126, 127, 398, 0, 400, 230, 180, 0, 8,
1623 9, 0, 0, 12, 13, 0, 0, 181, 484, 14,
1624 0, 0, 0, 0, 232, 33, 0, 1146, 0, 0,
1625 182, 0, 1034, 0, 17, 147, 18, 0, 147, 0,
1626 243, 0, 21, 147, 0, 580, 0, 82, 0, 0,
1627 0, 24, 27, 0, 129, 130, 0, 0, 1157, 0,
1628 27, 0, 129, 130, 564, 0, 0, 243, 581, 147,
1629 0, 147, 0, 147, 147, 147, 0, 0, 582, 147,
1630 1034, 1034, 1034, 0, 147, 0, 0, 147, 583, 0,
1631 0, 584, 585, 0, 0, 1185, 103, 0, 0, 565,
1632 0, 0, 715, 0, 0, 0, 0, 1189, 0, 0,
1633 0, 190, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 925, 527, 7, 8, 926, 10,
1635 134, 12, 13, 0, 1204, 0, 0, 14, 1205, 638,
1636 0, 0, 232, 232, 232, 232, 0, 0, 0, 0,
1637 243, 0, 17, 0, 18, 19, 20, 0, 0, 0,
1638 21, -485, 0, 0, 0, 22, 243, 0, 0, 24,
1639 927, 1220, 928, 0, 0, 0, 0, 0, 27, 0,
1640 28, 29, 0, 0, 929, 0, 930, 0, 0, 0,
1641 0, 0, 0, 0, 31, 0, 0, 0, 232, 0,
1642 147, 0, 0, 0, 32, 0, 868, 0, 0, 0,
1643 0, 0, 33, 147, 147, 0, 595, 34, 0, 0,
1644 0, 0, 0, 841, 0, 0, 0, 0, 0, 1295,
1645 1296, 0, 0, 0, -485, 603, 0, 0, 0, 7,
1646 8, 9, 10, 0, 0, 0, 0, 905, 0, 0,
1647 0, 0, 0, 0, 649, 650, 0, 652, 0, 0,
1648 0, 0, 0, 0, 0, 0, 125, 0, 0, 0,
1649 0, 147, 595, 147, 147, 224, 595, 0, 22, 0,
1650 0, 0, 943, 0, 0, 0, 0, 0, 0, 715,
1651 0, 27, 1349, 28, 29, 0, 1350, 179, 925, 0,
1652 7, 8, 926, 10, 134, 12, 13, 180, 0, 147,
1653 0, 14, 0, 595, 0, 0, 0, 181, 0, 0,
1654 147, 147, 0, 147, 0, 33, 17, 0, 18, 19,
1655 182, 0, 0, 0, 21, 0, 0, 0, 0, 22,
1656 0, 0, 0, 24, 927, 0, 928, 0, 82, 0,
1657 0, 0, 27, 232, 28, 29, 0, 0, 232, 0,
1658 930, 285, 8, 9, 10, 147, 147, 147, 31, 8,
1659 9, 0, 0, 12, 230, 0, 0, 147, 32, 14,
1660 0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
1661 0, 34, 0, 0, 17, 0, 18, 0, 0, 0,
1662 22, 0, 21, 50, 0, 0, 0, 236, 0, 0,
1663 0, 24, 243, 580, 243, 28, 303, 0, 0, 0,
1664 27, 0, 129, 130, 0, 50, 0, 232, 145, 149,
1665 50, 50, 0, 154, 0, 50, 581, 0, 0, 237,
1666 50, 243, 0, 0, 0, 0, 582, 33, 0, 147,
1667 0, 147, 0, 50, 0, 50, 583, 0, 232, 584,
1668 585, 0, 147, 0, 232, 0, 841, 841, 841, 0,
1669 0, 0, 0, 603, 0, 0, 0, 0, 239, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671 0, 232, 50, 232, 147, 147, 595, 943, 0, 943,
1672 0, 0, 0, 0, 1096, 1103, 943, 285, 8, 9,
1673 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 126, 127, 0, 383, 202, 203,
1675 841, 383, 383, 0, 14, 0, 50, 0, 0, 0,
1676 0, 0, 0, 50, 232, 239, 22, 50, 0, 0,
1677 154, 154, 154, 236, 0, 0, 715, 21, 0, 133,
1678 0, 28, 303, 82, 50, 82, 24, 0, 580, 0,
1679 1098, 82, 82, 0, 0, 27, 0, 129, 130, 50,
1680 50, 154, 0, 0, 0, 486, 0, 243, 232, 239,
1681 232, 581, 0, 33, 398, 400, 0, 0, 0, 0,
1682 0, 582, 484, 0, 0, 0, 243, 0, 50, 0,
1683 0, 583, 0, 0, 591, 585, 0, 0, 0, 0,
1684 0, 147, 147, 0, 147, 539, 540, 541, 542, 543,
1685 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
1686 554, 555, 556, 50, 0, 0, 0, 7, 8, 9,
1687 10, 134, 12, 13, 0, 0, 673, 0, 14, 0,
1688 147, 147, 147, 147, 595, 0, 0, 0, 147, 243,
1689 0, 0, 715, 17, 943, 18, 19, 0, 0, 0,
1690 0, 21, 0, 841, 841, 841, 22, 0, 0, 0,
1691 24, 0, 580, 0, 0, 0, 0, 0, 0, 27,
1692 715, 28, 29, 0, 0, 232, 126, 127, 0, 0,
1693 0, 483, 524, 0, 0, 1030, 0, 232, 0, 0,
1694 649, 650, 0, 652, 0, 1031, 0, 0, 383, 0,
1695 0, 0, 0, 33, 0, 583, 239, 0, 1032, 585,
1696 82, 0, 674, 0, 0, 0, 0, 50, 0, 0,
1697 580, 0, 0, 0, 0, 0, 0, 27, 0, 129,
1698 130, 1285, 0, 0, 383, 0, 1285, 0, 943, 0,
1699 243, 0, 0, 581, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 582, 0, 383, 147, 147, 0, 147,
1701 0, 0, 0, 583, 0, 0, 584, 585, 0, 0,
1702 0, 0, 50, 0, 0, 50, 0, 0, 0, 232,
1703 50, 0, 0, 0, 50, 586, 586, 586, 0, 0,
1704 1339, 0, 0, 0, 0, 0, 0, 147, 0, 0,
1705 0, 0, 147, 0, 82, 0, 50, 0, 50, 0,
1706 154, 154, 154, 0, 0, 0, 50, 0, 0, 0,
1707 0, 50, 0, 0, 50, 541, 542, 543, 544, 545,
1708 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
1709 556, 1362, 0, -442, -442, -442, -442, -442, -442, -442,
1710 0, 0, -442, 0, -442, 147, 595, 147, 0, 0,
1711 0, 0, 0, 0, 0, -442, 0, -442, -442, 0,
1712 0, 524, -442, 0, 524, 0, 0, -442, 0, 0,
1713 0, 0, -442, 0, 0, 0, -442, 0, -442, 524,
1714 524, 524, 0, 0, 0, -442, 0, -442, -442, -442,
1715 -442, -442, 524, -442, -442, -442, -442, -442, -442, -442,
1716 -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
1717 -442, -442, -442, -442, -442, -442, 0, -442, -442, -442,
1718 0, -442, -442, -442, -442, -442, -442, 0, -442, -442,
1719 0, 0, 841, 77, 1363, 0, 0, 239, 0, -442,
1720 -442, -442, 0, -442, 0, 0, 0, 0, 0, 0,
1721 524, 0, 0, 0, 0, 77, 0, 0, 0, 0,
1722 77, 77, 0, 77, 0, 77, 7, 126, 127, 10,
1723 77, 0, 230, 0, 0, 0, 0, 0, 0, 0,
1724 841, 841, 841, 77, 0, 77, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 232, 0, 50, 50,
1726 50, 50, 0, 0, 0, 22, 0, 0, 0, 0,
1727 0, 147, 0, 0, 0, 0, 0, 159, 27, 0,
1728 28, 29, 77, 0, 0, 586, 586, 0, 586, 0,
1729 0, 0, 0, 0, 31, 838, 50, 191, 0, 0,
1730 50, 0, 0, 0, 32, 0, 0, 50, 50, 0,
1731 50, 0, 33, 0, 0, 0, 0, 34, 0, 0,
1732 0, 0, 0, 0, 126, 127, 77, 0, 202, 203,
1733 0, 0, 0, 77, 14, 50, 0, 77, 0, 0,
1734 77, 77, 77, 586, 0, 586, 586, 0, 586, 0,
1735 7, 126, 127, 10, 77, 0, 13, 21, 524, 0,
1736 0, 0, 0, 0, 0, 0, 24, 0, 580, 77,
1737 77, 77, 0, 0, 0, 27, 0, 129, 130, 0,
1738 191, 586, 0, 0, 0, 0, 0, 0, 0, 22,
1739 0, 581, 0, 0, 159, 159, 159, 0, 77, 0,
1740 0, 582, 27, 0, 28, 29, 7, 8, 9, 10,
1741 0, 583, 13, 0, 584, 585, 0, 0, 151, 0,
1742 0, 0, 0, 191, 191, 445, 0, 0, 152, 0,
1743 0, 0, 0, 77, 0, 0, 33, 0, 0, 0,
1744 0, 153, 0, 0, 0, 22, 0, 0, 0, 586,
1745 0, 0, 191, 524, 524, 524, 0, 0, 27, 239,
1746 28, 29, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 180, 0, 0, 0, 0, 0,
1748 0, 50, 50, 154, 181, 0, 0, 0, 239, 0,
1749 0, 0, 33, 589, 593, 596, 0, 182, 540, 541,
1750 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
1751 552, 553, 554, 555, 556, 0, 0, 1054, 0, 0,
1752 0, 586, 0, 586, 0, 0, 496, 602, 0, 0,
1753 0, 0, 0, 0, 586, 0, 0, 77, 838, 838,
1754 838, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 50, 0, 50, 0, 0, 0, 0, 50, 50, 50,
1756 0, 0, 0, 0, 0, 0, 586, 586, 586, 0,
1757 0, 0, 0, 189, 588, 588, 588, 543, 544, 545,
1758 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
1759 556, 191, 77, 0, 0, 77, 0, 0, 242, 0,
1760 77, 246, 838, 0, 77, 542, 543, 544, 545, 546,
1761 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
1762 0, 0, 242, 0, 355, 0, 77, 0, 77, 0,
1763 77, 77, 77, 0, 239, 0, 77, 0, 0, 0,
1764 0, 77, 0, 0, 77, 0, 0, 50, 50, 154,
1765 154, 154, 0, 239, 0, 50, 189, 0, 0, 0,
1766 0, 0, 0, 7, 8, 9, 10, 192, 12, 193,
1767 1054, 1054, 1054, 0, 14, 0, 0, 0, 0, 0,
1768 191, 0, 191, 0, 445, 445, 445, 0, 0, 17,
1769 191, 18, 19, 0, 0, 191, 0, 21, 191, 189,
1770 189, 189, 22, 0, 0, 0, 24, 0, 0, 451,
1771 0, 0, 0, 0, 0, 27, 239, 28, 29, 0,
1772 0, 194, 0, 0, 0, 0, 0, 50, 189, 0,
1773 0, 31, 586, 586, 586, 586, 586, 0, 0, 0,
1774 586, 32, 0, 818, 820, 0, 0, 0, 0, 33,
1775 0, 246, 0, 0, 34, 838, 838, 838, 7, 126,
1776 127, 10, 0, 0, 483, 0, 242, 0, 602, 0,
1777 0, 0, 0, 50, 50, 0, 50, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
1780 0, 867, 0, 589, 593, 0, 596, 0, 0, 0,
1781 27, 804, 28, 29, 50, 0, 0, 0, 0, 50,
1782 0, 50, 0, 0, 588, 588, 31, 588, 77, 77,
1783 77, 77, 0, 0, 588, 0, 32, 0, 0, 593,
1784 0, 0, 0, 0, 33, 0, 0, 0, 0, 34,
1785 0, 0, 0, 0, 0, 0, 242, 246, 586, 586,
1786 0, 586, 7, 8, 9, 10, 77, 189, 230, 0,
1787 77, 0, 50, 50, 50, 0, 0, 77, 77, 0,
1788 77, 0, 866, 0, 866, 866, 0, 588, 0, 7,
1789 8, 9, 10, 0, 0, 13, 0, 0, 0, 0,
1790 0, 22, 0, 0, 0, 77, 0, 593, 0, 0,
1791 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1792 866, 0, 0, 0, 0, 0, 0, 0, 22, 0,
1793 180, 191, 191, 0, 191, 0, 0, 0, 0, 0,
1794 181, 27, 0, 28, 29, 0, 0, 0, 33, 0,
1795 0, 0, 0, 182, 0, 0, 189, 441, 189, 1054,
1796 189, 189, 189, 0, 0, 0, 189, 442, 0, 0,
1797 0, 189, 0, 0, 189, 33, 496, 496, 496, 1001,
1798 443, 1002, 0, 0, 0, 0, 0, 0, 588, 0,
1799 8, 9, 1008, 0, 12, 13, 818, 820, 0, 0,
1800 14, 0, 0, 1278, 126, 127, 10, 1054, 1054, 1054,
1801 0, 0, 0, 0, 0, 17, 0, 18, 0, 0,
1802 0, 0, 0, 21, 818, 820, 0, 0, 0, 0,
1803 602, 0, 24, 0, 0, 0, 0, 0, 50, 0,
1804 0, 27, 22, 129, 130, 0, 0, 0, 0, 0,
1805 0, 77, 77, 77, 0, 27, 0, 28, 29, 0,
1806 588, 0, 588, 1280, 0, 0, 0, 0, 0, 0,
1807 0, 31, 0, 588, 0, 0, 0, 588, 588, 588,
1808 795, 32, 0, 0, 0, 0, 0, 1056, 0, 33,
1809 0, 0, 0, 0, 34, 6, 0, 7, 8, 9,
1810 10, 11, 12, 13, 0, 866, 866, 1035, 14, 0,
1811 0, 0, 0, 242, 246, 0, 0, 0, 0, 0,
1812 77, 0, 77, 17, 0, 18, 19, 77, 77, 77,
1813 0, 21, 0, 0, 0, 0, 22, 0, 0, 0,
1814 24, 1035, 0, 415, 0, 0, 0, 0, 0, 27,
1815 0, 28, 29, 0, 0, 30, 0, 0, 189, 0,
1816 189, 189, 0, 0, 0, 31, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
1818 0, 191, 0, 33, 0, 0, 0, 0, 34, 0,
1819 1001, 1002, 818, 820, 0, 0, 189, 0, 1008, 0,
1820 7, 8, 9, 10, 0, 0, 483, 189, 189, 0,
1821 189, 0, 0, 818, 820, 0, 0, 77, 77, 77,
1822 77, 77, 0, 0, 0, 77, 0, 0, 0, 0,
1823 0, 0, 804, 804, 246, 804, 0, 0, 0, 22,
1824 1056, 1056, 1056, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 27, 0, 28, 29, 0, 0, 0, -347,
1826 8, 9, -347, -347, 12, 230, 0, 0, 180, 0,
1827 14, 866, 866, 1035, 1035, 1035, 0, 0, 181, 866,
1828 0, 0, 0, 0, 0, 17, 33, 18, -347, 0,
1829 0, 182, 0, 21, 1035, 1035, 1035, 77, -347, 0,
1830 0, 0, 24, 0, 580, 0, 0, 0, 0, 0,
1831 0, 27, 0, 129, 130, 0, 1001, 1002, 0, 1008,
1832 0, 0, 0, 0, 0, 0, 0, 581, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 582, 7, 8,
1834 9, 10, 0, 77, 77, -347, 77, 583, 0, 0,
1835 584, 585, 101, 0, 0, 7, 8, 9, 10, 242,
1836 246, 242, 120, 101, 0, 0, 0, 0, 0, 101,
1837 101, 0, 101, 0, 0, 0, 0, 22, 0, 0,
1838 0, 189, 189, 1033, 77, 0, 0, 0, 242, 77,
1839 27, 77, 28, 29, 22, 0, 1334, 866, 866, 0,
1840 866, 0, 222, 0, 0, 0, 180, 27, 0, 28,
1841 29, 0, 0, 0, 0, 0, 181, 1033, 0, 0,
1842 0, 0, 0, 180, 33, 0, 0, 0, 0, 182,
1843 0, 0, 0, 181, 0, 0, 0, 0, 191, 0,
1844 0, 33, 77, 77, 77, 0, 182, 925, 0, 7,
1845 8, 926, 10, 134, 12, 13, 0, 189, 0, 0,
1846 14, 120, 0, 120, 0, 0, 101, 0, 0, 0,
1847 101, 101, 0, 0, 0, 17, 0, 18, 19, 20,
1848 0, 0, 101, 21, 101, 101, 101, 0, 22, 101,
1849 101, 101, 24, 927, 0, 928, 191, 0, 191, 0,
1850 0, 27, 0, 28, 29, 0, 0, 929, 0, 930,
1851 0, 0, 0, 0, 0, 0, 0, 31, 0, 0,
1852 0, 7, 8, 9, 10, 0, 0, 32, 0, 1056,
1853 0, 0, 0, 0, 242, 33, 0, 0, 0, 0,
1854 34, 0, 0, 0, 0, 0, 0, 189, 189, 189,
1855 189, 1033, 0, 1156, 0, 189, 0, 0, 0, 0,
1856 22, 466, 101, 0, 0, 0, 0, 0, 0, 0,
1857 1033, 1033, 1033, 27, 0, 28, 29, 1056, 1056, 1056,
1858 0, 0, 101, 445, 0, 0, 0, 0, 0, 441,
1859 0, 0, 0, 0, 0, 0, 0, 0, 925, 442,
1860 7, 8, 926, 10, 134, 12, 13, 33, 77, 0,
1861 0, 14, 443, 0, 0, 0, 451, 0, 0, 0,
1862 0, 101, 0, 0, 0, 0, 17, 0, 18, 19,
1863 20, 445, 445, 445, 21, -486, 0, 0, 0, 22,
1864 0, 0, 0, 24, 927, 0, 928, 0, 0, 0,
1865 0, 0, 27, 0, 28, 29, 0, 0, 929, 0,
1866 930, 0, 191, 0, 0, 0, 0, 101, 31, 101,
1867 101, 0, 0, 189, 189, 0, 189, 0, 32, 0,
1868 0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
1869 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 101, 0, 0, 0, 0, -486, 0,
1871 0, 0, 0, 0, 189, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 101, 925, 0, 7, 8, 926,
1873 10, 134, 12, 13, 0, 0, 0, 101, 14, 0,
1874 0, 101, 0, 0, 101, 0, 0, 0, 0, 101,
1875 0, 0, 0, 17, 0, 18, 19, 20, 0, 0,
1876 0, 21, -488, 0, 0, 0, 22, 0, 0, 0,
1877 24, 927, 189, 928, 189, 0, 0, 0, 0, 27,
1878 0, 28, 29, 0, 0, 929, 0, 930, 0, 8,
1879 9, 0, 134, 12, 13, 31, 0, 1436, 0, 14,
1880 0, 0, 0, 0, 0, 32, 101, 0, 708, 0,
1881 0, 0, 0, 33, 17, 0, 18, 19, 34, 0,
1882 0, 0, 21, 0, 0, 0, 0, 0, 0, 0,
1883 0, 24, 0, 101, 0, -488, 0, 0, 0, 0,
1884 27, 0, 129, 130, 1342, 0, 1232, 1233, 1234, 10,
1885 134, 12, 286, 287, 288, 0, 289, 14, 1235, 1033,
1886 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
1887 15, 16, 17, 290, 18, 19, 20, 0, 291, 292,
1888 21, 0, 293, 294, 295, 22, 296, 297, 0, 24,
1889 0, 0, 0, 298, 299, 300, 301, 302, 27, 0,
1890 1246, 303, 660, 0, 1247, 304, 101, 1033, 1033, 1033,
1891 0, 305, 0, 0, 306, 0, 101, 101, 0, 101,
1892 101, 0, 307, 308, 309, 0, 0, 0, 0, 0,
1893 310, 311, 312, 0, 0, 0, 0, 313, 189, 1248,
1894 8, 9, 0, 192, 12, 193, 0, 0, 0, 0,
1895 14, 0, 0, 0, 1343, 314, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 17, 0, 18, 19, 0,
1897 0, 0, 120, 21, 0, 0, 0, 0, 0, 0,
1898 0, 222, 24, 0, 0, 0, 0, 0, 0, 0,
1899 0, 27, 0, 129, 130, 708, 0, 0, 1231, 0,
1900 1232, 1233, 1234, 10, 134, 12, 286, 287, 288, 0,
1901 289, 14, 1235, 0, 1236, 1237, 1238, 1239, 1240, 1241,
1902 1242, 1243, 1244, 1245, 15, 16, 17, 290, 18, 19,
1903 20, 0, 291, 292, 21, 0, 293, 294, 295, 22,
1904 296, 297, 0, 24, 0, 0, 0, 298, 299, 300,
1905 301, 302, 27, 708, 1246, 303, 660, 0, 1247, 304,
1906 0, 0, 0, 0, 0, 305, 0, 0, 306, 0,
1907 0, 101, 101, 101, 0, 0, 307, 308, 309, 0,
1908 0, 0, 0, 101, 310, 311, 312, 0, 0, 0,
1909 0, 313, 519, 1248, 285, 8, 9, 10, 134, 12,
1910 286, 287, 288, 673, 289, 14, 0, 0, 0, 314,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 17, 290, 18, 19, 20, 0, 291, 292, 21, 0,
1913 293, 294, 295, 22, 296, 297, 0, 24, 0, 580,
1914 0, 298, 299, 300, 301, 302, 27, 0, 28, 303,
1915 -275, 0, 0, 304, 0, 101, 0, 101, 0, 305,
1916 0, 0, 834, 0, 0, 0, 0, 0, 101, 0,
1917 307, 308, 835, 0, 0, 0, 0, 0, 310, 311,
1918 312, 0, 583, 0, 0, 836, 585, 0, 519, 674,
1919 7, 8, 9, 10, 134, 12, 286, 287, 288, 673,
1920 289, 14, 0, 314, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 17, 290, 18, 19,
1922 20, 0, 291, 292, 21, 0, 293, 294, 295, 22,
1923 296, 297, 0, 24, 0, 580, 0, 298, 299, 300,
1924 301, 302, 27, 0, 28, 29, -275, 0, 0, 304,
1925 0, 0, 0, 0, 0, 305, 0, 0, 1051, 0,
1926 0, 0, 708, 0, 0, 101, 307, 308, 1052, 0,
1927 0, 0, 0, 0, 310, 311, 312, 0, 583, 0,
1928 0, 1053, 585, 0, 0, 674, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 314,
1930 0, 0, 0, 672, 0, 285, 8, 9, 10, 134,
1931 12, 286, 287, 288, 673, 289, 14, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 101, 101, 0,
1933 101, 17, 290, 18, 19, 20, 0, 291, 292, 21,
1934 0, 293, 294, 295, 22, 296, 297, 0, 24, 0,
1935 0, 0, 298, 299, 300, 301, 302, 27, 0, 28,
1936 303, 0, 0, 0, 304, 0, 0, 0, 0, 0,
1937 305, 0, 0, 306, 0, 0, 0, 0, 708, 0,
1938 0, 307, 308, 309, 0, 0, 0, 0, 0, 310,
1939 311, 312, 0, 0, 0, 0, 313, 0, 0, 0,
1940 674, 0, 0, 0, 0, 0, 708, 0, 0, 0,
1941 0, 0, -748, 768, 314, 285, 8, 9, 10, 134,
1942 12, 286, 287, 288, 0, 289, 14, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 101, 0, 0, 0,
1944 0, 17, 290, 18, 19, 20, 0, 291, 292, 21,
1945 0, 293, 294, 295, 22, 296, 297, 0, 24, 0,
1946 0, 0, 298, 299, 300, 301, 302, 27, 0, 28,
1947 303, 1412, 0, -738, 304, 0, 0, 0, 0, 0,
1948 305, 0, 0, 306, 0, 0, 0, 0, 0, 0,
1949 0, 307, 308, 309, 0, 0, 0, 0, 0, 310,
1950 311, 312, 0, 0, 0, 663, 313, 756, 757, 758,
1951 10, 0, 12, 501, 287, 288, 0, 289, 14, 0,
1952 0, 0, 0, 0, 314, 0, 0, 0, 0, 0,
1953 0, 0, 0, 17, 290, 18, 101, 20, 101, 291,
1954 292, 21, 0, 293, 294, 295, 22, 296, 297, 0,
1955 24, 0, 0, 0, 298, 299, 300, 301, 302, 27,
1956 0, 759, 760, 664, 0, 0, 304, 0, 0, 0,
1957 0, 0, 305, 0, 0, 306, 0, 0, 0, 0,
1958 0, 0, 0, 307, 308, 309, 0, 0, 0, 0,
1959 0, 310, 311, 312, 0, 0, 0, 0, 313, 761,
1960 663, 0, 756, 757, 758, 10, 0, 12, 501, 287,
1961 288, 0, 289, 14, 0, 889, 314, 0, 0, 0,
1962 1126, 0, 0, 0, 0, 0, 0, 0, 17, 290,
1963 18, 0, 20, 0, 291, 292, 21, 0, 293, 294,
1964 295, 22, 296, 297, 0, 24, 0, 0, 0, 298,
1965 299, 300, 301, 302, 27, 0, 759, 760, 664, 0,
1966 0, 304, 0, 0, 0, 0, 0, 305, 0, 0,
1967 306, 0, 0, 0, 0, 0, 0, 0, 307, 308,
1968 309, 0, 0, 0, 0, 0, 310, 311, 312, 0,
1969 0, 0, 663, 313, 756, 757, 758, 10, 0, 12,
1970 501, 287, 288, 0, 289, 14, 0, 0, 0, 0,
1971 -446, 314, 1126, 0, 0, 0, 0, 0, 0, 0,
1972 17, 290, 18, 0, 20, 0, 291, 292, 21, 0,
1973 293, 294, 295, 22, 296, 297, 0, 24, 0, 0,
1974 0, 298, 299, 300, 301, 302, 27, 0, 759, 760,
1975 664, 0, 0, 304, 0, 0, 0, 0, 0, 305,
1976 0, 0, 306, 0, 0, 0, 0, 0, 0, 0,
1977 307, 308, 309, 0, 0, 0, 0, 0, 310, 311,
1978 312, 0, 0, 0, 663, 313, 756, 757, 758, 10,
1979 0, 12, 501, 287, 288, 0, 289, 14, 0, 0,
1980 0, 0, 1170, 314, 0, 0, 0, 0, 0, 0,
1981 0, 0, 17, 290, 18, 0, 20, 0, 291, 292,
1982 21, 0, 293, 294, 295, 22, 296, 297, 0, 24,
1983 0, 0, 0, 298, 299, 300, 301, 302, 27, 0,
1984 759, 760, 664, 0, 0, 304, 0, 0, 0, 0,
1985 0, 305, 0, 0, 306, 0, 0, 0, 0, 0,
1986 0, 0, 307, 308, 309, 0, 0, 0, 0, 0,
1987 310, 311, 312, 0, 0, 0, 0, 313, 761, 663,
1988 0, 285, 8, 9, 10, 0, 12, 501, 287, 288,
1989 0, 289, 14, 0, 0, 314, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 17, 290, 18,
1991 0, 20, 0, 291, 292, 21, 0, 293, 294, 295,
1992 22, 296, 297, 0, 24, 0, 0, 0, 298, 299,
1993 300, 301, 302, 27, 0, 28, 303, 664, 0, 0,
1994 304, 0, 0, 0, 0, 0, 305, 0, 0, 306,
1995 0, 0, 0, 0, 0, 0, 0, 307, 308, 309,
1996 0, 0, 0, 0, 0, 310, 311, 312, 0, 0,
1997 0, 0, 313, 0, 0, 519, 0, 285, 8, 9,
1998 10, 1174, 12, 286, 287, 288, 0, 289, 14, 0,
1999 314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2000 0, 0, 0, 17, 290, 18, 0, 20, 0, 291,
2001 292, 21, 0, 293, 294, 295, 22, 296, 297, 0,
2002 24, 0, 0, 0, 298, 299, 300, 301, 302, 27,
2003 0, 28, 303, -275, 0, 0, 304, 0, 0, 0,
2004 0, 0, 305, 0, 0, 520, 0, 0, 0, 0,
2005 0, 0, 0, 307, 308, 521, 0, 0, 0, 0,
2006 0, 310, 311, 312, 0, 0, 0, 663, 522, 285,
2007 8, 9, 10, 0, 12, 501, 287, 288, 0, 289,
2008 14, 0, 0, 0, 0, 0, 314, 0, 0, 0,
2009 0, 0, 0, 0, 0, 17, 290, 18, 0, 20,
2010 0, 291, 292, 21, 0, 293, 294, 295, 22, 296,
2011 297, 0, 24, 0, 0, 0, 298, 299, 300, 301,
2012 302, 27, 0, 28, 303, 664, 0, 0, 304, 0,
2013 0, 0, 0, 0, 305, 0, 0, 306, 0, 0,
2014 0, 0, 0, 0, 0, 307, 308, 309, 0, 0,
2015 0, 0, 0, 310, 311, 312, 0, 0, 0, 768,
2016 313, 285, 8, 9, 10, 0, 12, 501, 287, 288,
2017 0, 289, 14, 0, 0, 0, 0, 0, 314, 0,
2018 0, 0, 0, 0, 0, 0, 0, 17, 290, 18,
2019 0, 20, 0, 291, 292, 21, 0, 293, 294, 295,
2020 22, 296, 297, 0, 24, 0, 0, 0, 298, 299,
2021 300, 301, 302, 27, 0, 28, 303, 0, 0, 0,
2022 304, -738, 0, 0, 0, 0, 305, 0, 0, 306,
2023 0, 0, 0, 0, 0, 0, 0, 307, 308, 309,
2024 0, 0, 0, 0, 0, 310, 311, 312, 0, 0,
2025 0, 519, 313, 7, 8, 9, 10, 0, 12, 286,
2026 287, 288, 0, 289, 14, 0, 0, 0, 0, 0,
2027 314, 0, 0, 0, 0, 0, 0, 0, 0, 17,
2028 290, 18, 0, 20, 0, 291, 292, 21, 0, 293,
2029 294, 295, 22, 296, 297, 0, 24, 0, 0, 0,
2030 298, 299, 300, 301, 302, 27, 0, 28, 29, -275,
2031 0, 0, 304, 0, 0, 0, 0, 0, 305, 0,
2032 0, 1388, 0, 0, 0, 0, 0, 0, 0, 307,
2033 308, 1389, 0, 0, 0, 0, 0, 310, 311, 312,
2034 0, 0, 0, 1487, 1390, 285, 8, 9, 10, 0,
2035 12, 286, 287, 288, 0, 289, 14, 0, 0, 0,
2036 0, 0, 314, 0, 0, 0, 0, 0, 0, 0,
2037 0, 17, 290, 18, 0, 20, 0, 291, 292, 21,
2038 0, 293, 294, 295, 22, 296, 297, 0, 24, 0,
2039 0, 0, 298, 299, 300, 301, 302, 27, 0, 28,
2040 303, 0, 0, -163, 304, 0, 0, 0, 0, 0,
2041 305, 0, 0, 306, 0, 0, 0, 0, 0, 0,
2042 0, 307, 308, 309, 0, 0, 0, 0, 0, 310,
2043 311, 312, 0, 0, 0, 768, 313, 285, 8, 9,
2044 10, 0, 12, 501, 287, 288, 0, 289, 14, 0,
2045 0, 0, 0, 0, 314, 0, 0, 0, 0, 0,
2046 0, 0, 0, 17, 290, 18, 0, 20, 0, 291,
2047 292, 21, 0, 293, 294, 295, 22, 296, 297, 0,
2048 24, 0, 0, 0, 298, 299, 300, 301, 302, 27,
2049 0, 28, 303, 0, 0, 0, 304, 0, 0, 0,
2050 0, 0, 305, 248, 0, 306, 8, 9, 0, 0,
2051 12, 13, 0, 307, 308, 309, 14, 0, 0, 0,
2052 0, 310, 311, 312, 0, 0, 0, 0, 313, 0,
2053 0, 17, 0, 18, 0, 0, 0, 0, 0, 21,
2054 0, 249, 250, 0, -738, 0, 314, 0, 24, 0,
2055 251, 0, 0, 0, 0, 0, 0, 27, 0, 129,
2056 130, 0, 252, 0, 0, 0, 253, 254, 255, 256,
2057 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
2058 267, 268, 269, 270, 271, 272, 273, 0, 0, 274,
2059 275, 276, 0, 0, 277, 0, 848, 278, 285, 8,
2060 9, 10, 0, 12, 501, 287, 288, 0, 289, 14,
2061 0, 0, 0, 0, 279, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 17, 290, 18, 0, 20, 0,
2063 291, 292, 21, 0, 293, 294, 295, 22, 296, 297,
2064 0, 24, 0, 0, 0, 298, 299, 300, 301, 302,
2065 27, 0, 28, 303, 0, 0, 0, 304, 0, 0,
2066 0, 0, 0, 305, 0, 0, 306, 0, 0, 0,
2067 0, 0, 0, 0, 307, 308, 309, 0, 0, 0,
2068 0, 0, 310, 311, 312, 0, 0, 0, 850, 313,
2069 285, 8, 9, 10, 0, 12, 501, 287, 288, 0,
2070 289, 14, 0, 0, 0, 0, 0, 314, 0, 0,
2071 0, 0, 0, 0, 0, 0, 17, 290, 18, 0,
2072 20, 0, 291, 292, 21, 0, 293, 294, 295, 22,
2073 296, 297, 0, 24, 0, 0, 0, 298, 299, 300,
2074 301, 302, 27, 0, 28, 303, 0, 0, 0, 304,
2075 0, 0, 0, 0, 0, 305, 0, 0, 306, 0,
2076 0, 0, 0, 0, 0, 0, 307, 308, 309, 0,
2077 0, 0, 0, 0, 310, 311, 312, 0, 0, 0,
2078 1401, 313, 285, 8, 9, 10, 0, 12, 501, 287,
2079 288, 0, 289, 14, 0, 0, 0, 0, 0, 314,
2080 0, 0, 0, 0, 0, 0, 0, 0, 17, 290,
2081 18, 0, 20, 0, 291, 292, 21, 0, 293, 294,
2082 295, 22, 296, 297, 0, 24, 0, 0, 0, 298,
2083 299, 300, 301, 302, 27, 0, 28, 303, 0, 0,
2084 0, 304, 0, 0, 0, 0, 0, 305, 0, 0,
2085 306, 0, 0, 0, 0, 0, 0, 0, 307, 308,
2086 309, 0, 0, 0, 0, 0, 310, 311, 312, 285,
2087 8, 9, 10, 313, 12, 501, 287, 288, 0, 289,
2088 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2089 0, 314, 0, 0, 0, 17, 290, 18, 0, 20,
2090 0, 291, 292, 21, 0, 293, 294, 295, 22, 296,
2091 297, 0, 24, 0, 0, 0, 298, 299, 300, 301,
2092 302, 27, 0, 28, 303, 0, 0, 0, 304, 0,
2093 0, 0, 0, 0, 305, 0, 925, 306, 7, 8,
2094 926, 10, 134, 12, 13, 307, 308, 309, 0, 14,
2095 0, 0, 0, 310, 311, 312, 0, 0, 0, 0,
2096 313, 0, 0, 0, 17, 0, 18, 19, 20, 0,
2097 0, 0, 21, -487, 0, 0, 0, 22, 314, 807,
2098 0, 24, 927, 0, 928, 0, 0, 0, 0, 0,
2099 27, 0, 28, 29, 0, 0, 929, 0, 930, 0,
2100 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
2101 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
2102 0, 0, 0, 0, 33, 0, 0, 0, 0, 34,
2103 0, 0, 0, 1232, 1233, 1234, 10, 134, 12, 286,
2104 287, 288, 0, 289, 14, 1235, -487, 1236, 1237, 1238,
2105 1239, 1240, 1241, 1242, 1243, 1244, 1245, 15, 16, 17,
2106 290, 18, 19, 20, 0, 291, 292, 21, 0, 293,
2107 294, 295, 22, 296, 297, 0, 24, 0, 0, 0,
2108 298, 299, 300, 301, 302, 27, 0, 1246, 303, 660,
2109 0, 1247, 304, 0, 0, 0, 0, 0, 305, 0,
2110 0, 306, 0, 0, 0, 0, 0, 0, 0, 307,
2111 308, 309, 0, 0, 0, 0, 0, 310, 311, 312,
2112 0, 0, 0, 0, 313, 0, 1248, 0, 0, 0,
2113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2114 0, 1347, 314, 1232, 1233, 1234, 10, 134, 12, 286,
2115 287, 288, 0, 289, 14, 1235, 0, 1236, 1237, 1238,
2116 1239, 1240, 1241, 1242, 1243, 1244, 1245, 15, 16, 17,
2117 290, 18, 19, 20, 0, 291, 292, 21, 0, 293,
2118 294, 295, 22, 296, 297, 0, 24, 0, 0, 0,
2119 298, 299, 300, 301, 302, 27, 0, 1246, 303, 660,
2120 0, 1247, 304, 0, 0, 0, 0, 0, 305, 0,
2121 0, 306, 0, 0, 0, 0, 0, 0, 0, 307,
2122 308, 309, 0, 0, 0, 0, 0, 310, 311, 312,
2123 0, 0, 0, 0, 313, 0, 1248, 0, 0, 1232,
2124 1233, 1234, 10, 134, 12, 286, 287, 288, 0, 289,
2125 14, 1235, 314, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
2126 1243, 1244, 1245, 15, 16, 17, 290, 18, 19, 20,
2127 0, 291, 292, 21, 0, 293, 294, 295, 22, 296,
2128 297, 0, 24, 0, 0, 0, 298, 299, 300, 301,
2129 302, 27, 0, 1246, 303, 1462, 0, 1247, 304, 0,
2130 0, 0, 0, 0, 305, 0, 0, 306, 0, 0,
2131 0, 0, 0, 0, 0, 307, 308, 309, 0, 0,
2132 0, 0, 0, 310, 311, 312, 0, 0, 0, 0,
2133 313, 0, 1248, 0, 0, 1232, 1233, 1234, 10, 134,
2134 12, 286, 287, 288, 0, 289, 14, 1235, 314, 1236,
2135 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 15,
2136 16, 17, 290, 18, 19, 20, 0, 291, 292, 21,
2137 0, 293, 294, 295, 22, 296, 297, 0, 24, 0,
2138 0, 0, 298, 299, 300, 301, 302, 27, 0, 1246,
2139 303, 0, 0, 1247, 304, 0, 0, 0, 0, 0,
2140 305, 0, 0, 306, 0, 0, 0, 0, 0, 0,
2141 0, 307, 308, 309, 0, 0, 0, 0, 0, 310,
2142 311, 312, 0, 0, 0, 0, 313, 0, 1248, 285,
2143 8, 9, 10, 134, 12, 286, 287, 288, 673, 289,
2144 14, 0, 0, 0, 314, 0, 0, 0, 0, 0,
2145 0, 0, 0, 0, 0, 17, 290, 18, 19, 20,
2146 0, 291, 292, 21, 0, 293, 294, 295, 22, 296,
2147 297, 0, 24, 0, 580, 0, 298, 299, 300, 301,
2148 302, 27, 0, 28, 303, 0, 0, 0, 304, 0,
2149 0, 0, 0, 0, 305, 0, 0, 834, 0, 0,
2150 0, 0, 0, 0, 0, 307, 308, 835, 0, 0,
2151 0, 0, 0, 310, 311, 312, 0, 583, 0, 0,
2152 836, 585, 0, 0, 674, 7, 8, 9, 10, 134,
2153 12, 286, 287, 288, 673, 289, 14, 0, 314, 0,
2154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2155 0, 17, 290, 18, 19, 20, 0, 291, 292, 21,
2156 0, 293, 294, 295, 22, 296, 297, 0, 24, 0,
2157 580, 0, 298, 299, 300, 301, 302, 27, 0, 28,
2158 29, 0, 0, 0, 304, 0, 0, 0, 0, 0,
2159 305, 0, 0, 1051, 0, 0, 0, 0, 0, 0,
2160 0, 307, 308, 1052, 0, 0, 0, 0, 0, 310,
2161 311, 312, 0, 583, 0, 0, 1053, 585, 0, 0,
2162 674, 285, 8, 9, 10, 0, 12, 286, 287, 288,
2163 0, 289, 14, 0, 314, 0, 0, 0, 0, 0,
2164 0, 0, 0, 0, 0, 0, 0, 17, 290, 18,
2165 0, 20, 0, 291, 292, 21, 0, 293, 294, 295,
2166 22, 296, 297, 0, 24, 0, 0, 0, 298, 299,
2167 300, 301, 302, 27, 0, 28, 303, 0, 0, 0,
2168 304, 0, 0, 0, 0, 0, 305, 0, 0, 306,
2169 0, 0, 0, 0, 339, 0, 340, 307, 308, 309,
2170 0, 0, 0, 0, 0, 310, 311, 312, 285, 8,
2171 9, 10, 313, 12, 286, 287, 288, 0, 289, 14,
2172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2173 314, 0, 0, 0, 17, 290, 18, 0, 20, 0,
2174 291, 292, 21, 0, 293, 294, 295, 22, 296, 297,
2175 0, 24, 0, 580, 0, 298, 299, 300, 301, 302,
2176 27, 0, 28, 303, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 305, 0, 0, 834, 0, 0, 0,
2178 0, 0, 0, 0, 307, 308, 835, 0, 0, 0,
2179 0, 0, 310, 311, 312, 0, 583, 0, 0, 836,
2180 585, 7, 8, 9, 10, 0, 12, 286, 287, 288,
2181 0, 289, 14, 0, 0, 0, 0, 314, 0, 0,
2182 0, 0, 0, 0, 0, 0, 0, 17, 290, 18,
2183 0, 20, 0, 291, 292, 21, 0, 293, 294, 295,
2184 22, 296, 297, 0, 24, 0, 580, 0, 298, 299,
2185 300, 301, 302, 27, 0, 28, 29, 0, 0, 0,
2186 0, 0, 0, 0, 0, 0, 305, 0, 0, 1051,
2187 0, 0, 0, 0, 0, 0, 0, 307, 308, 1052,
2188 0, 0, 0, 0, 0, 310, 311, 312, 0, 583,
2189 0, 0, 1053, 585, 285, 8, 9, 10, 0, 12,
2190 501, 287, 288, 0, 289, 14, 0, 0, 0, 0,
2191 314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2192 17, 290, 18, 0, 20, 0, 291, 292, 21, 0,
2193 293, 294, 295, 22, 296, 297, 0, 24, 0, 0,
2194 0, 298, 299, 300, 301, 302, 27, 0, 28, 303,
2195 0, 0, 1324, 304, 0, 0, 0, 0, 0, 305,
2196 0, 0, 306, 0, 0, 0, 0, 0, 0, 0,
2197 307, 308, 309, 0, 0, 0, 0, 0, 310, 311,
2198 312, 0, 0, 0, 0, 313, 285, 8, 9, 10,
2199 134, 12, 286, 287, 288, 0, 289, 14, 0, 0,
2200 0, 0, 0, 314, 0, 0, 0, 0, 0, 0,
2201 0, 0, 17, 290, 18, 19, 20, 0, 291, 292,
2202 21, 0, 293, 294, 295, 22, 296, 297, 0, 24,
2203 0, 0, 0, 298, 299, 300, 301, 302, 27, 0,
2204 28, 303, 0, 0, 0, 0, 0, 0, 0, 0,
2205 0, 305, 0, 0, 306, 0, 0, 0, 0, 0,
2206 0, 0, 307, 308, 309, 0, 0, 0, 0, 0,
2207 310, 311, 312, 285, 8, 9, 10, 313, 12, 286,
2208 287, 288, 0, 289, 14, 0, 0, 0, 0, 0,
2209 0, 0, 0, 0, 0, 314, 0, 0, 0, 17,
2210 290, 18, 0, 20, 0, 291, 292, 21, 0, 293,
2211 294, 295, 22, 296, 297, 0, 24, 0, 0, 0,
2212 298, 299, 300, 301, 302, 27, 0, 28, 303, 0,
2213 0, 0, 304, 0, 0, 0, 0, 0, 305, 0,
2214 0, 306, 0, 0, 0, 0, 0, 0, 0, 307,
2215 308, 309, 0, 0, 0, 0, 0, 310, 311, 312,
2216 285, 8, 9, 10, 313, 12, 501, 287, 288, 0,
2217 289, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2218 0, 0, 314, 0, 0, 0, 17, 290, 18, 0,
2219 20, 0, 291, 292, 21, 0, 293, 294, 295, 22,
2220 296, 297, 0, 24, 0, 0, 0, 298, 299, 300,
2221 301, 302, 27, 0, 28, 303, 0, 0, 0, 304,
2222 0, 0, 0, 0, 0, 305, 0, 0, 306, 0,
2223 0, 0, 0, 0, 0, 0, 307, 308, 309, 0,
2224 0, 0, 0, 0, 310, 311, 312, 285, 8, 9,
2225 10, 313, 12, 501, 287, 288, 0, 289, 14, 0,
2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 314,
2227 0, 0, 0, 17, 290, 18, 0, 20, 0, 291,
2228 292, 21, 0, 293, 294, 295, 22, 296, 297, 0,
2229 24, 0, 0, 0, 298, 299, 300, 301, 302, 27,
2230 0, 28, 303, 532, 0, 0, 0, 0, 0, 0,
2231 0, 0, 305, 0, 0, 306, 0, 0, 0, 0,
2232 0, 0, 0, 307, 308, 309, 0, 0, 0, 0,
2233 0, 310, 311, 312, 285, 8, 9, 10, 533, 12,
2234 501, 287, 288, 0, 289, 14, 0, 0, 0, 0,
2235 0, 0, 0, 0, 0, 0, 314, 0, 0, 0,
2236 17, 290, 18, 0, 20, 0, 291, 292, 21, 0,
2237 293, 294, 295, 22, 296, 297, 0, 24, 0, 0,
2238 0, 298, 299, 300, 301, 302, 27, 0, 28, 303,
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 305,
2240 0, 0, 306, 0, 0, 0, 0, 0, 0, 0,
2241 307, 308, 309, 0, 0, 0, 0, 0, 310, 311,
2242 312, 0, 0, 0, 0, 313, 569, 285, 8, 9,
2243 10, 0, 12, 501, 287, 288, 0, 289, 14, 0,
2244 0, 0, 0, 314, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 17, 290, 18, 0, 20, 0, 291,
2246 292, 21, 0, 293, 294, 295, 22, 296, 297, 0,
2247 24, 0, 0, 0, 298, 299, 300, 301, 302, 27,
2248 0, 28, 303, 0, 0, 0, 304, 0, 0, 0,
2249 0, 0, 305, 0, 0, 520, 0, 0, 0, 0,
2250 0, 0, 0, 307, 308, 521, 0, 0, 0, 0,
2251 0, 310, 311, 312, 1023, 8, 9, 10, 522, 12,
2252 501, 287, 288, 0, 289, 14, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 314, 0, 0, 0,
2254 17, 290, 18, 0, 20, 0, 291, 292, 21, 0,
2255 293, 294, 295, 22, 296, 297, 0, 24, 0, 0,
2256 0, 298, 299, 300, 301, 302, 27, 0, 28, 303,
2257 0, 0, 0, 304, 0, 0, 0, 0, 0, 305,
2258 0, 0, 306, 0, 0, 0, 0, 0, 0, 0,
2259 307, 308, 309, 0, 0, 0, 0, 0, 310, 311,
2260 312, 7, 8, 9, 10, 313, 12, 501, 287, 288,
2261 0, 289, 14, 0, 0, 0, 0, 0, 0, 0,
2262 0, 0, 0, 314, 0, 0, 0, 17, 290, 18,
2263 0, 20, 0, 291, 292, 21, 0, 293, 294, 295,
2264 22, 296, 297, 0, 24, 0, 0, 0, 298, 299,
2265 300, 301, 302, 27, 0, 28, 29, 0, 0, 0,
2266 304, 0, 0, 0, 0, 0, 305, 0, 0, 1388,
2267 0, 0, 0, 0, 0, 0, 0, 307, 308, 1389,
2268 0, 0, 0, 0, 0, 310, 311, 312, 285, 8,
2269 9, 10, 1390, 12, 501, 287, 288, 0, 289, 14,
2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2271 314, 0, 0, 0, 17, 290, 18, 0, 20, 0,
2272 291, 292, 21, 0, 293, 294, 295, 22, 296, 297,
2273 0, 24, 0, 0, 0, 298, 299, 300, 301, 302,
2274 27, 0, 28, 303, 0, 0, 0, 0, 0, 0,
2275 0, 0, 0, 305, 0, 0, 306, 0, 0, 0,
2276 0, 0, 0, 0, 307, 308, 309, 0, 0, 0,
2277 0, 0, 310, 311, 312, 285, 8, 9, 10, 502,
2278 12, 501, 287, 288, 0, 289, 14, 0, 0, 0,
2279 0, 0, 0, 0, 0, 0, 0, 314, 0, 0,
2280 0, 17, 290, 18, 0, 20, 0, 291, 292, 21,
2281 0, 293, 294, 295, 22, 296, 297, 0, 24, 0,
2282 0, 0, 298, 299, 300, 301, 302, 27, 0, 28,
2283 303, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284 305, 0, 0, 306, 0, 0, 0, 0, 0, 0,
2285 0, 307, 308, 309, 0, 0, 0, 0, 0, 310,
2286 311, 312, 285, 8, 9, 10, 505, 12, 501, 287,
2287 288, 0, 289, 14, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 314, 0, 0, 0, 17, 290,
2289 18, 0, 20, 0, 291, 292, 21, 0, 293, 294,
2290 295, 22, 296, 297, 0, 24, 0, 0, 0, 298,
2291 299, 300, 301, 302, 27, 0, 28, 303, 0, 0,
2292 0, 0, 0, 0, 0, 0, 0, 305, 0, 0,
2293 306, 0, 0, 0, 0, 0, 0, 0, 307, 308,
2294 309, 0, 0, 0, 0, 0, 310, 311, 312, 285,
2295 8, 9, 10, 313, 12, 501, 287, 288, 0, 289,
2296 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2297 0, 314, 0, 0, 0, 17, 290, 18, 0, 20,
2298 0, 291, 292, 21, 0, 293, 294, 295, 22, 296,
2299 297, 0, 24, 0, 0, 0, 298, 299, 300, 301,
2300 302, 27, 0, 28, 303, 0, 0, 0, 0, 0,
2301 0, 0, 0, 0, 305, 0, 0, 520, 0, 0,
2302 0, 0, 0, 0, 0, 307, 308, 521, 0, 0,
2303 0, 0, 0, 310, 311, 312, 7, 8, 9, 10,
2304 522, 12, 286, 287, 288, 0, 289, 14, 0, 0,
2305 0, 0, 0, 0, 0, 0, 0, 0, 314, 0,
2306 0, 0, 17, 290, 18, 0, 20, 0, 291, 292,
2307 21, 0, 293, 294, 295, 22, 296, 297, 0, 24,
2308 0, 0, 0, 298, 299, 300, 301, 302, 27, 0,
2309 28, 29, 0, 0, 0, 0, 0, 0, 0, 0,
2310 0, 305, 0, 6, 1388, 7, 8, 9, 10, 11,
2311 12, 13, 307, 308, 1389, 0, 14, 0, 0, 0,
2312 310, 311, 312, 0, 0, 0, 0, 1390, 0, 15,
2313 16, 17, 0, 18, 19, 20, 0, 0, 0, 21,
2314 0, 0, 0, 0, 22, 314, 0, 23, 24, 25,
2315 0, 26, 0, 0, 0, 0, 0, 27, 0, 28,
2316 29, 0, 166, 30, 7, 8, 9, 10, 11, 12,
2317 13, 0, 0, 31, 0, 14, 0, 0, 0, 0,
2318 0, 0, 0, 32, 0, 0, 0, 0, 15, 16,
2319 17, 33, 18, 19, 20, 0, 34, 0, 21, 0,
2320 0, 0, 35, 22, 0, 0, 23, 24, 25, 0,
2321 26, 0, 0, 0, 0, 0, 27, 0, 28, 29,
2322 0, 0, 30, 7, 8, 9, 10, 201, 202, 203,
2323 0, 0, 31, 0, 14, 0, 0, 0, 0, 0,
2324 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
2325 33, 0, 19, 0, 0, 34, 0, 21, 0, 0,
2326 0, 35, 22, 0, 0, 0, 24, 0, 580, 0,
2327 0, 0, 0, 0, 0, 27, 0, 28, 29, 7,
2328 8, 9, 10, 201, 202, 203, 0, 0, 0, 0,
2329 14, 862, 0, 0, 0, 0, 0, 0, 0, 0,
2330 0, 863, 0, 0, 0, 0, 0, 0, 19, 33,
2331 0, 583, 0, 21, 864, 585, 0, 0, 22, 0,
2332 0, 0, 24, 0, 580, 0, 0, 0, 0, 0,
2333 0, 27, 0, 28, 29, 7, 8, 9, 10, 134,
2334 12, 13, 0, 0, 0, 0, 14, 862, 0, 0,
2335 0, 0, 0, 0, 0, 0, 0, 863, 0, 0,
2336 0, 17, 0, 18, 19, 33, 0, 583, 0, 21,
2337 898, 585, 0, 0, 22, 0, 0, 0, 24, 0,
2338 0, 0, 0, 0, 0, 0, 0, 27, 0, 28,
2339 29, 7, 8, 9, 10, 134, 12, 13, 0, 0,
2340 904, 0, 14, 31, 0, 0, 0, 135, 0, 0,
2341 0, 0, 0, 32, 0, 0, 0, 17, 0, 18,
2342 19, 33, 0, 0, 0, 21, 34, 0, 0, 0,
2343 22, 0, 0, 0, 24, 0, 1086, 8, 926, 10,
2344 192, 12, 193, 27, 0, 28, 29, 14, 0, 0,
2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
2346 0, 0, 17, 0, 18, 19, 0, 0, 0, 32,
2347 21, 0, 0, 0, 0, 22, 0, 33, 0, 24,
2348 0, 0, 34, 0, 0, 0, 0, 0, 27, 0,
2349 28, 29, 0, 0, 0, 0, 1088, 7, 8, 9,
2350 10, 192, 12, 193, 31, 0, 0, 0, 14, 0,
2351 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
2352 0, 0, 33, 17, 0, 18, 19, 34, 0, 0,
2353 0, 21, 0, 0, 0, 0, 22, 0, 0, 0,
2354 24, 0, 7, 8, 9, 10, 134, 12, 13, 27,
2355 0, 28, 29, 14, 0, 1337, 0, 0, 0, 0,
2356 0, 0, 0, 0, 0, 31, 0, 0, 17, 0,
2357 18, 19, 0, 0, 0, 32, 21, 0, 0, 0,
2358 0, 22, 0, 33, 0, 24, 0, 0, 34, 0,
2359 0, 0, 0, 0, 27, 0, 28, 29, 7, 8,
2360 9, 10, 192, 12, 193, 0, 0, 0, 0, 14,
2361 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2362 32, 0, 0, 0, 17, 0, 18, 19, 33, 0,
2363 0, 0, 21, 34, 0, 0, 0, 22, 0, 0,
2364 0, 24, 0, 7, 8, 9, 10, 201, 202, 203,
2365 27, 0, 28, 29, 14, 0, 0, 0, 0, 0,
2366 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
2367 0, 0, 19, 0, 0, 0, 32, 21, 0, 0,
2368 0, 0, 22, 0, 33, 1378, 24, 0, 580, 34,
2369 0, 0, 0, 0, 0, 27, 0, 28, 29, 535,
2370 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2371 546, 180, 548, 549, 550, 551, 552, 553, 554, 555,
2372 556, 181, 0, 0, 0, 0, 0, 0, 0, 33,
2373 0, 0, 0, 0, 1340, 0, 1379, 535, 536, 537,
2374 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
2375 548, 549, 550, 551, 552, 553, 554, 555, 556, 8,
2376 9, 0, 134, 12, 13, 0, 8, 9, 0, 14,
2377 12, 230, 0, 8, 9, 0, 14, 12, 13, 0,
2378 0, 0, 0, 14, 17, 0, 18, 19, 0, 0,
2379 0, 17, 21, 18, 0, 0, 19, 0, 17, 21,
2380 18, 634, 0, 0, 0, 0, 21, 0, 24, 0,
2381 27, 0, 129, 130, 0, 24, 0, 27, 0, 129,
2382 130, 0, 0, 0, 27, 0, 129, 130, 535, 536,
2383 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
2384 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2385 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
2386 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2387 555, 556, 535, 536, 537, 538, 539, 540, 541, 542,
2388 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
2389 553, 554, 555, 556, 0, 0, 0, 0, 0, 1124,
2390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2391 0, 0, 0, 0, 617, 0, 0, 1432, 535, 536,
2392 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
2393 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2394 1301, 535, 536, 537, 538, 539, 540, 541, 542, 543,
2395 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
2396 554, 555, 556, 1449, 535, 536, 537, 538, 539, 540,
2397 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
2398 551, 552, 553, 554, 555, 556, 535, 536, 537, 538,
2399 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
2400 549, 550, 551, 552, 553, 554, 555, 556
2403 static const short yycheck[] = { 4,
2404 658, 332, 54, 161, 75, 392, 656, 196, 470, 392,
2405 58, 427, 4, 4, 125, 236, 83, 392, 24, 888,
2406 1226, 26, 151, 152, 338, 4, 931, 449, 796, 79,
2407 14, 36, 196, 363, 132, 940, 41, 4, 721, 289,
2408 290, 205, 231, 726, 36, 36, 11, 26, 34, 41,
2409 41, 56, 132, 133, 11, 53, 1256, 36, 89, 26,
2410 91, 92, 41, 1263, 31, 32, 71, 226, 1376, 36,
2411 320, 61, 128, 422, 41, 1249, 11, 133, 83, 1187,
2412 1188, 1412, 87, 4, 89, 137, 91, 92, 93, 48,
2413 60, 139, 281, 1201, 1410, 38, 146, 34, 82, 55,
2414 61, 106, 107, 1407, 36, 26, 63, 204, 205, 41,
2415 141, 9, 143, 0, 93, 36, 83, 338, 60, 75,
2416 41, 105, 4, 65, 1, 1441, 93, 55, 0, 200,
2417 1, 75, 1, 138, 76, 94, 141, 60, 143, 4,
2418 190, 111, 75, 332, 26, 110, 1393, 75, 196, 832,
2419 111, 110, 1483, 110, 36, 79, 204, 205, 156, 41,
2420 165, 26, 83, 585, 62, 1469, 152, 153, 111, 1277,
2421 61, 36, 93, 504, 111, 110, 41, 526, 1286, 1287,
2422 1380, 1289, 59, 231, 151, 152, 165, 110, 59, 187,
2423 59, 56, 63, 1440, 63, 657, 182, 428, 165, 12,
2424 1508, 60, 1376, 49, 435, 25, 1522, 27, 28, 199,
2425 60, 93, 584, 180, 181, 983, 12, 207, 61, 591,
2426 111, 1421, 55, 1470, 61, 96, 7, 96, 93, 4,
2427 60, 329, 14, 281, 4, 5, 91, 92, 39, 59,
2428 59, 23, 75, 63, 165, 1451, 60, 60, 232, 329,
2429 63, 110, 65, 284, 55, 55, 12, 38, 325, 48,
2430 110, 36, 76, 63, 60, 59, 41, 63, 111, 500,
2431 447, 65, 1472, 956, 111, 958, 96, 282, 455, 284,
2432 110, 100, 64, 165, 332, 98, 141, 57, 58, 603,
2433 454, 1399, 1400, 48, 681, 94, 348, 1202, 681, 629,
2434 165, 349, 98, 48, 60, 94, 386, 63, 313, 365,
2435 659, 81, 441, 442, 110, 473, 48, 27, 28, 63,
2436 325, 34, 32, 247, 3, 4, 5, 313, 333, 60,
2437 386, 562, 94, 564, 565, 1253, 63, 1255, 75, 94,
2438 95, 123, 98, 60, 61, 76, 677, 78, 63, 94,
2439 95, 61, 48, 94, 338, 65, 453, 454, 325, 63,
2440 75, 34, 94, 95, 461, 1133, 110, 598, 150, 48,
2441 1239, 75, 1442, 291, 292, 472, 55, 61, 57, 58,
2442 8, 9, 798, 110, 1454, 48, 14, 392, 306, 25,
2443 1073, 309, 463, 1463, 312, 492, 4, 315, 94, 95,
2444 318, 111, 1085, 48, 325, 453, 454, 48, 326, 37,
2445 415, 833, 1482, 461, 110, 94, 94, 48, 46, 109,
2446 48, 48, 25, 59, 472, 392, 61, 63, 36, 284,
2447 435, 94, 1502, 41, 65, 48, 415, 1306, 151, 152,
2448 153, 223, 224, 55, 492, 32, 1315, 1316, 415, 94,
2449 95, 75, 65, 94, 236, 1525, 442, 443, 60, 61,
2450 96, 316, 924, 94, 836, 110, 94, 94, 435, 182,
2451 460, 392, 859, 55, 441, 442, 859, 63, 151, 152,
2452 153, 94, 95, 48, 859, 475, 48, 342, 48, 344,
2453 63, 346, 864, 75, 415, 55, 59, 502, 48, 566,
2454 505, 55, 75, 65, 509, 510, 511, 512, 513, 182,
2455 3, 4, 5, 6, 435, 75, 502, 522, 111, 505,
2456 3, 4, 5, 305, 529, 59, 898, 841, 533, 94,
2457 95, 947, 94, 415, 94, 521, 522, 886, 48, 4,
2458 5, 396, 397, 94, 94, 110, 705, 533, 707, 42,
2459 415, 60, 61, 712, 4, 5, 745, 55, 974, 975,
2460 565, 566, 55, 48, 57, 58, 989, 990, 799, 992,
2461 76, 993, 48, 48, 57, 58, 1445, 75, 1040, 584,
2462 362, 812, 55, 814, 94, 816, 591, 639, 838, 641,
2463 642, 55, 57, 58, 642, 56, 89, 58, 81, 566,
2464 48, 698, 520, 521, 715, 591, 1068, 57, 58, 94,
2465 55, 595, 4, 5, 581, 582, 81, 584, 94, 94,
2466 841, 4, 5, 854, 591, 677, 9, 48, 634, 677,
2467 75, 81, 55, 1049, 55, 640, 4, 5, 48, 644,
2468 110, 9, 1058, 1059, 499, 566, 94, 1063, 1064, 880,
2469 698, 657, 4, 5, 75, 48, 9, 988, 48, 12,
2470 1032, 110, 55, 584, 95, 57, 58, 63, 110, 48,
2471 591, 110, 55, 94, 57, 58, 681, 138, 139, 75,
2472 11, 1053, 75, 111, 94, 48, 468, 55, 71, 57,
2473 58, 722, 723, 724, 48, 48, 3, 745, 81, 27,
2474 28, 94, 61, 71, 94, 57, 58, 60, 1124, 62,
2475 63, 716, 65, 81, 681, 94, 721, 722, 723, 724,
2476 94, 726, 113, 76, 716, 78, 95, 95, 441, 442,
2477 443, 94, 113, 4, 5, 196, 63, 716, 55, 95,
2478 94, 94, 95, 204, 205, 98, 63, 84, 85, 716,
2479 532, 60, 61, 739, 721, 4, 5, 110, 75, 726,
2480 681, 94, 921, 922, 923, 1181, 60, 61, 441, 442,
2481 443, 55, 94, 234, 8, 9, 4, 5, 75, 63,
2482 14, 55, 75, 4, 5, 1435, 57, 58, 75, 63,
2483 795, 75, 716, 75, 799, 716, 11, 1455, 1214, 48,
2484 721, 75, 110, 37, 60, 726, 55, 111, 57, 58,
2485 81, 1042, 46, 1044, 110, 1046, 3, 4, 5, 869,
2486 55, 826, 71, 4, 5, 110, 65, 832, 63, 57,
2487 58, 836, 81, 110, 716, 55, 57, 58, 60, 61,
2488 75, 110, 91, 63, 61, 94, 95, 60, 61, 835,
2489 836, 111, 634, 81, 859, 75, 861, 841, 111, 864,
2490 81, 643, 113, 934, 935, 832, 110, 834, 835, 836,
2491 57, 58, 943, 113, 55, 75, 57, 58, 864, 4,
2492 5, 75, 664, 75, 113, 1301, 938, 113, 349, 807,
2493 71, 110, 859, 898, 110, 862, 863, 864, 110, 59,
2494 81, 1030, 1031, 25, 110, 27, 28, 912, 733, 734,
2495 735, 832, 898, 55, 919, 836, 834, 835, 4, 5,
2496 1151, 8, 1051, 1052, 1255, 113, 931, 94, 933, 48,
2497 55, 898, 57, 58, 939, 940, 65, 59, 859, 931,
2498 60, 63, 94, 864, 61, 111, 71, 55, 940, 65,
2499 65, 956, 931, 958, 933, 63, 81, 110, 61, 45,
2500 25, 940, 27, 28, 931, 63, 933, 75, 1317, 55,
2501 95, 57, 58, 940, 96, 110, 110, 898, 110, 110,
2502 1329, 7, 8, 9, 1034, 446, 65, 65, 14, 956,
2503 65, 958, 453, 454, 59, 113, 457, 65, 63, 94,
2504 461, 60, 3, 4, 5, 6, 32, 931, 110, 933,
2505 931, 37, 933, 110, 110, 939, 940, 1404, 1089, 940,
2506 46, 1404, 110, 76, 1095, 1096, 110, 1032, 1099, 1100,
2507 76, 96, 1103, 76, 1040, 956, 76, 958, 3, 4,
2508 5, 42, 63, 110, 1393, 1031, 1032, 1097, 1053, 931,
2509 110, 933, 63, 60, 110, 63, 57, 58, 940, 110,
2510 3, 4, 5, 1030, 1031, 1032, 1052, 1053, 1073, 113,
2511 852, 95, 111, 938, 939, 110, 110, 995, 48, 25,
2512 1085, 27, 28, 113, 1051, 1052, 1053, 1418, 89, 1438,
2513 55, 1440, 57, 58, 1510, 950, 951, 952, 89, 3,
2514 4, 5, 111, 1108, 110, 87, 1073, 89, 110, 91,
2515 92, 1032, 55, 59, 57, 58, 1108, 63, 1085, 113,
2516 113, 1470, 110, 3, 4, 5, 110, 110, 60, 1108,
2517 110, 1480, 1053, 1051, 1052, 3, 4, 5, 6, 111,
2518 65, 1108, 79, 80, 81, 82, 83, 84, 85, 65,
2519 96, 864, 1073, 57, 58, 59, 75, 63, 110, 141,
2520 110, 143, 1167, 94, 1085, 94, 3, 4, 5, 6,
2521 94, 94, 1177, 1097, 42, 1167, 1167, 57, 58, 640,
2522 110, 642, 8, 111, 1108, 898, 113, 1108, 1167, 57,
2523 58, 864, 110, 975, 4, 5, 110, 1202, 110, 392,
2524 1167, 1253, 110, 1255, 113, 42, 111, 1255, 110, 110,
2525 1202, 110, 49, 1284, 1285, 110, 677, 110, 110, 60,
2526 57, 58, 60, 1202, 110, 898, 1108, 1385, 110, 1418,
2527 63, 3, 4, 5, 113, 1202, 48, 698, 110, 110,
2528 701, 110, 435, 97, 1249, 55, 1167, 57, 58, 1254,
2529 34, 1256, 89, 110, 110, 110, 65, 1249, 1263, 1388,
2530 1389, 3, 4, 5, 1256, 1256, 110, 1049, 1339, 63,
2531 1249, 1263, 1263, 113, 1198, 110, 110, 1256, 1202, 110,
2532 110, 1202, 1249, 55, 1263, 57, 58, 59, 63, 1256,
2533 446, 3, 4, 5, 61, 61, 1263, 3, 4, 5,
2534 6, 457, 284, 16, 9, 61, 94, 1, 94, 3,
2535 4, 5, 6, 61, 8, 57, 58, 1030, 1031, 1032,
2536 1202, 61, 304, 81, 82, 83, 84, 85, 1249, 94,
2537 94, 1249, 3, 4, 5, 1256, 42, 17, 1051, 1052,
2538 1053, 61, 1263, 49, 99, 57, 58, 109, 42, 110,
2539 61, 57, 58, 110, 1340, 49, 110, 1030, 1031, 1032,
2540 110, 55, 11, 57, 58, 61, 61, 1419, 94, 60,
2541 1418, 1376, 1377, 110, 61, 1380, 65, 1448, 1051, 1052,
2542 1053, 110, 1164, 89, 1376, 1390, 57, 58, 1380, 1380,
2543 11, 584, 61, 61, 110, 89, 11, 1376, 591, 1404,
2544 61, 1380, 1407, 1389, 1390, 1410, 3, 4, 5, 1376,
2545 1377, 0, 0, 1380, 0, 2, 1421, 417, 1410, 1410,
2546 365, 1388, 1389, 859, 165, 1434, 165, 939, 933, 1421,
2547 1421, 1410, 1372, 1040, 31, 529, 1441, 1404, 1522, 1254,
2548 1407, 852, 1421, 1410, 847, 427, 428, 225, 1068, 1441,
2549 1441, 1108, 48, 435, 1421, 1376, 1377, 664, 55, 1380,
2550 57, 58, 1441, 1245, 1469, 924, 933, 1472, 939, 614,
2551 1388, 1389, 1200, 845, 1441, 566, 329, 187, 939, 123,
2552 1472, 1472, 1256, 1404, 945, 1168, 1407, 1480, 681, 1410,
2553 1424, 87, 88, 1472, 1494, 1455, 92, 93, 94, 95,
2554 1421, 1496, 1469, 907, -1, 1472, 1177, 7, 8, 9,
2555 -1, -1, -1, -1, 14, -1, -1, 1522, 500, -1,
2556 1441, -1, -1, -1, -1, -1, 1308, -1, 721, -1,
2557 1522, 1522, 32, 726, -1, -1, -1, 37, -1, 3,
2558 4, 5, 6, 1522, -1, 701, 46, 529, 1469, -1,
2559 532, 1472, -1, 535, 536, 1522, 538, 539, 540, 541,
2560 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
2561 552, 553, 554, 555, 556, -1, -1, -1, 42, -1,
2562 562, -1, 564, 565, -1, 49, -1, -1, -1, -1,
2563 -1, -1, -1, 57, 58, 106, 107, -1, 3, 4,
2564 5, 1522, 7, -1, -1, -1, 3, 4, 5, 591,
2565 7, 8, 9, 428, -1, -1, 598, 1078, 1079, -1,
2566 435, 12, 180, 181, 182, 89, 31, 1340, -1, -1,
2567 -1, -1, -1, 38, 616, 617, 27, 28, -1, 832,
2568 37, 32, -1, 836, -1, -1, 1107, -1, -1, -1,
2569 55, -1, 57, 58, -1, -1, -1, 48, 55, -1,
2570 57, 58, 59, -1, -1, -1, 859, 1340, -1, 60,
2571 61, 864, 63, 696, 65, 1388, 1389, 1390, -1, -1,
2572 -1, -1, 664, -1, -1, 500, -1, -1, -1, -1,
2573 -1, 3, 4, 5, 6, -1, -1, 720, -1, -1,
2574 -1, -1, 725, 94, 95, 898, -1, 98, 105, 106,
2575 107, -1, -1, -1, -1, 1388, 1389, 1390, -1, 110,
2576 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
2577 42, -1, 1193, 1194, -1, 1196, 1197, -1, 1199, -1,
2578 722, 723, 724, 55, -1, 57, 58, 562, -1, 564,
2579 565, 63, -1, 60, 61, -1, -1, 739, 65, 71,
2580 -1, -1, -1, 956, -1, 958, -1, -1, -1, 81,
2581 4, 5, -1, 7, 8, 9, 591, 89, 12, 761,
2582 14, -1, 94, 598, -1, -1, 3, 4, 5, 945,
2583 7, 8, 9, 1254, 1255, 29, -1, 31, 32, -1,
2584 -1, -1, 313, 37, 827, -1, 829, -1, -1, -1,
2585 -1, -1, 46, 1274, 1275, -1, 798, 799, -1, -1,
2586 -1, 55, -1, 57, 58, -1, 4, -1, -1, -1,
2587 812, -1, 814, -1, 816, -1, 14, -1, -1, 1032,
2588 57, 58, -1, -1, -1, -1, -1, 25, 26, -1,
2589 -1, -1, -1, 31, 32, -1, 34, -1, 36, -1,
2590 1053, -1, 844, 41, 98, -1, 4, 5, -1, -1,
2591 -1, 9, 854, -1, -1, -1, 54, -1, 56, 437,
2592 1073, 439, -1, 441, 442, 443, 64, -1, -1, -1,
2593 -1, 873, 1085, 71, 452, 1356, 1357, 1358, 880, -1,
2594 7, 8, 9, -1, 82, 83, -1, 14, -1, -1,
2595 48, -1, -1, -1, -1, 93, 898, 55, -1, 57,
2596 58, 432, 1078, 1079, 739, 32, -1, 105, -1, -1,
2597 37, -1, 955, 71, 957, 1396, 1397, -1, -1, 46,
2598 -1, -1, -1, 81, -1, -1, -1, -1, 930, -1,
2599 128, 1107, -1, 91, 61, 133, 94, 95, -1, 137,
2600 138, -1, -1, -1, -1, 947, 144, -1, -1, 147,
2601 148, 106, 107, 151, 152, 153, -1, -1, -1, -1,
2602 -1, -1, -1, -1, 799, -1, 1009, 165, -1, -1,
2603 -1, 502, 974, 975, 505, -1, 978, 812, 509, 814,
2604 -1, 816, 180, 181, 182, 7, 8, 9, -1, -1,
2605 1471, 522, 14, -1, -1, -1, 3, 4, 5, 6,
2606 -1, -1, 533, -1, -1, -1, 537, -1, -1, -1,
2607 32, 209, -1, -1, -1, 37, -1, 1193, 1194, 854,
2608 1196, 1197, -1, 1199, 46, -1, 224, -1, -1, -1,
2609 -1, -1, 563, -1, 232, 42, -1, -1, 569, 61,
2610 1042, -1, 1044, -1, 1046, 880, 244, 1049, 55, -1,
2611 57, 58, 3, 4, 5, 6, 1058, 1059, 9, -1,
2612 -1, 1063, 1064, 898, 71, 77, 78, 79, 80, 81,
2613 82, 83, 84, 85, 81, -1, -1, -1, -1, -1,
2614 -1, -1, 89, -1, 282, 283, 1088, 94, -1, -1,
2615 -1, 42, -1, -1, -1, -1, -1, 48, 1274, 1275,
2616 3, 4, 5, 1146, 55, -1, 57, 58, -1, -1,
2617 688, 689, -1, 691, 3, 4, 5, 6, -1, -1,
2618 71, -1, 1124, -1, 1126, -1, -1, 325, -1, -1,
2619 81, 329, -1, 331, 332, 333, 39, 40, 89, 42,
2620 91, -1, 1185, 94, 95, -1, 1189, -1, -1, 1151,
2621 348, -1, 55, 42, 57, 58, -1, -1, 313, -1,
2622 49, 1204, 1205, -1, -1, -1, -1, 365, 57, 58,
2623 -1, -1, -1, -1, -1, -1, -1, 1220, -1, 1181,
2624 1356, 1357, 1358, -1, -1, -1, -1, -1, 386, 1191,
2625 1192, 1404, 81, -1, 392, -1, 3, 4, 5, 6,
2626 89, -1, 9, -1, -1, 403, -1, 1042, 406, 1044,
2627 -1, 1046, 1214, 411, 81, -1, -1, 415, -1, -1,
2628 1396, 1397, 3, 4, 5, 6, -1, -1, -1, -1,
2629 -1, -1, -1, -1, -1, 42, -1, 392, 1240, 437,
2630 -1, 439, -1, 441, 442, 443, -1, -1, 55, 447,
2631 57, 58, 1295, 1296, 452, -1, -1, 455, -1, -1,
2632 -1, 42, -1, -1, 71, -1, -1, -1, 49, -1,
2633 -1, -1, 803, -1, 81, -1, 57, 58, 1280, -1,
2634 435, -1, 89, -1, 862, 863, 864, 94, -1, -1,
2635 -1, -1, 159, -1, -1, 1471, -1, -1, -1, 1301,
2636 81, -1, -1, -1, -1, 836, 1349, 1350, 89, -1,
2637 -1, 178, 510, 511, 512, 513, 1151, -1, -1, -1,
2638 898, -1, -1, -1, 191, 73, 74, 75, 76, 77,
2639 78, 79, 80, 81, 82, 83, 84, 85, 1340, -1,
2640 3, 4, 5, 6, -1, -1, 9, 502, -1, -1,
2641 505, -1, 1354, 1355, 509, 510, 511, 512, 513, -1,
2642 938, 1363, -1, -1, -1, -1, -1, 522, 566, -1,
2643 568, -1, -1, -1, -1, -1, 1378, -1, 533, 42,
2644 -1, 579, -1, 581, 582, 48, 584, -1, 919, -1,
2645 -1, -1, 55, 591, 57, 58, -1, 595, -1, -1,
2646 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
2647 565, -1, -1, -1, -1, -1, -1, -1, 81, -1,
2648 -1, -1, -1, -1, -1, -1, 89, -1, 91, 584,
2649 -1, 94, 95, -1, -1, -1, 591, -1, -1, -1,
2650 -1, 639, 640, 641, 642, 643, 644, -1, -1, -1,
2651 1028, 1029, 1030, 1031, 1032, -1, -1, -1, 1036, -1,
2652 -1, -1, 3, 4, 5, 6, -1, -1, 9, -1,
2653 -1, -1, -1, 1051, 1052, 1053, -1, -1, -1, 677,
2654 -1, -1, -1, 681, -1, -1, -1, -1, -1, -1,
2655 688, 689, -1, 691, -1, -1, -1, -1, -1, -1,
2656 -1, 42, -1, -1, -1, 1340, -1, 48, 1510, -1,
2657 3, 4, 5, 6, 55, -1, 57, 58, 716, -1,
2658 -1, -1, 1053, 721, -1, -1, 681, -1, 726, -1,
2659 71, -1, -1, -1, -1, 733, 734, 735, -1, -1,
2660 81, -1, -1, -1, -1, -1, -1, 745, 89, 42,
2661 91, -1, -1, 94, 95, -1, 49, -1, -1, -1,
2662 -1, -1, -1, -1, 57, 58, 721, -1, -1, -1,
2663 -1, 726, -1, -1, -1, -1, 1154, 1155, 445, 1157,
2664 -1, -1, -1, 450, -1, -1, -1, -1, 81, 1120,
2665 1121, 1122, 1123, -1, -1, -1, 89, 795, -1, -1,
2666 1131, -1, -1, -1, -1, 3, 4, 5, 6, 476,
2667 -1, 9, -1, -1, 481, -1, -1, 1195, -1, 817,
2668 -1, 819, -1, -1, -1, -1, 493, 494, 826, 496,
2669 -1, -1, 830, -1, 832, -1, 834, 835, 836, -1,
2670 795, -1, -1, 841, 42, -1, -1, -1, -1, -1,
2671 48, -1, -1, -1, -1, -1, -1, 55, -1, 57,
2672 58, 859, -1, 861, 862, 863, 864, -1, -1, -1,
2673 -1, 826, -1, 71, -1, -1, -1, 832, -1, -1,
2674 4, 836, -1, 81, -1, -1, -1, -1, -1, -1,
2675 -1, 89, -1, 91, -1, -1, 94, 95, -1, -1,
2676 898, -1, 26, -1, 859, -1, 861, 31, 32, 864,
2677 -1, -1, 36, 1244, 912, -1, -1, 41, -1, -1,
2678 587, 588, -1, -1, -1, 592, -1, -1, -1, 927,
2679 -1, -1, 56, 931, -1, 933, -1, -1, -1, -1,
2680 938, 939, 940, 898, -1, -1, 4, -1, -1, -1,
2681 -1, -1, -1, -1, -1, -1, 14, 912, 956, -1,
2682 958, 79, 1340, -1, 919, -1, 24, 25, 26, 93,
2683 -1, -1, -1, 31, 32, -1, 34, -1, 36, -1,
2684 -1, -1, -1, 41, -1, 103, -1, -1, -1, -1,
2685 -1, 989, 990, -1, 992, 1326, 54, -1, 56, -1,
2686 -1, 956, -1, 958, -1, -1, 64, -1, -1, -1,
2687 1388, 1389, 1390, 71, 132, -1, -1, -1, -1, -1,
2688 144, -1, -1, -1, 148, 83, -1, -1, 146, -1,
2689 1028, 1029, 1030, 1031, 1032, 93, -1, -1, 1036, -1,
2690 -1, 165, -1, -1, -1, 1376, 1377, -1, -1, -1,
2691 -1, -1, -1, 1051, 1052, 1053, 180, 181, -1, 1390,
2692 727, -1, 729, -1, -1, -1, -1, -1, -1, -1,
2693 128, -1, 190, -1, -1, 1073, 1407, 1032, -1, 137,
2694 138, -1, -1, -1, -1, -1, 144, 1085, -1, -1,
2695 148, -1, -1, 151, 152, 153, -1, -1, 1053, -1,
2696 1098, -1, -1, -1, -1, 223, -1, 165, -1, -1,
2697 1108, -1, -1, -1, -1, -1, -1, -1, 1073, -1,
2698 244, -1, 180, 181, 182, -1, -1, -1, -1, 247,
2699 1085, -1, -1, -1, 801, 802, 1467, 804, 1469, -1,
2700 4, 5, -1, 7, 8, 9, -1, -1, 12, -1,
2701 14, 209, -1, -1, -1, -1, 1154, 1155, -1, 1157,
2702 -1, -1, 1493, -1, 831, 29, -1, 31, 32, -1,
2703 -1, -1, -1, 37, -1, -1, -1, 1508, -1, 1177,
2704 -1, -1, 46, -1, 48, -1, 244, -1, -1, -1,
2705 -1, 55, -1, 57, 58, -1, -1, 1195, -1, 866,
2706 -1, -1, 1200, -1, 1202, -1, -1, 71, 3, 4,
2707 5, 6, -1, -1, -1, -1, -1, 81, -1, 337,
2708 -1, -1, 1177, -1, 282, 283, -1, 91, -1, -1,
2709 94, 95, -1, -1, 98, 74, 75, 76, 77, 78,
2710 79, 80, 81, 82, 83, 84, 85, 42, -1, 3,
2711 4, 5, 6, 48, -1, 1253, 1254, 1255, -1, -1,
2712 55, -1, 57, 58, -1, -1, -1, 325, -1, -1,
2713 -1, 329, -1, 331, 332, 333, 71, -1, -1, 403,
2714 338, 399, 406, -1, -1, -1, 81, 411, 42, -1,
2715 348, 415, -1, -1, 89, -1, 91, -1, -1, 94,
2716 95, 55, -1, 57, 58, -1, -1, 365, -1, 63,
2717 -1, 4, 5, 437, -1, 439, 9, 71, -1, 4,
2718 5, -1, -1, 8, 9, -1, -1, 81, 452, 14,
2719 -1, -1, -1, -1, 392, 89, -1, 1004, -1, -1,
2720 94, -1, 1340, -1, 29, 403, 31, -1, 406, -1,
2721 468, -1, 37, 411, -1, 48, -1, 415, -1, -1,
2722 -1, 46, 55, -1, 57, 58, -1, -1, 1035, -1,
2723 55, -1, 57, 58, 59, -1, -1, 495, 71, 437,
2724 -1, 439, -1, 441, 442, 443, -1, -1, 81, 447,
2725 1388, 1389, 1390, -1, 452, -1, -1, 455, 91, -1,
2726 -1, 94, 95, -1, -1, 1072, 1404, -1, -1, 94,
2727 -1, -1, 470, -1, -1, -1, -1, 1084, -1, -1,
2728 -1, 1419, -1, -1, -1, -1, -1, -1, -1, -1,
2729 -1, -1, -1, -1, 1, 1390, 3, 4, 5, 6,
2730 7, 8, 9, -1, 1111, -1, -1, 14, 1115, 1404,
2731 -1, -1, 510, 511, 512, 513, -1, -1, -1, -1,
2732 578, -1, 29, -1, 31, 32, 33, -1, -1, -1,
2733 37, 38, -1, -1, -1, 42, 594, -1, -1, 46,
2734 47, 1148, 49, -1, -1, -1, -1, -1, 55, -1,
2735 57, 58, -1, -1, 61, -1, 63, -1, -1, -1,
2736 -1, -1, -1, -1, 71, -1, -1, -1, 566, -1,
2737 568, -1, -1, -1, 81, -1, 640, -1, -1, -1,
2738 -1, -1, 89, 581, 582, -1, 584, 94, -1, -1,
2739 -1, -1, -1, 591, -1, -1, -1, -1, -1, 1206,
2740 1207, -1, -1, -1, 111, 603, -1, -1, -1, 3,
2741 4, 5, 6, -1, -1, -1, -1, 681, -1, -1,
2742 -1, -1, -1, -1, 688, 689, -1, 691, -1, -1,
2743 -1, -1, -1, -1, -1, -1, 634, -1, -1, -1,
2744 -1, 639, 640, 641, 642, 643, 644, -1, 42, -1,
2745 -1, -1, 716, -1, -1, -1, -1, -1, -1, 657,
2746 -1, 55, 1269, 57, 58, -1, 1273, 61, 1, -1,
2747 3, 4, 5, 6, 7, 8, 9, 71, -1, 677,
2748 -1, 14, -1, 681, -1, -1, -1, 81, -1, -1,
2749 688, 689, -1, 691, -1, 89, 29, -1, 31, 32,
2750 94, -1, -1, -1, 37, -1, -1, -1, -1, 42,
2751 -1, -1, -1, 46, 47, -1, 49, -1, 716, -1,
2752 -1, -1, 55, 721, 57, 58, -1, -1, 726, -1,
2753 63, 3, 4, 5, 6, 733, 734, 735, 71, 4,
2754 5, -1, -1, 8, 9, -1, -1, 745, 81, 14,
2755 -1, -1, -1, -1, -1, -1, 89, -1, -1, -1,
2756 -1, 94, -1, -1, 29, -1, 31, -1, -1, -1,
2757 42, -1, 37, 4, -1, -1, -1, 49, -1, -1,
2758 -1, 46, 840, 48, 842, 57, 58, -1, -1, -1,
2759 55, -1, 57, 58, -1, 26, -1, 795, 862, 863,
2760 31, 32, -1, 34, -1, 36, 71, -1, -1, 81,
2761 41, 869, -1, -1, -1, -1, 81, 89, -1, 817,
2762 -1, 819, -1, 54, -1, 56, 91, -1, 826, 94,
2763 95, -1, 830, -1, 832, -1, 834, 835, 836, -1,
2764 -1, -1, -1, 841, -1, -1, -1, -1, 79, -1,
2765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2766 -1, 859, 93, 861, 862, 863, 864, 931, -1, 933,
2767 -1, -1, -1, -1, 938, 939, 940, 3, 4, 5,
2768 6, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2769 -1, -1, -1, -1, 4, 5, -1, 128, 8, 9,
2770 898, 132, 133, -1, 14, -1, 137, -1, -1, -1,
2771 -1, -1, -1, 144, 912, 146, 42, 148, -1, -1,
2772 151, 152, 153, 49, -1, -1, 924, 37, -1, 927,
2773 -1, 57, 58, 931, 165, 933, 46, -1, 48, -1,
2774 938, 939, 940, -1, -1, 55, -1, 57, 58, 180,
2775 181, 182, -1, -1, -1, 81, -1, 1015, 956, 190,
2776 958, 71, -1, 89, 1028, 1029, -1, -1, -1, -1,
2777 -1, 81, 1036, -1, -1, -1, 1034, -1, 209, -1,
2778 -1, 91, -1, -1, 94, 95, -1, -1, -1, -1,
2779 -1, 989, 990, -1, 992, 68, 69, 70, 71, 72,
2780 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2781 83, 84, 85, 244, -1, -1, -1, 3, 4, 5,
2782 6, 7, 8, 9, -1, -1, 12, -1, 14, -1,
2783 1028, 1029, 1030, 1031, 1032, -1, -1, -1, 1036, 1097,
2784 -1, -1, 1040, 29, 1108, 31, 32, -1, -1, -1,
2785 -1, 37, -1, 1051, 1052, 1053, 42, -1, -1, -1,
2786 46, -1, 48, -1, -1, -1, -1, -1, -1, 55,
2787 1068, 57, 58, -1, -1, 1073, 4, 5, -1, -1,
2788 -1, 9, 313, -1, -1, 71, -1, 1085, -1, -1,
2789 1154, 1155, -1, 1157, -1, 81, -1, -1, 329, -1,
2790 -1, -1, -1, 89, -1, 91, 337, -1, 94, 95,
2791 1108, -1, 98, -1, -1, -1, -1, 348, -1, -1,
2792 48, -1, -1, -1, -1, -1, -1, 55, -1, 57,
2793 58, 1195, -1, -1, 365, -1, 1200, -1, 1202, -1,
2794 1198, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2795 -1, -1, -1, 81, -1, 386, 1154, 1155, -1, 1157,
2796 -1, -1, -1, 91, -1, -1, 94, 95, -1, -1,
2797 -1, -1, 403, -1, -1, 406, -1, -1, -1, 1177,
2798 411, -1, -1, -1, 415, 331, 332, 333, -1, -1,
2799 1254, -1, -1, -1, -1, -1, -1, 1195, -1, -1,
2800 -1, -1, 1200, -1, 1202, -1, 437, -1, 439, -1,
2801 441, 442, 443, -1, -1, -1, 447, -1, -1, -1,
2802 -1, 452, -1, -1, 455, 70, 71, 72, 73, 74,
2803 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2804 85, 1, -1, 3, 4, 5, 6, 7, 8, 9,
2805 -1, -1, 12, -1, 14, 1253, 1254, 1255, -1, -1,
2806 -1, -1, -1, -1, -1, 25, -1, 27, 28, -1,
2807 -1, 502, 32, -1, 505, -1, -1, 37, -1, -1,
2808 -1, -1, 42, -1, -1, -1, 46, -1, 48, 520,
2809 521, 522, -1, -1, -1, 55, -1, 57, 58, 59,
2810 60, 61, 533, 63, 64, 65, 66, 67, 68, 69,
2811 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2812 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
2813 -1, 91, 92, 93, 94, 95, 96, -1, 98, 99,
2814 -1, -1, 1340, 4, 104, -1, -1, 578, -1, 109,
2815 110, 111, -1, 113, -1, -1, -1, -1, -1, -1,
2816 591, -1, -1, -1, -1, 26, -1, -1, -1, -1,
2817 31, 32, -1, 34, -1, 36, 3, 4, 5, 6,
2818 41, -1, 9, -1, -1, -1, -1, -1, -1, -1,
2819 1388, 1389, 1390, 54, -1, 56, -1, -1, -1, -1,
2820 -1, -1, -1, -1, -1, -1, 1404, -1, 639, 640,
2821 641, 642, -1, -1, -1, 42, -1, -1, -1, -1,
2822 -1, 1419, -1, -1, -1, -1, -1, 34, 55, -1,
2823 57, 58, 93, -1, -1, 581, 582, -1, 584, -1,
2824 -1, -1, -1, -1, 71, 591, 677, 54, -1, -1,
2825 681, -1, -1, -1, 81, -1, -1, 688, 689, -1,
2826 691, -1, 89, -1, -1, -1, -1, 94, -1, -1,
2827 -1, -1, -1, -1, 4, 5, 137, -1, 8, 9,
2828 -1, -1, -1, 144, 14, 716, -1, 148, -1, -1,
2829 151, 152, 153, 639, -1, 641, 642, -1, 644, -1,
2830 3, 4, 5, 6, 165, -1, 9, 37, 739, -1,
2831 -1, -1, -1, -1, -1, -1, 46, -1, 48, 180,
2832 181, 182, -1, -1, -1, 55, -1, 57, 58, -1,
2833 137, 677, -1, -1, -1, -1, -1, -1, -1, 42,
2834 -1, 71, -1, -1, 151, 152, 153, -1, 209, -1,
2835 -1, 81, 55, -1, 57, 58, 3, 4, 5, 6,
2836 -1, 91, 9, -1, 94, 95, -1, -1, 71, -1,
2837 -1, -1, -1, 180, 181, 182, -1, -1, 81, -1,
2838 -1, -1, -1, 244, -1, -1, 89, -1, -1, -1,
2839 -1, 94, -1, -1, -1, 42, -1, -1, -1, 745,
2840 -1, -1, 209, 834, 835, 836, -1, -1, 55, 840,
2841 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
2842 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
2843 -1, 862, 863, 864, 81, -1, -1, -1, 869, -1,
2844 -1, -1, 89, 331, 332, 333, -1, 94, 69, 70,
2845 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2846 81, 82, 83, 84, 85, -1, -1, 898, -1, -1,
2847 -1, 817, -1, 819, -1, -1, 283, 338, -1, -1,
2848 -1, -1, -1, -1, 830, -1, -1, 348, 834, 835,
2849 836, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2850 931, -1, 933, -1, -1, -1, -1, 938, 939, 940,
2851 -1, -1, -1, -1, -1, -1, 862, 863, 864, -1,
2852 -1, -1, -1, 54, 331, 332, 333, 72, 73, 74,
2853 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2854 85, 348, 403, -1, -1, 406, -1, -1, 79, -1,
2855 411, 82, 898, -1, 415, 71, 72, 73, 74, 75,
2856 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2857 -1, -1, 103, -1, 105, -1, 437, -1, 439, -1,
2858 441, 442, 443, -1, 1015, -1, 447, -1, -1, -1,
2859 -1, 452, -1, -1, 455, -1, -1, 1028, 1029, 1030,
2860 1031, 1032, -1, 1034, -1, 1036, 137, -1, -1, -1,
2861 -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
2862 1051, 1052, 1053, -1, 14, -1, -1, -1, -1, -1,
2863 437, -1, 439, -1, 441, 442, 443, -1, -1, 29,
2864 447, 31, 32, -1, -1, 452, -1, 37, 455, 180,
2865 181, 182, 42, -1, -1, -1, 46, -1, -1, 190,
2866 -1, -1, -1, -1, -1, 55, 1097, 57, 58, -1,
2867 -1, 61, -1, -1, -1, -1, -1, 1108, 209, -1,
2868 -1, 71, 1028, 1029, 1030, 1031, 1032, -1, -1, -1,
2869 1036, 81, -1, 581, 582, -1, -1, -1, -1, 89,
2870 -1, 232, -1, -1, 94, 1051, 1052, 1053, 3, 4,
2871 5, 6, -1, -1, 9, -1, 247, -1, 579, -1,
2872 -1, -1, -1, 1154, 1155, -1, 1157, -1, -1, -1,
2873 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2874 -1, -1, -1, -1, -1, -1, -1, 42, -1, -1,
2875 -1, 639, -1, 641, 642, -1, 644, -1, -1, -1,
2876 55, 568, 57, 58, 1195, -1, -1, -1, -1, 1200,
2877 -1, 1202, -1, -1, 581, 582, 71, 584, 639, 640,
2878 641, 642, -1, -1, 591, -1, 81, -1, -1, 677,
2879 -1, -1, -1, -1, 89, -1, -1, -1, -1, 94,
2880 -1, -1, -1, -1, -1, -1, 337, 338, 1154, 1155,
2881 -1, 1157, 3, 4, 5, 6, 677, 348, 9, -1,
2882 681, -1, 1253, 1254, 1255, -1, -1, 688, 689, -1,
2883 691, -1, 639, -1, 641, 642, -1, 644, -1, 3,
2884 4, 5, 6, -1, -1, 9, -1, -1, -1, -1,
2885 -1, 42, -1, -1, -1, 716, -1, 745, -1, -1,
2886 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
2887 677, -1, -1, -1, -1, -1, -1, -1, 42, -1,
2888 71, 688, 689, -1, 691, -1, -1, -1, -1, -1,
2889 81, 55, -1, 57, 58, -1, -1, -1, 89, -1,
2890 -1, -1, -1, 94, -1, -1, 437, 71, 439, 1340,
2891 441, 442, 443, -1, -1, -1, 447, 81, -1, -1,
2892 -1, 452, -1, -1, 455, 89, 733, 734, 735, 817,
2893 94, 819, -1, -1, -1, -1, -1, -1, 745, -1,
2894 4, 5, 830, -1, 8, 9, 834, 835, -1, -1,
2895 14, -1, -1, 3, 4, 5, 6, 1388, 1389, 1390,
2896 -1, -1, -1, -1, -1, 29, -1, 31, -1, -1,
2897 -1, -1, -1, 37, 862, 863, -1, -1, -1, -1,
2898 841, -1, 46, -1, -1, -1, -1, -1, 1419, -1,
2899 -1, 55, 42, 57, 58, -1, -1, -1, -1, -1,
2900 -1, 862, 863, 864, -1, 55, -1, 57, 58, -1,
2901 817, -1, 819, 63, -1, -1, -1, -1, -1, -1,
2902 -1, 71, -1, 830, -1, -1, -1, 834, 835, 836,
2903 94, 81, -1, -1, -1, -1, -1, 898, -1, 89,
2904 -1, -1, -1, -1, 94, 1, -1, 3, 4, 5,
2905 6, 7, 8, 9, -1, 862, 863, 864, 14, -1,
2906 -1, -1, -1, 594, 595, -1, -1, -1, -1, -1,
2907 931, -1, 933, 29, -1, 31, 32, 938, 939, 940,
2908 -1, 37, -1, -1, -1, -1, 42, -1, -1, -1,
2909 46, 898, -1, 49, -1, -1, -1, -1, -1, 55,
2910 -1, 57, 58, -1, -1, 61, -1, -1, 639, -1,
2911 641, 642, -1, -1, -1, 71, -1, -1, -1, -1,
2912 -1, -1, -1, -1, -1, 81, -1, -1, -1, -1,
2913 -1, 938, -1, 89, -1, -1, -1, -1, 94, -1,
2914 1028, 1029, 1030, 1031, -1, -1, 677, -1, 1036, -1,
2915 3, 4, 5, 6, -1, -1, 9, 688, 689, -1,
2916 691, -1, -1, 1051, 1052, -1, -1, 1028, 1029, 1030,
2917 1031, 1032, -1, -1, -1, 1036, -1, -1, -1, -1,
2918 -1, -1, 989, 990, 715, 992, -1, -1, -1, 42,
2919 1051, 1052, 1053, -1, -1, -1, -1, -1, -1, -1,
2920 -1, -1, 55, -1, 57, 58, -1, -1, -1, 3,
2921 4, 5, 6, 7, 8, 9, -1, -1, 71, -1,
2922 14, 1028, 1029, 1030, 1031, 1032, -1, -1, 81, 1036,
2923 -1, -1, -1, -1, -1, 29, 89, 31, 32, -1,
2924 -1, 94, -1, 37, 1051, 1052, 1053, 1108, 42, -1,
2925 -1, -1, 46, -1, 48, -1, -1, -1, -1, -1,
2926 -1, 55, -1, 57, 58, -1, 1154, 1155, -1, 1157,
2927 -1, -1, -1, -1, -1, -1, -1, 71, -1, -1,
2928 -1, -1, -1, -1, -1, -1, -1, 81, 3, 4,
2929 5, 6, -1, 1154, 1155, 89, 1157, 91, -1, -1,
2930 94, 95, 14, -1, -1, 3, 4, 5, 6, 840,
2931 841, 842, 24, 25, -1, -1, -1, -1, -1, 31,
2932 32, -1, 34, -1, -1, -1, -1, 42, -1, -1,
2933 -1, 862, 863, 864, 1195, -1, -1, -1, 869, 1200,
2934 55, 1202, 57, 58, 42, -1, 61, 1154, 1155, -1,
2935 1157, -1, 64, -1, -1, -1, 71, 55, -1, 57,
2936 58, -1, -1, -1, -1, -1, 81, 898, -1, -1,
2937 -1, -1, -1, 71, 89, -1, -1, -1, -1, 94,
2938 -1, -1, -1, 81, -1, -1, -1, -1, 1195, -1,
2939 -1, 89, 1253, 1254, 1255, -1, 94, 1, -1, 3,
2940 4, 5, 6, 7, 8, 9, -1, 938, -1, -1,
2941 14, 123, -1, 125, -1, -1, 128, -1, -1, -1,
2942 132, 133, -1, -1, -1, 29, -1, 31, 32, 33,
2943 -1, -1, 144, 37, 146, 147, 148, -1, 42, 151,
2944 152, 153, 46, 47, -1, 49, 1253, -1, 1255, -1,
2945 -1, 55, -1, 57, 58, -1, -1, 61, -1, 63,
2946 -1, -1, -1, -1, -1, -1, -1, 71, -1, -1,
2947 -1, 3, 4, 5, 6, -1, -1, 81, -1, 1340,
2948 -1, -1, -1, -1, 1015, 89, -1, -1, -1, -1,
2949 94, -1, -1, -1, -1, -1, -1, 1028, 1029, 1030,
2950 1031, 1032, -1, 1034, -1, 1036, -1, -1, -1, -1,
2951 42, 223, 224, -1, -1, -1, -1, -1, -1, -1,
2952 1051, 1052, 1053, 55, -1, 57, 58, 1388, 1389, 1390,
2953 -1, -1, 244, 1340, -1, -1, -1, -1, -1, 71,
2954 -1, -1, -1, -1, -1, -1, -1, -1, 1, 81,
2955 3, 4, 5, 6, 7, 8, 9, 89, 1419, -1,
2956 -1, 14, 94, -1, -1, -1, 1097, -1, -1, -1,
2957 -1, 283, -1, -1, -1, -1, 29, -1, 31, 32,
2958 33, 1388, 1389, 1390, 37, 38, -1, -1, -1, 42,
2959 -1, -1, -1, 46, 47, -1, 49, -1, -1, -1,
2960 -1, -1, 55, -1, 57, 58, -1, -1, 61, -1,
2961 63, -1, 1419, -1, -1, -1, -1, 329, 71, 331,
2962 332, -1, -1, 1154, 1155, -1, 1157, -1, 81, -1,
2963 -1, -1, -1, -1, -1, -1, 89, -1, -1, -1,
2964 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
2965 -1, -1, -1, 365, -1, -1, -1, -1, 111, -1,
2966 -1, -1, -1, -1, 1195, -1, -1, -1, -1, -1,
2967 -1, -1, -1, -1, 386, 1, -1, 3, 4, 5,
2968 6, 7, 8, 9, -1, -1, -1, 399, 14, -1,
2969 -1, 403, -1, -1, 406, -1, -1, -1, -1, 411,
2970 -1, -1, -1, 29, -1, 31, 32, 33, -1, -1,
2971 -1, 37, 38, -1, -1, -1, 42, -1, -1, -1,
2972 46, 47, 1253, 49, 1255, -1, -1, -1, -1, 55,
2973 -1, 57, 58, -1, -1, 61, -1, 63, -1, 4,
2974 5, -1, 7, 8, 9, 71, -1, 12, -1, 14,
2975 -1, -1, -1, -1, -1, 81, 468, -1, 470, -1,
2976 -1, -1, -1, 89, 29, -1, 31, 32, 94, -1,
2977 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1,
2978 -1, 46, -1, 495, -1, 111, -1, -1, -1, -1,
2979 55, -1, 57, 58, 1, -1, 3, 4, 5, 6,
2980 7, 8, 9, 10, 11, -1, 13, 14, 15, 1340,
2981 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2982 27, 28, 29, 30, 31, 32, 33, -1, 35, 36,
2983 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
2984 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
2985 57, 58, 59, -1, 61, 62, 568, 1388, 1389, 1390,
2986 -1, 68, -1, -1, 71, -1, 578, 579, -1, 581,
2987 582, -1, 79, 80, 81, -1, -1, -1, -1, -1,
2988 87, 88, 89, -1, -1, -1, -1, 94, 1419, 96,
2989 4, 5, -1, 7, 8, 9, -1, -1, -1, -1,
2990 14, -1, -1, -1, 111, 112, -1, -1, -1, -1,
2991 -1, -1, -1, -1, -1, 29, -1, 31, 32, -1,
2992 -1, -1, 634, 37, -1, -1, -1, -1, -1, -1,
2993 -1, 643, 46, -1, -1, -1, -1, -1, -1, -1,
2994 -1, 55, -1, 57, 58, 657, -1, -1, 1, -1,
2995 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
2996 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
2997 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2998 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
2999 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3000 53, 54, 55, 715, 57, 58, 59, -1, 61, 62,
3001 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3002 -1, 733, 734, 735, -1, -1, 79, 80, 81, -1,
3003 -1, -1, -1, 745, 87, 88, 89, -1, -1, -1,
3004 -1, 94, 1, 96, 3, 4, 5, 6, 7, 8,
3005 9, 10, 11, 12, 13, 14, -1, -1, -1, 112,
3006 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3007 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3008 39, 40, 41, 42, 43, 44, -1, 46, -1, 48,
3009 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3010 59, -1, -1, 62, -1, 817, -1, 819, -1, 68,
3011 -1, -1, 71, -1, -1, -1, -1, -1, 830, -1,
3012 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3013 89, -1, 91, -1, -1, 94, 95, -1, 1, 98,
3014 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3015 13, 14, -1, 112, -1, -1, -1, -1, -1, -1,
3016 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3017 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3018 43, 44, -1, 46, -1, 48, -1, 50, 51, 52,
3019 53, 54, 55, -1, 57, 58, 59, -1, -1, 62,
3020 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3021 -1, -1, 924, -1, -1, 927, 79, 80, 81, -1,
3022 -1, -1, -1, -1, 87, 88, 89, -1, 91, -1,
3023 -1, 94, 95, -1, -1, 98, -1, -1, -1, -1,
3024 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3025 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3026 8, 9, 10, 11, 12, 13, 14, -1, -1, -1,
3027 -1, -1, -1, -1, -1, -1, -1, 989, 990, -1,
3028 992, 29, 30, 31, 32, 33, -1, 35, 36, 37,
3029 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3030 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3031 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3032 68, -1, -1, 71, -1, -1, -1, -1, 1040, -1,
3033 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3034 88, 89, -1, -1, -1, -1, 94, -1, -1, -1,
3035 98, -1, -1, -1, -1, -1, 1068, -1, -1, -1,
3036 -1, -1, 110, 1, 112, 3, 4, 5, 6, 7,
3037 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3038 -1, -1, -1, -1, -1, -1, 1098, -1, -1, -1,
3039 -1, 29, 30, 31, 32, 33, -1, 35, 36, 37,
3040 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3041 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3042 58, 59, -1, 61, 62, -1, -1, -1, -1, -1,
3043 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3044 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3045 88, 89, -1, -1, -1, 1, 94, 3, 4, 5,
3046 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3047 -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3048 -1, -1, -1, 29, 30, 31, 1198, 33, 1200, 35,
3049 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3050 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3051 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3052 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3053 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3054 -1, 87, 88, 89, -1, -1, -1, -1, 94, 95,
3055 1, -1, 3, 4, 5, 6, -1, 8, 9, 10,
3056 11, -1, 13, 14, -1, 111, 112, -1, -1, -1,
3057 21, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3058 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3059 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3060 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3061 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3062 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3063 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3064 -1, -1, 1, 94, 3, 4, 5, 6, -1, 8,
3065 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3066 111, 112, 21, -1, -1, -1, -1, -1, -1, -1,
3067 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3068 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3069 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3070 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3071 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3072 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3073 89, -1, -1, -1, 1, 94, 3, 4, 5, 6,
3074 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3075 -1, -1, 111, 112, -1, -1, -1, -1, -1, -1,
3076 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3077 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3078 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3079 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3080 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3081 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3082 87, 88, 89, -1, -1, -1, -1, 94, 95, 1,
3083 -1, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3084 -1, 13, 14, -1, -1, 112, -1, -1, -1, -1,
3085 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3086 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3087 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3088 52, 53, 54, 55, -1, 57, 58, 59, -1, -1,
3089 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3090 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3091 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3092 -1, -1, 94, -1, -1, 1, -1, 3, 4, 5,
3093 6, 103, 8, 9, 10, 11, -1, 13, 14, -1,
3094 112, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3095 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3096 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3097 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3098 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3099 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3100 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3101 -1, 87, 88, 89, -1, -1, -1, 1, 94, 3,
3102 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3103 14, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3104 -1, -1, -1, -1, -1, 29, 30, 31, -1, 33,
3105 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3106 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3107 54, 55, -1, 57, 58, 59, -1, -1, 62, -1,
3108 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3109 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3110 -1, -1, -1, 87, 88, 89, -1, -1, -1, 1,
3111 94, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3112 -1, 13, 14, -1, -1, -1, -1, -1, 112, -1,
3113 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3114 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3115 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3116 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3117 62, 63, -1, -1, -1, -1, 68, -1, -1, 71,
3118 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3119 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3120 -1, 1, 94, 3, 4, 5, 6, -1, 8, 9,
3121 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3122 112, -1, -1, -1, -1, -1, -1, -1, -1, 29,
3123 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3124 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3125 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3126 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3127 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3128 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3129 -1, -1, -1, 1, 94, 3, 4, 5, 6, -1,
3130 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3131 -1, -1, 112, -1, -1, -1, -1, -1, -1, -1,
3132 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3133 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3134 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3135 58, -1, -1, 61, 62, -1, -1, -1, -1, -1,
3136 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3137 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3138 88, 89, -1, -1, -1, 1, 94, 3, 4, 5,
3139 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3140 -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3141 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3142 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3143 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3144 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3145 -1, -1, 68, 1, -1, 71, 4, 5, -1, -1,
3146 8, 9, -1, 79, 80, 81, 14, -1, -1, -1,
3147 -1, 87, 88, 89, -1, -1, -1, -1, 94, -1,
3148 -1, 29, -1, 31, -1, -1, -1, -1, -1, 37,
3149 -1, 39, 40, -1, 110, -1, 112, -1, 46, -1,
3150 48, -1, -1, -1, -1, -1, -1, 55, -1, 57,
3151 58, -1, 60, -1, -1, -1, 64, 65, 66, 67,
3152 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3153 78, 79, 80, 81, 82, 83, 84, -1, -1, 87,
3154 88, 89, -1, -1, 92, -1, 1, 95, 3, 4,
3155 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3156 -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3157 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3158 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3159 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3160 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3161 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3162 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3163 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3164 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3165 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3166 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3167 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3168 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3169 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3170 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3171 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3172 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3173 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3174 11, -1, 13, 14, -1, -1, -1, -1, -1, 112,
3175 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3176 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3177 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3178 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3179 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3180 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3181 81, -1, -1, -1, -1, -1, 87, 88, 89, 3,
3182 4, 5, 6, 94, 8, 9, 10, 11, -1, 13,
3183 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3184 -1, 112, -1, -1, -1, 29, 30, 31, -1, 33,
3185 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3186 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3187 54, 55, -1, 57, 58, -1, -1, -1, 62, -1,
3188 -1, -1, -1, -1, 68, -1, 1, 71, 3, 4,
3189 5, 6, 7, 8, 9, 79, 80, 81, -1, 14,
3190 -1, -1, -1, 87, 88, 89, -1, -1, -1, -1,
3191 94, -1, -1, -1, 29, -1, 31, 32, 33, -1,
3192 -1, -1, 37, 38, -1, -1, -1, 42, 112, 113,
3193 -1, 46, 47, -1, 49, -1, -1, -1, -1, -1,
3194 55, -1, 57, 58, -1, -1, 61, -1, 63, -1,
3195 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
3196 -1, -1, -1, -1, -1, -1, 81, -1, -1, -1,
3197 -1, -1, -1, -1, 89, -1, -1, -1, -1, 94,
3198 -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
3199 10, 11, -1, 13, 14, 15, 111, 17, 18, 19,
3200 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3201 30, 31, 32, 33, -1, 35, 36, 37, -1, 39,
3202 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3203 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3204 -1, 61, 62, -1, -1, -1, -1, -1, 68, -1,
3205 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3206 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3207 -1, -1, -1, -1, 94, -1, 96, -1, -1, -1,
3208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3209 -1, 111, 112, 3, 4, 5, 6, 7, 8, 9,
3210 10, 11, -1, 13, 14, 15, -1, 17, 18, 19,
3211 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3212 30, 31, 32, 33, -1, 35, 36, 37, -1, 39,
3213 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3214 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3215 -1, 61, 62, -1, -1, -1, -1, -1, 68, -1,
3216 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3217 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3218 -1, -1, -1, -1, 94, -1, 96, -1, -1, 3,
3219 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
3220 14, 15, 112, 17, 18, 19, 20, 21, 22, 23,
3221 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3222 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3223 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3224 54, 55, -1, 57, 58, 59, -1, 61, 62, -1,
3225 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3226 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3227 -1, -1, -1, 87, 88, 89, -1, -1, -1, -1,
3228 94, -1, 96, -1, -1, 3, 4, 5, 6, 7,
3229 8, 9, 10, 11, -1, 13, 14, 15, 112, 17,
3230 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3231 28, 29, 30, 31, 32, 33, -1, 35, 36, 37,
3232 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3233 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3234 58, -1, -1, 61, 62, -1, -1, -1, -1, -1,
3235 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3236 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3237 88, 89, -1, -1, -1, -1, 94, -1, 96, 3,
3238 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3239 14, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3240 -1, -1, -1, -1, -1, 29, 30, 31, 32, 33,
3241 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3242 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
3243 54, 55, -1, 57, 58, -1, -1, -1, 62, -1,
3244 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3245 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3246 -1, -1, -1, 87, 88, 89, -1, 91, -1, -1,
3247 94, 95, -1, -1, 98, 3, 4, 5, 6, 7,
3248 8, 9, 10, 11, 12, 13, 14, -1, 112, -1,
3249 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3250 -1, 29, 30, 31, 32, 33, -1, 35, 36, 37,
3251 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3252 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3253 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3254 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3255 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3256 88, 89, -1, 91, -1, -1, 94, 95, -1, -1,
3257 98, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3258 -1, 13, 14, -1, 112, -1, -1, -1, -1, -1,
3259 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3260 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3261 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3262 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3263 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3264 -1, -1, -1, -1, 76, -1, 78, 79, 80, 81,
3265 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3266 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3267 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3268 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3269 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3270 -1, 46, -1, 48, -1, 50, 51, 52, 53, 54,
3271 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
3272 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3273 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3274 -1, -1, 87, 88, 89, -1, 91, -1, -1, 94,
3275 95, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3276 -1, 13, 14, -1, -1, -1, -1, 112, -1, -1,
3277 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3278 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3279 42, 43, 44, -1, 46, -1, 48, -1, 50, 51,
3280 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3281 -1, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3282 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3283 -1, -1, -1, -1, -1, 87, 88, 89, -1, 91,
3284 -1, -1, 94, 95, 3, 4, 5, 6, -1, 8,
3285 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3286 112, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3287 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3288 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3289 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3290 -1, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3291 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3292 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3293 89, -1, -1, -1, -1, 94, 3, 4, 5, 6,
3294 7, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3295 -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
3296 -1, -1, 29, 30, 31, 32, 33, -1, 35, 36,
3297 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3298 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3299 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3300 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3301 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3302 87, 88, 89, 3, 4, 5, 6, 94, 8, 9,
3303 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3304 -1, -1, -1, -1, -1, 112, -1, -1, -1, 29,
3305 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3306 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3307 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3308 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3309 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3310 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3311 3, 4, 5, 6, 94, 8, 9, 10, 11, -1,
3312 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3313 -1, -1, 112, -1, -1, -1, 29, 30, 31, -1,
3314 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3315 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3316 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3317 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3318 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3319 -1, -1, -1, -1, 87, 88, 89, 3, 4, 5,
3320 6, 94, 8, 9, 10, 11, -1, 13, 14, -1,
3321 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3322 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3323 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3324 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3325 -1, 57, 58, 59, -1, -1, -1, -1, -1, -1,
3326 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3327 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3328 -1, 87, 88, 89, 3, 4, 5, 6, 94, 8,
3329 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3330 -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3331 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3332 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3333 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3334 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3335 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3336 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3337 89, -1, -1, -1, -1, 94, 95, 3, 4, 5,
3338 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3339 -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
3340 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3341 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3342 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3343 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3344 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3345 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3346 -1, 87, 88, 89, 3, 4, 5, 6, 94, 8,
3347 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3348 -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3349 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3350 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3351 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3352 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3353 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3354 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3355 89, 3, 4, 5, 6, 94, 8, 9, 10, 11,
3356 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3357 -1, -1, -1, 112, -1, -1, -1, 29, 30, 31,
3358 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3359 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3360 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3361 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3362 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3363 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3364 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3365 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3366 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3367 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3368 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3369 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
3370 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3371 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3372 -1, -1, 87, 88, 89, 3, 4, 5, 6, 94,
3373 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3374 -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
3375 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3376 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3377 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3378 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3379 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3380 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3381 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3382 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3383 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3384 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3385 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3386 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3387 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3388 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3389 81, -1, -1, -1, -1, -1, 87, 88, 89, 3,
3390 4, 5, 6, 94, 8, 9, 10, 11, -1, 13,
3391 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3392 -1, 112, -1, -1, -1, 29, 30, 31, -1, 33,
3393 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3394 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3395 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3396 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3397 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3398 -1, -1, -1, 87, 88, 89, 3, 4, 5, 6,
3399 94, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3400 -1, -1, -1, -1, -1, -1, -1, -1, 112, -1,
3401 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3402 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3403 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3404 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3405 -1, 68, -1, 1, 71, 3, 4, 5, 6, 7,
3406 8, 9, 79, 80, 81, -1, 14, -1, -1, -1,
3407 87, 88, 89, -1, -1, -1, -1, 94, -1, 27,
3408 28, 29, -1, 31, 32, 33, -1, -1, -1, 37,
3409 -1, -1, -1, -1, 42, 112, -1, 45, 46, 47,
3410 -1, 49, -1, -1, -1, -1, -1, 55, -1, 57,
3411 58, -1, 1, 61, 3, 4, 5, 6, 7, 8,
3412 9, -1, -1, 71, -1, 14, -1, -1, -1, -1,
3413 -1, -1, -1, 81, -1, -1, -1, -1, 27, 28,
3414 29, 89, 31, 32, 33, -1, 94, -1, 37, -1,
3415 -1, -1, 100, 42, -1, -1, 45, 46, 47, -1,
3416 49, -1, -1, -1, -1, -1, 55, -1, 57, 58,
3417 -1, -1, 61, 3, 4, 5, 6, 7, 8, 9,
3418 -1, -1, 71, -1, 14, -1, -1, -1, -1, -1,
3419 -1, -1, 81, -1, -1, -1, -1, -1, -1, -1,
3420 89, -1, 32, -1, -1, 94, -1, 37, -1, -1,
3421 -1, 100, 42, -1, -1, -1, 46, -1, 48, -1,
3422 -1, -1, -1, -1, -1, 55, -1, 57, 58, 3,
3423 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
3424 14, 71, -1, -1, -1, -1, -1, -1, -1, -1,
3425 -1, 81, -1, -1, -1, -1, -1, -1, 32, 89,
3426 -1, 91, -1, 37, 94, 95, -1, -1, 42, -1,
3427 -1, -1, 46, -1, 48, -1, -1, -1, -1, -1,
3428 -1, 55, -1, 57, 58, 3, 4, 5, 6, 7,
3429 8, 9, -1, -1, -1, -1, 14, 71, -1, -1,
3430 -1, -1, -1, -1, -1, -1, -1, 81, -1, -1,
3431 -1, 29, -1, 31, 32, 89, -1, 91, -1, 37,
3432 94, 95, -1, -1, 42, -1, -1, -1, 46, -1,
3433 -1, -1, -1, -1, -1, -1, -1, 55, -1, 57,
3434 58, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3435 12, -1, 14, 71, -1, -1, -1, 75, -1, -1,
3436 -1, -1, -1, 81, -1, -1, -1, 29, -1, 31,
3437 32, 89, -1, -1, -1, 37, 94, -1, -1, -1,
3438 42, -1, -1, -1, 46, -1, 3, 4, 5, 6,
3439 7, 8, 9, 55, -1, 57, 58, 14, -1, -1,
3440 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
3441 -1, -1, 29, -1, 31, 32, -1, -1, -1, 81,
3442 37, -1, -1, -1, -1, 42, -1, 89, -1, 46,
3443 -1, -1, 94, -1, -1, -1, -1, -1, 55, -1,
3444 57, 58, -1, -1, -1, -1, 63, 3, 4, 5,
3445 6, 7, 8, 9, 71, -1, -1, -1, 14, -1,
3446 -1, -1, -1, -1, 81, -1, -1, -1, -1, -1,
3447 -1, -1, 89, 29, -1, 31, 32, 94, -1, -1,
3448 -1, 37, -1, -1, -1, -1, 42, -1, -1, -1,
3449 46, -1, 3, 4, 5, 6, 7, 8, 9, 55,
3450 -1, 57, 58, 14, -1, 61, -1, -1, -1, -1,
3451 -1, -1, -1, -1, -1, 71, -1, -1, 29, -1,
3452 31, 32, -1, -1, -1, 81, 37, -1, -1, -1,
3453 -1, 42, -1, 89, -1, 46, -1, -1, 94, -1,
3454 -1, -1, -1, -1, 55, -1, 57, 58, 3, 4,
3455 5, 6, 7, 8, 9, -1, -1, -1, -1, 14,
3456 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3457 81, -1, -1, -1, 29, -1, 31, 32, 89, -1,
3458 -1, -1, 37, 94, -1, -1, -1, 42, -1, -1,
3459 -1, 46, -1, 3, 4, 5, 6, 7, 8, 9,
3460 55, -1, 57, 58, 14, -1, -1, -1, -1, -1,
3461 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
3462 -1, -1, 32, -1, -1, -1, 81, 37, -1, -1,
3463 -1, -1, 42, -1, 89, 12, 46, -1, 48, 94,
3464 -1, -1, -1, -1, -1, 55, -1, 57, 58, 64,
3465 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3466 75, 71, 77, 78, 79, 80, 81, 82, 83, 84,
3467 85, 81, -1, -1, -1, -1, -1, -1, -1, 89,
3468 -1, -1, -1, -1, 94, -1, 63, 64, 65, 66,
3469 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3470 77, 78, 79, 80, 81, 82, 83, 84, 85, 4,
3471 5, -1, 7, 8, 9, -1, 4, 5, -1, 14,
3472 8, 9, -1, 4, 5, -1, 14, 8, 9, -1,
3473 -1, -1, -1, 14, 29, -1, 31, 32, -1, -1,
3474 -1, 29, 37, 31, -1, -1, 32, -1, 29, 37,
3475 31, 46, -1, -1, -1, -1, 37, -1, 46, -1,
3476 55, -1, 57, 58, -1, 46, -1, 55, -1, 57,
3477 58, -1, -1, -1, 55, -1, 57, 58, 64, 65,
3478 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3479 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3480 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3481 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3482 84, 85, 64, 65, 66, 67, 68, 69, 70, 71,
3483 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3484 82, 83, 84, 85, -1, -1, -1, -1, -1, 113,
3485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3486 -1, -1, -1, -1, 60, -1, -1, 109, 64, 65,
3487 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3488 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3489 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3490 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3491 83, 84, 85, 63, 64, 65, 66, 67, 68, 69,
3492 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3493 80, 81, 82, 83, 84, 85, 64, 65, 66, 67,
3494 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3495 78, 79, 80, 81, 82, 83, 84, 85
3497 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3498 #line 3 "/usr/cygnus/latest-940103/share/bison.simple"
3500 /* Skeleton output parser for bison,
3501 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3503 This program is free software; you can redistribute it and/or modify
3504 it under the terms of the GNU General Public License as published by
3505 the Free Software Foundation; either version 2, or (at your option)
3508 This program is distributed in the hope that it will be useful,
3509 but WITHOUT ANY WARRANTY; without even the implied warranty of
3510 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3511 GNU General Public License for more details.
3513 You should have received a copy of the GNU General Public License
3514 along with this program; if not, write to the Free Software
3515 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
3517 /* As a special exception, when this file is copied by Bison into a
3518 Bison output file, you may use that output file without restriction.
3519 This special exception was added by the Free Software Foundation
3520 in version 1.24 of Bison. */
3524 #define alloca __builtin_alloca
3525 #else /* not GNU C. */
3526 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3528 #else /* not sparc */
3529 #if defined (MSDOS) && !defined (__TURBOC__)
3531 #else /* not MSDOS, or __TURBOC__ */
3535 #else /* not MSDOS, __TURBOC__, or _AIX */
3539 void *alloca (unsigned int);
3541 #else /* not __cplusplus */
3543 #endif /* not __cplusplus */
3545 #endif /* not _AIX */
3546 #endif /* not MSDOS, or __TURBOC__ */
3547 #endif /* not sparc. */
3548 #endif /* not GNU C. */
3549 #endif /* alloca not defined. */
3551 /* This is the parser code that is written into each bison parser
3552 when the %semantic_parser declaration is not specified in the grammar.
3553 It was written by Richard Stallman by simplifying the hairy parser
3554 used when %semantic_parser is specified. */
3556 /* Note: there must be only one dollar sign in this file.
3557 It is replaced by the list of actions, each action
3558 as one case of the switch. */
3560 #define yyerrok (yyerrstatus = 0)
3561 #define yyclearin (yychar = YYEMPTY)
3564 #define YYACCEPT return(0)
3565 #define YYABORT return(1)
3566 #define YYERROR goto yyerrlab1
3567 /* Like YYERROR except do call yyerror.
3568 This remains here temporarily to ease the
3569 transition to the new meaning of YYERROR, for GCC.
3570 Once GCC version 2 has supplanted version 1, this can go. */
3571 #define YYFAIL goto yyerrlab
3572 #define YYRECOVERING() (!!yyerrstatus)
3573 #define YYBACKUP(token, value) \
3575 if (yychar == YYEMPTY && yylen == 1) \
3576 { yychar = (token), yylval = (value); \
3577 yychar1 = YYTRANSLATE (yychar); \
3582 { yyerror ("syntax error: cannot back up"); YYERROR; } \
3586 #define YYERRCODE 256
3589 #define YYLEX yylex()
3595 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
3597 #define YYLEX yylex(&yylval, &yylloc)
3599 #else /* not YYLSP_NEEDED */
3601 #define YYLEX yylex(&yylval, YYLEX_PARAM)
3603 #define YYLEX yylex(&yylval)
3605 #endif /* not YYLSP_NEEDED */
3608 /* If nonreentrant, generate the variables here */
3612 int yychar; /* the lookahead symbol */
3613 YYSTYPE yylval; /* the semantic value of the */
3614 /* lookahead symbol */
3617 YYLTYPE yylloc; /* location data for the lookahead */
3621 int yynerrs; /* number of parse errors so far */
3622 #endif /* not YYPURE */
3625 int yydebug; /* nonzero means print parse trace */
3626 /* Since this is uninitialized, it does not stop multiple parsers
3630 /* YYINITDEPTH indicates the initial size of the parser's stacks */
3633 #define YYINITDEPTH 200
3636 /* YYMAXDEPTH is the maximum size the stacks can grow to
3637 (effective only if the built-in stack extension method is used). */
3644 #define YYMAXDEPTH 10000
3647 /* Prevent warning if -Wstrict-prototypes. */
3652 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
3653 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
3654 #else /* not GNU C or C++ */
3657 /* This is the most reliable way to avoid incompatibilities
3658 in available built-in functions on various systems. */
3660 __yy_memcpy (to, from, count)
3665 register char *f = from;
3666 register char *t = to;
3667 register int i = count;
3673 #else /* __cplusplus */
3675 /* This is the most reliable way to avoid incompatibilities
3676 in available built-in functions on various systems. */
3678 __yy_memcpy (char *to, char *from, int count)
3680 register char *f = from;
3681 register char *t = to;
3682 register int i = count;
3691 #line 196 "/usr/cygnus/latest-940103/share/bison.simple"
3693 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3694 into yyparse. The argument should have type void *.
3695 It should actually point to an object.
3696 Grammar actions can access the variable by casting it
3697 to the proper pointer type. */
3699 #ifdef YYPARSE_PARAM
3701 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3702 #define YYPARSE_PARAM_DECL
3703 #else /* not __cplusplus */
3704 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3705 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3706 #endif /* not __cplusplus */
3707 #else /* not YYPARSE_PARAM */
3708 #define YYPARSE_PARAM_ARG
3709 #define YYPARSE_PARAM_DECL
3710 #endif /* not YYPARSE_PARAM */
3713 yyparse(YYPARSE_PARAM_ARG)
3716 register int yystate;
3718 register short *yyssp;
3719 register YYSTYPE *yyvsp;
3720 int yyerrstatus; /* number of tokens to shift before error messages enabled */
3721 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
3723 short yyssa[YYINITDEPTH]; /* the state stack */
3724 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
3726 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
3727 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
3730 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
3731 YYLTYPE *yyls = yylsa;
3734 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3736 #define YYPOPSTACK (yyvsp--, yyssp--)
3739 int yystacksize = YYINITDEPTH;
3750 YYSTYPE yyval; /* the variable used to return */
3751 /* semantic values from the action */
3758 fprintf(stderr, "Starting parse\n");
3764 yychar = YYEMPTY; /* Cause a token to be read. */
3766 /* Initialize stack pointers.
3767 Waste one element of value and location stack
3768 so that they stay on the same level as the state stack.
3769 The wasted elements are never initialized. */
3777 /* Push a new state, which is found in yystate . */
3778 /* In all cases, when you get here, the value and location stacks
3779 have just been pushed. so pushing a state here evens the stacks. */
3784 if (yyssp >= yyss + yystacksize - 1)
3786 /* Give user a chance to reallocate the stack */
3787 /* Use copies of these so that the &'s don't force the real ones into memory. */
3788 YYSTYPE *yyvs1 = yyvs;
3789 short *yyss1 = yyss;
3791 YYLTYPE *yyls1 = yyls;
3794 /* Get the current used size of the three stacks, in elements. */
3795 int size = yyssp - yyss + 1;
3798 /* Each stack pointer address is followed by the size of
3799 the data in use in that stack, in bytes. */
3801 /* This used to be a conditional around just the two extra args,
3802 but that might be undefined if yyoverflow is a macro. */
3803 yyoverflow("parser stack overflow",
3804 &yyss1, size * sizeof (*yyssp),
3805 &yyvs1, size * sizeof (*yyvsp),
3806 &yyls1, size * sizeof (*yylsp),
3809 yyoverflow("parser stack overflow",
3810 &yyss1, size * sizeof (*yyssp),
3811 &yyvs1, size * sizeof (*yyvsp),
3815 yyss = yyss1; yyvs = yyvs1;
3819 #else /* no yyoverflow */
3820 /* Extend the stack our own way. */
3821 if (yystacksize >= YYMAXDEPTH)
3823 yyerror("parser stack overflow");
3827 if (yystacksize > YYMAXDEPTH)
3828 yystacksize = YYMAXDEPTH;
3829 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3830 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3831 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3832 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3834 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3835 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3837 #endif /* no yyoverflow */
3839 yyssp = yyss + size - 1;
3840 yyvsp = yyvs + size - 1;
3842 yylsp = yyls + size - 1;
3847 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3850 if (yyssp >= yyss + yystacksize - 1)
3856 fprintf(stderr, "Entering state %d\n", yystate);
3862 /* Do appropriate processing given the current state. */
3863 /* Read a lookahead token if we need one and don't already have one. */
3866 /* First try to decide what to do without reference to lookahead token. */
3868 yyn = yypact[yystate];
3872 /* Not known => get a lookahead token if don't already have one. */
3874 /* yychar is either YYEMPTY or YYEOF
3875 or a valid token in external form. */
3877 if (yychar == YYEMPTY)
3881 fprintf(stderr, "Reading a token: ");
3886 /* Convert token to internal form (in yychar1) for indexing tables with */
3888 if (yychar <= 0) /* This means end of input. */
3891 yychar = YYEOF; /* Don't call YYLEX any more */
3895 fprintf(stderr, "Now at end of input.\n");
3900 yychar1 = YYTRANSLATE(yychar);
3905 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3906 /* Give the individual parser a way to print the precise meaning
3907 of a token, for further debugging info. */
3909 YYPRINT (stderr, yychar, yylval);
3911 fprintf (stderr, ")\n");
3917 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3922 /* yyn is what to do for this token type in this state.
3923 Negative => reduce, -yyn is rule number.
3924 Positive => shift, yyn is new state.
3925 New state is final state => don't bother to shift,
3926 just return success.
3927 0, or most negative number => error. */
3942 /* Shift the lookahead token. */
3946 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3949 /* Discard the token being shifted unless it is eof. */
3950 if (yychar != YYEOF)
3958 /* count tokens shifted since error; after three, turn off error status. */
3959 if (yyerrstatus) yyerrstatus--;
3964 /* Do the default action for the current state. */
3967 yyn = yydefact[yystate];
3971 /* Do a reduction. yyn is the number of a rule to reduce with. */
3975 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3982 fprintf (stderr, "Reducing via rule %d (line %d), ",
3985 /* Print the symbols being reduced, and their result. */
3986 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3987 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3988 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3998 /* In case there were missing closebraces,
3999 get us back to the global binding level. */
4000 while (! global_bindings_p ())
4007 { yyval.ttype = NULL_TREE; ;
4011 { yyval.ttype = NULL_TREE; ;
4015 { yyval.ttype = NULL_TREE; ;
4019 { have_extern_spec = 1;
4020 used_extern_spec = 0;
4021 yyval.ttype = NULL_TREE; ;
4025 { have_extern_spec = 0; ;
4029 { yyval.itype = pedantic;
4034 { if (pending_lang_change) do_pending_lang_change(); ;
4038 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4039 pop_everything (); ;
4043 { if (pending_inlines) do_pending_inlines (); ;
4047 { if (pending_inlines) do_pending_inlines (); ;
4051 { if (pending_inlines) do_pending_inlines (); ;
4055 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4056 assemble_asm (yyvsp[-2].ttype); ;
4060 { pop_lang_context (); ;
4064 { if (pending_inlines) do_pending_inlines ();
4065 pop_lang_context (); ;
4069 { if (pending_inlines) do_pending_inlines ();
4070 pop_lang_context (); ;
4074 { push_namespace (yyvsp[-1].ttype); ;
4078 { pop_namespace (); ;
4082 { push_namespace (NULL_TREE); ;
4086 { pop_namespace (); ;
4090 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4094 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4099 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
4100 yyvsp[-1].ttype = lastiddecl;
4101 do_using_directive (yyvsp[-1].ttype);
4106 { pedantic = yyvsp[-1].itype; ;
4110 { yyval.ttype = yyvsp[0].ttype; ;
4114 { yyval.ttype = yyvsp[0].ttype; ;
4118 { yyval.ttype = yyvsp[0].ttype; ;
4122 { yyval.ttype = yyvsp[0].ttype; ;
4126 { yyval.ttype = yyvsp[0].ttype; ;
4130 { push_lang_context (yyvsp[0].ttype); ;
4134 { if (current_lang_name != yyvsp[0].ttype)
4135 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4136 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4140 { begin_template_parm_list (); ;
4144 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4148 { begin_specialization();
4149 yyval.ttype = NULL_TREE; ;
4153 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4157 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4162 yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
4164 if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
4165 sorry ("signature as template type parameter");
4166 else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
4168 pedwarn ("template type parameters must use the keyword `class'");
4169 TREE_PURPOSE (yyval.ttype) = class_type_node;
4175 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); goto ttpa; ;
4179 { yyval.ttype = build_tree_list (class_type_node, NULL_TREE); ;
4183 { yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
4187 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4191 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4195 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4199 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4204 if (yyvsp[-1].ttype)
4205 end_template_decl ();
4207 end_specialization ();
4213 if (yyvsp[-1].ttype)
4214 end_template_decl ();
4216 end_specialization ();
4230 note_list_got_semicolon (yyvsp[-2].ftype.t);
4235 { pedwarn ("empty declaration"); ;
4241 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4243 note_list_got_semicolon (yyvsp[-1].ftype.t);
4248 { yyval.itype = 0; ;
4252 { yyval.itype = 1; ;
4256 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4269 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4270 if (yyvsp[-2].ttype != current_class_type)
4272 push_nested_class (yyvsp[-2].ttype, 3);
4273 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4279 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4284 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4285 if (yyvsp[-4].ttype != current_class_type)
4287 push_nested_class (yyvsp[-4].ttype, 3);
4288 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4290 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4296 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4297 if (yyvsp[-2].ttype != current_class_type)
4299 push_nested_class (yyvsp[-2].ttype, 3);
4300 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4306 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4311 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4312 if (yyvsp[-4].ttype != current_class_type)
4314 push_nested_class (yyvsp[-4].ttype, 3);
4315 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4317 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4323 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4324 if (yyvsp[-2].ttype != current_class_type)
4326 push_nested_class (yyvsp[-2].ttype, 3);
4327 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4333 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4338 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4339 if (yyvsp[-4].ttype != current_class_type)
4341 push_nested_class (yyvsp[-4].ttype, 3);
4342 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4344 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4350 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4351 if (yyvsp[-2].ttype != current_class_type)
4353 push_nested_class (yyvsp[-2].ttype, 3);
4354 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4360 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4365 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4366 if (yyvsp[-4].ttype != current_class_type)
4368 push_nested_class (yyvsp[-4].ttype, 3);
4369 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4371 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4376 { tree specs, attrs;
4377 split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4378 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4380 reinit_parse_for_function ();
4381 yyval.ttype = NULL_TREE; ;
4385 { tree specs, attrs;
4386 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4387 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4389 reinit_parse_for_function ();
4390 yyval.ttype = NULL_TREE; ;
4394 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4396 reinit_parse_for_function ();
4397 yyval.ttype = NULL_TREE; ;
4401 { tree specs, attrs;
4402 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4403 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4405 reinit_parse_for_function ();
4406 yyval.ttype = NULL_TREE; ;
4410 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4412 reinit_parse_for_function ();
4413 yyval.ttype = NULL_TREE; ;
4417 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4421 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4425 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4429 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4433 { tree specs = strip_attrs (yyvsp[-1].ttype);
4434 yyval.ttype = start_method (specs, yyvsp[0].ttype);
4438 if (yychar == YYEMPTY)
4440 reinit_parse_for_method (yychar, yyval.ttype); ;
4444 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4448 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4449 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4453 { tree specs = strip_attrs (yyvsp[-1].ttype);
4454 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4458 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4462 { tree specs = strip_attrs (yyvsp[-1].ttype);
4463 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4467 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4472 if (yyvsp[-1].ttype)
4473 end_template_decl ();
4475 end_specialization ();
4477 if (yyvsp[0].ttype && DECL_TEMPLATE_INFO (yyvsp[0].ttype)
4478 && !DECL_TEMPLATE_SPECIALIZATION (yyvsp[0].ttype))
4480 yyval.ttype = DECL_TI_TEMPLATE (yyvsp[0].ttype);
4481 check_member_template (yyval.ttype);
4483 else if (yyvsp[0].ttype)
4484 yyval.ttype = yyvsp[0].ttype;
4487 cp_error("invalid member template declaration");
4488 yyval.ttype = NULL_TREE;
4495 if (! current_function_parms_stored)
4496 store_parm_decls ();
4497 yyval.ttype = yyvsp[0].ttype;
4502 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4506 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4510 { store_return_init (yyval.ttype, NULL_TREE); ;
4515 if (yyvsp[0].itype == 0)
4516 error ("no base initializers given following ':'");
4518 /* Always keep the BLOCK node associated with the outermost
4519 pair of curley braces of a function. These are needed
4520 for correct operation of dwarfout.c. */
4527 if (! current_function_parms_stored)
4528 store_parm_decls ();
4530 if (DECL_CONSTRUCTOR_P (current_function_decl))
4532 /* Make a contour for the initializer list. */
4535 expand_start_bindings (0);
4537 else if (current_class_type == NULL_TREE)
4538 error ("base initializers not allowed for non-member functions");
4539 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4540 error ("only constructors take base initializers");
4545 { yyval.itype = 0; ;
4549 { yyval.itype = 1; ;
4554 if (current_class_name)
4555 pedwarn ("anachronistic old style base class initializer");
4556 expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4562 if (current_class_name)
4563 pedwarn ("anachronistic old style base class initializer");
4564 expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4569 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4573 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4577 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4581 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4585 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4590 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4595 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4596 yyungetc (';', 1); ;
4600 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4601 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4605 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4609 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4613 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-3].ttype);
4614 yyungetc (';', 1); ;
4618 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4619 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4623 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
4627 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
4632 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4633 if (yyval.ttype != error_mark_node)
4634 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4640 yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
4641 if (yyval.ttype != error_mark_node)
4642 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4648 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4649 if (yyval.ttype != error_mark_node)
4650 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4656 yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
4657 if (yyval.ttype != error_mark_node)
4658 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4664 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4665 if (yyval.ttype != error_mark_node)
4666 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4672 yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
4673 if (yyval.ttype != error_mark_node)
4674 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4680 /* Handle `Class<Class<Type>>' without space in the `>>' */
4681 pedwarn ("`>>' should be `> >' in template class name");
4687 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4691 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4695 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4699 { yyval.code = NEGATE_EXPR; ;
4703 { yyval.code = CONVERT_EXPR; ;
4707 { yyval.code = PREINCREMENT_EXPR; ;
4711 { yyval.code = PREDECREMENT_EXPR; ;
4715 { yyval.code = TRUTH_NOT_EXPR; ;
4719 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4723 { error ("ANSI C++ forbids an empty condition for `%s'",
4725 yyval.ttype = integer_zero_node; ;
4729 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4733 { error ("ANSI C++ forbids an empty condition for `%s'",
4735 yyval.ttype = integer_zero_node; ;
4739 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4743 { yyval.ttype = NULL_TREE; ;
4747 { yyval.ttype = condition_conversion (yyval.ttype); ;
4751 { yyval.ttype = NULL_TREE; ;
4757 for (d = getdecls (); d; d = TREE_CHAIN (d))
4758 if (TREE_CODE (d) == TYPE_DECL) {
4759 tree s = TREE_TYPE (d);
4760 if (TREE_CODE (s) == RECORD_TYPE)
4761 cp_error ("definition of class `%T' in condition", s);
4762 else if (TREE_CODE (s) == ENUMERAL_TYPE)
4763 cp_error ("definition of enum `%T' in condition", s);
4766 current_declspecs = yyvsp[-4].ftype.t;
4767 yyvsp[0].itype = suspend_momentary ();
4768 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
4769 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
4770 /*prefix_attributes*/ NULL_TREE);
4774 #line 1009 "parse.y"
4776 cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4777 resume_momentary (yyvsp[-2].itype);
4778 yyval.ttype = yyvsp[-1].ttype;
4779 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4780 cp_error ("definition of array `%#D' in condition", yyval.ttype);
4784 #line 1028 "parse.y"
4786 if (processing_template_decl)
4788 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
4789 COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
4790 add_tree (yyval.ttype);
4795 #line 1037 "parse.y"
4797 if (processing_template_decl)
4799 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
4800 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
4801 last_tree = yyvsp[-1].ttype;
4807 #line 1052 "parse.y"
4808 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4809 build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4812 #line 1055 "parse.y"
4813 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4814 build_expr_list (NULL_TREE, error_mark_node)); ;
4817 #line 1058 "parse.y"
4818 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4821 #line 1060 "parse.y"
4822 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4825 #line 1065 "parse.y"
4826 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4829 #line 1071 "parse.y"
4830 { yyval.ttype = yyvsp[0].ttype; ;
4833 #line 1074 "parse.y"
4834 { yyval.ttype = yyvsp[0].ttype;
4835 pedantic = yyvsp[-1].itype; ;
4838 #line 1077 "parse.y"
4839 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4842 #line 1079 "parse.y"
4843 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4846 #line 1081 "parse.y"
4847 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4850 #line 1083 "parse.y"
4851 { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
4852 if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
4853 TREE_NEGATED_INT (yyval.ttype) = 1;
4854 overflow_warning (yyval.ttype);
4858 #line 1090 "parse.y"
4859 { tree label = lookup_label (yyvsp[0].ttype);
4861 pedwarn ("ANSI C++ forbids `&&'");
4862 if (label == NULL_TREE)
4863 yyval.ttype = null_pointer_node;
4866 TREE_USED (label) = 1;
4867 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
4868 TREE_CONSTANT (yyval.ttype) = 1;
4873 #line 1103 "parse.y"
4874 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4877 #line 1105 "parse.y"
4878 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4881 #line 1107 "parse.y"
4882 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4885 #line 1109 "parse.y"
4886 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
4887 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4890 #line 1115 "parse.y"
4891 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
4892 check_for_new_type ("new", yyvsp[0].ftype); ;
4895 #line 1118 "parse.y"
4896 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
4897 check_for_new_type ("new", yyvsp[-1].ftype); ;
4900 #line 1121 "parse.y"
4901 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
4902 check_for_new_type ("new", yyvsp[0].ftype); ;
4905 #line 1124 "parse.y"
4906 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
4907 check_for_new_type ("new", yyvsp[-1].ftype); ;
4910 #line 1127 "parse.y"
4911 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4912 NULL_TREE, yyvsp[-3].itype);
4913 check_for_new_type ("new", yyvsp[-1].ftype); ;
4916 #line 1131 "parse.y"
4917 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype);
4918 check_for_new_type ("new", yyvsp[-2].ftype); ;
4921 #line 1134 "parse.y"
4922 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype);
4923 check_for_new_type ("new", yyvsp[-1].ftype); ;
4926 #line 1137 "parse.y"
4927 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
4928 check_for_new_type ("new", yyvsp[-2].ftype); ;
4931 #line 1141 "parse.y"
4932 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4935 #line 1143 "parse.y"
4936 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4937 if (yychar == YYEMPTY)
4941 #line 1147 "parse.y"
4942 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4943 if (yychar == YYEMPTY)
4947 #line 1151 "parse.y"
4948 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4951 #line 1153 "parse.y"
4952 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4955 #line 1158 "parse.y"
4956 { yyval.ttype = yyvsp[-1].ttype; ;
4959 #line 1160 "parse.y"
4961 yyval.ttype = yyvsp[-1].ttype;
4962 pedwarn ("old style placement syntax, use () instead");
4966 #line 1168 "parse.y"
4967 { yyval.ttype = yyvsp[-1].ttype; ;
4970 #line 1170 "parse.y"
4971 { yyval.ttype = NULL_TREE; ;
4974 #line 1172 "parse.y"
4976 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4977 yyval.ttype = error_mark_node;
4981 #line 1180 "parse.y"
4984 pedwarn ("ANSI C++ forbids initialization of new expression with `='");
4985 yyval.ttype = yyvsp[0].ttype;
4989 #line 1190 "parse.y"
4990 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4991 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4992 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4993 check_for_new_type ("cast", yyvsp[-1].ftype); ;
4996 #line 1195 "parse.y"
4997 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4998 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4999 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5000 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5003 #line 1204 "parse.y"
5004 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5007 #line 1206 "parse.y"
5009 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5010 nreverse (yyvsp[-2].ttype));
5012 pedwarn ("ANSI C++ forbids constructor-expressions");
5013 /* Indicate that this was a GNU C constructor expression. */
5014 TREE_HAS_CONSTRUCTOR (init) = 1;
5016 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5020 #line 1222 "parse.y"
5021 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5024 #line 1224 "parse.y"
5025 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5028 #line 1226 "parse.y"
5029 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5032 #line 1228 "parse.y"
5033 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5036 #line 1230 "parse.y"
5037 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5040 #line 1232 "parse.y"
5041 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5044 #line 1234 "parse.y"
5045 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5048 #line 1236 "parse.y"
5049 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5052 #line 1238 "parse.y"
5053 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5056 #line 1240 "parse.y"
5057 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5060 #line 1242 "parse.y"
5061 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5064 #line 1244 "parse.y"
5065 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5068 #line 1246 "parse.y"
5069 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5072 #line 1248 "parse.y"
5073 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5076 #line 1250 "parse.y"
5077 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5080 #line 1252 "parse.y"
5081 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5084 #line 1254 "parse.y"
5085 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5088 #line 1256 "parse.y"
5089 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5092 #line 1258 "parse.y"
5093 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5096 #line 1260 "parse.y"
5097 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5100 #line 1262 "parse.y"
5101 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5102 if (yyval.ttype != error_mark_node)
5103 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5106 #line 1266 "parse.y"
5107 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5110 #line 1268 "parse.y"
5111 { yyval.ttype = build_throw (NULL_TREE); ;
5114 #line 1270 "parse.y"
5115 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5118 #line 1288 "parse.y"
5119 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5122 #line 1298 "parse.y"
5123 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5126 #line 1300 "parse.y"
5127 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, NULL_TREE); ;
5130 #line 1302 "parse.y"
5131 { yyval.ttype = lookup_template_function
5132 (do_identifier (yyvsp[-3].ttype, 1), yyvsp[-1].ttype); ;
5135 #line 1305 "parse.y"
5136 { yyval.ttype = lookup_template_function
5137 (do_identifier (yyvsp[-2].ttype, 1), NULL_TREE); ;
5140 #line 1311 "parse.y"
5141 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5144 #line 1313 "parse.y"
5145 { yyval.ttype = lookup_template_function (DECL_NAME (yyvsp[-3].ttype), yyvsp[-1].ttype); ;
5148 #line 1315 "parse.y"
5149 { yyval.ttype = lookup_template_function (DECL_NAME (yyvsp[-3].ttype), yyvsp[-1].ttype); ;
5152 #line 1327 "parse.y"
5153 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5156 #line 1329 "parse.y"
5157 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5160 #line 1331 "parse.y"
5161 { yyval.ttype = yyvsp[-1].ttype; ;
5164 #line 1336 "parse.y"
5165 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5168 #line 1338 "parse.y"
5169 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5172 #line 1346 "parse.y"
5173 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5176 #line 1351 "parse.y"
5178 if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
5179 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
5180 else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
5181 yyval.ttype = do_identifier (yyval.ttype, 1);
5185 #line 1360 "parse.y"
5187 if (processing_template_decl)
5188 push_obstacks (&permanent_obstack, &permanent_obstack);
5189 yyval.ttype = combine_strings (yyval.ttype);
5190 if (processing_template_decl)
5195 #line 1368 "parse.y"
5197 yyval.ttype = yyvsp[-1].ttype;
5198 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5199 if (class == 'e' || class == '1'
5200 || class == '2' || class == '<')
5201 /* This inhibits warnings in truthvalue_conversion. */
5202 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5205 #line 1376 "parse.y"
5207 yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5208 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5209 if (class == 'e' || class == '1'
5210 || class == '2' || class == '<')
5211 /* This inhibits warnings in truthvalue_conversion. */
5212 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5215 #line 1384 "parse.y"
5216 { yyval.ttype = error_mark_node; ;
5219 #line 1386 "parse.y"
5220 { if (current_function_decl == 0)
5222 error ("braced-group within expression allowed only inside a function");
5226 yyval.ttype = expand_start_stmt_expr (); ;
5229 #line 1394 "parse.y"
5232 pedwarn ("ANSI C++ forbids braced-groups within expressions");
5233 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
5234 /* The statements have side effects, so the group does. */
5235 TREE_SIDE_EFFECTS (rtl_exp) = 1;
5237 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
5239 /* Make a BIND_EXPR for the BLOCK already made. */
5240 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
5241 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
5242 /* Remove the block from the tree at this point.
5243 It gets put back at the proper place
5244 when the BIND_EXPR is expanded. */
5245 delete_block (yyvsp[-1].ttype);
5248 yyval.ttype = yyvsp[-1].ttype;
5252 #line 1415 "parse.y"
5254 yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref);
5255 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5256 && TREE_TYPE (yyval.ttype) != void_type_node)
5257 yyval.ttype = require_complete_type (yyval.ttype);
5261 #line 1422 "parse.y"
5263 yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
5264 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5265 && TREE_TYPE (yyval.ttype) != void_type_node)
5266 yyval.ttype = require_complete_type (yyval.ttype);
5270 #line 1429 "parse.y"
5271 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5274 #line 1431 "parse.y"
5275 { /* If we get an OFFSET_REF, turn it into what it really
5276 means (e.g., a COMPONENT_REF). This way if we've got,
5277 say, a reference to a static member that's being operated
5278 on, we don't end up trying to find a member operator for
5279 the class it's in. */
5280 if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5281 yyval.ttype = resolve_offset_ref (yyval.ttype);
5282 yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
5285 #line 1440 "parse.y"
5286 { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5287 yyval.ttype = resolve_offset_ref (yyval.ttype);
5288 yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
5291 #line 1445 "parse.y"
5292 { if (current_class_ptr)
5294 #ifdef WARNING_ABOUT_CCD
5295 TREE_USED (current_class_ptr) = 1;
5297 yyval.ttype = current_class_ptr;
5299 else if (current_function_decl
5300 && DECL_STATIC_FUNCTION_P (current_function_decl))
5302 error ("`this' is unavailable for static member functions");
5303 yyval.ttype = error_mark_node;
5307 if (current_function_decl)
5308 error ("invalid use of `this' in non-member function");
5310 error ("invalid use of `this' at top level");
5311 yyval.ttype = error_mark_node;
5316 #line 1468 "parse.y"
5319 tree id = yyval.ttype;
5321 /* This is a C cast in C++'s `functional' notation. */
5322 if (yyvsp[-1].ttype == error_mark_node)
5324 yyval.ttype = error_mark_node;
5328 if (yyvsp[-1].ttype == NULL_TREE)
5330 error ("cannot cast null list to type `%s'",
5331 IDENTIFIER_POINTER (TYPE_NAME (id)));
5332 yyval.ttype = error_mark_node;
5337 /* type is not set! (mrs) */
5338 if (type == error_mark_node)
5339 yyval.ttype = error_mark_node;
5343 if (id == ridpointers[(int) RID_CONST])
5344 type = build_type_variant (integer_type_node, 1, 0);
5345 else if (id == ridpointers[(int) RID_VOLATILE])
5346 type = build_type_variant (integer_type_node, 0, 1);
5348 /* should not be able to get here (mrs) */
5349 else if (id == ridpointers[(int) RID_FRIEND])
5351 error ("cannot cast expression to `friend' type");
5352 yyval.ttype = error_mark_node;
5356 else my_friendly_abort (79);
5357 yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5362 #line 1513 "parse.y"
5363 { tree type = groktypename (yyvsp[-4].ftype.t);
5364 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5365 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5368 #line 1517 "parse.y"
5369 { tree type = groktypename (yyvsp[-4].ftype.t);
5370 check_for_new_type ("static_cast", yyvsp[-4].ftype);
5371 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5374 #line 1521 "parse.y"
5375 { tree type = groktypename (yyvsp[-4].ftype.t);
5376 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5377 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5380 #line 1525 "parse.y"
5381 { tree type = groktypename (yyvsp[-4].ftype.t);
5382 check_for_new_type ("const_cast", yyvsp[-4].ftype);
5383 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5386 #line 1529 "parse.y"
5387 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5390 #line 1531 "parse.y"
5391 { tree type = groktypename (yyvsp[-1].ftype.t);
5392 check_for_new_type ("typeid", yyvsp[-1].ftype);
5393 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5396 #line 1535 "parse.y"
5397 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5400 #line 1537 "parse.y"
5402 got_scope = NULL_TREE;
5403 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5404 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5406 yyval.ttype = yyvsp[0].ttype;
5410 #line 1545 "parse.y"
5411 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5414 #line 1547 "parse.y"
5415 { if (processing_template_decl)
5416 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
5418 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
5421 #line 1552 "parse.y"
5422 { if (processing_template_decl)
5423 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype),
5424 NULL_TREE, NULL_TREE);
5426 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
5429 #line 1558 "parse.y"
5431 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
5435 #line 1562 "parse.y"
5437 yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype,
5438 NULL_TREE, LOOKUP_NORMAL);
5442 #line 1567 "parse.y"
5444 yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE,
5445 NULL_TREE, LOOKUP_NORMAL);
5449 #line 1572 "parse.y"
5450 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5453 #line 1574 "parse.y"
5454 { if (processing_template_decl)
5455 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5457 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5460 #line 1579 "parse.y"
5463 /* This is a future direction of this code, but because
5464 build_x_function_call cannot always undo what is done
5465 in build_component_ref entirely yet, we cannot do this. */
5466 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
5467 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5468 && TREE_TYPE (yyval.ttype) != void_type_node)
5469 yyval.ttype = require_complete_type (yyval.ttype);
5471 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
5477 #line 1594 "parse.y"
5480 /* This is a future direction of this code, but because
5481 build_x_function_call cannot always undo what is done
5482 in build_component_ref entirely yet, we cannot do this. */
5483 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
5484 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5485 && TREE_TYPE (yyval.ttype) != void_type_node)
5486 yyval.ttype = require_complete_type (yyval.ttype);
5488 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
5494 #line 1609 "parse.y"
5496 if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
5498 warning ("signature name in scope resolution ignored");
5499 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
5503 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
5507 #line 1620 "parse.y"
5509 if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
5511 warning ("signature name in scope resolution ignored");
5512 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
5516 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
5520 #line 1632 "parse.y"
5522 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
5523 && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype))
5524 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
5525 cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
5526 yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
5530 #line 1640 "parse.y"
5532 if (yyvsp[-4].ttype != yyvsp[-1].ttype)
5533 cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
5534 if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
5535 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
5536 cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
5537 yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
5541 #line 1649 "parse.y"
5543 yyval.ttype = error_mark_node;
5547 #line 1694 "parse.y"
5548 { yyval.itype = 0; ;
5551 #line 1696 "parse.y"
5552 { got_scope = NULL_TREE; yyval.itype = 1; ;
5555 #line 1701 "parse.y"
5556 { yyval.itype = 0; ;
5559 #line 1703 "parse.y"
5560 { got_scope = NULL_TREE; yyval.itype = 1; ;
5563 #line 1708 "parse.y"
5564 { yyval.ttype = boolean_true_node; ;
5567 #line 1710 "parse.y"
5568 { yyval.ttype = boolean_false_node; ;
5571 #line 1717 "parse.y"
5572 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5575 #line 1722 "parse.y"
5577 if (! current_function_parms_stored)
5578 store_parm_decls ();
5580 /* Always keep the BLOCK node associated with the outermost
5581 pair of curley braces of a function. These are needed
5582 for correct operation of dwarfout.c. */
5587 #line 1735 "parse.y"
5588 { got_object = TREE_TYPE (yyval.ttype); ;
5591 #line 1737 "parse.y"
5593 yyval.ttype = build_x_arrow (yyval.ttype);
5594 got_object = TREE_TYPE (yyval.ttype);
5598 #line 1745 "parse.y"
5600 resume_momentary (yyvsp[-1].itype);
5601 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5602 note_got_semicolon (yyvsp[-2].ftype.t);
5606 #line 1751 "parse.y"
5608 resume_momentary (yyvsp[-1].itype);
5609 note_list_got_semicolon (yyvsp[-2].ftype.t);
5613 #line 1756 "parse.y"
5614 { resume_momentary (yyvsp[-1].itype); ;
5617 #line 1758 "parse.y"
5619 shadow_tag (yyvsp[-1].ftype.t);
5620 note_list_got_semicolon (yyvsp[-1].ftype.t);
5624 #line 1763 "parse.y"
5625 { warning ("empty declaration"); ;
5628 #line 1765 "parse.y"
5629 { pedantic = yyvsp[-1].itype; ;
5632 #line 1779 "parse.y"
5633 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5634 NULL_TREE, NULL_TREE); ;
5637 #line 1782 "parse.y"
5638 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5642 #line 1789 "parse.y"
5643 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5644 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5647 #line 1792 "parse.y"
5648 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5649 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5652 #line 1795 "parse.y"
5653 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
5654 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5657 #line 1798 "parse.y"
5658 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5659 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5662 #line 1801 "parse.y"
5663 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5664 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5667 #line 1817 "parse.y"
5668 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
5669 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5672 #line 1820 "parse.y"
5673 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5674 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5677 #line 1823 "parse.y"
5678 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
5679 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5682 #line 1826 "parse.y"
5683 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5684 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5687 #line 1829 "parse.y"
5688 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5689 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5692 #line 1832 "parse.y"
5693 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5694 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
5695 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5698 #line 1839 "parse.y"
5699 { if (extra_warnings)
5700 warning ("`%s' is not at beginning of declaration",
5701 IDENTIFIER_POINTER (yyval.ttype));
5702 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5705 #line 1844 "parse.y"
5706 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5709 #line 1846 "parse.y"
5710 { if (extra_warnings)
5711 warning ("`%s' is not at beginning of declaration",
5712 IDENTIFIER_POINTER (yyvsp[0].ttype));
5713 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5716 #line 1851 "parse.y"
5717 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5720 #line 1853 "parse.y"
5721 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5724 #line 1863 "parse.y"
5725 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5728 #line 1865 "parse.y"
5729 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5732 #line 1867 "parse.y"
5733 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5734 TREE_STATIC (yyval.ttype) = 1; ;
5737 #line 1870 "parse.y"
5738 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5739 warning ("`%s' is not at beginning of declaration",
5740 IDENTIFIER_POINTER (yyvsp[0].ttype));
5741 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5742 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5745 #line 1876 "parse.y"
5746 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5749 #line 1878 "parse.y"
5750 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5753 #line 1889 "parse.y"
5754 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t);
5755 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5758 #line 1892 "parse.y"
5759 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
5760 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5763 #line 1895 "parse.y"
5764 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5765 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5768 #line 1898 "parse.y"
5769 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
5770 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5773 #line 1904 "parse.y"
5774 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5777 #line 1906 "parse.y"
5778 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5781 #line 1916 "parse.y"
5782 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5785 #line 1918 "parse.y"
5786 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5789 #line 1920 "parse.y"
5790 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5791 yyval.ftype.new_type_flag = 0; ;
5794 #line 1923 "parse.y"
5795 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5796 yyval.ftype.new_type_flag = 0; ;
5799 #line 1926 "parse.y"
5800 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5802 yyval.ftype.new_type_flag = 0;
5803 if (IS_AGGR_TYPE (type))
5805 sorry ("sigof type specifier");
5806 yyval.ftype.t = type;
5810 error ("`sigof' applied to non-aggregate expression");
5811 yyval.ftype.t = error_mark_node;
5816 #line 1941 "parse.y"
5817 { tree type = groktypename (yyvsp[-1].ftype.t);
5819 yyval.ftype.new_type_flag = 0;
5820 if (IS_AGGR_TYPE (type))
5822 sorry ("sigof type specifier");
5823 yyval.ftype.t = type;
5827 error("`sigof' applied to non-aggregate type");
5828 yyval.ftype.t = error_mark_node;
5833 #line 1961 "parse.y"
5834 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5837 #line 1963 "parse.y"
5838 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5841 #line 1984 "parse.y"
5842 { yyval.ttype = NULL_TREE; ;
5845 #line 1986 "parse.y"
5846 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5849 #line 1991 "parse.y"
5850 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
5851 &prefix_attributes);
5852 if (current_declspecs
5853 && TREE_CODE (current_declspecs) != TREE_LIST)
5854 current_declspecs = get_decl_list (current_declspecs);
5855 if (have_extern_spec && !used_extern_spec)
5857 current_declspecs = decl_tree_cons
5858 (NULL_TREE, get_identifier ("extern"),
5860 used_extern_spec = 1;
5862 yyvsp[0].itype = suspend_momentary ();
5863 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5864 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5867 #line 2008 "parse.y"
5868 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5869 yyval.itype = yyvsp[-2].itype; ;
5872 #line 2011 "parse.y"
5874 split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs,
5875 &prefix_attributes);
5876 if (current_declspecs
5877 && TREE_CODE (current_declspecs) != TREE_LIST)
5878 current_declspecs = get_decl_list (current_declspecs);
5879 if (have_extern_spec && !used_extern_spec)
5881 current_declspecs = decl_tree_cons
5882 (NULL_TREE, get_identifier ("extern"),
5884 used_extern_spec = 1;
5886 yyval.itype = suspend_momentary ();
5887 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5888 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5889 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5892 #line 2032 "parse.y"
5893 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5894 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5897 #line 2036 "parse.y"
5898 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5901 #line 2038 "parse.y"
5902 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5903 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
5904 cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5907 #line 2045 "parse.y"
5908 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
5909 &prefix_attributes);
5910 yyvsp[0].itype = suspend_momentary ();
5911 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5912 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5915 #line 2052 "parse.y"
5916 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5917 yyval.itype = yyvsp[-2].itype; ;
5920 #line 2055 "parse.y"
5922 split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs,
5923 &prefix_attributes);
5924 yyval.itype = suspend_momentary ();
5925 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5926 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5927 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5930 #line 2066 "parse.y"
5931 { current_declspecs = NULL_TREE;
5932 prefix_attributes = NULL_TREE;
5933 yyvsp[0].itype = suspend_momentary ();
5934 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5935 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5938 #line 2073 "parse.y"
5939 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5940 yyval.itype = yyvsp[-2].itype; ;
5943 #line 2076 "parse.y"
5945 current_declspecs = NULL_TREE;
5946 prefix_attributes = NULL_TREE;
5947 yyval.itype = suspend_momentary ();
5948 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5949 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5950 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5953 #line 2089 "parse.y"
5954 { yyval.ttype = NULL_TREE; ;
5957 #line 2091 "parse.y"
5958 { yyval.ttype = yyvsp[0].ttype; ;
5961 #line 2096 "parse.y"
5962 { yyval.ttype = yyvsp[0].ttype; ;
5965 #line 2098 "parse.y"
5966 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5969 #line 2103 "parse.y"
5970 { yyval.ttype = yyvsp[-2].ttype; ;
5973 #line 2108 "parse.y"
5974 { yyval.ttype = yyvsp[0].ttype; ;
5977 #line 2110 "parse.y"
5978 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5981 #line 2115 "parse.y"
5982 { yyval.ttype = NULL_TREE; ;
5985 #line 2117 "parse.y"
5986 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5989 #line 2119 "parse.y"
5990 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5993 #line 2121 "parse.y"
5994 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5997 #line 2123 "parse.y"
5998 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6001 #line 2139 "parse.y"
6002 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
6005 #line 2141 "parse.y"
6006 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6009 #line 2146 "parse.y"
6010 { yyval.ttype = NULL_TREE; ;
6013 #line 2148 "parse.y"
6014 { yyval.ttype = yyvsp[0].ttype; ;
6017 #line 2156 "parse.y"
6018 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
6019 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6022 #line 2159 "parse.y"
6023 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6024 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6027 #line 2162 "parse.y"
6028 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6029 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6032 #line 2165 "parse.y"
6033 { yyval.ttype = NULL_TREE; ;
6036 #line 2172 "parse.y"
6037 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6040 #line 2174 "parse.y"
6041 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6044 #line 2177 "parse.y"
6045 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6048 #line 2179 "parse.y"
6049 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6052 #line 2181 "parse.y"
6053 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6056 #line 2183 "parse.y"
6057 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6060 #line 2188 "parse.y"
6061 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
6063 reinit_parse_for_function (); ;
6066 #line 2194 "parse.y"
6068 int nested = (hack_decl_function_context
6069 (current_function_decl) != NULL_TREE);
6070 finish_function (lineno, (int)yyvsp[-1].itype, nested);
6071 process_next_inline (yyvsp[-3].ttype);
6075 #line 2201 "parse.y"
6076 { process_next_inline (yyvsp[-2].ttype); ;
6079 #line 2203 "parse.y"
6080 { process_next_inline (yyvsp[-2].ttype); ;
6083 #line 2215 "parse.y"
6084 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6087 #line 2217 "parse.y"
6088 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6091 #line 2222 "parse.y"
6092 { do_pending_defargs (); ;
6095 #line 2224 "parse.y"
6096 { do_pending_defargs (); ;
6099 #line 2229 "parse.y"
6100 { yyvsp[0].itype = suspend_momentary ();
6101 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
6104 #line 2232 "parse.y"
6105 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6106 yyval.ftype.new_type_flag = 1;
6107 resume_momentary ((int) yyvsp[-4].itype);
6108 check_for_missing_semicolon (yyvsp[-3].ttype); ;
6111 #line 2237 "parse.y"
6112 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
6113 yyval.ftype.new_type_flag = 1;
6114 check_for_missing_semicolon (yyval.ftype.t); ;
6117 #line 2241 "parse.y"
6118 { yyvsp[0].itype = suspend_momentary ();
6119 yyval.ttype = start_enum (make_anon_name ()); ;
6122 #line 2244 "parse.y"
6123 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6124 resume_momentary ((int) yyvsp[-5].itype);
6125 check_for_missing_semicolon (yyvsp[-3].ttype);
6126 yyval.ftype.new_type_flag = 1; ;
6129 #line 2249 "parse.y"
6130 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
6131 yyval.ftype.new_type_flag = 1;
6132 check_for_missing_semicolon (yyval.ftype.t); ;
6135 #line 2253 "parse.y"
6136 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6137 yyval.ftype.new_type_flag = 0; ;
6140 #line 2256 "parse.y"
6141 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6142 yyval.ftype.new_type_flag = 0; ;
6145 #line 2259 "parse.y"
6146 { yyval.ftype.t = yyvsp[0].ttype;
6147 yyval.ftype.new_type_flag = 0; ;
6150 #line 2263 "parse.y"
6151 { reset_specialization(); ;
6154 #line 2265 "parse.y"
6159 yyval.ttype = yyvsp[-5].ttype;
6161 /* Need to rework class nesting in the
6162 presence of nested classes, etc. */
6163 shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-5].ttype)); */
6165 if (yychar == YYEMPTY)
6167 semi = yychar == ';';
6168 /* finish_struct nukes this anyway; if
6169 finish_exception does too, then it can go. */
6171 note_got_semicolon (yyvsp[-5].ttype);
6173 if (TREE_CODE (yyvsp[-5].ttype) == ENUMERAL_TYPE)
6177 yyval.ttype = finish_struct (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
6178 if (semi) note_got_semicolon (yyval.ttype);
6184 check_for_missing_semicolon (yyvsp[-5].ttype);
6185 if (current_scope () == current_function_decl)
6186 do_pending_defargs ();
6190 #line 2299 "parse.y"
6193 && current_scope () == current_function_decl)
6194 do_pending_inlines ();
6198 #line 2305 "parse.y"
6200 yyval.ftype.t = yyvsp[-3].ttype;
6201 yyval.ftype.new_type_flag = 1;
6202 if (current_class_type == NULL_TREE)
6203 clear_inline_text_obstack ();
6207 #line 2312 "parse.y"
6209 yyval.ftype.t = yyvsp[0].ttype;
6210 yyval.ftype.new_type_flag = 0;
6211 /* struct B: public A; is not accepted by the WP grammar. */
6212 if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6213 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6214 cp_error ("base clause without member specification for `%#T'",
6219 #line 2331 "parse.y"
6220 { if (pedantic && !in_system_header)
6221 pedwarn ("comma at end of enumerator list"); ;
6224 #line 2338 "parse.y"
6225 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6228 #line 2340 "parse.y"
6229 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6232 #line 2342 "parse.y"
6233 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6236 #line 2344 "parse.y"
6237 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6240 #line 2349 "parse.y"
6241 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6244 #line 2354 "parse.y"
6245 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6248 #line 2359 "parse.y"
6250 current_aggr = yyvsp[-2].ttype;
6251 yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6255 #line 2364 "parse.y"
6257 current_aggr = yyvsp[-3].ttype;
6258 yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6262 #line 2369 "parse.y"
6264 current_aggr = yyvsp[-2].ttype;
6265 yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6269 #line 2374 "parse.y"
6270 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6273 #line 2376 "parse.y"
6274 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6277 #line 2381 "parse.y"
6278 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
6281 #line 2386 "parse.y"
6282 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
6285 #line 2389 "parse.y"
6287 yyval.ttype = yyvsp[-1].ttype;
6289 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6293 #line 2395 "parse.y"
6295 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6296 if (TREE_INT_CST_LOW (current_aggr) == union_type
6297 && TREE_CODE (yyval.ttype) != UNION_TYPE)
6298 cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6299 else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6300 && TREE_INT_CST_LOW (current_aggr) != union_type)
6301 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6304 if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
6306 if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
6307 && TYPE_SIZE (yyval.ttype) == NULL_TREE)
6309 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
6310 if (processing_template_decl)
6311 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6313 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6314 cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6316 xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype);
6321 #line 2424 "parse.y"
6322 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6323 yyungetc ('{', 1); ;
6326 #line 2435 "parse.y"
6327 { yyval.ttype = NULL_TREE; ;
6330 #line 2437 "parse.y"
6331 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6334 #line 2439 "parse.y"
6335 { yyval.ttype = yyvsp[0].ttype; ;
6338 #line 2445 "parse.y"
6339 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6342 #line 2450 "parse.y"
6344 tree type = TREE_TYPE (yyvsp[0].ttype);
6345 if (! is_aggr_type (type, 1))
6346 yyval.ttype = NULL_TREE;
6347 else if (current_aggr == signature_type_node
6348 && (! type) && (! IS_SIGNATURE (type)))
6350 error ("class name not allowed as base signature");
6351 yyval.ttype = NULL_TREE;
6353 else if (current_aggr == signature_type_node)
6355 sorry ("signature inheritance, base type `%s' ignored",
6356 IDENTIFIER_POINTER (yyval.ttype));
6357 yyval.ttype = build_tree_list (access_public_node, type);
6359 else if (type && IS_SIGNATURE (type))
6361 error ("signature name not allowed as base class");
6362 yyval.ttype = NULL_TREE;
6365 yyval.ttype = build_tree_list (access_default_node, type);
6369 #line 2475 "parse.y"
6371 tree type = TREE_TYPE (yyvsp[0].ttype);
6372 if (current_aggr == signature_type_node)
6373 error ("access and source specifiers not allowed in signature");
6374 if (! IS_AGGR_TYPE (type))
6375 yyval.ttype = NULL_TREE;
6376 else if (current_aggr == signature_type_node
6377 && (! type) && (! IS_SIGNATURE (type)))
6379 error ("class name not allowed as base signature");
6380 yyval.ttype = NULL_TREE;
6382 else if (current_aggr == signature_type_node)
6384 sorry ("signature inheritance, base type `%s' ignored",
6385 IDENTIFIER_POINTER (yyval.ttype));
6386 yyval.ttype = build_tree_list (access_public_node, type);
6388 else if (type && IS_SIGNATURE (type))
6390 error ("signature name not allowed as base class");
6391 yyval.ttype = NULL_TREE;
6394 yyval.ttype = build_tree_list (yyval.ttype, type);
6398 #line 2505 "parse.y"
6399 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6402 #line 2508 "parse.y"
6404 if (current_aggr == signature_type_node)
6406 if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6408 sorry ("`sigof' as base signature specifier");
6409 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6413 error ("`sigof' applied to non-aggregate expression");
6414 yyval.ttype = error_mark_node;
6419 error ("`sigof' in struct or class declaration");
6420 yyval.ttype = error_mark_node;
6425 #line 2529 "parse.y"
6427 if (current_aggr == signature_type_node)
6429 if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6431 sorry ("`sigof' as base signature specifier");
6432 yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6436 error ("`sigof' applied to non-aggregate expression");
6437 yyval.ttype = error_mark_node;
6442 error ("`sigof' in struct or class declaration");
6443 yyval.ttype = error_mark_node;
6448 #line 2554 "parse.y"
6449 { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
6450 sorry ("non-virtual access");
6451 yyval.ttype = access_default_virtual_node; ;
6454 #line 2558 "parse.y"
6456 if (yyvsp[-1].ttype == access_protected_node)
6458 warning ("`protected' access not implemented");
6459 yyvsp[-1].ttype = access_public_node;
6462 else if (yyvsp[-1].ttype == access_public_node)
6464 if (yyvsp[-2].ttype == access_private_node)
6467 error ("base class cannot be public and private");
6469 else if (yyvsp[-2].ttype == access_default_virtual_node)
6470 yyval.ttype = access_public_virtual_node;
6472 else /* $2 == access_private_node */
6474 if (yyvsp[-2].ttype == access_public_node)
6476 else if (yyvsp[-2].ttype == access_default_virtual_node)
6477 yyval.ttype = access_private_virtual_node;
6482 #line 2584 "parse.y"
6483 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6484 sorry ("non-virtual access");
6485 if (yyval.ttype == access_public_node)
6486 yyval.ttype = access_public_virtual_node;
6487 else if (yyval.ttype == access_private_node)
6488 yyval.ttype = access_private_virtual_node; ;
6491 #line 2594 "parse.y"
6492 { tree t = yyvsp[-1].ttype;
6493 push_obstacks_nochange ();
6494 end_temporary_allocation ();
6496 if (t == error_mark_node
6497 || ! IS_AGGR_TYPE (t))
6499 t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
6500 pushtag (make_anon_name (), t, 0);
6503 duplicate_tag_error (t);
6504 if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
6506 t = make_lang_type (TREE_CODE (t));
6507 pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
6508 yyvsp[-1].ttype = t;
6510 if (processing_template_decl && TYPE_CONTEXT (t)
6511 && ! current_class_type)
6512 push_template_decl (TYPE_STUB_DECL (t));
6514 TYPE_BEING_DEFINED (t) = 1;
6515 if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
6517 if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
6518 && TYPE_SIZE (t) == NULL_TREE)
6520 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
6521 if (processing_template_decl)
6522 push_template_decl (TYPE_MAIN_DECL (t));
6524 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
6525 cp_error ("specialization after instantiation of `%T'", t);
6527 /* Reset the interface data, at the earliest possible
6528 moment, as it might have been set via a class foo;
6530 /* Don't change signatures. */
6531 if (! IS_SIGNATURE (t))
6533 extern tree pending_vtables;
6535 tree name = TYPE_IDENTIFIER (t);
6537 if (! ANON_AGGRNAME_P (name))
6539 CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
6540 SET_CLASSTYPE_INTERFACE_UNKNOWN_X
6541 (t, interface_unknown);
6544 /* Record how to set the access of this class's
6545 virtual functions. If write_virtuals == 2 or 3, then
6546 inline virtuals are ``extern inline''. */
6547 switch (write_virtuals)
6554 needs_writing = !! value_member (name, pending_vtables);
6557 needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
6558 && CLASSTYPE_INTERFACE_KNOWN (t);
6563 CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
6566 t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
6567 if (t && IDENTIFIER_TEMPLATE (t))
6568 overload_template_name (t, 1);
6573 #line 2677 "parse.y"
6575 yyval.ttype = build_self_reference ();
6579 #line 2684 "parse.y"
6580 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6583 #line 2686 "parse.y"
6585 if (current_aggr == signature_type_node)
6586 yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6588 yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6589 if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6593 #line 2694 "parse.y"
6595 tree visspec = yyvsp[-2].ttype;
6597 if (current_aggr == signature_type_node)
6599 error ("access specifier not allowed in signature");
6600 visspec = access_public_node;
6602 yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6606 #line 2705 "parse.y"
6608 if (current_aggr == signature_type_node)
6609 error ("access specifier not allowed in signature");
6613 #line 2715 "parse.y"
6614 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE;
6618 #line 2718 "parse.y"
6619 { /* In pushdecl, we created a reverse list of names
6620 in this binding level. Make sure that the chain
6621 of what we're trying to add isn't the item itself
6622 (which can happen with what pushdecl's doing). */
6623 if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6625 if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6626 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6628 yyval.ttype = yyvsp[0].ttype;
6633 #line 2734 "parse.y"
6637 #line 2736 "parse.y"
6638 { error ("missing ';' before right brace");
6639 yyungetc ('}', 0); ;
6642 #line 2741 "parse.y"
6643 { yyval.ttype = finish_method (yyval.ttype); ;
6646 #line 2743 "parse.y"
6647 { yyval.ttype = finish_method (yyval.ttype); ;
6650 #line 2745 "parse.y"
6651 { yyval.ttype = finish_method (yyval.ttype); ;
6654 #line 2747 "parse.y"
6655 { yyval.ttype = finish_method (yyval.ttype); ;
6658 #line 2749 "parse.y"
6659 { yyval.ttype = NULL_TREE; ;
6662 #line 2751 "parse.y"
6663 { yyval.ttype = yyvsp[0].ttype;
6664 pedantic = yyvsp[-1].itype; ;
6667 #line 2760 "parse.y"
6668 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6671 #line 2762 "parse.y"
6672 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6675 #line 2764 "parse.y"
6676 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6677 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6680 #line 2767 "parse.y"
6681 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6682 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6685 #line 2770 "parse.y"
6686 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6689 #line 2772 "parse.y"
6690 { yyval.ttype = NULL_TREE; ;
6693 #line 2783 "parse.y"
6694 { tree specs, attrs;
6695 split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6696 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6697 build_tree_list (yyvsp[-1].ttype, attrs)); ;
6700 #line 2788 "parse.y"
6701 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6702 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6705 #line 2791 "parse.y"
6706 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6709 #line 2793 "parse.y"
6711 if (yyvsp[-1].ttype)
6712 end_template_decl ();
6714 end_specialization ();
6716 if (yyvsp[0].ttype && DECL_TEMPLATE_INFO (yyvsp[0].ttype)
6717 && !DECL_TEMPLATE_SPECIALIZATION (yyvsp[0].ttype))
6719 yyval.ttype = DECL_TI_TEMPLATE (yyvsp[0].ttype);
6720 check_member_template (yyval.ttype);
6722 else if (yyvsp[0].ttype)
6723 yyval.ttype = yyvsp[0].ttype;
6726 cp_error("invalid member template declaration");
6727 yyval.ttype = NULL_TREE;
6732 #line 2818 "parse.y"
6733 { yyval.ttype = NULL_TREE; ;
6736 #line 2821 "parse.y"
6738 /* In this context, void_type_node encodes
6739 friends. They have been recorded elsewhere. */
6740 if (yyval.ttype == void_type_node)
6741 yyval.ttype = yyvsp[0].ttype;
6743 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6747 #line 2833 "parse.y"
6748 { yyval.ttype = NULL_TREE; ;
6751 #line 2836 "parse.y"
6753 /* In this context, void_type_node encodes
6754 friends. They have been recorded elsewhere. */
6755 if (yyval.ttype == void_type_node)
6756 yyval.ttype = yyvsp[0].ttype;
6758 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6762 #line 2858 "parse.y"
6763 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6764 &prefix_attributes);
6765 yyvsp[-4].ttype = current_declspecs;
6766 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6767 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6770 #line 2864 "parse.y"
6771 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6772 &prefix_attributes);
6773 yyvsp[-4].ttype = current_declspecs;
6774 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6775 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6778 #line 2873 "parse.y"
6779 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6780 &prefix_attributes);
6781 yyvsp[-4].ttype = current_declspecs;
6782 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6783 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6786 #line 2879 "parse.y"
6787 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6788 &prefix_attributes);
6789 yyvsp[-4].ttype = current_declspecs;
6790 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6791 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6794 #line 2885 "parse.y"
6795 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6796 &prefix_attributes);
6797 yyvsp[-4].ttype = current_declspecs;
6798 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6799 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6802 #line 2891 "parse.y"
6803 { split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs,
6804 &prefix_attributes);
6805 yyvsp[-3].ttype = current_declspecs;
6806 yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6807 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6810 #line 2900 "parse.y"
6811 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6812 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6815 #line 2903 "parse.y"
6816 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6817 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6820 #line 2909 "parse.y"
6821 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6822 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6825 #line 2912 "parse.y"
6826 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6827 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6830 #line 2915 "parse.y"
6831 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6832 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6835 #line 2926 "parse.y"
6836 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6839 #line 2931 "parse.y"
6840 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6843 #line 2933 "parse.y"
6844 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6847 #line 2939 "parse.y"
6848 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6849 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6852 #line 2942 "parse.y"
6853 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6854 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6857 #line 2947 "parse.y"
6860 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6861 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6862 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6863 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6867 #line 2958 "parse.y"
6868 { yyval.ttype = NULL_TREE; ;
6871 #line 2960 "parse.y"
6872 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6875 #line 2965 "parse.y"
6876 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype);
6877 yyval.ftype.new_type_flag = 0; ;
6880 #line 2968 "parse.y"
6881 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6882 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6885 #line 2977 "parse.y"
6886 { yyval.itype = suspend_momentary (); ;
6889 #line 2982 "parse.y"
6890 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6893 #line 2988 "parse.y"
6894 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6897 #line 2990 "parse.y"
6898 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6901 #line 2992 "parse.y"
6902 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6905 #line 2994 "parse.y"
6906 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6909 #line 3001 "parse.y"
6910 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6913 #line 3003 "parse.y"
6914 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6917 #line 3005 "parse.y"
6918 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6921 #line 3007 "parse.y"
6922 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6925 #line 3009 "parse.y"
6926 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6927 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6931 #line 3017 "parse.y"
6933 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6935 if (current_class_type
6936 && TYPE_BEING_DEFINED (current_class_type)
6937 && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6939 /* Be sure to get an inherited typedef. */
6940 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6941 /* Remember that this name has been used in the class
6942 definition, as per [class.scope0] */
6943 pushdecl_class_level (yyval.ttype);
6946 yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
6949 yyval.ttype = yyvsp[0].ttype;
6953 #line 3037 "parse.y"
6955 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6956 yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
6958 yyval.ttype = yyvsp[0].ttype;
6959 got_scope = NULL_TREE;
6963 #line 3050 "parse.y"
6964 { yyval.ttype = yyvsp[0].ttype; ;
6967 #line 3055 "parse.y"
6968 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6971 #line 3060 "parse.y"
6972 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6975 #line 3062 "parse.y"
6976 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6979 #line 3064 "parse.y"
6980 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6983 #line 3066 "parse.y"
6984 { yyval.ttype = yyvsp[-1].ttype; ;
6987 #line 3068 "parse.y"
6988 { push_nested_class (yyvsp[-1].ttype, 3);
6989 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6990 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6993 #line 3079 "parse.y"
6994 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6997 #line 3081 "parse.y"
6998 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7001 #line 3083 "parse.y"
7002 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7005 #line 3085 "parse.y"
7006 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7009 #line 3087 "parse.y"
7010 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7011 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7015 #line 3095 "parse.y"
7016 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7019 #line 3097 "parse.y"
7020 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7023 #line 3099 "parse.y"
7024 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7027 #line 3101 "parse.y"
7028 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7031 #line 3103 "parse.y"
7032 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7033 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7037 #line 3111 "parse.y"
7038 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7041 #line 3113 "parse.y"
7042 { yyval.ttype = yyvsp[-1].ttype; ;
7045 #line 3115 "parse.y"
7046 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7049 #line 3117 "parse.y"
7050 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7053 #line 3119 "parse.y"
7054 { if (OP0 (yyval.ttype) != current_class_type)
7056 push_nested_class (OP0 (yyval.ttype), 3);
7057 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7062 #line 3126 "parse.y"
7063 { got_scope = NULL_TREE;
7064 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7065 if (yyvsp[-1].ttype != current_class_type)
7067 push_nested_class (yyvsp[-1].ttype, 3);
7068 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7073 #line 3138 "parse.y"
7074 { got_scope = NULL_TREE;
7075 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7078 #line 3141 "parse.y"
7079 { got_scope = NULL_TREE;
7080 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7083 #line 3147 "parse.y"
7084 { got_scope = NULL_TREE;
7085 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7088 #line 3150 "parse.y"
7089 { got_scope = NULL_TREE;
7090 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7093 #line 3157 "parse.y"
7094 { yyval.ttype = yyvsp[0].ttype; ;
7097 #line 3162 "parse.y"
7098 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7101 #line 3164 "parse.y"
7102 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7105 #line 3166 "parse.y"
7106 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7109 #line 3178 "parse.y"
7110 { yyval.ttype = yyvsp[0].ttype; ;
7113 #line 3185 "parse.y"
7115 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7117 yyval.ttype = lastiddecl;
7118 /* Remember that this name has been used in the class
7119 definition, as per [class.scope0] */
7120 if (current_class_type
7121 && TYPE_BEING_DEFINED (current_class_type)
7122 && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
7123 pushdecl_class_level (yyval.ttype);
7125 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7129 #line 3199 "parse.y"
7131 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7132 yyval.ttype = lastiddecl;
7133 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7137 #line 3205 "parse.y"
7139 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7140 yyval.ttype = lastiddecl;
7141 got_scope = yyval.ttype;
7145 #line 3211 "parse.y"
7146 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7149 #line 3227 "parse.y"
7150 { yyval.ttype = yyvsp[0].ttype; ;
7153 #line 3232 "parse.y"
7155 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7156 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7157 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7158 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7160 yyval.ttype = yyvsp[0].ttype;
7164 #line 3244 "parse.y"
7166 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7167 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7171 #line 3249 "parse.y"
7173 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7174 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7175 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7176 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7178 yyval.ttype = yyvsp[0].ttype;
7182 #line 3261 "parse.y"
7184 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7185 yyval.ttype = lastiddecl;
7186 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7190 #line 3267 "parse.y"
7192 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7193 yyval.ttype = lastiddecl;
7194 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7198 #line 3273 "parse.y"
7199 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7202 #line 3277 "parse.y"
7204 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7205 yyval.ttype = lastiddecl;
7206 got_scope = yyval.ttype;
7210 #line 3286 "parse.y"
7212 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7213 yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
7215 yyval.ttype = yyvsp[0].ttype;
7216 got_scope = NULL_TREE;
7220 #line 3295 "parse.y"
7221 { yyval.ttype = yyvsp[0].ttype; ;
7224 #line 3300 "parse.y"
7225 { got_scope = NULL_TREE; ;
7228 #line 3302 "parse.y"
7229 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7232 #line 3309 "parse.y"
7233 { got_scope = void_type_node; ;
7236 #line 3315 "parse.y"
7237 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7240 #line 3317 "parse.y"
7241 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7244 #line 3319 "parse.y"
7245 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7248 #line 3321 "parse.y"
7249 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7252 #line 3323 "parse.y"
7253 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7254 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7258 #line 3327 "parse.y"
7259 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7260 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7264 #line 3336 "parse.y"
7265 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7268 #line 3338 "parse.y"
7269 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7272 #line 3344 "parse.y"
7273 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7276 #line 3346 "parse.y"
7277 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7280 #line 3348 "parse.y"
7281 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7284 #line 3350 "parse.y"
7285 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7288 #line 3352 "parse.y"
7289 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7292 #line 3354 "parse.y"
7293 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7296 #line 3356 "parse.y"
7297 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7300 #line 3358 "parse.y"
7301 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7304 #line 3360 "parse.y"
7305 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7306 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7310 #line 3364 "parse.y"
7311 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7312 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7316 #line 3373 "parse.y"
7317 { yyval.ttype = yyvsp[-1].ttype; ;
7320 #line 3377 "parse.y"
7321 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7324 #line 3379 "parse.y"
7325 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7328 #line 3381 "parse.y"
7329 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7332 #line 3383 "parse.y"
7333 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7336 #line 3385 "parse.y"
7337 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7340 #line 3387 "parse.y"
7341 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7344 #line 3389 "parse.y"
7345 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7348 #line 3391 "parse.y"
7349 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7352 #line 3393 "parse.y"
7353 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7356 #line 3417 "parse.y"
7357 { do_pushlevel (); ;
7360 #line 3422 "parse.y"
7361 { yyval.ttype = do_poplevel (); ;
7364 #line 3430 "parse.y"
7366 pedwarn ("ANSI C++ forbids label declarations"); ;
7369 #line 3441 "parse.y"
7371 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7373 tree label = shadow_label (TREE_VALUE (link));
7374 C_DECLARED_LABEL_FLAG (label) = 1;
7375 declare_nonlocal_label (label);
7380 #line 3455 "parse.y"
7384 #line 3461 "parse.y"
7386 if (processing_template_decl)
7388 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7389 add_tree (yyval.ttype);
7394 #line 3469 "parse.y"
7396 if (processing_template_decl)
7398 TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
7399 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7400 last_tree = yyvsp[-3].ttype;
7402 yyval.ttype = yyvsp[0].ttype;
7406 #line 3482 "parse.y"
7408 if (processing_template_decl)
7410 yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
7412 add_tree (yyval.ttype);
7414 cond_stmt_keyword = "if";
7418 #line 3492 "parse.y"
7420 if (processing_template_decl)
7422 if (last_tree != yyvsp[-2].ttype)
7424 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7425 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7426 last_tree = yyvsp[-2].ttype;
7429 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7433 emit_line_note (input_filename, lineno);
7434 expand_start_cond (yyvsp[0].ttype, 0);
7439 #line 3511 "parse.y"
7441 if (processing_template_decl)
7443 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7444 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7445 yyval.ttype = last_tree = yyvsp[-4].ttype;
7450 #line 3523 "parse.y"
7454 #line 3525 "parse.y"
7456 if (processing_template_decl)
7458 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7459 add_tree (yyval.ttype);
7464 #line 3533 "parse.y"
7466 if (processing_template_decl)
7468 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7469 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7470 last_tree = yyvsp[-2].ttype;
7472 yyval.ttype = yyvsp[0].ttype;
7476 #line 3546 "parse.y"
7480 #line 3552 "parse.y"
7484 #line 3554 "parse.y"
7486 tree expr = yyvsp[-1].ttype;
7487 if (! processing_template_decl)
7489 emit_line_note (input_filename, lineno);
7490 /* Do default conversion if safe and possibly important,
7491 in case within ({...}). */
7492 if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
7494 || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
7495 expr = default_conversion (expr);
7497 cplus_expand_expr_stmt (expr);
7502 #line 3570 "parse.y"
7503 { if (! processing_template_decl) expand_start_else (); ;
7506 #line 3572 "parse.y"
7508 if (processing_template_decl)
7510 TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
7511 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7512 last_tree = yyvsp[-3].ttype;
7519 #line 3583 "parse.y"
7523 #line 3585 "parse.y"
7524 { if (! processing_template_decl) expand_end_cond ();
7529 #line 3589 "parse.y"
7531 if (processing_template_decl)
7533 yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
7534 add_tree (yyval.ttype);
7539 emit_line_note (input_filename, lineno);
7540 expand_start_loop (1);
7542 cond_stmt_keyword = "while";
7546 #line 3604 "parse.y"
7548 if (processing_template_decl)
7550 if (last_tree != yyvsp[-2].ttype)
7552 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7553 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7554 last_tree = yyvsp[-2].ttype;
7557 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7561 emit_line_note (input_filename, lineno);
7562 expand_exit_loop_if_false (0, yyvsp[0].ttype);
7567 #line 3623 "parse.y"
7569 if (processing_template_decl)
7571 TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
7572 TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
7573 last_tree = yyvsp[-5].ttype;
7581 #line 3635 "parse.y"
7583 if (processing_template_decl)
7585 yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
7586 add_tree (yyval.ttype);
7591 emit_line_note (input_filename, lineno);
7592 expand_start_loop_continue_elsewhere (1);
7597 #line 3649 "parse.y"
7599 if (processing_template_decl)
7601 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7602 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7603 last_tree = yyvsp[-2].ttype;
7607 expand_loop_continue_here ();
7608 cond_stmt_keyword = "do";
7613 #line 3663 "parse.y"
7615 if (processing_template_decl)
7616 TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
7619 emit_line_note (input_filename, lineno);
7620 expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7628 #line 3676 "parse.y"
7629 { if (processing_template_decl)
7631 yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE,
7632 NULL_TREE, NULL_TREE);
7633 add_tree (yyval.ttype);
7636 emit_line_note (input_filename, lineno);
7637 if (flag_new_for_scope > 0)
7639 /* Conditionalize .pushlevel */
7641 note_level_for_for ();
7644 expand_start_bindings (0);
7649 #line 3695 "parse.y"
7651 if (processing_template_decl)
7653 if (last_tree != yyvsp[-2].ttype)
7655 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7656 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7657 last_tree = yyvsp[-2].ttype;
7663 emit_line_note (input_filename, lineno);
7664 expand_start_loop_continue_elsewhere (1);
7669 #line 3713 "parse.y"
7671 if (processing_template_decl)
7673 if (last_tree != yyvsp[-6].ttype)
7675 TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
7676 TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
7677 last_tree = yyvsp[-6].ttype;
7680 TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
7684 emit_line_note (input_filename, lineno);
7685 if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7690 #line 3734 "parse.y"
7692 if (processing_template_decl)
7693 TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
7698 #line 3740 "parse.y"
7700 if (processing_template_decl)
7702 TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
7703 TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
7704 last_tree = yyvsp[-12].ttype;
7708 emit_line_note (input_filename, lineno);
7709 expand_loop_continue_here ();
7710 if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
7714 if (flag_new_for_scope > 0)
7721 #line 3761 "parse.y"
7723 if (processing_template_decl)
7725 yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
7726 add_tree (yyval.ttype);
7730 emit_line_note (input_filename, lineno);
7731 c_expand_start_case (yyvsp[-1].ttype);
7734 /* Don't let the tree nodes for $4 be discarded by
7735 clear_momentary during the parsing of the next stmt. */
7740 #line 3778 "parse.y"
7742 if (processing_template_decl)
7744 TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
7745 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7746 last_tree = yyvsp[-1].ttype;
7749 expand_end_case (yyvsp[-3].ttype);
7755 #line 3791 "parse.y"
7759 #line 3793 "parse.y"
7760 { do_case (yyvsp[-1].ttype, NULL_TREE); ;
7763 #line 3796 "parse.y"
7764 { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7767 #line 3799 "parse.y"
7768 { do_case (NULL_TREE, NULL_TREE); ;
7771 #line 3802 "parse.y"
7772 { emit_line_note (input_filename, lineno);
7773 if (processing_template_decl)
7774 add_tree (build_min_nt (BREAK_STMT));
7775 else if ( ! expand_exit_something ())
7776 error ("break statement not within loop or switch"); ;
7779 #line 3808 "parse.y"
7780 { emit_line_note (input_filename, lineno);
7781 if (processing_template_decl)
7782 add_tree (build_min_nt (CONTINUE_STMT));
7783 else if (! expand_continue_loop (0))
7784 error ("continue statement not within a loop"); ;
7787 #line 3814 "parse.y"
7788 { emit_line_note (input_filename, lineno);
7789 c_expand_return (NULL_TREE); ;
7792 #line 3817 "parse.y"
7793 { emit_line_note (input_filename, lineno);
7794 c_expand_return (yyvsp[-1].ttype);
7799 #line 3822 "parse.y"
7800 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
7801 emit_line_note (input_filename, lineno);
7802 expand_asm (yyvsp[-2].ttype);
7807 #line 3829 "parse.y"
7808 { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
7809 emit_line_note (input_filename, lineno);
7810 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7811 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
7812 input_filename, lineno);
7817 #line 3838 "parse.y"
7818 { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
7819 emit_line_note (input_filename, lineno);
7820 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7821 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
7822 input_filename, lineno);
7827 #line 3848 "parse.y"
7828 { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
7829 emit_line_note (input_filename, lineno);
7830 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
7831 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
7832 input_filename, lineno);
7837 #line 3856 "parse.y"
7839 if (processing_template_decl)
7840 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7842 { emit_line_note (input_filename, lineno);
7843 expand_computed_goto (yyvsp[-1].ttype); }
7847 #line 3864 "parse.y"
7849 if (processing_template_decl)
7850 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7854 emit_line_note (input_filename, lineno);
7855 decl = lookup_label (yyvsp[-1].ttype);
7856 TREE_USED (decl) = 1;
7862 #line 3877 "parse.y"
7866 #line 3879 "parse.y"
7867 { error ("label must be followed by statement");
7872 #line 3883 "parse.y"
7876 #line 3889 "parse.y"
7878 if (! current_function_parms_stored)
7879 store_parm_decls ();
7880 expand_start_early_try_stmts ();
7884 #line 3895 "parse.y"
7885 { expand_start_all_catch (); ;
7888 #line 3897 "parse.y"
7890 int nested = (hack_decl_function_context
7891 (current_function_decl) != NULL_TREE);
7892 expand_end_all_catch ();
7893 finish_function (lineno, (int)yyvsp[-3].itype, nested);
7897 #line 3907 "parse.y"
7899 if (processing_template_decl)
7901 yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
7903 add_tree (yyval.ttype);
7907 emit_line_note (input_filename, lineno);
7908 expand_start_try_stmts ();
7913 #line 3921 "parse.y"
7915 if (processing_template_decl)
7917 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
7918 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7919 last_tree = yyvsp[-1].ttype;
7922 expand_start_all_catch ();
7926 #line 3932 "parse.y"
7928 if (processing_template_decl)
7930 TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
7931 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7932 last_tree = yyvsp[-3].ttype;
7935 expand_end_all_catch ();
7939 #line 3951 "parse.y"
7941 if (processing_template_decl)
7943 yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
7945 add_tree (yyval.ttype);
7950 #line 3960 "parse.y"
7952 if (processing_template_decl)
7954 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7955 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7956 last_tree = yyvsp[-2].ttype;
7961 #line 3969 "parse.y"
7963 if (processing_template_decl)
7965 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7966 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7967 last_tree = yyvsp[-4].ttype;
7970 expand_end_catch_block ();
7974 #line 3989 "parse.y"
7975 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7978 #line 4005 "parse.y"
7979 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7980 expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7981 TREE_VALUE (yyvsp[-1].ftype.t)); ;
7984 #line 4012 "parse.y"
7987 label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7988 if (label && ! minimal_parse_mode)
7989 expand_label (label);
7993 #line 4019 "parse.y"
7997 #line 4021 "parse.y"
8001 #line 4023 "parse.y"
8005 #line 4028 "parse.y"
8006 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
8009 #line 4031 "parse.y"
8011 pedwarn ("ANSI C++ forbids compound statements inside for initializations");
8015 #line 4040 "parse.y"
8016 { emit_line_note (input_filename, lineno);
8017 yyval.ttype = NULL_TREE; ;
8020 #line 4043 "parse.y"
8021 { emit_line_note (input_filename, lineno); ;
8024 #line 4048 "parse.y"
8025 { yyval.ttype = NULL_TREE; ;
8028 #line 4051 "parse.y"
8029 { yyval.ttype = NULL_TREE; ;
8032 #line 4058 "parse.y"
8033 { yyval.ttype = NULL_TREE; ;
8036 #line 4065 "parse.y"
8037 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
8040 #line 4070 "parse.y"
8041 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
8044 #line 4075 "parse.y"
8045 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
8048 #line 4077 "parse.y"
8049 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
8052 #line 4088 "parse.y"
8054 yyval.ttype = empty_parms();
8058 #line 4093 "parse.y"
8059 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
8060 TREE_PARMLIST (yyval.ttype) = 1;
8061 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
8064 #line 4102 "parse.y"
8066 yyval.ttype = chainon (yyval.ttype, void_list_node);
8067 TREE_PARMLIST (yyval.ttype) = 1;
8071 #line 4107 "parse.y"
8073 TREE_PARMLIST (yyval.ttype) = 1;
8077 #line 4112 "parse.y"
8079 TREE_PARMLIST (yyval.ttype) = 1;
8083 #line 4116 "parse.y"
8085 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8086 TREE_PARMLIST (yyval.ttype) = 1;
8090 #line 4121 "parse.y"
8092 yyval.ttype = NULL_TREE;
8096 #line 4125 "parse.y"
8098 TREE_PARMLIST (yyval.ttype) = 1;
8102 #line 4129 "parse.y"
8104 TREE_PARMLIST (yyval.ttype) = 1;
8108 #line 4133 "parse.y"
8110 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8111 TREE_PARMLIST (yyval.ttype) = 1;
8115 #line 4138 "parse.y"
8117 /* This helps us recover from really nasty
8118 parse errors, for example, a missing right
8120 yyerror ("possibly missing ')'");
8121 yyval.ttype = chainon (yyval.ttype, void_list_node);
8122 TREE_PARMLIST (yyval.ttype) = 1;
8128 #line 4149 "parse.y"
8130 /* This helps us recover from really nasty
8131 parse errors, for example, a missing right
8133 yyerror ("possibly missing ')'");
8134 yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
8135 TREE_PARMLIST (yyval.ttype) = 1;
8141 #line 4164 "parse.y"
8142 { maybe_snarf_defarg (); ;
8145 #line 4166 "parse.y"
8146 { yyval.ttype = yyvsp[0].ttype; ;
8149 #line 4177 "parse.y"
8150 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8151 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
8154 #line 4180 "parse.y"
8155 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8156 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
8159 #line 4183 "parse.y"
8160 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8161 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
8164 #line 4186 "parse.y"
8165 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
8168 #line 4188 "parse.y"
8169 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
8172 #line 4194 "parse.y"
8173 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8174 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
8177 #line 4204 "parse.y"
8178 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8179 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
8180 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
8183 #line 4208 "parse.y"
8184 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
8185 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8188 #line 4211 "parse.y"
8189 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
8190 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8193 #line 4214 "parse.y"
8194 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8195 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8196 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8199 #line 4218 "parse.y"
8200 { tree specs = strip_attrs (yyvsp[0].ftype.t);
8201 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
8202 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8205 #line 4222 "parse.y"
8206 { tree specs = strip_attrs (yyvsp[-1].ttype);
8207 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8208 yyval.ftype.new_type_flag = 0; ;
8211 #line 4229 "parse.y"
8212 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
8213 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8216 #line 4232 "parse.y"
8217 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
8218 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8221 #line 4243 "parse.y"
8222 { see_typename (); ;
8225 #line 4248 "parse.y"
8227 error ("type specifier omitted for parameter");
8228 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
8232 #line 4253 "parse.y"
8234 error ("type specifier omitted for parameter");
8235 if (TREE_CODE (yyval.ttype) == SCOPE_REF
8236 && TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM)
8237 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
8238 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8242 #line 4264 "parse.y"
8243 { yyval.ttype = NULL_TREE; ;
8246 #line 4266 "parse.y"
8247 { yyval.ttype = yyvsp[-1].ttype; ;
8250 #line 4268 "parse.y"
8251 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8254 #line 4273 "parse.y"
8255 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8258 #line 4279 "parse.y"
8260 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8261 yyval.ttype = yyvsp[0].ttype;
8265 #line 4287 "parse.y"
8266 { yyval.ttype = NULL_TREE; ;
8269 #line 4289 "parse.y"
8270 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8273 #line 4291 "parse.y"
8274 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8277 #line 4293 "parse.y"
8278 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8279 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8283 #line 4300 "parse.y"
8284 { got_scope = NULL_TREE; ;
8287 #line 4305 "parse.y"
8288 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8291 #line 4307 "parse.y"
8292 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8295 #line 4309 "parse.y"
8296 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8299 #line 4311 "parse.y"
8300 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8303 #line 4313 "parse.y"
8304 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8307 #line 4315 "parse.y"
8308 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8311 #line 4317 "parse.y"
8312 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8315 #line 4319 "parse.y"
8316 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8319 #line 4321 "parse.y"
8320 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8323 #line 4323 "parse.y"
8324 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8327 #line 4325 "parse.y"
8328 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8331 #line 4327 "parse.y"
8332 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8335 #line 4329 "parse.y"
8336 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8339 #line 4331 "parse.y"
8340 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8343 #line 4333 "parse.y"
8344 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8347 #line 4335 "parse.y"
8348 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8351 #line 4337 "parse.y"
8352 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8355 #line 4339 "parse.y"
8356 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8359 #line 4341 "parse.y"
8360 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8363 #line 4343 "parse.y"
8364 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8367 #line 4345 "parse.y"
8368 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8371 #line 4347 "parse.y"
8372 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8375 #line 4349 "parse.y"
8376 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8379 #line 4351 "parse.y"
8380 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8383 #line 4353 "parse.y"
8384 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8387 #line 4355 "parse.y"
8388 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8391 #line 4357 "parse.y"
8392 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8395 #line 4359 "parse.y"
8396 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8399 #line 4361 "parse.y"
8400 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8403 #line 4363 "parse.y"
8404 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8407 #line 4365 "parse.y"
8408 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8411 #line 4367 "parse.y"
8412 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8415 #line 4369 "parse.y"
8416 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8419 #line 4372 "parse.y"
8420 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8423 #line 4374 "parse.y"
8424 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8427 /* the action file gets copied in in place of this dollarsign */
8428 #line 498 "/usr/cygnus/latest-940103/share/bison.simple"
8439 short *ssp1 = yyss - 1;
8440 fprintf (stderr, "state stack now");
8441 while (ssp1 != yyssp)
8442 fprintf (stderr, " %d", *++ssp1);
8443 fprintf (stderr, "\n");
8453 yylsp->first_line = yylloc.first_line;
8454 yylsp->first_column = yylloc.first_column;
8455 yylsp->last_line = (yylsp-1)->last_line;
8456 yylsp->last_column = (yylsp-1)->last_column;
8461 yylsp->last_line = (yylsp+yylen-1)->last_line;
8462 yylsp->last_column = (yylsp+yylen-1)->last_column;
8466 /* Now "shift" the result of the reduction.
8467 Determine what state that goes to,
8468 based on the state we popped back to
8469 and the rule number reduced by. */
8473 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8474 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8475 yystate = yytable[yystate];
8477 yystate = yydefgoto[yyn - YYNTBASE];
8481 yyerrlab: /* here on detecting error */
8484 /* If not already recovering from an error, report this error. */
8488 #ifdef YYERROR_VERBOSE
8489 yyn = yypact[yystate];
8491 if (yyn > YYFLAG && yyn < YYLAST)
8498 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8499 for (x = (yyn < 0 ? -yyn : 0);
8500 x < (sizeof(yytname) / sizeof(char *)); x++)
8501 if (yycheck[x + yyn] == x)
8502 size += strlen(yytname[x]) + 15, count++;
8503 msg = (char *) malloc(size + 15);
8506 strcpy(msg, "parse error");
8511 for (x = (yyn < 0 ? -yyn : 0);
8512 x < (sizeof(yytname) / sizeof(char *)); x++)
8513 if (yycheck[x + yyn] == x)
8515 strcat(msg, count == 0 ? ", expecting `" : " or `");
8516 strcat(msg, yytname[x]);
8525 yyerror ("parse error; also virtual memory exceeded");
8528 #endif /* YYERROR_VERBOSE */
8529 yyerror("parse error");
8533 yyerrlab1: /* here on error raised explicitly by an action */
8535 if (yyerrstatus == 3)
8537 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8539 /* return failure if at end of input */
8540 if (yychar == YYEOF)
8545 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8551 /* Else will try to reuse lookahead token
8552 after shifting the error token. */
8554 yyerrstatus = 3; /* Each real token shifted decrements this */
8558 yyerrdefault: /* current state does not do anything special for the error token. */
8561 /* This is wrong; only states that explicitly want error tokens
8562 should shift them. */
8563 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8564 if (yyn) goto yydefault;
8567 yyerrpop: /* pop the current state because it cannot handle the error token */
8569 if (yyssp == yyss) YYABORT;
8579 short *ssp1 = yyss - 1;
8580 fprintf (stderr, "Error: state stack now");
8581 while (ssp1 != yyssp)
8582 fprintf (stderr, " %d", *++ssp1);
8583 fprintf (stderr, "\n");
8589 yyn = yypact[yystate];
8594 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8613 fprintf(stderr, "Shifting error token, ");
8624 #line 4377 "parse.y"
8629 debug_yytranslate (value)
8632 return yytname[YYTRANSLATE (value)];