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
30 #define RETURN_KEYWORD 280
32 #define ASM_KEYWORD 282
50 #define TYPENAME_KEYWORD 300
52 #define LEFT_RIGHT 302
55 #define DYNAMIC_CAST 305
56 #define STATIC_CAST 306
57 #define REINTERPRET_CAST 307
58 #define CONST_CAST 308
69 #define ARITHCOMPARE 319
72 #define POINTSAT_STAR 322
76 #define MINUSMINUS 326
77 #define HYPERUNARY 327
78 #define PAREN_STAR_PAREN 328
82 #define PRE_PARSED_FUNCTION_DECL 332
83 #define EXTERN_LANG_STRING 333
85 #define PRE_PARSED_CLASS_DECL 335
87 #define DEFARG_MARKER 337
88 #define TYPENAME_DEFN 338
89 #define IDENTIFIER_DEFN 339
90 #define PTYPENAME_DEFN 340
91 #define END_OF_LINE 341
92 #define END_OF_SAVED_INPUT 342
96 /* Cause the `yydebug' variable to be defined. */
112 /* Since parsers are distinct for each language, put the language string
113 definition here. (fnf) */
114 char *language_string = "GNU C++";
116 extern tree void_list_node;
117 extern struct obstack permanent_obstack;
119 extern int end_of_file;
121 /* Like YYERROR but do call yyerror. */
122 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
124 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
125 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
127 /* Contains the statement keyword (if/while/do) to include in an
128 error message if the user supplies an empty conditional expression. */
129 static const char *cond_stmt_keyword;
131 static tree empty_parms PROTO((void));
132 static int parse_decl PROTO((tree, tree, tree, int, tree *));
134 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
135 int have_extern_spec;
136 int used_extern_spec;
138 /* Cons up an empty parameter list. */
148 || current_class_type != NULL)
149 parms = void_list_node;
157 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
160 /* List of types and structure classes of the current declaration. */
161 static tree current_declspecs;
163 /* List of prefix attributes in effect.
164 Prefix attributes are parsed by the reserved_declspecs and declmods
165 rules. They create a list that contains *both* declspecs and attrs. */
166 /* ??? It is not clear yet that all cases where an attribute can now appear in
167 a declspec list have been updated. */
168 static tree prefix_attributes;
170 /* When defining an aggregate, this is the kind of the most recent one
171 being defined. (For example, this might be class_type_node.) */
172 static tree current_aggr;
174 /* When defining an enumeration, this is the type of the enumeration. */
175 static tree current_enum_type;
177 /* Tell yyparse how to print a token's value, if yydebug is set. */
179 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
180 extern void yyprint PROTO((FILE *, int, YYSTYPE));
181 extern tree combine_strings PROTO((tree));
184 parse_decl(declarator, specs_attrs, attributes, initialized, decl)
193 split_specs_attrs (specs_attrs, ¤t_declspecs, &prefix_attributes);
194 if (current_declspecs
195 && TREE_CODE (current_declspecs) != TREE_LIST)
196 current_declspecs = build_decl_list (NULL_TREE, current_declspecs);
197 if (have_extern_spec && !used_extern_spec)
199 current_declspecs = decl_tree_cons (NULL_TREE,
200 get_identifier ("extern"),
202 used_extern_spec = 1;
204 sm = suspend_momentary ();
205 *decl = start_decl (declarator, current_declspecs, initialized,
206 attributes, prefix_attributes);
220 #define YYFLAG -32768
223 #define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 400)
225 static const char yytranslate[] = { 0,
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, 110, 2, 2, 2, 82, 70, 2, 93,
230 108, 80, 78, 59, 79, 92, 81, 2, 2, 2,
231 2, 2, 2, 2, 2, 2, 2, 62, 60, 74,
232 64, 75, 65, 2, 2, 2, 2, 2, 2, 2,
233 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
235 94, 2, 111, 69, 2, 2, 2, 2, 2, 2,
236 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
237 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
238 2, 2, 58, 68, 109, 88, 2, 2, 2, 2,
239 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
240 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
241 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
242 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
243 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
244 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
245 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
246 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
247 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
248 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
249 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
250 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
251 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
252 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
253 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
254 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
255 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
256 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
257 56, 57, 61, 63, 66, 67, 71, 72, 73, 76,
258 77, 83, 84, 85, 86, 87, 89, 90, 91, 95,
259 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
264 static const short yyprhs[] = { 0,
265 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
266 17, 19, 20, 23, 26, 28, 30, 36, 41, 47,
267 52, 53, 60, 61, 67, 69, 72, 74, 77, 78,
268 85, 88, 92, 96, 100, 104, 109, 110, 116, 119,
269 123, 125, 127, 130, 133, 135, 138, 139, 145, 149,
270 151, 155, 157, 158, 161, 164, 168, 170, 174, 176,
271 180, 182, 186, 189, 192, 195, 197, 199, 205, 210,
272 213, 216, 220, 224, 227, 230, 234, 238, 241, 244,
273 247, 250, 253, 255, 257, 259, 260, 262, 265, 266,
274 268, 273, 277, 281, 282, 291, 297, 298, 308, 315,
275 316, 325, 331, 332, 342, 349, 352, 355, 357, 360,
276 362, 369, 374, 381, 386, 389, 391, 394, 397, 399,
277 402, 404, 407, 410, 415, 418, 422, 423, 424, 426,
278 430, 433, 437, 439, 444, 447, 452, 455, 460, 463,
279 465, 467, 469, 471, 473, 475, 477, 479, 481, 483,
280 485, 486, 493, 494, 501, 502, 508, 509, 515, 516,
281 524, 525, 533, 534, 541, 542, 549, 550, 551, 557,
282 563, 565, 567, 573, 579, 580, 582, 584, 585, 587,
283 589, 593, 595, 597, 599, 601, 603, 605, 607, 609,
284 611, 613, 615, 619, 621, 625, 626, 628, 630, 631,
285 639, 641, 643, 647, 652, 656, 657, 661, 663, 667,
286 671, 675, 679, 681, 683, 685, 688, 691, 694, 697,
287 700, 703, 706, 711, 714, 719, 722, 726, 730, 735,
288 741, 748, 755, 763, 766, 771, 777, 780, 783, 785,
289 786, 791, 796, 800, 802, 806, 809, 813, 818, 820,
290 823, 829, 831, 835, 839, 843, 847, 851, 855, 859,
291 863, 867, 871, 875, 879, 883, 887, 891, 895, 899,
292 903, 907, 913, 917, 921, 923, 926, 930, 934, 936,
293 938, 940, 942, 944, 945, 951, 957, 963, 969, 975,
294 977, 979, 981, 983, 986, 988, 991, 994, 998, 1003,
295 1008, 1010, 1012, 1014, 1018, 1020, 1022, 1024, 1026, 1030,
296 1034, 1038, 1039, 1044, 1049, 1052, 1057, 1060, 1065, 1068,
297 1071, 1073, 1078, 1080, 1088, 1096, 1104, 1112, 1117, 1122,
298 1125, 1128, 1131, 1133, 1138, 1141, 1144, 1150, 1154, 1157,
299 1160, 1166, 1170, 1176, 1180, 1185, 1192, 1195, 1197, 1200,
300 1202, 1205, 1207, 1209, 1211, 1214, 1215, 1218, 1221, 1225,
301 1229, 1233, 1236, 1239, 1242, 1244, 1246, 1248, 1251, 1254,
302 1257, 1260, 1262, 1264, 1266, 1268, 1271, 1274, 1278, 1282,
303 1286, 1291, 1293, 1296, 1299, 1302, 1304, 1306, 1308, 1311,
304 1314, 1317, 1319, 1321, 1324, 1327, 1331, 1333, 1336, 1338,
305 1340, 1342, 1347, 1352, 1357, 1362, 1364, 1366, 1368, 1370,
306 1374, 1376, 1380, 1382, 1386, 1387, 1392, 1393, 1400, 1404,
307 1405, 1410, 1412, 1416, 1420, 1421, 1426, 1430, 1431, 1433,
308 1435, 1438, 1445, 1447, 1451, 1452, 1454, 1459, 1466, 1471,
309 1473, 1475, 1477, 1479, 1481, 1485, 1486, 1489, 1491, 1494,
310 1498, 1503, 1505, 1507, 1511, 1516, 1520, 1526, 1528, 1533,
311 1537, 1541, 1542, 1546, 1550, 1554, 1555, 1558, 1561, 1562,
312 1570, 1575, 1576, 1583, 1587, 1590, 1593, 1596, 1597, 1598,
313 1599, 1610, 1612, 1613, 1615, 1616, 1618, 1620, 1623, 1626,
314 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1651, 1656, 1660,
315 1663, 1667, 1669, 1670, 1674, 1677, 1680, 1682, 1684, 1685,
316 1688, 1692, 1694, 1699, 1701, 1705, 1707, 1709, 1714, 1719,
317 1722, 1725, 1729, 1733, 1734, 1736, 1740, 1743, 1746, 1748,
318 1751, 1754, 1757, 1760, 1763, 1766, 1769, 1771, 1774, 1777,
319 1781, 1784, 1787, 1792, 1797, 1800, 1802, 1808, 1813, 1815,
320 1816, 1818, 1822, 1823, 1825, 1829, 1831, 1833, 1835, 1837,
321 1842, 1847, 1852, 1857, 1862, 1866, 1871, 1876, 1881, 1886,
322 1890, 1892, 1896, 1898, 1902, 1905, 1907, 1915, 1916, 1919,
323 1921, 1924, 1925, 1928, 1933, 1938, 1941, 1946, 1948, 1951,
324 1955, 1959, 1962, 1965, 1969, 1971, 1976, 1981, 1985, 1989,
325 1992, 1994, 1996, 1999, 2001, 2003, 2006, 2009, 2011, 2014,
326 2018, 2022, 2025, 2028, 2032, 2034, 2038, 2042, 2045, 2048,
327 2052, 2054, 2059, 2063, 2068, 2072, 2074, 2077, 2080, 2083,
328 2086, 2089, 2091, 2094, 2099, 2104, 2107, 2109, 2111, 2113,
329 2115, 2118, 2123, 2126, 2129, 2132, 2135, 2137, 2140, 2143,
330 2146, 2149, 2153, 2155, 2158, 2162, 2167, 2170, 2173, 2176,
331 2179, 2182, 2185, 2190, 2193, 2195, 2198, 2201, 2205, 2207,
332 2211, 2214, 2218, 2221, 2224, 2228, 2230, 2234, 2239, 2241,
333 2244, 2248, 2251, 2254, 2256, 2260, 2263, 2266, 2268, 2271,
334 2275, 2277, 2281, 2283, 2290, 2295, 2300, 2304, 2310, 2314,
335 2318, 2322, 2325, 2327, 2329, 2332, 2335, 2338, 2339, 2341,
336 2343, 2346, 2350, 2352, 2355, 2356, 2360, 2361, 2362, 2368,
337 2370, 2371, 2374, 2376, 2378, 2380, 2383, 2384, 2389, 2391,
338 2392, 2393, 2399, 2400, 2401, 2409, 2410, 2411, 2412, 2413,
339 2426, 2427, 2428, 2436, 2437, 2443, 2444, 2452, 2453, 2458,
340 2461, 2464, 2467, 2471, 2478, 2487, 2498, 2511, 2516, 2520,
341 2523, 2526, 2528, 2530, 2532, 2534, 2536, 2537, 2538, 2545,
342 2546, 2547, 2553, 2555, 2558, 2559, 2560, 2566, 2568, 2570,
343 2574, 2578, 2581, 2584, 2587, 2590, 2593, 2595, 2598, 2599,
344 2601, 2602, 2604, 2606, 2607, 2609, 2611, 2615, 2620, 2622,
345 2626, 2627, 2629, 2631, 2633, 2636, 2639, 2642, 2644, 2647,
346 2650, 2651, 2655, 2657, 2659, 2661, 2664, 2667, 2670, 2675,
347 2678, 2681, 2684, 2687, 2690, 2693, 2695, 2698, 2700, 2703,
348 2705, 2707, 2708, 2709, 2711, 2712, 2717, 2720, 2722, 2724,
349 2728, 2729, 2733, 2737, 2741, 2743, 2746, 2749, 2752, 2755,
350 2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, 2785,
351 2788, 2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2816,
352 2819, 2822, 2825, 2828, 2832, 2835, 2838, 2843, 2848, 2852
355 static const short yyrhs[] = { -1,
356 113, 0, 0, 114, 120, 0, 113, 120, 0, 113,
357 0, 0, 0, 0, 32, 0, 27, 0, 0, 121,
358 122, 0, 148, 147, 0, 144, 0, 141, 0, 119,
359 93, 219, 108, 60, 0, 133, 58, 115, 109, 0,
360 133, 116, 148, 117, 147, 0, 133, 116, 144, 117,
361 0, 0, 44, 163, 58, 123, 115, 109, 0, 0,
362 44, 58, 124, 115, 109, 0, 125, 0, 127, 60,
363 0, 129, 0, 118, 122, 0, 0, 44, 163, 64,
364 126, 132, 60, 0, 46, 313, 0, 46, 327, 313,
365 0, 46, 327, 209, 0, 46, 131, 163, 0, 46,
366 327, 163, 0, 46, 327, 131, 163, 0, 0, 46,
367 44, 130, 132, 60, 0, 57, 54, 0, 131, 57,
368 54, 0, 209, 0, 313, 0, 327, 313, 0, 327,
369 209, 0, 98, 0, 133, 98, 0, 0, 48, 74,
370 135, 136, 75, 0, 48, 74, 75, 0, 140, 0,
371 136, 59, 140, 0, 163, 0, 0, 269, 137, 0,
372 45, 137, 0, 134, 269, 137, 0, 138, 0, 138,
373 64, 225, 0, 391, 0, 391, 64, 204, 0, 139,
374 0, 139, 64, 184, 0, 134, 142, 0, 134, 1,
375 0, 148, 147, 0, 143, 0, 141, 0, 133, 116,
376 148, 117, 147, 0, 133, 116, 143, 117, 0, 118,
377 142, 0, 236, 60, 0, 229, 235, 60, 0, 226,
378 234, 60, 0, 261, 60, 0, 236, 60, 0, 229,
379 235, 60, 0, 226, 234, 60, 0, 229, 60, 0,
380 166, 60, 0, 226, 60, 0, 1, 60, 0, 1,
381 109, 0, 60, 0, 220, 0, 159, 0, 0, 158,
382 0, 158, 60, 0, 0, 107, 0, 154, 146, 145,
383 338, 0, 154, 146, 362, 0, 154, 146, 1, 0,
384 0, 318, 5, 93, 150, 382, 108, 298, 394, 0,
385 318, 5, 47, 298, 394, 0, 0, 327, 318, 5,
386 93, 151, 382, 108, 298, 394, 0, 327, 318, 5,
387 47, 298, 394, 0, 0, 318, 179, 93, 152, 382,
388 108, 298, 394, 0, 318, 179, 47, 298, 394, 0,
389 0, 327, 318, 179, 93, 153, 382, 108, 298, 394,
390 0, 327, 318, 179, 47, 298, 394, 0, 226, 223,
391 0, 229, 310, 0, 310, 0, 229, 149, 0, 149,
392 0, 5, 93, 382, 108, 298, 394, 0, 5, 47,
393 298, 394, 0, 179, 93, 382, 108, 298, 394, 0,
394 179, 47, 298, 394, 0, 229, 155, 0, 155, 0,
395 226, 223, 0, 229, 310, 0, 310, 0, 229, 149,
396 0, 149, 0, 25, 3, 0, 157, 253, 0, 157,
397 93, 196, 108, 0, 157, 47, 0, 62, 160, 161,
398 0, 0, 0, 162, 0, 161, 59, 162, 0, 161,
399 1, 0, 93, 196, 108, 0, 47, 0, 164, 93,
400 196, 108, 0, 164, 47, 0, 306, 93, 196, 108,
401 0, 306, 47, 0, 320, 93, 196, 108, 0, 320,
402 47, 0, 3, 0, 4, 0, 5, 0, 56, 0,
403 57, 0, 3, 0, 56, 0, 57, 0, 104, 0,
404 103, 0, 105, 0, 0, 48, 175, 232, 60, 167,
405 176, 0, 0, 48, 175, 226, 223, 168, 176, 0,
406 0, 48, 175, 310, 169, 176, 0, 0, 48, 175,
407 149, 170, 176, 0, 0, 7, 48, 175, 232, 60,
408 171, 176, 0, 0, 7, 48, 175, 226, 223, 172,
409 176, 0, 0, 7, 48, 175, 310, 173, 176, 0,
410 0, 7, 48, 175, 149, 174, 176, 0, 0, 0,
411 56, 74, 182, 181, 180, 0, 4, 74, 182, 181,
412 180, 0, 179, 0, 177, 0, 163, 74, 182, 75,
413 180, 0, 5, 74, 182, 181, 180, 0, 0, 75,
414 0, 77, 0, 0, 183, 0, 184, 0, 183, 59,
415 184, 0, 225, 0, 56, 0, 204, 0, 79, 0,
416 78, 0, 86, 0, 87, 0, 110, 0, 195, 0,
417 204, 0, 47, 0, 93, 186, 108, 0, 47, 0,
418 93, 190, 108, 0, 0, 190, 0, 1, 0, 0,
419 372, 223, 237, 246, 64, 191, 254, 0, 186, 0,
420 109, 0, 335, 333, 109, 0, 335, 333, 1, 109,
421 0, 335, 1, 109, 0, 0, 58, 194, 192, 0,
422 347, 0, 204, 59, 204, 0, 204, 59, 1, 0,
423 195, 59, 204, 0, 195, 59, 1, 0, 204, 0,
424 195, 0, 214, 0, 118, 203, 0, 80, 203, 0,
425 70, 203, 0, 88, 203, 0, 185, 203, 0, 67,
426 163, 0, 13, 197, 0, 13, 93, 225, 108, 0,
427 29, 197, 0, 29, 93, 225, 108, 0, 216, 297,
428 0, 216, 297, 201, 0, 216, 200, 297, 0, 216,
429 200, 297, 201, 0, 216, 93, 199, 225, 198, 0,
430 216, 93, 199, 225, 198, 201, 0, 216, 200, 93,
431 199, 225, 198, 0, 216, 200, 93, 199, 225, 198,
432 201, 0, 217, 203, 0, 217, 94, 111, 203, 0,
433 217, 94, 186, 111, 203, 0, 34, 203, 0, 35,
434 203, 0, 108, 0, 0, 93, 199, 196, 108, 0,
435 58, 199, 196, 109, 0, 93, 196, 108, 0, 47,
436 0, 93, 232, 108, 0, 64, 254, 0, 93, 225,
437 108, 0, 202, 93, 225, 108, 0, 197, 0, 202,
438 197, 0, 202, 58, 255, 267, 109, 0, 203, 0,
439 204, 83, 204, 0, 204, 84, 204, 0, 204, 78,
440 204, 0, 204, 79, 204, 0, 204, 80, 204, 0,
441 204, 81, 204, 0, 204, 82, 204, 0, 204, 76,
442 204, 0, 204, 77, 204, 0, 204, 73, 204, 0,
443 204, 74, 204, 0, 204, 75, 204, 0, 204, 72,
444 204, 0, 204, 71, 204, 0, 204, 70, 204, 0,
445 204, 68, 204, 0, 204, 69, 204, 0, 204, 67,
446 204, 0, 204, 66, 204, 0, 204, 65, 377, 62,
447 204, 0, 204, 64, 204, 0, 204, 63, 204, 0,
448 61, 0, 61, 204, 0, 88, 392, 163, 0, 88,
449 392, 177, 0, 207, 0, 399, 0, 3, 0, 56,
450 0, 57, 0, 0, 6, 74, 206, 182, 181, 0,
451 399, 74, 206, 182, 181, 0, 48, 163, 74, 182,
452 181, 0, 48, 6, 74, 182, 181, 0, 48, 399,
453 74, 182, 181, 0, 205, 0, 4, 0, 5, 0,
454 211, 0, 247, 211, 0, 205, 0, 80, 210, 0,
455 70, 210, 0, 93, 210, 108, 0, 3, 74, 182,
456 181, 0, 57, 74, 183, 181, 0, 312, 0, 205,
457 0, 212, 0, 93, 210, 108, 0, 205, 0, 10,
458 0, 218, 0, 219, 0, 93, 186, 108, 0, 93,
459 210, 108, 0, 93, 1, 108, 0, 0, 93, 215,
460 339, 108, 0, 205, 93, 196, 108, 0, 205, 47,
461 0, 214, 93, 196, 108, 0, 214, 47, 0, 214,
462 94, 186, 111, 0, 214, 86, 0, 214, 87, 0,
463 40, 0, 9, 93, 196, 108, 0, 316, 0, 50,
464 74, 225, 75, 93, 186, 108, 0, 51, 74, 225,
465 75, 93, 186, 108, 0, 52, 74, 225, 75, 93,
466 186, 108, 0, 53, 74, 225, 75, 93, 186, 108,
467 0, 49, 93, 186, 108, 0, 49, 93, 225, 108,
468 0, 327, 3, 0, 327, 207, 0, 327, 399, 0,
469 315, 0, 315, 93, 196, 108, 0, 315, 47, 0,
470 221, 208, 0, 221, 208, 93, 196, 108, 0, 221,
471 208, 47, 0, 221, 209, 0, 221, 315, 0, 221,
472 209, 93, 196, 108, 0, 221, 209, 47, 0, 221,
473 315, 93, 196, 108, 0, 221, 315, 47, 0, 221,
474 88, 8, 47, 0, 221, 8, 54, 88, 8, 47,
475 0, 221, 1, 0, 39, 0, 327, 39, 0, 38,
476 0, 327, 217, 0, 42, 0, 43, 0, 11, 0,
477 219, 11, 0, 0, 214, 92, 0, 214, 91, 0,
478 232, 234, 60, 0, 226, 234, 60, 0, 229, 235,
479 60, 0, 226, 60, 0, 229, 60, 0, 118, 222,
480 0, 304, 0, 310, 0, 47, 0, 224, 47, 0,
481 230, 331, 0, 299, 331, 0, 232, 331, 0, 230,
482 0, 299, 0, 230, 0, 227, 0, 229, 232, 0,
483 232, 228, 0, 232, 231, 228, 0, 229, 232, 228,
484 0, 229, 232, 231, 0, 229, 232, 231, 228, 0,
485 7, 0, 228, 233, 0, 228, 7, 0, 228, 247,
486 0, 247, 0, 299, 0, 7, 0, 229, 9, 0,
487 229, 7, 0, 229, 247, 0, 247, 0, 232, 0,
488 299, 232, 0, 232, 231, 0, 299, 232, 231, 0,
489 233, 0, 231, 233, 0, 261, 0, 8, 0, 307,
490 0, 28, 93, 186, 108, 0, 28, 93, 225, 108,
491 0, 30, 93, 186, 108, 0, 30, 93, 225, 108,
492 0, 8, 0, 9, 0, 261, 0, 242, 0, 234,
493 59, 238, 0, 243, 0, 235, 59, 238, 0, 244,
494 0, 236, 59, 238, 0, 0, 119, 93, 219, 108,
495 0, 0, 223, 237, 246, 64, 239, 254, 0, 223,
496 237, 246, 0, 0, 246, 64, 241, 254, 0, 246,
497 0, 223, 237, 240, 0, 310, 237, 240, 0, 0,
498 310, 237, 245, 240, 0, 149, 237, 246, 0, 0,
499 247, 0, 248, 0, 247, 248, 0, 31, 93, 93,
500 249, 108, 108, 0, 250, 0, 249, 59, 250, 0,
501 0, 251, 0, 251, 93, 3, 108, 0, 251, 93,
502 3, 59, 196, 108, 0, 251, 93, 196, 108, 0,
503 163, 0, 7, 0, 8, 0, 9, 0, 163, 0,
504 252, 59, 163, 0, 0, 64, 254, 0, 204, 0,
505 58, 109, 0, 58, 255, 109, 0, 58, 255, 59,
506 109, 0, 1, 0, 254, 0, 255, 59, 254, 0,
507 94, 204, 111, 254, 0, 163, 62, 254, 0, 255,
508 59, 163, 62, 254, 0, 97, 0, 256, 146, 145,
509 338, 0, 256, 146, 362, 0, 256, 146, 1, 0,
510 0, 258, 257, 147, 0, 102, 204, 107, 0, 102,
511 1, 107, 0, 0, 260, 259, 0, 260, 1, 0,
512 0, 14, 163, 58, 262, 295, 268, 109, 0, 14,
513 163, 58, 109, 0, 0, 14, 58, 263, 295, 268,
514 109, 0, 14, 58, 109, 0, 14, 163, 0, 14,
515 325, 0, 45, 320, 0, 0, 0, 0, 276, 58,
516 264, 282, 109, 246, 265, 260, 266, 258, 0, 276,
517 0, 0, 59, 0, 0, 59, 0, 36, 0, 269,
518 7, 0, 269, 8, 0, 269, 9, 0, 269, 36,
519 0, 269, 247, 0, 269, 163, 0, 269, 165, 0,
520 270, 58, 0, 270, 62, 0, 269, 318, 163, 0,
521 269, 327, 318, 163, 0, 269, 327, 163, 0, 269,
522 178, 0, 269, 318, 178, 0, 270, 0, 0, 271,
523 274, 277, 0, 272, 277, 0, 269, 58, 0, 275,
524 0, 273, 0, 0, 62, 392, 0, 62, 392, 278,
525 0, 279, 0, 278, 59, 392, 279, 0, 280, 0,
526 281, 392, 280, 0, 320, 0, 306, 0, 30, 93,
527 186, 108, 0, 30, 93, 225, 108, 0, 37, 392,
528 0, 7, 392, 0, 281, 37, 392, 0, 281, 7,
529 392, 0, 0, 284, 0, 282, 283, 284, 0, 282,
530 283, 0, 37, 62, 0, 285, 0, 284, 285, 0,
531 286, 60, 0, 286, 109, 0, 156, 62, 0, 156,
532 95, 0, 156, 25, 0, 156, 58, 0, 60, 0,
533 118, 285, 0, 134, 285, 0, 134, 226, 60, 0,
534 226, 287, 0, 229, 288, 0, 310, 237, 246, 253,
535 0, 149, 237, 246, 253, 0, 62, 204, 0, 1,
536 0, 229, 155, 237, 246, 253, 0, 155, 237, 246,
537 253, 0, 127, 0, 0, 289, 0, 287, 59, 290,
538 0, 0, 292, 0, 288, 59, 294, 0, 291, 0,
539 292, 0, 293, 0, 294, 0, 304, 237, 246, 253,
540 0, 4, 62, 204, 246, 0, 310, 237, 246, 253,
541 0, 149, 237, 246, 253, 0, 3, 62, 204, 246,
542 0, 62, 204, 246, 0, 304, 237, 246, 253, 0,
543 4, 62, 204, 246, 0, 310, 237, 246, 253, 0,
544 3, 62, 204, 246, 0, 62, 204, 246, 0, 296,
545 0, 295, 59, 296, 0, 163, 0, 163, 64, 204,
546 0, 372, 328, 0, 372, 0, 93, 199, 225, 198,
547 94, 186, 111, 0, 0, 298, 9, 0, 9, 0,
548 299, 9, 0, 0, 300, 186, 0, 300, 93, 196,
549 108, 0, 300, 93, 382, 108, 0, 300, 47, 0,
550 300, 93, 1, 108, 0, 304, 0, 247, 304, 0,
551 80, 299, 303, 0, 70, 299, 303, 0, 80, 303,
552 0, 70, 303, 0, 326, 298, 303, 0, 305, 0,
553 305, 302, 298, 394, 0, 305, 94, 301, 111, 0,
554 305, 94, 111, 0, 93, 303, 108, 0, 318, 317,
555 0, 317, 0, 317, 0, 327, 317, 0, 306, 0,
556 308, 0, 327, 308, 0, 318, 317, 0, 310, 0,
557 247, 310, 0, 80, 299, 309, 0, 70, 299, 309,
558 0, 80, 309, 0, 70, 309, 0, 326, 298, 309,
559 0, 213, 0, 80, 299, 309, 0, 70, 299, 309,
560 0, 80, 311, 0, 70, 311, 0, 326, 298, 309,
561 0, 312, 0, 213, 302, 298, 394, 0, 93, 311,
562 108, 0, 213, 94, 301, 111, 0, 213, 94, 111,
563 0, 314, 0, 318, 212, 0, 318, 209, 0, 318,
564 208, 0, 318, 205, 0, 318, 208, 0, 314, 0,
565 327, 314, 0, 232, 93, 196, 108, 0, 232, 93,
566 210, 108, 0, 232, 224, 0, 4, 0, 5, 0,
567 177, 0, 319, 0, 318, 319, 0, 318, 48, 324,
568 54, 0, 4, 54, 0, 5, 54, 0, 57, 54,
569 0, 177, 54, 0, 321, 0, 327, 321, 0, 322,
570 163, 0, 322, 177, 0, 322, 324, 0, 322, 48,
571 324, 0, 323, 0, 322, 323, 0, 322, 324, 54,
572 0, 322, 48, 324, 54, 0, 4, 54, 0, 5,
573 54, 0, 177, 54, 0, 56, 54, 0, 3, 54,
574 0, 57, 54, 0, 163, 74, 182, 181, 0, 327,
575 317, 0, 308, 0, 327, 308, 0, 318, 80, 0,
576 327, 318, 80, 0, 54, 0, 80, 298, 328, 0,
577 80, 298, 0, 70, 298, 328, 0, 70, 298, 0,
578 326, 298, 0, 326, 298, 328, 0, 329, 0, 94,
579 186, 111, 0, 329, 94, 301, 111, 0, 331, 0,
580 247, 331, 0, 80, 299, 330, 0, 80, 330, 0,
581 80, 299, 0, 80, 0, 70, 299, 330, 0, 70,
582 330, 0, 70, 299, 0, 70, 0, 326, 298, 0,
583 326, 298, 330, 0, 332, 0, 93, 330, 108, 0,
584 90, 0, 332, 93, 382, 108, 298, 394, 0, 332,
585 47, 298, 394, 0, 332, 94, 301, 111, 0, 332,
586 94, 111, 0, 93, 383, 108, 298, 394, 0, 202,
587 298, 394, 0, 224, 298, 394, 0, 94, 301, 111,
588 0, 94, 111, 0, 346, 0, 334, 0, 333, 346,
589 0, 333, 334, 0, 1, 60, 0, 0, 336, 0,
590 337, 0, 336, 337, 0, 33, 252, 60, 0, 339,
591 0, 1, 339, 0, 0, 58, 340, 192, 0, 0,
592 0, 15, 342, 188, 343, 344, 0, 339, 0, 0,
593 345, 347, 0, 339, 0, 347, 0, 222, 0, 186,
594 60, 0, 0, 341, 16, 348, 344, 0, 341, 0,
595 0, 0, 17, 349, 188, 350, 193, 0, 0, 0,
596 18, 351, 344, 17, 352, 187, 60, 0, 0, 0,
597 0, 0, 19, 353, 93, 375, 354, 189, 60, 355,
598 377, 108, 356, 193, 0, 0, 0, 20, 357, 93,
599 190, 108, 358, 344, 0, 0, 21, 204, 62, 359,
600 346, 0, 0, 21, 204, 12, 204, 62, 360, 346,
601 0, 0, 22, 62, 361, 346, 0, 23, 60, 0,
602 24, 60, 0, 25, 60, 0, 25, 186, 60, 0,
603 119, 376, 93, 219, 108, 60, 0, 119, 376, 93,
604 219, 62, 378, 108, 60, 0, 119, 376, 93, 219,
605 62, 378, 62, 378, 108, 60, 0, 119, 376, 93,
606 219, 62, 378, 62, 378, 62, 381, 108, 60, 0,
607 26, 80, 186, 60, 0, 26, 163, 60, 0, 374,
608 346, 0, 374, 109, 0, 60, 0, 365, 0, 129,
609 0, 128, 0, 125, 0, 0, 0, 95, 363, 145,
610 339, 364, 368, 0, 0, 0, 95, 366, 339, 367,
611 368, 0, 369, 0, 368, 369, 0, 0, 0, 96,
612 370, 373, 371, 339, 0, 230, 0, 299, 0, 93,
613 12, 108, 0, 93, 391, 108, 0, 3, 62, 0,
614 56, 62, 0, 4, 62, 0, 5, 62, 0, 377,
615 60, 0, 222, 0, 58, 192, 0, 0, 9, 0,
616 0, 186, 0, 1, 0, 0, 379, 0, 380, 0,
617 379, 59, 380, 0, 11, 93, 186, 108, 0, 11,
618 0, 381, 59, 11, 0, 0, 383, 0, 225, 0,
619 387, 0, 388, 12, 0, 387, 12, 0, 225, 12,
620 0, 12, 0, 387, 62, 0, 225, 62, 0, 0,
621 64, 385, 386, 0, 101, 0, 254, 0, 389, 0,
622 391, 384, 0, 388, 390, 0, 388, 393, 0, 388,
623 393, 64, 254, 0, 387, 59, 0, 225, 59, 0,
624 227, 223, 0, 230, 223, 0, 232, 223, 0, 227,
625 331, 0, 227, 0, 229, 310, 0, 391, 0, 391,
626 384, 0, 389, 0, 225, 0, 0, 0, 310, 0,
627 0, 61, 93, 396, 108, 0, 61, 47, 0, 225,
628 0, 395, 0, 396, 59, 395, 0, 0, 80, 298,
629 397, 0, 70, 298, 397, 0, 326, 298, 397, 0,
630 41, 0, 398, 80, 0, 398, 81, 0, 398, 82,
631 0, 398, 78, 0, 398, 79, 0, 398, 70, 0,
632 398, 68, 0, 398, 69, 0, 398, 88, 0, 398,
633 59, 0, 398, 73, 0, 398, 74, 0, 398, 75,
634 0, 398, 72, 0, 398, 63, 0, 398, 64, 0,
635 398, 76, 0, 398, 77, 0, 398, 86, 0, 398,
636 87, 0, 398, 67, 0, 398, 66, 0, 398, 110,
637 0, 398, 65, 62, 0, 398, 71, 0, 398, 91,
638 0, 398, 83, 0, 398, 47, 0, 398, 94, 111,
639 0, 398, 39, 0, 398, 38, 0, 398, 39, 94,
640 111, 0, 398, 38, 94, 111, 0, 398, 372, 397,
647 static const short yyrline[] = { 0,
648 340, 342, 350, 353, 354, 358, 360, 363, 368, 372,
649 378, 382, 385, 389, 392, 394, 396, 399, 401, 404,
650 407, 409, 411, 413, 415, 416, 418, 419, 423, 426,
651 435, 438, 440, 444, 447, 449, 453, 456, 468, 475,
652 483, 485, 486, 488, 492, 495, 501, 504, 506, 511,
653 514, 518, 521, 524, 527, 531, 536, 546, 548, 550,
654 552, 554, 567, 570, 574, 577, 579, 581, 584, 587,
655 591, 593, 595, 597, 602, 604, 606, 608, 610, 611,
656 618, 619, 620, 623, 626, 630, 632, 633, 636, 638,
657 641, 644, 650, 654, 657, 659, 663, 665, 667, 671,
658 673, 675, 679, 681, 683, 689, 693, 696, 699, 702,
659 707, 710, 712, 714, 720, 732, 735, 740, 745, 748,
660 753, 758, 767, 770, 772, 776, 789, 809, 812, 814,
661 815, 818, 825, 831, 833, 835, 837, 839, 842, 847,
662 849, 850, 851, 852, 855, 857, 858, 861, 863, 864,
663 867, 872, 872, 876, 876, 879, 879, 882, 882, 886,
664 886, 891, 891, 894, 894, 897, 899, 902, 909, 913,
665 916, 919, 921, 925, 931, 940, 942, 950, 953, 956,
666 959, 963, 966, 968, 971, 974, 976, 978, 980, 984,
667 987, 990, 995, 999, 1004, 1008, 1011, 1012, 1016, 1035,
668 1042, 1045, 1047, 1048, 1049, 1052, 1056, 1057, 1061, 1065,
669 1068, 1070, 1074, 1077, 1080, 1084, 1087, 1089, 1091, 1093,
670 1096, 1100, 1102, 1105, 1107, 1113, 1116, 1119, 1122, 1134,
671 1139, 1143, 1147, 1152, 1154, 1158, 1162, 1164, 1173, 1177,
672 1180, 1183, 1188, 1191, 1193, 1201, 1214, 1219, 1225, 1227,
673 1229, 1242, 1245, 1247, 1249, 1251, 1253, 1255, 1257, 1259,
674 1261, 1263, 1265, 1267, 1269, 1271, 1273, 1275, 1277, 1279,
675 1281, 1283, 1285, 1289, 1291, 1293, 1310, 1313, 1315, 1316,
676 1317, 1318, 1319, 1322, 1334, 1337, 1341, 1344, 1346, 1351,
677 1353, 1354, 1357, 1359, 1367, 1369, 1371, 1373, 1377, 1380,
678 1384, 1388, 1389, 1390, 1394, 1402, 1403, 1404, 1418, 1420,
679 1423, 1425, 1436, 1441, 1443, 1445, 1447, 1449, 1451, 1453,
680 1456, 1458, 1475, 1476, 1480, 1484, 1488, 1492, 1494, 1498,
681 1500, 1502, 1510, 1512, 1514, 1516, 1520, 1522, 1524, 1526,
682 1531, 1533, 1535, 1537, 1540, 1542, 1544, 1588, 1591, 1595,
683 1598, 1602, 1605, 1610, 1612, 1616, 1629, 1632, 1639, 1646,
684 1651, 1653, 1658, 1660, 1667, 1669, 1673, 1677, 1683, 1687,
685 1690, 1694, 1697, 1707, 1709, 1712, 1716, 1719, 1722, 1725,
686 1728, 1734, 1740, 1742, 1747, 1749, 1767, 1770, 1772, 1775,
687 1781, 1783, 1793, 1797, 1800, 1803, 1808, 1811, 1819, 1821,
688 1823, 1825, 1828, 1831, 1846, 1865, 1868, 1870, 1873, 1875,
689 1879, 1881, 1885, 1887, 1891, 1894, 1898, 1904, 1905, 1917,
690 1924, 1927, 1933, 1937, 1942, 1948, 1949, 1957, 1960, 1964,
691 1967, 1971, 1976, 1979, 1983, 1986, 1988, 1990, 1992, 1999,
692 2001, 2002, 2003, 2007, 2010, 2014, 2017, 2023, 2025, 2028,
693 2031, 2034, 2040, 2043, 2046, 2048, 2050, 2054, 2060, 2068,
694 2075, 2079, 2081, 2086, 2089, 2092, 2094, 2096, 2100, 2105,
695 2112, 2116, 2120, 2127, 2131, 2134, 2137, 2143, 2145, 2157,
696 2161, 2166, 2188, 2190, 2193, 2195, 2200, 2202, 2204, 2206,
697 2208, 2210, 2214, 2222, 2225, 2227, 2231, 2238, 2244, 2250,
698 2256, 2266, 2272, 2276, 2283, 2311, 2321, 2327, 2330, 2333,
699 2335, 2339, 2341, 2345, 2350, 2356, 2359, 2360, 2381, 2404,
700 2406, 2410, 2421, 2435, 2436, 2437, 2438, 2441, 2456, 2461,
701 2467, 2469, 2474, 2476, 2478, 2480, 2482, 2484, 2487, 2497,
702 2504, 2529, 2535, 2538, 2541, 2543, 2554, 2559, 2562, 2567,
703 2570, 2577, 2587, 2590, 2597, 2607, 2609, 2612, 2614, 2617,
704 2624, 2632, 2639, 2645, 2651, 2659, 2663, 2668, 2672, 2675,
705 2684, 2686, 2690, 2693, 2698, 2702, 2708, 2719, 2722, 2726,
706 2730, 2738, 2743, 2749, 2752, 2754, 2756, 2762, 2764, 2773,
707 2776, 2778, 2780, 2782, 2786, 2789, 2792, 2794, 2796, 2798,
708 2802, 2805, 2816, 2826, 2828, 2829, 2833, 2841, 2843, 2851,
709 2854, 2856, 2858, 2860, 2864, 2867, 2870, 2872, 2874, 2876,
710 2880, 2883, 2886, 2888, 2890, 2892, 2894, 2901, 2905, 2910,
711 2914, 2919, 2921, 2925, 2928, 2930, 2933, 2935, 2936, 2939,
712 2941, 2943, 2949, 2960, 2966, 2972, 2986, 2988, 2992, 3006,
713 3008, 3010, 3014, 3020, 3033, 3035, 3039, 3052, 3058, 3060,
714 3061, 3062, 3070, 3075, 3084, 3085, 3089, 3092, 3098, 3104,
715 3107, 3109, 3111, 3113, 3117, 3121, 3125, 3128, 3132, 3134,
716 3143, 3146, 3148, 3150, 3152, 3154, 3156, 3158, 3160, 3164,
717 3168, 3172, 3176, 3177, 3179, 3181, 3183, 3185, 3187, 3189,
718 3191, 3193, 3201, 3203, 3204, 3205, 3208, 3214, 3216, 3221,
719 3223, 3226, 3240, 3243, 3246, 3250, 3253, 3260, 3262, 3265,
720 3267, 3269, 3272, 3275, 3278, 3281, 3283, 3286, 3290, 3292,
721 3298, 3300, 3301, 3303, 3308, 3310, 3312, 3314, 3316, 3319,
722 3320, 3322, 3325, 3326, 3329, 3329, 3332, 3332, 3335, 3335,
723 3337, 3339, 3341, 3343, 3349, 3355, 3358, 3361, 3367, 3369,
724 3371, 3375, 3377, 3378, 3379, 3381, 3384, 3391, 3396, 3402,
725 3406, 3408, 3411, 3413, 3416, 3420, 3422, 3425, 3427, 3430,
726 3447, 3453, 3461, 3463, 3465, 3469, 3472, 3473, 3481, 3485,
727 3489, 3492, 3493, 3499, 3502, 3505, 3507, 3511, 3516, 3519,
728 3529, 3534, 3535, 3542, 3545, 3548, 3550, 3553, 3555, 3565,
729 3579, 3583, 3586, 3588, 3592, 3596, 3599, 3602, 3604, 3608,
730 3610, 3617, 3624, 3627, 3631, 3635, 3639, 3645, 3649, 3654,
731 3656, 3659, 3664, 3670, 3681, 3684, 3686, 3690, 3695, 3697,
732 3704, 3707, 3709, 3711, 3717, 3722, 3725, 3727, 3729, 3731,
733 3733, 3735, 3737, 3739, 3741, 3743, 3745, 3747, 3749, 3751,
734 3753, 3755, 3757, 3759, 3761, 3763, 3765, 3767, 3769, 3771,
735 3773, 3775, 3777, 3779, 3781, 3783, 3785, 3787, 3790, 3792
740 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
742 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
743 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
744 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
745 "CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD","TYPEOF",
746 "ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","AGGR",
747 "VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
748 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
749 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
750 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
751 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
752 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
753 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","PRE_PARSED_FUNCTION_DECL",
754 "EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER",
755 "TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT",
756 "')'","'}'","'!'","']'","program","extdefs","@1","extdefs_opt",".hush_warning",
757 ".warning_ok","extension","asm_keyword","lang_extdef","@2","extdef","@3","@4",
758 "namespace_alias","@5","using_decl","namespace_using_decl","using_directive",
759 "@6","namespace_qualifier","any_id","extern_lang_string","template_header","@7",
760 "template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
761 "template_parm","template_def","template_extdef","template_datadef","datadef",
762 "ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef","constructor_declarator",
763 "@8","@9","@10","@11","fn.def1","component_constructor_declarator","fn.def2",
764 "return_id","return_init","base_init",".set_base_init","member_init_list","member_init",
765 "identifier","notype_identifier","identifier_defn","explicit_instantiation",
766 "@12","@13","@14","@15","@16","@17","@18","@19","begin_explicit_instantiation",
767 "end_explicit_instantiation","template_type","apparent_template_type","self_template_type",
768 ".finish_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
769 "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
770 "condition","@20","compstmtend","already_scoped_stmt","@21","nontrivial_exprlist",
771 "nonnull_exprlist","unary_expr",".finish_new_placement",".begin_new_placement",
772 "new_placement","new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas",
773 "notype_unqualified_id","do_id","template_id","object_template_id","unqualified_id",
774 "expr_or_declarator_intern","expr_or_declarator","notype_template_declarator",
775 "direct_notype_declarator","primary","@22","new","delete","boolean.literal",
776 "string","nodecls","object","decl","declarator","fcast_or_absdcl","type_id",
777 "typed_declspecs","typed_declspecs1","reserved_declspecs","declmods","typed_typespecs",
778 "reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls",
779 "nomods_initdecls","maybeasm","initdcl","@23","initdcl0_innards","@24","initdcl0",
780 "notype_initdcl0","nomods_initdcl0","@25","maybe_attribute","attributes","attribute",
781 "attribute_list","attrib","any_word","identifiers_or_typenames","maybe_init",
782 "init","initlist","fn.defpen","pending_inline","pending_inlines","defarg_again",
783 "pending_defargs","structsp","@26","@27","@28","@29","@30","maybecomma","maybecomma_warn",
784 "aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
785 "named_complex_class_head_sans_basetype","named_class_head","@31","unnamed_class_head",
786 "class_head","maybe_base_class_list","base_class_list","base_class","base_class.1",
787 "base_class_access_list","opt.component_decl_list","access_specifier","component_decl_list",
788 "component_decl","component_decl_1","components","notype_components","component_declarator0",
789 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
790 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
791 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
792 "maybe_parmlist","after_type_declarator_intern","after_type_declarator","direct_after_type_declarator",
793 "nonnested_type","complete_type_name","nested_type","notype_declarator_intern",
794 "notype_declarator","complex_notype_declarator","complex_direct_notype_declarator",
795 "qualified_id","notype_qualified_id","overqualified_id","functional_cast","type_name",
796 "nested_name_specifier","nested_name_specifier_1","typename_sub","typename_sub0",
797 "typename_sub1","typename_sub2","explicit_template_type","complex_type_name",
798 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl_intern",
799 "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
800 "label_decls","label_decl","compstmt_or_error","compstmt","@32","simple_if",
801 "@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37",
802 "@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block",
803 "@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","type_specifier_seq",
804 "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
805 "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
806 "complex_parmlist","defarg","@56","defarg1","parms","parms_comma","named_parm",
807 "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
808 "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
812 static const short yyr1[] = { 0,
813 112, 112, 114, 113, 113, 115, 115, 116, 117, 118,
814 119, 121, 120, 122, 122, 122, 122, 122, 122, 122,
815 123, 122, 124, 122, 122, 122, 122, 122, 126, 125,
816 127, 127, 127, 128, 128, 128, 130, 129, 131, 131,
817 132, 132, 132, 132, 133, 133, 135, 134, 134, 136,
818 136, 137, 137, 138, 138, 139, 140, 140, 140, 140,
819 140, 140, 141, 141, 142, 142, 142, 142, 142, 142,
820 143, 143, 143, 143, 144, 144, 144, 144, 144, 144,
821 144, 144, 144, 145, 145, 146, 146, 146, 147, 147,
822 148, 148, 148, 150, 149, 149, 151, 149, 149, 152,
823 149, 149, 153, 149, 149, 154, 154, 154, 154, 154,
824 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
825 156, 157, 158, 158, 158, 159, 160, 161, 161, 161,
826 161, 162, 162, 162, 162, 162, 162, 162, 162, 163,
827 163, 163, 163, 163, 164, 164, 164, 165, 165, 165,
828 167, 166, 168, 166, 169, 166, 170, 166, 171, 166,
829 172, 166, 173, 166, 174, 166, 175, 176, 177, 177,
830 177, 178, 178, 179, 180, 181, 181, 182, 182, 183,
831 183, 184, 184, 184, 185, 185, 185, 185, 185, 186,
832 186, 187, 187, 188, 188, 189, 189, 189, 191, 190,
833 190, 192, 192, 192, 192, 194, 193, 193, 195, 195,
834 195, 195, 196, 196, 197, 197, 197, 197, 197, 197,
835 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
836 197, 197, 197, 197, 197, 197, 197, 197, 198, 199,
837 200, 200, 201, 201, 201, 201, 202, 202, 203, 203,
838 203, 204, 204, 204, 204, 204, 204, 204, 204, 204,
839 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
840 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
841 205, 205, 205, 206, 207, 207, 208, 208, 208, 209,
842 209, 209, 210, 210, 211, 211, 211, 211, 212, 212,
843 213, 213, 213, 213, 214, 214, 214, 214, 214, 214,
844 214, 215, 214, 214, 214, 214, 214, 214, 214, 214,
845 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
846 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
847 214, 214, 214, 214, 214, 214, 214, 216, 216, 217,
848 217, 218, 218, 219, 219, 220, 221, 221, 222, 222,
849 222, 222, 222, 222, 223, 223, 224, 224, 225, 225,
850 225, 225, 225, 226, 226, 227, 227, 227, 227, 227,
851 227, 228, 228, 228, 228, 228, 229, 229, 229, 229,
852 229, 229, 230, 230, 230, 230, 231, 231, 232, 232,
853 232, 232, 232, 232, 232, 233, 233, 233, 234, 234,
854 235, 235, 236, 236, 237, 237, 239, 238, 238, 241,
855 240, 240, 242, 243, 245, 244, 244, 246, 246, 247,
856 247, 248, 249, 249, 250, 250, 250, 250, 250, 251,
857 251, 251, 251, 252, 252, 253, 253, 254, 254, 254,
858 254, 254, 255, 255, 255, 255, 255, 256, 257, 257,
859 257, 258, 258, 259, 259, 260, 260, 260, 262, 261,
860 261, 263, 261, 261, 261, 261, 261, 264, 265, 266,
861 261, 261, 267, 267, 268, 268, 269, 269, 269, 269,
862 269, 269, 270, 271, 271, 271, 272, 272, 272, 272,
863 272, 273, 274, 273, 273, 275, 276, 276, 277, 277,
864 277, 278, 278, 279, 279, 280, 280, 280, 280, 281,
865 281, 281, 281, 282, 282, 282, 282, 283, 284, 284,
866 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
867 286, 286, 286, 286, 286, 286, 286, 286, 286, 287,
868 287, 287, 288, 288, 288, 289, 289, 290, 290, 291,
869 291, 292, 292, 292, 292, 293, 293, 294, 294, 294,
870 295, 295, 296, 296, 297, 297, 297, 298, 298, 299,
871 299, 300, 301, 302, 302, 302, 302, 303, 303, 304,
872 304, 304, 304, 304, 304, 305, 305, 305, 305, 305,
873 305, 306, 306, 307, 307, 307, 308, 309, 309, 310,
874 310, 310, 310, 310, 310, 311, 311, 311, 311, 311,
875 311, 312, 312, 312, 312, 312, 312, 313, 313, 314,
876 314, 315, 315, 316, 316, 316, 317, 317, 317, 318,
877 318, 318, 319, 319, 319, 319, 320, 320, 321, 321,
878 321, 321, 322, 322, 322, 322, 323, 323, 323, 323,
879 323, 323, 324, 325, 325, 325, 326, 326, 327, 328,
880 328, 328, 328, 328, 328, 328, 329, 329, 330, 330,
881 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
882 331, 332, 332, 332, 332, 332, 332, 332, 332, 332,
883 332, 332, 333, 333, 333, 333, 334, 335, 335, 336,
884 336, 337, 338, 338, 340, 339, 342, 343, 341, 344,
885 345, 344, 346, 346, 347, 347, 348, 347, 347, 349,
886 350, 347, 351, 352, 347, 353, 354, 355, 356, 347,
887 357, 358, 347, 359, 347, 360, 347, 361, 347, 347,
888 347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
889 347, 347, 347, 347, 347, 347, 363, 364, 362, 366,
890 367, 365, 368, 368, 370, 371, 369, 372, 372, 373,
891 373, 374, 374, 374, 374, 375, 375, 375, 376, 376,
892 377, 377, 377, 378, 378, 379, 379, 380, 381, 381,
893 382, 382, 382, 383, 383, 383, 383, 383, 383, 383,
894 385, 384, 386, 386, 387, 387, 387, 387, 387, 388,
895 388, 389, 389, 389, 389, 389, 389, 390, 390, 391,
896 391, 392, 393, 393, 394, 394, 394, 395, 396, 396,
897 397, 397, 397, 397, 398, 399, 399, 399, 399, 399,
898 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
899 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
900 399, 399, 399, 399, 399, 399, 399, 399, 399, 399
903 static const short yyr2[] = { 0,
904 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
905 1, 0, 2, 2, 1, 1, 5, 4, 5, 4,
906 0, 6, 0, 5, 1, 2, 1, 2, 0, 6,
907 2, 3, 3, 3, 3, 4, 0, 5, 2, 3,
908 1, 1, 2, 2, 1, 2, 0, 5, 3, 1,
909 3, 1, 0, 2, 2, 3, 1, 3, 1, 3,
910 1, 3, 2, 2, 2, 1, 1, 5, 4, 2,
911 2, 3, 3, 2, 2, 3, 3, 2, 2, 2,
912 2, 2, 1, 1, 1, 0, 1, 2, 0, 1,
913 4, 3, 3, 0, 8, 5, 0, 9, 6, 0,
914 8, 5, 0, 9, 6, 2, 2, 1, 2, 1,
915 6, 4, 6, 4, 2, 1, 2, 2, 1, 2,
916 1, 2, 2, 4, 2, 3, 0, 0, 1, 3,
917 2, 3, 1, 4, 2, 4, 2, 4, 2, 1,
918 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
919 0, 6, 0, 6, 0, 5, 0, 5, 0, 7,
920 0, 7, 0, 6, 0, 6, 0, 0, 5, 5,
921 1, 1, 5, 5, 0, 1, 1, 0, 1, 1,
922 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
923 1, 1, 3, 1, 3, 0, 1, 1, 0, 7,
924 1, 1, 3, 4, 3, 0, 3, 1, 3, 3,
925 3, 3, 1, 1, 1, 2, 2, 2, 2, 2,
926 2, 2, 4, 2, 4, 2, 3, 3, 4, 5,
927 6, 6, 7, 2, 4, 5, 2, 2, 1, 0,
928 4, 4, 3, 1, 3, 2, 3, 4, 1, 2,
929 5, 1, 3, 3, 3, 3, 3, 3, 3, 3,
930 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
931 3, 5, 3, 3, 1, 2, 3, 3, 1, 1,
932 1, 1, 1, 0, 5, 5, 5, 5, 5, 1,
933 1, 1, 1, 2, 1, 2, 2, 3, 4, 4,
934 1, 1, 1, 3, 1, 1, 1, 1, 3, 3,
935 3, 0, 4, 4, 2, 4, 2, 4, 2, 2,
936 1, 4, 1, 7, 7, 7, 7, 4, 4, 2,
937 2, 2, 1, 4, 2, 2, 5, 3, 2, 2,
938 5, 3, 5, 3, 4, 6, 2, 1, 2, 1,
939 2, 1, 1, 1, 2, 0, 2, 2, 3, 3,
940 3, 2, 2, 2, 1, 1, 1, 2, 2, 2,
941 2, 1, 1, 1, 1, 2, 2, 3, 3, 3,
942 4, 1, 2, 2, 2, 1, 1, 1, 2, 2,
943 2, 1, 1, 2, 2, 3, 1, 2, 1, 1,
944 1, 4, 4, 4, 4, 1, 1, 1, 1, 3,
945 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
946 4, 1, 3, 3, 0, 4, 3, 0, 1, 1,
947 2, 6, 1, 3, 0, 1, 4, 6, 4, 1,
948 1, 1, 1, 1, 3, 0, 2, 1, 2, 3,
949 4, 1, 1, 3, 4, 3, 5, 1, 4, 3,
950 3, 0, 3, 3, 3, 0, 2, 2, 0, 7,
951 4, 0, 6, 3, 2, 2, 2, 0, 0, 0,
952 10, 1, 0, 1, 0, 1, 1, 2, 2, 2,
953 2, 2, 2, 2, 2, 2, 3, 4, 3, 2,
954 3, 1, 0, 3, 2, 2, 1, 1, 0, 2,
955 3, 1, 4, 1, 3, 1, 1, 4, 4, 2,
956 2, 3, 3, 0, 1, 3, 2, 2, 1, 2,
957 2, 2, 2, 2, 2, 2, 1, 2, 2, 3,
958 2, 2, 4, 4, 2, 1, 5, 4, 1, 0,
959 1, 3, 0, 1, 3, 1, 1, 1, 1, 4,
960 4, 4, 4, 4, 3, 4, 4, 4, 4, 3,
961 1, 3, 1, 3, 2, 1, 7, 0, 2, 1,
962 2, 0, 2, 4, 4, 2, 4, 1, 2, 3,
963 3, 2, 2, 3, 1, 4, 4, 3, 3, 2,
964 1, 1, 2, 1, 1, 2, 2, 1, 2, 3,
965 3, 2, 2, 3, 1, 3, 3, 2, 2, 3,
966 1, 4, 3, 4, 3, 1, 2, 2, 2, 2,
967 2, 1, 2, 4, 4, 2, 1, 1, 1, 1,
968 2, 4, 2, 2, 2, 2, 1, 2, 2, 2,
969 2, 3, 1, 2, 3, 4, 2, 2, 2, 2,
970 2, 2, 4, 2, 1, 2, 2, 3, 1, 3,
971 2, 3, 2, 2, 3, 1, 3, 4, 1, 2,
972 3, 2, 2, 1, 3, 2, 2, 1, 2, 3,
973 1, 3, 1, 6, 4, 4, 3, 5, 3, 3,
974 3, 2, 1, 1, 2, 2, 2, 0, 1, 1,
975 2, 3, 1, 2, 0, 3, 0, 0, 5, 1,
976 0, 2, 1, 1, 1, 2, 0, 4, 1, 0,
977 0, 5, 0, 0, 7, 0, 0, 0, 0, 12,
978 0, 0, 7, 0, 5, 0, 7, 0, 4, 2,
979 2, 2, 3, 6, 8, 10, 12, 4, 3, 2,
980 2, 1, 1, 1, 1, 1, 0, 0, 6, 0,
981 0, 5, 1, 2, 0, 0, 5, 1, 1, 3,
982 3, 2, 2, 2, 2, 2, 1, 2, 0, 1,
983 0, 1, 1, 0, 1, 1, 3, 4, 1, 3,
984 0, 1, 1, 1, 2, 2, 2, 1, 2, 2,
985 0, 3, 1, 1, 1, 2, 2, 2, 4, 2,
986 2, 2, 2, 2, 2, 1, 2, 1, 2, 1,
987 1, 0, 0, 1, 0, 4, 2, 1, 1, 3,
988 0, 3, 3, 3, 1, 2, 2, 2, 2, 2,
989 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
990 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
991 2, 2, 2, 3, 2, 2, 4, 4, 3, 2
994 static const short yydefact[] = { 3,
995 12, 12, 5, 0, 4, 0, 281, 637, 638, 0,
996 388, 400, 580, 0, 11, 0, 0, 0, 10, 487,
997 845, 0, 0, 0, 167, 669, 282, 283, 83, 0,
998 0, 832, 0, 45, 0, 0, 13, 25, 0, 27,
999 8, 0, 16, 15, 89, 110, 86, 0, 639, 171,
1000 302, 279, 303, 615, 0, 375, 0, 374, 393, 0,
1001 413, 392, 430, 399, 0, 502, 503, 509, 508, 507,
1002 482, 387, 604, 401, 605, 108, 301, 626, 602, 0,
1003 640, 578, 0, 0, 280, 81, 82, 178, 643, 178,
1004 644, 178, 284, 167, 140, 141, 142, 143, 144, 472,
1005 475, 0, 665, 0, 476, 0, 0, 0, 0, 141,
1006 142, 143, 144, 23, 0, 0, 0, 0, 0, 0,
1007 0, 477, 647, 0, 653, 0, 0, 0, 37, 0,
1008 0, 31, 0, 0, 47, 0, 178, 645, 0, 0,
1009 0, 613, 608, 0, 0, 0, 612, 0, 0, 0,
1010 0, 302, 0, 293, 582, 0, 0, 301, 578, 28,
1011 0, 26, 3, 46, 0, 64, 388, 0, 0, 8,
1012 67, 63, 66, 89, 0, 0, 0, 399, 90, 14,
1013 0, 428, 0, 0, 446, 87, 79, 646, 582, 0,
1014 578, 80, 0, 0, 0, 106, 0, 409, 365, 595,
1015 366, 601, 0, 578, 390, 389, 78, 109, 376, 0,
1016 411, 391, 107, 382, 406, 407, 377, 395, 397, 386,
1017 408, 0, 75, 431, 488, 489, 490, 491, 506, 149,
1018 148, 150, 493, 494, 172, 500, 492, 0, 0, 495,
1019 496, 509, 832, 505, 478, 581, 394, 0, 425, 638,
1020 0, 667, 171, 630, 631, 627, 607, 641, 0, 606,
1021 603, 0, 880, 876, 875, 873, 855, 860, 861, 0,
1022 867, 866, 852, 853, 851, 870, 859, 856, 857, 858,
1023 862, 863, 849, 850, 846, 847, 848, 872, 864, 865,
1024 854, 871, 0, 868, 778, 393, 779, 841, 284, 281,
1025 580, 306, 354, 0, 0, 0, 0, 350, 348, 321,
1026 352, 353, 0, 0, 0, 0, 0, 282, 283, 275,
1027 0, 0, 186, 185, 0, 187, 188, 0, 0, 189,
1028 0, 0, 179, 180, 0, 249, 0, 252, 184, 305,
1029 215, 0, 0, 307, 308, 0, 182, 372, 393, 373,
1030 632, 333, 323, 0, 0, 0, 0, 178, 0, 474,
1031 0, 469, 0, 666, 664, 0, 190, 191, 0, 0,
1032 0, 435, 3, 21, 29, 661, 657, 658, 660, 662,
1033 659, 140, 141, 142, 0, 143, 144, 649, 650, 654,
1034 651, 648, 0, 291, 292, 290, 629, 628, 33, 32,
1035 49, 0, 157, 0, 0, 393, 155, 0, 0, 609,
1036 611, 0, 610, 141, 142, 277, 278, 297, 0, 619,
1037 296, 0, 618, 0, 304, 282, 283, 0, 0, 0,
1038 295, 294, 623, 0, 0, 12, 0, 167, 9, 9,
1039 70, 0, 65, 0, 0, 71, 74, 0, 427, 429,
1040 122, 93, 127, 767, 0, 85, 84, 92, 125, 0,
1041 0, 123, 88, 625, 0, 0, 586, 0, 835, 0,
1042 0, 593, 588, 0, 592, 0, 0, 0, 0, 0,
1043 578, 428, 0, 77, 582, 578, 600, 0, 379, 380,
1044 0, 76, 428, 384, 383, 385, 378, 398, 415, 414,
1045 178, 497, 501, 499, 0, 504, 510, 0, 396, 428,
1046 578, 94, 0, 0, 0, 0, 578, 100, 579, 614,
1047 638, 668, 171, 0, 0, 869, 874, 395, 578, 578,
1048 0, 578, 879, 178, 0, 0, 0, 222, 0, 0,
1049 224, 237, 238, 0, 0, 0, 0, 0, 276, 221,
1050 218, 217, 219, 0, 0, 0, 0, 0, 305, 0,
1051 0, 0, 216, 176, 177, 299, 0, 220, 0, 0,
1052 250, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1054 0, 0, 0, 315, 0, 317, 319, 320, 358, 357,
1055 0, 0, 240, 240, 0, 226, 576, 0, 234, 355,
1056 347, 0, 0, 832, 336, 339, 340, 0, 0, 367,
1057 688, 684, 693, 0, 582, 578, 578, 578, 369, 691,
1058 0, 636, 371, 0, 0, 370, 335, 0, 330, 349,
1059 331, 351, 633, 0, 332, 175, 175, 0, 165, 0,
1060 393, 163, 573, 485, 571, 471, 0, 0, 402, 0,
1061 0, 403, 404, 405, 441, 442, 443, 440, 0, 433,
1062 436, 0, 3, 0, 652, 178, 655, 0, 41, 42,
1063 0, 53, 0, 0, 57, 61, 50, 831, 826, 0,
1064 372, 393, 53, 373, 830, 59, 168, 153, 151, 168,
1065 175, 300, 617, 616, 304, 0, 620, 0, 18, 20,
1066 89, 9, 9, 73, 72, 0, 128, 356, 0, 715,
1067 91, 713, 452, 0, 448, 447, 214, 0, 213, 583,
1068 624, 0, 808, 0, 803, 393, 0, 802, 804, 833,
1069 815, 0, 0, 622, 589, 591, 590, 0, 0, 0,
1070 0, 0, 0, 578, 599, 0, 423, 422, 410, 598,
1071 0, 835, 594, 381, 412, 424, 428, 0, 498, 637,
1072 638, 832, 0, 832, 639, 511, 512, 514, 832, 517,
1073 516, 0, 546, 638, 0, 537, 0, 0, 549, 0,
1074 121, 116, 0, 171, 550, 553, 0, 0, 529, 0,
1075 119, 426, 835, 801, 178, 178, 642, 178, 835, 801,
1076 578, 97, 578, 103, 878, 877, 841, 841, 841, 0,
1077 0, 0, 0, 636, 0, 0, 0, 0, 393, 0,
1078 0, 0, 311, 0, 309, 310, 0, 247, 181, 281,
1079 637, 638, 282, 283, 0, 0, 453, 483, 0, 274,
1080 273, 793, 792, 0, 271, 270, 268, 269, 267, 266,
1081 265, 262, 263, 264, 260, 261, 255, 256, 257, 258,
1082 259, 253, 254, 0, 0, 0, 0, 0, 240, 228,
1083 244, 0, 0, 227, 578, 578, 0, 578, 575, 676,
1084 0, 0, 0, 0, 0, 338, 0, 342, 0, 344,
1085 0, 0, 687, 686, 679, 683, 682, 831, 392, 0,
1086 0, 702, 0, 0, 835, 368, 835, 689, 578, 801,
1087 582, 688, 684, 0, 0, 578, 0, 392, 0, 0,
1088 0, 0, 170, 174, 285, 168, 161, 159, 168, 0,
1089 486, 0, 485, 212, 211, 210, 209, 435, 0, 0,
1090 24, 0, 0, 656, 0, 38, 44, 43, 55, 52,
1091 53, 0, 48, 0, 0, 688, 684, 0, 822, 578,
1092 825, 827, 0, 823, 824, 54, 493, 0, 158, 168,
1093 168, 156, 169, 298, 17, 19, 69, 89, 416, 145,
1094 133, 146, 147, 0, 126, 129, 0, 0, 0, 0,
1095 714, 708, 449, 0, 124, 587, 584, 807, 821, 810,
1096 0, 585, 806, 820, 809, 805, 834, 817, 828, 818,
1097 811, 816, 837, 0, 0, 0, 0, 420, 597, 596,
1098 419, 175, 521, 0, 520, 832, 832, 832, 0, 578,
1099 801, 545, 538, 550, 539, 428, 428, 535, 536, 533,
1100 534, 578, 801, 281, 637, 0, 415, 117, 541, 551,
1101 556, 557, 415, 415, 0, 0, 415, 115, 542, 554,
1102 415, 0, 428, 0, 530, 531, 532, 428, 96, 0,
1103 0, 0, 0, 102, 0, 835, 801, 835, 801, 843,
1104 842, 844, 286, 322, 223, 225, 328, 329, 0, 0,
1105 0, 0, 310, 313, 0, 0, 0, 0, 248, 0,
1106 314, 316, 318, 0, 0, 0, 0, 229, 246, 0,
1107 0, 673, 671, 0, 674, 582, 235, 0, 0, 178,
1108 345, 0, 0, 0, 680, 685, 681, 692, 578, 701,
1109 699, 700, 690, 835, 0, 697, 0, 0, 634, 635,
1110 688, 684, 0, 0, 334, 166, 168, 168, 164, 574,
1111 572, 473, 0, 434, 432, 281, 0, 22, 30, 663,
1112 56, 51, 58, 62, 0, 687, 683, 688, 684, 0,
1113 392, 602, 0, 578, 689, 60, 154, 152, 68, 0,
1114 131, 0, 135, 0, 137, 0, 139, 0, 768, 0,
1115 202, 716, 0, 709, 710, 0, 450, 688, 684, 0,
1116 305, 0, 632, 829, 0, 0, 838, 839, 0, 0,
1117 0, 0, 0, 0, 417, 173, 0, 0, 0, 523,
1118 522, 515, 835, 0, 540, 446, 446, 835, 0, 0,
1119 0, 428, 428, 0, 428, 428, 0, 428, 0, 528,
1120 479, 0, 446, 578, 288, 287, 289, 578, 99, 0,
1121 105, 0, 0, 0, 0, 0, 0, 456, 0, 454,
1122 251, 272, 242, 241, 239, 230, 0, 243, 245, 672,
1123 670, 677, 675, 0, 236, 0, 0, 337, 341, 343,
1124 835, 695, 578, 696, 162, 160, 470, 0, 437, 439,
1125 0, 687, 683, 688, 684, 0, 578, 607, 689, 132,
1126 130, 0, 0, 0, 0, 444, 0, 0, 281, 637,
1127 638, 717, 730, 733, 736, 741, 0, 0, 0, 0,
1128 0, 0, 0, 0, 282, 762, 770, 0, 789, 766,
1129 765, 764, 0, 725, 0, 0, 393, 0, 704, 723,
1130 729, 703, 724, 763, 0, 711, 451, 0, 635, 819,
1131 813, 814, 812, 0, 836, 421, 0, 518, 519, 513,
1132 112, 578, 544, 548, 114, 578, 428, 428, 565, 446,
1133 281, 637, 0, 552, 558, 559, 415, 415, 446, 446,
1134 0, 446, 555, 466, 543, 835, 835, 578, 578, 0,
1135 0, 0, 0, 455, 0, 0, 231, 232, 678, 346,
1136 287, 698, 835, 0, 687, 683, 0, 689, 134, 136,
1137 138, 775, 769, 773, 0, 712, 707, 205, 782, 784,
1138 785, 0, 0, 721, 0, 0, 0, 748, 750, 751,
1139 752, 0, 0, 0, 0, 0, 0, 0, 783, 0,
1140 364, 790, 0, 726, 362, 415, 0, 363, 0, 415,
1141 0, 0, 0, 203, 706, 705, 727, 761, 760, 310,
1142 840, 418, 835, 835, 564, 561, 563, 0, 0, 428,
1143 428, 428, 560, 562, 547, 0, 95, 101, 835, 835,
1144 324, 325, 326, 327, 457, 0, 233, 694, 438, 688,
1145 684, 0, 0, 0, 774, 445, 194, 0, 718, 731,
1146 720, 0, 0, 0, 0, 0, 744, 0, 753, 0,
1147 759, 39, 144, 34, 144, 0, 35, 771, 0, 360,
1148 361, 0, 0, 0, 359, 204, 721, 111, 113, 428,
1149 428, 570, 446, 446, 468, 0, 467, 462, 98, 104,
1150 577, 392, 0, 776, 201, 0, 393, 0, 721, 0,
1151 734, 722, 708, 787, 737, 0, 0, 0, 0, 749,
1152 758, 40, 36, 0, 0, 728, 569, 567, 566, 568,
1153 0, 0, 481, 0, 0, 0, 195, 415, 719, 206,
1154 732, 208, 0, 788, 0, 786, 742, 746, 745, 772,
1155 794, 0, 465, 464, 458, 86, 89, 780, 781, 777,
1156 428, 708, 192, 0, 0, 198, 0, 197, 721, 0,
1157 0, 0, 795, 796, 754, 0, 463, 0, 207, 0,
1158 735, 738, 743, 747, 0, 794, 0, 0, 461, 0,
1159 460, 199, 193, 0, 0, 0, 755, 797, 459, 0,
1160 0, 798, 0, 0, 200, 739, 799, 0, 756, 0,
1161 0, 0, 740, 800, 757, 0, 0, 0
1164 static const short yydefgoto[] = { 1666,
1165 436, 2, 437, 165, 710, 331, 181, 3, 4, 37,
1166 673, 373, 1340, 674, 789, 1341, 1342, 393, 1447, 678,
1167 41, 790, 402, 684, 959, 685, 686, 687, 43, 172,
1168 173, 44, 455, 184, 180, 45, 46, 804, 1087, 810,
1169 1089, 47, 792, 793, 185, 186, 456, 717, 995, 996,
1170 653, 997, 234, 48, 981, 980, 700, 697, 1158, 1157,
1171 939, 936, 136, 979, 49, 236, 50, 933, 566, 332,
1172 333, 334, 335, 1343, 1615, 1509, 1617, 1556, 1650, 1202,
1173 1591, 1612, 367, 925, 336, 1276, 877, 605, 884, 337,
1174 338, 368, 340, 358, 52, 255, 679, 418, 154, 53,
1175 54, 341, 561, 342, 343, 344, 345, 457, 346, 1344,
1176 499, 627, 347, 1345, 56, 217, 690, 348, 218, 539,
1177 219, 197, 210, 60, 482, 500, 1367, 757, 1224, 198,
1178 211, 61, 510, 758, 62, 63, 669, 670, 671, 1317,
1179 462, 847, 848, 1606, 1607, 1583, 1547, 1486, 64, 657,
1180 361, 508, 1394, 1548, 1108, 942, 65, 66, 67, 68,
1181 69, 242, 70, 71, 244, 776, 777, 778, 779, 797,
1182 1074, 798, 799, 800, 1059, 1069, 1060, 1384, 1061, 1062,
1183 1385, 1386, 654, 655, 606, 915, 350, 465, 466, 191,
1184 480, 473, 200, 73, 74, 75, 142, 143, 157, 77,
1185 132, 351, 352, 353, 79, 354, 81, 781, 123, 124,
1186 125, 515, 105, 82, 355, 889, 890, 910, 905, 630,
1187 1348, 1349, 1203, 1204, 1205, 721, 1350, 1002, 1351, 1432,
1188 1559, 1512, 1513, 1352, 1353, 1537, 1433, 1560, 1434, 1593,
1189 1435, 1595, 1644, 1660, 1436, 1619, 1569, 1620, 1518, 458,
1190 718, 1315, 1354, 1450, 1574, 1423, 1424, 1504, 1586, 1558,
1191 1554, 1355, 1565, 1453, 854, 1622, 1623, 1624, 1658, 737,
1192 911, 1022, 1216, 1363, 739, 740, 741, 1018, 742, 148,
1193 1020, 744, 1218, 1219, 533, 84, 85
1196 static const short yypact[] = { 108,
1197 127,-32768,-32768, 6638,-32768, 55, 57, 72, 240, 62,
1198 142,-32768,-32768, 625,-32768, 150, 208, 211,-32768,-32768,
1199 -32768, 756, 883, 1366, 130,-32768, 188, 338,-32768, 2656,
1200 2656,-32768, 422,-32768, 6638, 223,-32768,-32768, 279,-32768,
1201 98, 4351,-32768,-32768, 268, 823, 365, 293, 423,-32768,
1202 -32768,-32768,-32768, 123, 3083,-32768, 6545,-32768, 2122, 781,
1203 -32768, 465,-32768,-32768, 2046, 404,-32768, 436,-32768,-32768,
1204 474, 4127,-32768,-32768,-32768, 1037,-32768,-32768,-32768, 2040,
1205 -32768,-32768, 431, 3562, 460,-32768,-32768, 10933,-32768, 10933,
1206 -32768, 10933,-32768,-32768,-32768, 72, 240, 188, 503, 458,
1207 523, 423,-32768, 621,-32768, 431, 11019, 11019, 491,-32768,
1208 -32768,-32768,-32768,-32768, 330, 541, 579, 772, 794, 552,
1209 558,-32768,-32768, 897,-32768, 618, 72, 240,-32768, 188,
1210 503,-32768, 1941, 1787, 556, 12117, 10933,-32768, 10933, 6884,
1211 4421,-32768,-32768, 2343, 606, 4421,-32768, 764, 4782, 4782,
1212 422, 508, 551,-32768, 555, 1198, 577, 589,-32768,-32768,
1213 676,-32768, 591,-32768, 4576,-32768,-32768, 130, 3913, 613,
1214 -32768,-32768,-32768, 268, 1640, 12172, 868, 655,-32768,-32768,
1215 628, 465, 745, 137, 283, 695,-32768,-32768, 653, 187,
1216 -32768,-32768, 5207, 5207, 6890, 1037, 903,-32768,-32768, 242,
1217 -32768,-32768, 3275,-32768,-32768,-32768,-32768,-32768, 2122, 909,
1218 -32768, 465, 1037,-32768,-32768,-32768, 2314, 2122,-32768, 465,
1219 -32768, 1640,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1220 -32768,-32768, 703,-32768, 423,-32768, 465, 1413, 1023,-32768,
1221 -32768, 436,-32768,-32768,-32768,-32768, 1086, 431,-32768, 526,
1222 777,-32768, 316,-32768,-32768,-32768,-32768,-32768, 5793,-32768,
1223 -32768, 251,-32768, 704, 709,-32768,-32768,-32768,-32768, 760,
1224 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1225 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1226 -32768,-32768, 714,-32768,-32768, 1086, 4127, 578,-32768,-32768,
1227 736,-32768,-32768, 11627, 11713, 11799, 11799,-32768,-32768,-32768,
1228 -32768,-32768, 738, 763, 773, 804, 824, 1205, 503, 11105,
1229 1446, 11799,-32768,-32768, 11799,-32768,-32768, 11799, 8717,-32768,
1230 11799, 328, 844,-32768, 11799,-32768, 11191,-32768, 12355, 367,
1231 1836, 3337, 11277,-32768, 894, 2675,-32768, 2485, 3147, 5599,
1232 -32768, 368,-32768, 2011, 2176, 328, 328, 10933, 12117,-32768,
1233 1446, 800, 1446,-32768,-32768, 816, 871, 12288, 848, 849,
1234 872, 1718, 591,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1235 -32768, 541, 579, 772, 1446, 794, 552, 920, 558,-32768,
1236 955,-32768, 1549, 72, 240,-32768,-32768,-32768,-32768,-32768,
1237 -32768, 12226,-32768, 1640, 5776, 1791,-32768, 328, 817,-32768,
1238 -32768, 466,-32768, 932, 941,-32768,-32768,-32768, 4421,-32768,
1239 -32768, 4421,-32768, 913,-32768,-32768,-32768, 1198, 1198, 1198,
1240 -32768,-32768,-32768, 5793, 95, 914, 925,-32768,-32768,-32768,
1241 -32768, 12117,-32768, 931, 937,-32768,-32768, 676,-32768, 465,
1242 -32768,-32768,-32768,-32768, 111,-32768,-32768,-32768,-32768, 9269,
1243 11105,-32768,-32768,-32768, 11105, 935,-32768, 5148, 113, 7300,
1244 5886,-32768,-32768, 5886,-32768, 6144, 6144, 6890, 7304, 943,
1245 -32768, 465, 1640,-32768, 946,-32768,-32768, 6312, 2314, 2122,
1246 1640,-32768, 465,-32768,-32768, 465, 2314,-32768, 1016,-32768,
1247 10933, 703,-32768,-32768, 1413,-32768, 944, 5002, 1086, 465,
1248 -32768,-32768, 986, 988, 1013, 995,-32768,-32768,-32768,-32768,
1249 731,-32768, 427, 967, 970,-32768,-32768, 1086,-32768,-32768,
1250 647,-32768,-32768, 10933, 11105, 736, 8717,-32768, 500, 8717,
1251 -32768,-32768,-32768, 11019, 6398, 6398, 6398, 6398, 12333,-32768,
1252 -32768,-32768,-32768, 974, 11369, 11369, 8717, 976, 49, 978,
1253 1032, 984,-32768,-32768,-32768,-32768, 10933,-32768, 8808, 8717,
1254 -32768, 11105, 11105, 7914, 11105, 11105, 11105, 11105, 11105, 11105,
1255 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105,
1256 11105, 11105, 11105,-32768, 11105,-32768,-32768,-32768,-32768,-32768,
1257 11105, 11105,-32768,-32768, 2929, 285, 662, 9810,-32768,-32768,
1258 -32768, 1044, 777, 1094, 509, 515, 522, 2194, 606,-32768,
1259 1931, 1931,-32768, 6174, 993, 1024, 1059,-32768,-32768, 313,
1260 10308, 1046,-32768, 805, 431,-32768,-32768, 11105,-32768,-32768,
1261 -32768,-32768,-32768, 192, 460,-32768,-32768, 328,-32768, 1640,
1262 1850,-32768, 1045, 1057,-32768,-32768, 1446, 920,-32768, 9542,
1263 9633,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 58,-32768,
1264 1026, 1029, 591, 1549, 1071, 10933,-32768, 1081,-32768,-32768,
1265 1787, 1616, 1106, 406, 1079, 1082,-32768,-32768, 2205, 12172,
1266 2205, 4040, 2046, 11935,-32768, 1083,-32768,-32768,-32768,-32768,
1267 -32768,-32768,-32768,-32768, 1050, 1051,-32768, 1092,-32768,-32768,
1268 268,-32768,-32768,-32768,-32768, 99, 1218, 1103, 1032,-32768,
1269 -32768,-32768,-32768, 5532, 12333,-32768, 871, 1060, 12288,-32768,
1270 -32768, 1061,-32768, 1067, 496, 4877, 1073,-32768, 75, 7833,
1271 1118, 1120, 525,-32768,-32768,-32768,-32768, 5886, 5886, 6444,
1272 6444, 7304, 805,-32768,-32768, 6312,-32768, 1124,-32768,-32768,
1273 1056, 113,-32768, 2314,-32768,-32768, 465, 1114,-32768, 579,
1274 772,-32768, 1098,-32768, 558, 1134,-32768,-32768, 524,-32768,
1275 -32768, 1482,-32768, 896, 928,-32768, 11105, 11867,-32768, 11867,
1276 122, 122, 315, 557, 6631, 11990, 93, 5893,-32768, 69,
1277 122,-32768, 113, 4217, 10933, 10933,-32768, 10933, 113, 4217,
1278 -32768,-32768,-32768,-32768,-32768,-32768, 637, 637, 637, 328,
1279 1087, 1089, 10584, 1059, 1095, 1097, 1099, 1125, 5395, 1133,
1280 1135, 1138,-32768, 1111,-32768,-32768, 1117,-32768,-32768, 1153,
1281 733, 734, 432, 171, 11105, 1165,-32768, 1171, 1127, 12333,
1282 12333,-32768,-32768, 1178, 12373, 12390, 6994, 3455, 3620, 4256,
1283 3132, 1790, 1790, 1790, 2527, 2527, 1322, 1322, 707, 707,
1284 707,-32768,-32768, 1139, 1141, 1132, 11105, 11019,-32768, 285,
1285 -32768, 9269, 11105,-32768,-32768,-32768, 11105,-32768,-32768, 1152,
1286 11799, 1142, 1162, 1185, 1216,-32768, 11105,-32768, 11105,-32768,
1287 11105, 1948, 3403,-32768,-32768, 3403,-32768, 156, 1948, 1144,
1288 1158,-32768, 1159, 6398, 113,-32768, 113, 4475,-32768, 4217,
1289 1166, 4662, 4662, 8438, 1161, 11191, 1168, 3753, 3684, 2176,
1290 1107, 1175,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 11105,
1291 1446, 1164, 1057,-32768, 12333,-32768, 12333, 1718, 1177, 11455,
1292 -32768, 1181, 1234,-32768, 328,-32768,-32768,-32768,-32768,-32768,
1293 1576, 12226,-32768, 6398, 10933, 3002, 3002, 5308,-32768,-32768,
1294 -32768,-32768, 3275,-32768,-32768,-32768, 1239, 11105,-32768,-32768,
1295 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 268,-32768, 541,
1296 -32768, 794, 552, 11105, 1237,-32768, 641, 652, 661, 1032,
1297 -32768, 83,-32768, 32,-32768,-32768,-32768,-32768,-32768,-32768,
1298 10400,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1120, 1233,
1299 -32768,-32768,-32768, 6398, 968, 968, 1732,-32768,-32768,-32768,
1300 1235,-32768,-32768, 11019,-32768,-32768,-32768,-32768, 1475,-32768,
1301 4217, 12333,-32768, 2422,-32768, 465, 465,-32768,-32768,-32768,
1302 -32768,-32768, 4217, 451, 789, 11105, 1016,-32768, 1242,-32768,
1303 -32768,-32768, 215, 226, 2040, 606, 396, 122, 1245,-32768,
1304 459, 1244, 465, 7092,-32768,-32768,-32768, 465,-32768, 1199,
1305 328, 328, 328,-32768, 1200, 113, 4217, 113, 4217,-32768,
1306 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1217, 1223,
1307 1229, 1230, 1050,-32768, 12221, 9269, 8902, 1215,-32768, 11105,
1308 -32768,-32768,-32768, 1219, 1224, 1225, 6398,-32768,-32768, 1227,
1309 190, 861, 861, 1214, 861,-32768,-32768, 11799, 1319, 10933,
1310 -32768, 1228, 1231, 1232,-32768,-32768,-32768,-32768,-32768,-32768,
1311 -32768,-32768,-32768, 113, 1238,-32768, 1226, 3753,-32768,-32768,
1312 3264, 3264, 5989, 3811,-32768,-32768,-32768,-32768,-32768, 12333,
1313 -32768,-32768, 1236,-32768,-32768, 153, 1240,-32768,-32768,-32768,
1314 -32768,-32768,-32768,-32768, 5660, 3422, 3422, 4112, 4112, 5308,
1315 5772, 54, 3275,-32768, 4229, 12355,-32768,-32768,-32768, 1246,
1316 -32768, 1218,-32768, 11105,-32768, 11105,-32768, 11105,-32768, 1446,
1317 -32768,-32768, 8345, 1308,-32768, 8993,-32768, 10492, 10492, 8532,
1318 182, 1247, 250,-32768, 9269, 9084,-32768,-32768, 155, 2164,
1319 2164, 1688, 1688, 9269,-32768,-32768, 1251, 1254, 944,-32768,
1320 -32768,-32768, 113, 1256,-32768, 1279, 1279, 113, 1257, 11105,
1321 11105, 7597, 465, 6764, 465, 465, 1129, 465, 7497,-32768,
1322 -32768, 7702, 1279,-32768,-32768, 1296,-32768,-32768,-32768, 1266,
1323 -32768, 1270, 11105, 11105, 11105, 11105, 9269,-32768, 1291,-32768,
1324 -32768, 12333,-32768,-32768,-32768, 471, 1225,-32768,-32768,-32768,
1325 -32768,-32768,-32768, 1268,-32768, 1334, 328,-32768,-32768,-32768,
1326 113,-32768,-32768,-32768,-32768,-32768,-32768, 11105,-32768,-32768,
1327 5772, 3422, 3422, 4771, 4771, 7427,-32768, 277, 4229,-32768,
1328 -32768, 1274, 1275, 1277, 1290,-32768, 952, 161, 1329, 810,
1329 819,-32768,-32768,-32768,-32768,-32768, 11105, 1330, 1335, 1336,
1330 10670, 262, 1446, 415, 583,-32768,-32768, 10761, 1385,-32768,
1331 -32768,-32768, 1349,-32768, 7537, 12058, 6768, 8235,-32768,-32768,
1332 1403,-32768,-32768,-32768, 9919,-32768,-32768, 1321, 1381,-32768,
1333 -32768,-32768,-32768, 6398,-32768,-32768, 9269,-32768,-32768,-32768,
1334 -32768,-32768,-32768,-32768,-32768,-32768, 7597, 7597,-32768, 1279,
1335 594, 905, 11105,-32768,-32768,-32768, 1016, 1016, 1279, 1279,
1336 731, 1279,-32768,-32768,-32768, 113, 113,-32768,-32768, 1323,
1337 1324, 1325, 1340,-32768, 9269, 11105,-32768, 471,-32768,-32768,
1338 -32768,-32768, 113, 1344, 4799, 4799, 805, 6024,-32768,-32768,
1339 -32768,-32768, 1290,-32768, 1446,-32768,-32768,-32768,-32768,-32768,
1340 -32768, 665, 665, 1032, 1337, 1345, 7997,-32768,-32768,-32768,
1341 -32768, 1367, 11105, 1377, 1378, 1390, 1569, 1583,-32768, 1032,
1342 -32768,-32768, 1360,-32768,-32768, 1016, 958,-32768, 994, 1016,
1343 10847, 1014, 176,-32768,-32768,-32768,-32768,-32768,-32768, 336,
1344 -32768,-32768, 113, 113,-32768,-32768,-32768, 11105, 11105, 7597,
1345 465, 465,-32768,-32768,-32768, 8103,-32768,-32768, 113, 113,
1346 -32768,-32768,-32768,-32768,-32768, 1347,-32768,-32768,-32768, 7801,
1347 7801, 6295, 2286, 1369,-32768,-32768,-32768, 11019,-32768,-32768,
1348 -32768, 1442, 10215, 8626, 11019, 11105,-32768, 10027,-32768, 1400,
1349 -32768,-32768, 1409,-32768, 1390, 1569,-32768,-32768, 676,-32768,
1350 -32768, 11541, 11541, 9178,-32768,-32768, 1032,-32768,-32768, 7597,
1351 7597,-32768, 1279, 1279,-32768, 9724,-32768,-32768,-32768,-32768,
1352 -32768, 2286, 5469,-32768,-32768, 1357, 410, 1640, 1032, 10121,
1353 -32768,-32768, 83,-32768,-32768, 1406, 1363, 12311, 10027,-32768,
1354 -32768,-32768,-32768, 1290, 81,-32768,-32768,-32768,-32768,-32768,
1355 1365, 12243, 1376, 1373, 1382, 1032,-32768, 1016,-32768,-32768,
1356 -32768,-32768, 673,-32768, 9360,-32768,-32768,-32768,-32768, 1290,
1357 1466, 1436,-32768,-32768,-32768, 365, 268,-32768,-32768,-32768,
1358 465, 83,-32768, 11105, 1437,-32768, 1439,-32768, 1032, 10027,
1359 1414, 667, 1449,-32768,-32768, 186,-32768, 1451,-32768, 1405,
1360 -32768,-32768,-32768,-32768, 11105, 1466, 1463, 1466,-32768, 111,
1361 -32768,-32768,-32768, 9451, 1417, 685,-32768,-32768,-32768, 9269,
1362 1425,-32768, 1529, 1481,-32768,-32768,-32768, 179,-32768, 10121,
1363 1533, 1485,-32768,-32768,-32768, 1546, 1548,-32768
1366 static const short yypgoto[] = {-32768,
1367 1558,-32768, -301, 1393, -385, 29, 8, 1562,-32768, 1531,
1368 -32768,-32768, 265,-32768, 376,-32768, 382,-32768, 121, 901,
1369 37, 31,-32768,-32768, -632,-32768,-32768, 608, 39, 1402,
1370 1136, 1427, -703, -24, -172, 6, 116,-32768,-32768,-32768,
1371 -32768,-32768, 799,-32768,-32768,-32768,-32768,-32768,-32768, 412,
1372 687,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1373 -32768,-32768, 1502, -668, 6906, 1364, 79, -587, -311, -67,
1374 1469, -518,-32768, 1604,-32768, 181,-32768, -1404,-32768, -1267,
1375 -45,-32768, 2063, 1435, -283, 341, -553,-32768, -856, 6731,
1376 1649, 1869, 4947, 1331, -325, -99, -92, 1646, -129, -51,
1377 246,-32768,-32768,-32768, -339,-32768, -153,-32768,-32768, -1273,
1378 -52, -345, 6249, 40, 1515, -124, 146, 347, -191, -4,
1379 -128, -174, -167, -2, 174, 85,-32768, -365,-32768,-32768,
1380 -32768,-32768,-32768, 274, 1342, -57,-32768, 681,-32768,-32768,
1381 -1179, -211, 907,-32768,-32768,-32768,-32768,-32768, 10,-32768,
1382 -32768,-32768,-32768,-32768,-32768, 693, -366,-32768,-32768,-32768,
1383 -32768,-32768,-32768,-32768, 1396,-32768, 418, 611,-32768,-32768,
1384 -32768, 581, -751,-32768,-32768,-32768,-32768,-32768,-32768, 862,
1385 -32768, 408, 1004, 722, 1062, 2110, 109, 22, -471, 1465,
1386 3545, 353,-32768, -494,-32768, 12, 291, 438, -143, 740,
1387 -84, 5317, 1320,-32768, 6267, 2755, 1981, -12, -106,-32768,
1388 1550, -65,-32768, 5689, 3720, -372,-32768, 2404, -165,-32768,
1389 -32768, 327,-32768,-32768, 472, 43, -335,-32768,-32768,-32768,
1390 -32768, -1459,-32768, -1246, -1436,-32768,-32768,-32768,-32768,-32768,
1391 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 51,
1392 -32768,-32768,-32768,-32768,-32768, 106, -1361,-32768,-32768, -56,
1393 -32768,-32768,-32768,-32768, -1447, 48,-32768, 50,-32768, -685,
1394 -361, 672,-32768,-32768,-32768,-32768, -392,-32768, -383, -180,
1395 -32768, 998, 322,-32768, 169,-32768, -234
1399 #define YYLAST 12474
1402 static const short yytable[] = { 59,
1403 444, 443, 196, 632, 224, 420, 423, 435, 445, 695,
1404 122, 36, 780, 761, 1000, 642, 516, 490, 696, 392,
1405 538, 541, 356, 1118, 357, 103, 432, 298, 256, 641,
1406 59, 982, 35, 397, 42, 693, 1043, 59, 1045, 177,
1407 398, 399, 36, 55, 646, 647, 1075, 174, 839, 400,
1408 878, 178, 209, 571, 711, 509, 1373, 1374, 391, 934,
1409 976, 1505, 507, 35, 1451, 42, 1566, 247, 221, 408,
1410 169, 672, 42, 1395, 55, 190, 1562, 1576, 170, 296,
1411 171, 175, 224, 349, 489, 349, 1013, 349, 495, 498,
1412 1206, 610, 256, 497, 260, 594, 701, 702, 224, 1589,
1413 -601, 1466, 349, 349, 528, 610, 738, -1, 1469, 610,
1414 1567, 719, 72, 983, 86, 1200, 948, 364, 1080, 722,
1415 645, 519, 196, 1592, 1085, 89, -2, 766, 1076, 1072,
1416 88, 406, 349, 1014, 349, 93, 1015, 452, 141, 146,
1417 1207, 595, 1601, 72, 802, 90, -601, -601, 15, 57,
1418 72, 256, -415, 913, 224, 163, -295, 528, 253, 1633,
1419 59, -601, 224, 87, 59, 949, 177, 1008, 720, -582,
1420 440, 209, 208, 743, 174, 404, 190, 1077, 178, 224,
1421 57, -415, 629, 633, 636, -415, 1639, 176, 1602, 94,
1422 1618, 1201, 297, 824, -356, 164, 1651, 169, 453, 42,
1423 1477, 1073, 708, 135, 55, 170, 989, 171, 175, 1483,
1424 1484, 1298, 1485, 1364, 1009, -582, 189, 1010, 221, 182,
1425 1427, 190, 998, 1592, 138, 837, 221, 221, -302, 308,
1426 -415, 454, -144, 467, 1145, 1427, 620, 1661, 1505, -365,
1427 1564, 15, 107, -356, 72, 26, 615, 453, 726, 249,
1428 -366, 403, 15, 616, 8, 521, 221, 419, 422, 260,
1429 1299, 137, 1365, 838, 95, 110, 111, 1156, 38, 1428,
1430 1159, 1570, -365, 72, -302, -302, -365, 72, 155, 468,
1431 454, 405, 823, -366, 1536, 607, 1662, -366, -582, -295,
1432 648, 208, 247, 91, 716, 1594, -626, 1279, 363, 38,
1433 108, 471, 474, 109, 642, 221, 130, 131, 680, -365,
1434 57, 1187, 1188, 92, 176, 161, 961, 112, 113, 675,
1435 -366, 147, 1599, -600, 349, 1117, 987, 988, 1171, 459,
1436 522, 881, 420, 423, -582, 485, 935, 296, 162, 1048,
1437 523, 1443, -626, -626, 1629, 247, 460, 695, 882, 432,
1438 58, 698, 187, 349, 651, 1234, 1019, -626, 221, 919,
1439 495, 498, 517, 1579, 1580, 764, 260, 1239, 495, -600,
1440 -600, 952, 1049, 1634, 179, 461, 1050, 883, 516, 39,
1441 498, 58, -304, 1001, -600, 40, 493, 374, 58, 183,
1442 632, 138, 224, 375, 155, 155, 155, 692, 650, 498,
1443 209, 1260, 564, 1262, 565, 920, 921, 199, 518, 1051,
1444 39, 139, 224, 594, 637, 221, 40, 215, 216, 1407,
1445 -120, 224, 15, 14, 7, 127, 128, 10, -304, -304,
1446 295, 411, 683, 768, 8, 9, 413, 59, 224, 177,
1447 155, 76, 738, -298, 1226, 20, 1174, 713, 738, 1147,
1448 297, 178, 18, -120, 23, 449, 620, -120, 129, 595,
1449 638, 240, 21, 736, 962, 241, 820, 72, 26, 127,
1450 128, 1446, 76, 813, 649, 26, 188, 27, 28, 76,
1451 963, 175, 58, -118, 147, 15, 130, 131, 1295, 1296,
1452 -120, 149, 201, -143, 213, 18, 349, 243, 221, 221,
1453 1075, 150, 823, 59, 405, 137, 221, 1008, 1093, 32,
1454 694, 58, 1240, 363, 151, 58, -118, 881, 221, 814,
1455 -118, 130, 131, 971, 88, 629, 633, 199, 636, 349,
1456 1037, 245, 349, 299, 882, 349, 788, 221, 986, 349,
1457 829, 829, 829, 829, 780, 522, 620, 795, 607, 520,
1458 72, 1497, 349, -118, 1009, 896, 138, 1010, 738, -831,
1459 1038, 898, 349, 883, 1406, 349, 360, 759, 900, 695,
1460 633, 1023, 511, 407, 199, 765, 694, 410, 696, 91,
1461 362, 127, 128, 372, 748, 749, 794, 176, 957, 680,
1462 642, 1033, 823, 1035, 376, 693, 958, 937, 1039, 92,
1463 296, 897, 76, 1052, 641, 380, 76, 899, 955, 127,
1464 128, 381, 201, 213, 901, -295, 72, 1024, 512, 692,
1465 116, 117, 118, 791, 8, 9, 736, 95, 96, 97,
1466 401, 26, 377, 130, 131, 495, 969, 528, 974, 975,
1467 127, 128, 571, 1170, 1449, 519, 260, 529, 189, 1053,
1468 127, 128, 90, 796, 1284, 1478, 137, 530, 425, 201,
1469 221, 130, 131, 633, 1199, 127, 128, 88, 363, 122,
1470 1119, 349, 767, 119, 120, 392, 130, 131, 26, 738,
1471 98, 99, 100, 975, 433, 209, 303, 1193, 295, 247,
1472 26, 738, 130, 131, 363, 645, -621, 998, 1195, -7,
1473 101, 221, 130, 131, 999, 58, 529, 1197, 115, 703,
1474 164, 1507, 704, 297, 447, 26, 530, 130, 131, 1613,
1475 448, 155, 155, 155, 707, 738, 252, 738, 1636, 903,
1476 906, 885, 694, 1194, 780, 692, 1135, 1081, 1082, 694,
1477 1083, 886, 1058, 1135, 1196, 221, 1653, 451, 691, 1280,
1478 1281, 233, 1283, 1198, 463, 887, 199, 1508, 95, 110,
1479 111, 411, 1135, 464, 413, 1614, 95, 414, 415, 1255,
1480 1256, 1257, 158, 221, 1637, 824, 501, 811, 520, 95,
1481 110, 111, 513, 59, 91, 59, 89, 91, 58, 592,
1482 593, 209, 1654, 59, -141, -142, 652, 524, 432, 692,
1483 349, 349, 525, 349, 92, 692, 90, 92, 8, 9,
1484 388, 112, 113, 114, 691, 1189, 788, 21, 788, 98,
1485 113, 526, 745, 812, 527, 378, 788, 795, 535, 1044,
1486 544, 745, 112, 113, 416, 199, 545, 795, 221, 222,
1487 223, 201, 89, 199, 224, 92, 546, 379, 694, 15,
1488 1241, 224, 363, -415, 58, 1229, 1230, 1231, 1025, 1026,
1489 130, 131, 90, 89, 127, 128, 794, 137, 794, 519,
1490 224, 1430, 91, 349, 794, 567, 794, 547, 1121, 76,
1491 1431, -415, -415, 90, 252, 116, 117, 118, 158, 158,
1492 158, 564, 92, 565, 1268, 1270, 72, 548, 72, 382,
1493 383, 384, 567, 791, 610, 791, 72, 410, 656, 829,
1494 1057, 1067, 694, 791, 26, 692, 130, 131, 694, 736,
1495 201, 256, 1640, 659, 502, 504, 222, 446, 201, 660,
1496 885, 127, 128, 796, 158, 796, 26, 514, 119, 120,
1497 886, 260, 1040, 796, 385, 801, 116, 770, 771, 91,
1498 772, 295, 386, 387, 887, 662, 663, 692, 89, 829,
1499 349, 483, 484, 692, 1046, 1047, 1479, 491, 492, 92,
1500 691, 8, 9, 773, 1078, 1411, 246, 691, 90, 664,
1501 774, 26, 1135, 130, 131, 1090, 1091, 1092, 1041, 483,
1502 714, 1058, 683, 676, 1270, 491, 715, 26, 18, 119,
1503 120, 824, 199, 1360, 1362, 90, 736, 550, 677, 1135,
1504 1425, 1426, 1366, 256, 92, 1135, 483, 1530, 432, 829,
1505 705, 26, -6, 130, 131, 95, 96, 97, 694, 349,
1506 903, 906, 694, 709, 420, 423, 692, 1220, 703, 704,
1507 1031, 199, 15, 199, 199, 731, 707, 1221, 692, 658,
1508 755, 432, 491, 1531, -578, 1404, 760, -578, 668, 805,
1509 1222, 806, 1287, 15, 420, 423, 807, -415, 808, 59,
1510 694, 658, 483, 1535, 1176, 1177, 694, 815, 98, 99,
1511 816, 833, 692, 835, 692, 836, 691, 201, 199, 720,
1512 224, 838, 916, 215, 216, -415, -415, 893, 1511, 14,
1513 -415, 895, 788, 912, -578, 916, -578, -578, 940, -578,
1514 8, 9, 829, 795, 1528, 941, 914, 224, 950, 694,
1515 -578, 20, -578, 224, 954, 349, 201, 972, 201, 201,
1516 23, 256, 127, 1391, 58, 1135, 58, 951, -578, -578,
1517 956, 20, 964, 253, 58, 965, 978, 1063, 692, 694,
1518 691, 985, 794, -578, 363, 1472, 691, -298, 984, 1057,
1519 695, 694, 130, 131, 453, 224, 1029, 1005, 1006, 1585,
1520 1457, 432, 1462, 201, 1007, 692, 363, 1017, 1459, 999,
1521 1012, -830, 72, 1021, 130, 131, 522, 1028, 1032, 791,
1522 1034, 769, 1036, 1495, 1094, 694, 1095, 694, 1347, 1099,
1523 300, 1511, 1096, 10, 1097, 736, 1098, 1100, 522, 1101,
1524 1339, 824, 1102, 155, -140, 158, 158, 158, 1103, 796,
1525 990, 770, 771, 1511, 1104, 801, 1106, 801, 18, 1107,
1526 1243, 1338, 1064, 1071, 1109, 801, 1245, 1246, 21, 1110,
1527 1243, 1248, 1113, 224, 1246, 1126, 1111, 59, 1112, 1129,
1528 1610, 1138, 1128, 426, 427, 846, 155, 147, 1130, 903,
1529 906, 694, 1131, -183, 991, 1139, 691, 428, 1149, 1140,
1530 691, 26, 1162, 992, 993, 1150, 1146, 429, 137, -183,
1531 788, -183, 1155, 1511, 1165, 32, 1302, 1303, 694, 1168,
1532 430, 795, 1456, 1169, 1456, 1192, 1215, -52, 1225, 894,
1533 1244, 692, -52, 1249, 722, 1250, 1254, 1258, 691, 1263,
1534 994, 72, 501, -52, 691, 1264, 1302, 1303, 694, 1236,
1535 1237, 1265, 1266, 1271, 1282, 523, 1286, 1273, 1025, 1026,
1536 794, 1274, 1275, 1347, 1278, 1288, 1294, 1135, 1289, 1290,
1537 1200, 209, 460, 1347, 1297, 1293, 1251, 1300, 1346, -663,
1538 1347, 1253, 1405, 1310, 1359, 1339, 221, 691, 1368, 829,
1539 72, 1369, 1339, 1372, 1376, 528, 1338, 791, 960, 127,
1540 128, 140, 140, 1398, 156, 1575, 1338, 1399, 1409, 977,
1541 1410, 1419, 1420, 1338, 1421, 1422, 1135, 691, 420, 423,
1542 1429, 1438, -304, 1452, 1439, 1440, 1063, 796, 212, 691,
1543 220, 589, 590, 591, 592, 593, 237, -304, 1454, 129,
1544 846, -304, 1415, 1416, 694, 95, 96, 97, 1467, 26,
1545 58, 130, 131, 155, 155, 155, 1519, -304, 1470, 1514,
1546 1491, 1492, 1493, 691, 1627, 691, 1521, 1515, 1655, -304,
1547 -304, 375, -304, 1522, -304, 224, 72, 1494, 95, 110,
1548 111, 1499, 1529, 155, 155, 155, 72, 1551, 1561, 1571,
1549 363, 1553, 1572, 72, 1587, 1596, 411, 413, 98, 99,
1550 1597, 1603, 1605, -304, -304, 520, 1621, 116, 770, 771,
1551 1608, 1064, 140, 1346, 116, 770, 771, 140, -304, 1609,
1552 156, 156, 156, 1346, 224, 1625, 1631, 692, 1632, 691,
1553 1346, 112, 113, 1557, 773, 1588, 1635, 1638, 1347, 1347,
1554 1557, 801, 1643, 1347, 1642, 1379, 1380, 212, 1389, 1390,
1555 1339, 1392, 1647, 450, 1652, 1339, 691, 745, 26, 349,
1556 119, 120, 1656, 745, 470, 470, 479, 119, 120, 1657,
1557 1659, 1338, 1338, 1664, 1665, 1667, 1338, 1668, 692, 58,
1558 220, 300, 394, 395, 10, 1347, 691, 1, 496, 220,
1559 1481, 1482, 442, 5, 1347, 160, 221, 1339, 1526, 1172,
1560 441, 95, 110, 111, 953, 745, 1339, 712, 95, 110,
1561 111, 1626, 225, 226, 227, 95, 110, 111, 1338, 21,
1562 1557, 439, 703, 704, 1068, 359, 1387, 1338, 58, 707,
1563 140, 503, 26, 1311, 27, 319, 18, 409, 1415, 1416,
1564 694, 228, 410, 1510, 1663, 1347, 297, 1408, 382, 383,
1565 384, 72, 72, 297, 112, 1523, 72, 1339, 1164, 534,
1566 1004, 112, 113, 493, 668, 1163, 32, 506, 112, 1525,
1567 748, 749, 7, 8, 9, 10, 1370, 960, 1338, 1232,
1568 1475, 1476, 691, 745, 1252, 1347, 1393, 1070, 1346, 1346,
1569 943, 694, 1161, 1346, 486, 617, 880, 1339, 72, 26,
1570 156, 386, 387, 390, 1465, 1356, 1641, 72, 153, 1600,
1571 21, 1388, 1649, 1646, 58, 1471, 1388, 1648, 1338, 801,
1572 1214, 8, 9, 26, 58, 27, 28, 199, 0, 199,
1573 0, 58, 0, 297, 0, 1346, 155, 158, 0, 193,
1574 366, 370, 0, 0, 1346, 0, 0, 0, 18, 194,
1575 95, 110, 111, 0, 665, 666, 667, 32, 72, 0,
1576 0, 0, 195, 0, 0, 8, 9, 0, 0, 0,
1577 519, 26, 0, 130, 131, 0, 212, 220, 0, 0,
1578 158, 0, 0, 1542, 1543, 1544, 0, 1220, 0, 1030,
1579 140, 1611, 18, 140, 0, 1346, 0, 1221, 72, 156,
1580 156, 156, 0, 112, 113, 140, 0, 155, 155, 155,
1581 1222, 0, 201, 1460, 201, 26, 0, 130, 131, 300,
1582 394, 395, 10, 1269, 0, 421, 424, 214, 215, 216,
1583 1079, 1220, 0, 0, 14, 1346, 1084, 0, 0, 0,
1584 0, 1221, 470, 1577, 1578, 470, 0, 479, 479, 479,
1585 0, 18, 0, 450, 1222, 0, 20, 21, 0, 470,
1586 496, 220, 0, 0, 450, 23, 0, 0, 496, 0,
1587 153, 0, 27, 319, 0, 0, 0, 0, 691, 0,
1588 699, 450, 0, 0, 295, 745, 214, 215, 216, 58,
1589 58, 295, 0, 14, 58, 585, 586, 587, 588, 589,
1590 590, 591, 592, 593, 32, 0, 0, 0, 156, 0,
1591 18, 156, 596, 0, 1628, 20, 1316, 0, 0, 0,
1592 0, 0, 1269, 0, 23, 728, 156, 156, 156, 691,
1593 0, 0, 734, 0, 745, 0, 58, 0, 0, 938,
1594 199, 156, 1141, 0, 1142, 58, 689, 158, 158, 158,
1595 0, 597, 598, 0, 0, 0, 599, 600, 601, 602,
1596 0, 0, 558, 0, 127, 128, 0, 0, 0, 13,
1597 0, 295, 0, 300, 394, 395, 10, 158, 158, 158,
1598 0, 127, 128, 0, 542, 543, 339, 0, 339, 0,
1599 339, 18, 902, 902, 0, 909, 58, 0, 0, 821,
1600 551, 0, 928, 552, 560, 0, 553, 620, 18, 563,
1601 0, 21, 689, 568, 26, 0, 130, 131, 251, 0,
1602 0, 609, 220, 0, 620, 201, 27, 319, 0, 0,
1603 621, 26, 0, 130, 131, 339, 58, 339, 0, 0,
1604 622, 0, 0, 300, 8, 9, 10, 621, 1444, 1445,
1605 623, 0, 0, 624, 625, 0, 0, 622, 32, 874,
1606 0, 212, 0, 220, 237, 875, 0, 623, 0, 0,
1607 624, 625, 7, 8, 250, 10, 0, 0, 95, 96,
1608 97, 21, 225, 226, 227, 0, 0, 0, 251, 0,
1609 258, 0, 0, 0, 0, 0, 27, 319, 730, 0,
1610 0, 0, 932, 0, 421, 706, 18, 220, 0, 0,
1611 21, 228, 0, 1259, 258, 1261, 0, 251, 0, 470,
1612 470, 479, 479, 479, 0, 27, 28, 470, 32, 26,
1613 0, 98, 99, 229, 0, 496, 0, 0, 450, 0,
1614 0, 1506, 0, 258, 0, 0, 0, 0, 0, 252,
1615 0, 0, 421, 424, 258, 0, 0, 32, 214, 215,
1616 216, 0, 0, 1524, 1527, 14, 0, 212, 689, 0,
1617 558, 1292, 0, 558, 0, 689, 0, 826, 230, 231,
1618 232, 0, 18, 0, 0, 0, 0, 20, 0, 0,
1619 558, 0, 0, 0, 156, 0, 23, 8, 9, 0,
1620 0, 0, 13, 558, 0, 0, 0, 853, 639, 8,
1621 9, 10, 560, 258, 0, 560, 0, 0, 549, 0,
1622 0, 259, 0, 0, 18, 0, 300, 127, 128, 10,
1623 158, 421, 834, 551, 552, 876, 0, 7, 8, 9,
1624 10, 892, 1573, 308, 640, 560, 21, 26, 258, 130,
1625 131, 0, 0, 0, 0, 0, 339, 0, 0, 26,
1626 1371, 130, 131, 1220, 21, 1375, 0, 0, 0, 0,
1627 0, 251, 258, 1221, 902, 21, 0, 902, 0, 27,
1628 319, 620, 0, 0, 689, 0, 1222, 0, 26, 902,
1629 27, 28, 0, 1148, 1148, 928, 0, 0, 434, 0,
1630 0, 158, 158, 158, 966, 0, 927, 0, 0, 0,
1631 0, 32, 0, 0, 967, 0, 0, 0, 1412, 8,
1632 9, 0, 32, 0, 623, 0, 0, 968, 625, 0,
1633 469, 0, 237, 0, 0, 0, 0, 1175, 1175, 1181,
1634 0, 1114, 1115, 488, 0, 0, 18, 1120, 689, 0,
1635 494, 215, 216, 0, 689, 0, 0, 14, 725, 729,
1636 0, 1132, 620, 1133, 258, 1134, 729, 0, 0, 26,
1637 0, 130, 131, 0, 18, 7, 127, 128, 10, 20,
1638 0, 0, 1181, 0, 0, 1500, 0, 0, 23, 0,
1639 0, 0, 0, 0, 0, 1501, 1223, 1223, 1223, 339,
1640 0, 0, 0, 0, 0, 623, 0, 0, 1502, 625,
1641 0, 0, 0, 21, 1167, 0, 0, 450, 450, 0,
1642 251, 0, 258, 1487, 1488, 0, 421, 706, 27, 28,
1643 0, 0, 339, 729, 0, 0, 0, 0, 0, 0,
1644 1498, 0, 0, 0, 450, 0, 0, 0, 0, 450,
1645 0, 0, 252, 0, 1054, 1055, 9, 10, 1190, 0,
1646 32, 0, 0, 0, 689, 339, 0, 725, 689, 0,
1647 850, 851, 0, 855, 856, 857, 858, 859, 860, 861,
1648 862, 863, 864, 865, 866, 867, 868, 869, 870, 871,
1649 872, 873, 21, 729, 0, 0, 0, 0, 927, 729,
1650 1538, 1539, 0, 0, 0, 26, 689, 27, 28, 0,
1651 0, 1235, 689, 1056, 0, 258, 1549, 1550, 127, 128,
1652 1124, 193, 1148, 1148, 928, 0, 0, 0, 0, 729,
1653 0, 194, 0, 0, 0, 0, 729, 0, 0, 32,
1654 0, 258, 0, 0, 195, 0, 0, 1175, 1175, 1301,
1655 1301, 1181, 0, 727, 0, 689, 1175, 558, 945, 947,
1656 727, 620, 0, 0, 0, 0, 0, 0, 26, 1127,
1657 130, 131, 0, 0, 339, 0, 0, 0, 0, 1301,
1658 1301, 1181, 0, 0, 621, 689, 0, 0, 0, 0,
1659 0, 1223, 1223, 1223, 622, 0, 0, 689, 421, 834,
1660 551, 552, 0, 0, 623, 0, 0, 624, 625, 0,
1661 0, 0, 0, 450, 450, 0, 450, 450, 0, 450,
1662 756, 0, 725, 0, 0, 762, 0, 727, 258, 0,
1663 0, 689, 0, 689, 587, 588, 589, 590, 591, 592,
1664 593, 0, 0, 153, 258, 0, 0, 0, 0, 0,
1665 803, 0, 0, 0, 0, 0, 809, 0, 1312, 0,
1666 1313, 0, 1314, 0, 0, 0, 0, 1227, 817, 818,
1667 0, 819, 0, 1175, 1175, 1301, 1301, 1181, 0, 0,
1668 1175, 0, 0, 0, 0, 1042, 1212, 727, 7, 127,
1669 128, 10, 0, 727, 13, 0, 0, 689, 0, 0,
1670 0, 0, 0, 339, 339, 611, 339, 300, 394, 395,
1671 10, 0, 612, 0, 0, 0, 18, 212, 220, 0,
1672 0, 729, 0, 727, 689, 0, 21, 0, 0, 0,
1673 727, 0, 0, 0, 0, 0, 0, 0, 0, 26,
1674 0, 27, 28, 1105, 0, 21, 0, 0, 450, 450,
1675 0, 0, 613, 0, 689, 30, 0, 0, 26, 0,
1676 27, 319, 1414, 258, 0, 31, 917, 918, 0, 0,
1677 0, 917, 0, 32, 0, 729, 729, 0, 33, 0,
1678 725, 729, 0, 0, 0, 0, 1503, 1503, 80, 1503,
1679 0, 0, 614, 0, 0, 729, 0, 729, 104, 729,
1680 0, 0, 0, 0, 0, 0, 1285, 0, 133, 0,
1681 0, 0, 0, 0, 144, 144, 0, 144, 0, 80,
1682 0, 0, 0, 0, 0, 0, 80, 421, 706, 0,
1683 0, 0, 479, 0, 0, 0, 0, 0, 1160, 203,
1684 0, 80, 0, 558, 0, 0, 0, 0, 729, 238,
1685 689, 450, 450, 450, 421, 424, 104, 0, 0, 0,
1686 0, 0, 0, 339, 0, 0, 0, 262, 104, 0,
1687 0, 1503, 1503, 1552, 0, 0, 1186, 0, 0, 0,
1688 0, 0, 0, 0, 421, 1358, 551, 552, 0, 0,
1689 104, 0, 729, 1027, 0, 0, 1400, 1401, 1402, 1403,
1690 0, 0, 0, 479, 479, 479, 0, 0, 0, 729,
1691 0, 450, 450, 0, 0, 727, 0, 0, 133, 0,
1692 80, 0, 0, 0, 144, 144, 0, 0, 0, 412,
1693 144, 0, 0, 144, 144, 144, 0, 0, 0, 258,
1694 0, 258, 0, 0, 0, 0, 0, 0, 0, 80,
1695 1086, 0, 1088, 80, 1242, 0, 0, 0, 0, 203,
1696 80, 0, 8, 9, 1442, 0, 12, 13, 0, 727,
1697 727, 0, 14, 0, 0, 727, 0, 203, 203, 203,
1698 421, 706, 450, 258, 0, 0, 16, 0, 17, 727,
1699 0, 727, 0, 727, 20, 0, 0, 0, 0, 0,
1700 0, 0, 0, 23, 725, 725, 203, 0, 1272, 0,
1701 0, 0, 26, 0, 130, 131, 563, 0, 0, 0,
1702 0, 0, 0, 505, 1122, 1123, 0, 1125, 339, 0,
1703 0, 0, 104, 0, 7, 8, 9, 10, 0, 1496,
1704 13, 0, 727, 144, 0, 0, 689, 0, 0, 0,
1705 0, 879, 0, 0, 904, 907, 0, 0, 1144, 0,
1706 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 21, 0, 0, 258, 1520, 0, 620, 0,
1708 0, 104, 531, 0, 0, 26, 727, 27, 28, 0,
1709 0, 0, 729, 0, 729, 0, 729, 689, 0, 0,
1710 0, 966, 0, 727, 725, 0, 0, 0, 0, 1185,
1711 0, 967, 0, 725, 725, 7, 8, 9, 10, 32,
1712 0, 623, 725, 0, 968, 625, 104, 0, 0, 0,
1713 618, 0, 531, 531, 634, 0, 1212, 0, 1377, 1378,
1714 0, 1555, 0, 80, 0, 0, 0, 853, 1555, 0,
1715 0, 0, 0, 21, 0, 0, 0, 0, 0, 0,
1716 0, 0, 0, 0, 258, 725, 26, 558, 27, 28,
1717 0, 0, 192, 0, 0, 0, 0, 133, 0, 1233,
1718 127, 128, 193, 0, 215, 216, 104, 0, 203, 104,
1719 14, 1238, 194, 258, 0, 0, 729, 0, 0, 0,
1720 32, 0, 0, 144, 0, 195, 144, 0, 421, 1358,
1721 551, 552, 20, 0, 0, 0, 0, 0, 144, 0,
1722 0, 23, 0, 620, 0, 1437, 80, 0, 1555, 0,
1723 26, 0, 130, 131, 582, 583, 584, 585, 586, 587,
1724 588, 589, 590, 591, 592, 593, 621, 1630, 0, 0,
1725 0, 0, 0, 0, 203, 203, 622, 258, 203, 0,
1726 203, 203, 203, 753, 0, 725, 623, 203, 1645, 631,
1727 625, 0, 203, 0, 0, 203, 0, 853, 1291, 0,
1728 0, 1480, 0, 0, 0, 0, 727, 0, 727, 0,
1729 727, 0, 80, 0, 0, 0, 300, 127, 128, 10,
1730 0, 0, 13, 725, 0, 0, 0, 7, 8, 9,
1731 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 1309, 18, 0, 0, 0, 0, 104,
1733 104, 104, 104, 0, 21, 0, 1136, 0, 0, 1137,
1734 620, 0, 0, 0, 0, 21, 0, 26, 0, 27,
1735 319, 1143, 251, 0, 0, 904, 907, 0, 0, 729,
1736 27, 28, 0, 1151, 0, 0, 0, 0, 0, 0,
1737 8, 9, 0, 1152, 12, 13, 1540, 1541, 0, 0,
1738 14, 32, 0, 623, 252, 0, 1153, 625, 0, 104,
1739 727, 531, 32, 1396, 16, 0, 17, 1397, 0, 904,
1740 907, 0, 20, 618, 0, 531, 531, 0, 634, 0,
1741 0, 23, 0, 0, 1568, 929, 0, 0, 0, 931,
1742 26, 0, 130, 131, 603, 0, 0, 258, 0, 0,
1743 0, 0, 1413, 0, 203, 0, 127, 128, 0, 0,
1744 0, 246, 0, 0, 1582, 0, 1418, 0, 0, 0,
1745 0, 0, 0, 0, 7, 8, 9, 10, 133, 604,
1746 246, 0, 0, 18, 0, 133, 0, 0, 0, 0,
1747 0, 0, 0, 203, 973, 203, 203, 238, 634, 620,
1748 0, 0, 18, 0, 0, 0, 26, 0, 130, 131,
1749 0, 0, 21, 0, 0, 0, 0, 0, 620, 0,
1750 0, 0, 621, 0, 0, 26, 0, 27, 28, 0,
1751 0, 1473, 622, 0, 0, 1474, 0, 0, 0, 0,
1752 203, 966, 623, 0, 973, 624, 625, 0, 0, 0,
1753 0, 967, 203, 203, 753, 753, 753, 1489, 1490, 32,
1754 203, 623, 0, 0, 968, 625, 0, 0, 725, 0,
1755 0, 0, 0, 727, 579, 580, 581, 582, 583, 584,
1756 585, 586, 587, 588, 589, 590, 591, 592, 593, 133,
1757 0, 0, 80, 0, 80, 0, 0, 0, 0, 1065,
1758 80, 0, 80, 0, 904, 907, 0, 0, 104, 0,
1759 0, 0, 263, 0, 104, 8, 9, 0, 0, 12,
1760 13, 531, 531, 531, 0, 14, 0, 0, 0, 1136,
1761 1137, 904, 907, 531, 0, 0, 0, 0, 1143, 16,
1762 0, 17, 0, 0, 0, 0, 0, 20, 0, 264,
1763 265, 0, 0, 0, 0, 0, 23, 0, 266, 0,
1764 0, 904, 907, 0, 0, 26, 0, 130, 131, 0,
1765 267, 0, 0, 0, 268, 269, 270, 271, 272, 273,
1766 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1767 284, 285, 286, 287, 288, 0, 0, 289, 290, 291,
1768 0, 0, 292, 0, 0, 293, 531, 531, 0, 0,
1769 531, 0, 0, 531, 0, 0, 0, 0, 104, 0,
1770 0, 294, 531, 0, 104, 0, 929, 929, 929, 0,
1771 0, 0, 531, 0, 1154, 0, 300, 8, 9, 10,
1772 580, 581, 582, 583, 584, 585, 586, 587, 588, 589,
1773 590, 591, 592, 593, 0, 1136, 1137, 904, 907, 0,
1774 0, 0, 1143, 0, 0, 0, 104, 0, 104, 0,
1775 203, 203, 1183, 83, 21, 0, 0, 0, 0, 0,
1776 0, 251, 0, 106, 0, 0, 0, 472, 475, 27,
1777 319, 0, 126, 134, 0, 0, 0, 0, 0, 145,
1778 145, 0, 145, 0, 83, 300, 127, 128, 10, 0,
1779 0, 83, 0, 252, 0, 1183, 0, 0, 0, 0,
1780 0, 32, 0, 0, 145, 0, 83, 0, 104, 753,
1781 753, 753, 0, 18, 239, 0, 0, 0, 0, 0,
1782 0, 248, 0, 21, 0, 104, 0, 0, 1065, 620,
1783 0, 0, 0, 248, 0, 0, 26, 104, 27, 319,
1784 0, 0, 0, 300, 8, 9, 10, 0, 1136, 1137,
1785 1247, 1143, 1151, 0, 0, 0, 0, 0, 80, 0,
1786 0, 0, 1152, 0, 0, 0, 0, 0, 0, 0,
1787 32, 104, 623, 104, 0, 1153, 625, 0, 0, 0,
1788 0, 21, 0, 0, 0, 83, 0, 0, 251, 145,
1789 145, 0, 0, 0, 0, 145, 27, 319, 145, 145,
1790 145, 104, 0, 0, 0, 0, 531, 531, 0, 531,
1791 0, 0, 0, 0, 83, 0, 0, 0, 83, 0,
1792 522, 0, 0, 0, 145, 83, 0, 0, 32, 0,
1793 0, 0, 531, 904, 907, 531, 531, 634, 0, 0,
1794 0, 0, 145, 145, 145, 7, 8, 9, 10, 167,
1795 12, 13, 0, 0, 0, 0, 14, 0, 0, 203,
1796 203, 203, 203, 203, 1183, 753, 0, 0, 0, 203,
1797 16, 145, 17, 18, 19, 0, 0, 0, 20, 0,
1798 0, 0, 0, 21, 0, 0, 0, 23, 0, 0,
1799 168, 0, 1183, 1183, 1183, 0, 26, 0, 27, 28,
1800 0, 0, 0, 0, 753, 753, 753, 753, 145, 0,
1801 0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 31, 0, 0, 0, 0, 0, 203, 0,
1803 32, 0, 0, 144, 0, 33, 80, 0, 0, 0,
1804 34, 0, 0, 0, 0, 746, 248, 145, 747, 0,
1805 472, 475, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 763, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 7, 8, 9, 10, 214, 215, 216, 0,
1808 0, 0, 0, 14, 0, 753, 203, 203, 753, 753,
1809 1417, 248, 0, 203, 0, 619, 0, 145, 145, 635,
1810 18, 0, 0, 0, 644, 20, 0, 0, 83, 0,
1811 21, 0, 0, 0, 23, 0, 620, 0, 0, 0,
1812 0, 0, 0, 26, 0, 27, 28, 0, 0, 203,
1813 973, 203, 0, 0, 0, 0, 0, 0, 0, 966,
1814 0, 0, 681, 0, 7, 8, 9, 10, 104, 967,
1815 13, 248, 0, 145, 248, 0, 0, 32, 0, 623,
1816 8, 9, 968, 625, 12, 246, 0, 0, 145, 0,
1817 14, 145, 18, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 21, 145, 16, 0, 17, 0, 620, 0,
1819 0, 83, 20, 0, 0, 26, 0, 27, 28, 753,
1820 753, 23, 753, 0, 0, 0, 0, 0, 0, 0,
1821 26, 1178, 130, 131, 0, 0, 0, 0, 0, 145,
1822 145, 1179, 0, 145, 0, 145, 145, 145, 145, 32,
1823 0, 623, 145, 0, 1180, 625, 0, 145, 0, 0,
1824 145, 0, 0, 0, 0, 1183, 0, 0, 0, 0,
1825 8, 9, 0, 167, 12, 13, 782, 83, 733, 0,
1826 14, 7, 8, 9, 10, 0, 0, 519, 0, 0,
1827 0, 0, 0, 0, 16, 0, 17, 18, 0, 0,
1828 0, 0, 20, 0, 753, 753, 1417, 753, 0, 18,
1829 0, 23, 0, 0, 248, 248, 248, 248, 0, 21,
1830 26, 0, 130, 131, 0, 620, 0, 0, 0, 0,
1831 0, 0, 26, 0, 27, 28, 1183, 1183, 1183, 0,
1832 0, 0, 746, 747, 472, 475, 0, 0, 966, 0,
1833 763, 0, 0, 0, 0, 0, 753, 104, 967, 0,
1834 0, 0, 203, 0, 0, 0, 32, 0, 623, 0,
1835 0, 968, 625, 0, 248, 0, 145, 581, 582, 583,
1836 584, 585, 586, 587, 588, 589, 590, 591, 592, 593,
1837 145, 145, 0, 635, 0, 0, 0, 0, 0, 0,
1838 930, 166, 0, 7, 8, 9, 10, 167, 12, 13,
1839 0, 0, 0, 644, 14, 0, 0, 0, 0, 145,
1840 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
1841 17, 18, 19, 0, 0, 0, 20, 0, 0, 0,
1842 0, 21, 0, 681, 0, 23, 0, 0, 168, 0,
1843 0, 126, 0, 0, 26, 0, 27, 28, 145, 635,
1844 145, 145, 239, 635, 0, 0, 0, 0, 0, 0,
1845 30, 0, 0, 7, 127, 128, 10, 0, 0, 246,
1846 31, 0, 0, 0, 0, 0, 782, 0, 32, 0,
1847 0, 0, 0, 33, 0, 0, 0, 0, 34, 0,
1848 0, 18, 0, 0, 0, 145, 0, 0, 0, 635,
1849 0, 21, 0, 0, 0, 0, 0, 145, 145, 145,
1850 145, 145, 0, 0, 26, 145, 27, 28, 127, 128,
1851 0, 0, 0, 519, 0, 0, 0, 0, 0, 0,
1852 30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 31, 0, 0, 0, 134, 18, 0, 83, 32, 83,
1854 472, 475, 0, 33, 1066, 83, 0, 83, 0, 0,
1855 0, 620, 0, 248, 0, 0, 0, 0, 26, 248,
1856 130, 131, 0, 0, 0, 0, 145, 145, 145, 0,
1857 0, 0, 0, 0, 621, 0, 0, 0, 145, 0,
1858 0, 0, 0, 0, 622, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 623, 0, 0, 624, 625, 746,
1860 747, 763, 0, 0, 0, 0, 6, 0, 7, 8,
1861 9, 10, 11, 12, 13, 0, 0, 0, 0, 14,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 16, 0, 17, 18, 0, 0, 0,
1864 0, 20, 0, 0, 0, 0, 21, 0, 0, 0,
1865 23, 145, 145, 438, 0, 145, 0, 0, 145, 26,
1866 0, 27, 28, 248, 0, 29, 0, 145, 0, 248,
1867 0, 930, 930, 930, 0, 30, 0, 145, 0, 644,
1868 0, 0, 0, 0, 0, 31, 0, 0, 0, 0,
1869 0, 0, 0, 32, 300, 8, 9, 10, 33, 12,
1870 301, 302, 303, 0, 304, 14, 0, 0, 0, 0,
1871 0, 248, 0, 248, 0, 145, 145, 635, 0, 16,
1872 305, 17, 18, 19, 0, 306, 307, 20, 0, 308,
1873 309, 310, 21, 311, 312, 0, 23, 0, 620, 0,
1874 313, 314, 315, 316, 317, 26, 0, 27, 319, 0,
1875 746, 747, 472, 475, 0, 0, 0, 0, 321, 763,
1876 930, 922, 0, 0, 0, 0, 0, 0, 0, 323,
1877 324, 923, 0, 248, 145, 145, 145, 326, 327, 328,
1878 0, 623, 472, 475, 924, 625, 0, 0, 782, 0,
1879 248, 0, 0, 1066, 472, 475, 0, 0, 0, 0,
1880 0, 330, 248, 300, 8, 9, 10, 0, 0, 13,
1881 0, 0, 0, 0, 7, 127, 128, 10, 0, 0,
1882 13, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1883 0, 18, 8, 9, 0, 0, 248, 246, 248, 0,
1884 0, 21, 18, 0, 0, 0, 0, 620, 0, 0,
1885 0, 0, 21, 0, 26, 0, 27, 319, 0, 18,
1886 0, 0, 0, 0, 0, 26, 248, 27, 28, 0,
1887 1304, 145, 145, 0, 145, 620, 746, 747, 472, 475,
1888 1305, 149, 26, 763, 130, 131, 0, 0, 32, 0,
1889 623, 150, 0, 1306, 625, 0, 0, 145, 1500, 32,
1890 145, 145, 635, 0, 151, 0, 0, 0, 1501, 7,
1891 8, 9, 10, 214, 215, 216, 0, 0, 623, 0,
1892 14, 1502, 625, 0, 145, 145, 145, 145, 145, 635,
1893 145, 0, 0, 0, 145, 0, 0, 18, 0, 0,
1894 0, 782, 20, 0, 0, 0, 0, 21, 0, 0,
1895 0, 23, 0, 620, 0, 0, 0, 930, 930, 930,
1896 26, 0, 27, 28, 0, 0, 0, 0, 0, 145,
1897 145, 145, 145, 0, 0, 0, 966, 0, 782, 0,
1898 51, 0, 0, 0, 0, 0, 967, 0, 0, 746,
1899 747, 0, 763, 145, 32, 0, 623, 0, 145, 1011,
1900 625, 83, 0, 0, 0, 0, 51, 51, 0, 152,
1901 0, 51, 0, 0, 0, 0, 0, 0, 51, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 51, 783, 51, 7, 8, 784, 10, 167, 12,
1904 13, 0, 0, 0, 0, 14, 0, 0, 0, 0,
1905 145, 145, 145, 145, 145, 635, 254, 0, 145, 16,
1906 0, 17, 18, 19, 0, 0, 0, 20, -524, 0,
1907 0, 0, 21, 0, 472, 475, 23, 785, 0, 168,
1908 0, 0, 0, 1448, 0, 26, 0, 27, 28, 0,
1909 0, 786, 0, 787, 145, 635, 145, 0, 0, 0,
1910 0, 30, 0, 0, 0, 0, 472, 475, 0, 396,
1911 396, 31, 51, 248, 0, 0, 51, 51, 0, 32,
1912 254, 0, 51, 0, 33, 152, 152, 152, 0, 0,
1913 0, 0, 431, 0, 0, 0, 0, 0, 0, 0,
1914 -524, 51, 0, 0, 0, 51, 0, 0, 0, 0,
1915 0, 51, 51, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 145, 145, 0, 145, 0, 51,
1917 51, 152, 0, 0, 0, 0, 0, 0, 732, 254,
1918 300, 8, 9, 10, 167, 12, 301, 302, 303, 733,
1919 304, 14, 0, 0, 0, 0, 0, 0, 51, 0,
1920 0, 0, 0, 0, 0, 16, 305, 17, 18, 19,
1921 930, 306, 307, 20, 0, 308, 309, 310, 21, 311,
1922 312, 0, 23, 0, 0, 0, 313, 314, 315, 316,
1923 317, 26, 0, 27, 319, 51, 0, 0, 320, 7,
1924 8, 9, 10, 0, 321, 13, 0, 322, 0, 145,
1925 145, 635, 145, 0, 0, 323, 324, 325, 0, 0,
1926 0, 0, 0, 326, 327, 328, 0, 18, 0, 0,
1927 329, 0, 0, 0, 0, 0, 0, 21, 0, 0,
1928 0, 930, 930, 930, 0, -801, 0, 330, 0, 0,
1929 26, 0, 27, 28, 0, 0, 0, 0, 0, 0,
1930 0, 145, 248, 0, 0, 559, 193, 145, 0, 0,
1931 0, 0, 0, 0, 0, 0, 194, 0, 0, 0,
1932 0, 0, 396, 0, 32, 0, 0, 0, 0, 195,
1933 254, 0, 0, 0, 0, 51, 0, 0, 0, 0,
1934 7, 8, 9, 10, 167, 12, 13, 0, 0, 733,
1935 78, 14, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 16, 0, 17, 18, 396,
1937 0, 0, 0, 20, 0, 0, 78, 78, 21, 78,
1938 51, 78, 23, 0, 620, 0, 0, 0, 78, 0,
1939 0, 26, 0, 27, 28, 51, 0, 0, 51, 0,
1940 0, 78, 0, 78, 431, 431, 431, 1178, 0, 0,
1941 51, 0, 0, 0, 0, 0, 0, 1179, 51, 0,
1942 0, 0, 0, 0, 0, 32, 0, 623, 127, 128,
1943 1180, 625, 215, 216, 0, 0, 0, 0, 14, 0,
1944 0, 0, 0, 0, 0, 0, 51, 51, 0, 0,
1945 51, 0, 152, 152, 152, 431, 0, 0, 0, 51,
1946 20, 0, 0, 0, 51, 0, 0, 51, 0, 23,
1947 0, 620, 0, 0, 0, 0, 0, 0, 26, 0,
1948 130, 131, 78, 0, 51, 0, 78, 78, 0, 0,
1949 0, 0, 78, 0, 621, 78, 78, 78, 0, 0,
1950 0, 0, 8, 9, 622, 167, 12, 13, 0, 0,
1951 1584, 78, 14, 559, 623, 78, 559, 624, 625, 0,
1952 0, 78, 78, 0, 0, 0, 16, 0, 17, 18,
1953 0, 559, 559, 559, 20, 0, 0, 0, 0, 78,
1954 78, 78, 0, 23, 0, 0, 559, 0, 0, 0,
1955 0, 0, 26, 0, 130, 131, 0, 0, 0, 0,
1956 0, 0, 723, 0, 840, 841, 842, 10, 78, 12,
1957 536, 302, 303, 0, 304, 14, 0, 0, 0, 0,
1958 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
1959 305, 17, 0, 19, 254, 306, 307, 20, 0, 308,
1960 309, 310, 21, 311, 312, 78, 23, 559, 0, 0,
1961 313, 314, 315, 316, 317, 26, 0, 843, 844, 724,
1962 0, 0, 320, 0, 0, 0, 51, 0, 321, 0,
1963 0, 322, 8, 9, 0, 0, 12, 246, 0, 323,
1964 324, 325, 14, 0, 0, 0, 0, 326, 327, 328,
1965 396, 0, 0, 0, 329, 845, 16, 396, 17, 0,
1966 0, 0, 0, 0, 20, 51, 51, 51, 51, 0,
1967 1003, 330, 0, 23, 0, 620, 0, 0, 0, 0,
1968 0, 0, 26, 0, 130, 131, 0, 0, 0, 0,
1969 0, 0, 7, 8, 9, 10, 0, 0, 621, 0,
1970 0, 643, 0, 0, 0, 78, 0, 0, 622, 0,
1971 0, 0, 51, 0, 0, 0, 51, 0, 623, 0,
1972 18, 624, 625, 0, 51, 51, 431, 431, 431, 0,
1973 21, 0, 51, 0, 0, 0, 620, 0, 0, 0,
1974 0, 0, 0, 26, 0, 27, 28, 0, 0, 0,
1975 78, 159, 0, 0, 0, 0, 0, 0, 0, 966,
1976 0, 0, 0, 0, 51, 78, 51, 0, 78, 967,
1977 0, 51, 51, 204, 51, 0, 0, 32, 0, 623,
1978 78, 0, 968, 625, 0, 0, 0, 0, 78, 0,
1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 559,
1980 0, 0, 0, 0, 300, 8, 9, 10, 0, 8,
1981 9, 0, 205, 12, 206, 0, 78, 78, 0, 14,
1982 78, 0, 78, 78, 78, 7, 127, 128, 10, 78,
1983 0, 519, 18, 16, 78, 17, 18, 78, 0, 0,
1984 0, 20, 21, 0, 0, 0, 0, 0, 620, 0,
1985 23, 0, 0, 18, 78, 26, 0, 27, 319, 26,
1986 0, 130, 131, 21, 0, 0, 0, 159, 159, 159,
1987 0, 1304, 0, 0, 0, 0, 26, 0, 27, 28,
1988 0, 1305, 0, 0, 0, 0, 0, 0, 0, 32,
1989 0, 623, 30, 204, 1306, 625, 0, 0, 559, 559,
1990 559, 0, 31, 0, 431, 254, 0, 0, 0, 0,
1991 32, 204, 204, 481, 0, 33, 0, 0, 7, 8,
1992 9, 10, 0, 783, 246, 7, 8, 784, 10, 167,
1993 12, 13, 0, 0, 0, 0, 14, 0, 0, 0,
1994 204, 0, 51, 51, 152, 0, 18, 0, 0, 254,
1995 16, 0, 17, 18, 19, 0, 21, 0, 20, -525,
1996 0, 0, 0, 21, 0, 643, 0, 23, 785, 26,
1997 168, 27, 28, 0, 0, 0, 26, 0, 27, 28,
1998 0, 0, 786, 0, 787, 193, 0, 1211, 0, 0,
1999 0, 0, 30, 0, 0, 194, 78, 0, 0, 0,
2000 0, 0, 31, 32, 0, 0, 0, 0, 195, 0,
2001 32, 0, 0, 0, 0, 33, 532, 0, 0, 0,
2002 51, 300, 8, 9, 10, 167, 12, 13, 0, 0,
2003 733, -525, 14, 0, 0, 78, 78, 78, 78, 0,
2004 0, 254, 0, 0, 0, 0, 16, 0, 17, 18,
2005 51, 0, 0, 0, 20, 0, 0, 8, 9, 21,
2006 0, 0, 519, 23, 0, 620, 628, 628, 628, 0,
2007 0, 0, 26, 0, 27, 319, 0, 0, 0, 0,
2008 0, 0, 78, 0, 18, 0, 78, 0, 1151, 0,
2009 0, 0, 0, 0, 78, 78, 0, 0, 1152, 0,
2010 620, 0, 78, 0, 0, 0, 32, 26, 623, 130,
2011 131, 1153, 625, 0, 0, 0, 0, 0, 0, 0,
2012 0, 0, 204, 1500, 431, 0, 0, 431, 431, 431,
2013 254, 0, 0, 1501, 78, 0, 78, 0, 0, 0,
2014 0, 78, 78, 623, 78, 0, 1502, 625, 0, 0,
2015 0, 51, 51, 51, 152, 152, 152, 431, 0, 254,
2016 0, 51, 0, 0, 0, 0, 0, 0, 0, 0,
2017 0, 0, 0, 0, 0, 0, 7, 8, 9, 10,
2018 0, 0, 13, 0, 1211, 1211, 1211, 0, 204, 204,
2019 0, 0, 204, 0, 481, 481, 481, 754, 0, 0,
2020 0, 204, 0, 0, 18, 0, 204, 8, 9, 204,
2021 167, 12, 13, 0, 21, 733, 0, 14, 0, 0,
2022 51, 0, 0, 0, 0, 51, 0, 26, 51, 27,
2023 28, 16, 0, 17, 18, 0, 0, 0, 0, 20,
2024 0, 0, 0, 476, 0, 0, 0, 0, 23, 0,
2025 620, 0, 0, 477, 0, 0, 0, 26, 0, 130,
2026 131, 32, 0, 0, 0, 0, 478, 0, 0, 0,
2027 0, 0, 0, 621, 0, 0, 643, 431, 51, 51,
2028 431, 431, 431, 622, 0, 51, 0, 0, 0, 0,
2029 0, 0, 0, 623, 0, 0, 624, 625, 0, 0,
2030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 78, 78, 78, 0, 0, 0, 0, 0,
2032 0, 51, 51, 51, 0, 888, 0, 0, 8, 9,
2033 0, 167, 12, 13, 0, 0, 733, 0, 14, 628,
2034 628, 0, 628, 0, 7, 8, 9, 10, 0, 628,
2035 519, 202, 16, 0, 17, 18, 0, 1213, 0, 0,
2036 20, 0, 0, 0, 0, 0, 0, 0, 204, 23,
2037 0, 620, 18, 0, 0, 0, 257, 0, 26, 261,
2038 130, 131, 21, 0, 0, 369, 371, 0, 0, 0,
2039 78, 0, 0, 0, 1500, 26, 0, 27, 28, 0,
2040 257, 0, 365, 0, 1501, 0, 0, 970, 0, 970,
2041 970, 193, 628, 0, 623, 0, 0, 1502, 625, 0,
2042 78, 194, 0, 0, 0, 0, 0, 0, 0, 32,
2043 0, 8, 9, 0, 195, 12, 13, 1211, 0, 0,
2044 0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2045 0, 0, 0, 0, 970, 16, 0, 17, 0, 0,
2046 0, 0, 0, 20, 0, 0, 204, 204, 754, 754,
2047 754, 202, 23, 0, 204, 0, 300, 8, 9, 10,
2048 0, 26, 13, 130, 131, 0, 0, 0, 0, 202,
2049 202, 202, 0, 0, 0, 0, 0, 0, 0, 487,
2050 0, 0, 0, 0, 18, 0, 0, 0, 1211, 1211,
2051 1211, 0, 0, 204, 21, 0, 0, 0, 202, 0,
2052 0, 78, 78, 78, 78, 78, 78, 26, 0, 27,
2053 319, 78, 0, 0, 51, 532, 532, 532, 0, 0,
2054 0, 0, 0, 750, 261, 0, 0, 628, 0, 0,
2055 0, 0, 0, 751, 1213, 1213, 1213, 0, 257, 0,
2056 0, 32, 0, 0, 0, 0, 752, 0, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 7, 8, 9,
2058 10, 205, 12, 206, 0, 0, 0, 0, 14, 0,
2059 78, 0, 0, 0, 0, 78, 0, 0, 78, 0,
2060 0, 0, 16, 0, 17, 18, 0, 562, 0, 0,
2061 20, 0, 0, 0, 0, 21, 0, 0, 0, 23,
2062 628, 628, 0, 0, 628, 0, 0, 628, 26, 0,
2063 27, 28, 0, 0, 207, 0, 628, 0, 0, 0,
2064 628, 628, 628, 0, 30, 0, 628, 0, 78, 78,
2065 257, 261, 0, 0, 31, 78, 0, 0, 0, 0,
2066 0, 0, 32, 1054, 1055, 9, 10, 33, 6, 0,
2067 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
2068 688, 14, 0, 0, 970, 970, 1184, 0, 0, 0,
2069 0, 78, 78, 78, 15, 16, 0, 17, 18, 19,
2070 202, 21, 0, 20, 0, 0, 0, 0, 21, 0,
2071 0, 22, 23, 24, 26, 25, 27, 28, 0, 0,
2072 0, 26, 1056, 27, 28, 0, 0, 29, 0, 1184,
2073 193, 0, 0, 0, 0, 0, 0, 30, 0, 0,
2074 194, 0, 0, 754, 754, 754, 735, 31, 32, 0,
2075 0, 0, 0, 195, 0, 32, 0, 0, 0, 0,
2076 33, 0, 204, 0, 0, 34, 202, 202, 0, 0,
2077 202, 0, 202, 202, 202, 202, 0, 0, 0, 202,
2078 0, 0, 0, 0, 202, 0, 0, 202, 0, 0,
2079 0, 0, 0, 0, 0, 0, 1381, 1382, 9, 10,
2080 7, 8, 9, 10, 214, 215, 216, 1213, 0, 0,
2081 0, 14, 0, 0, 0, 822, 0, 0, 825, 0,
2082 0, 0, 827, 828, 830, 831, 832, 0, 18, 0,
2083 0, 0, 0, 20, 21, 562, 0, 0, 21, 0,
2084 888, 888, 23, 888, 620, 0, 0, 26, 849, 27,
2085 28, 26, 0, 27, 28, 1383, 0, 0, 0, 0,
2086 0, 0, 0, 193, 0, 0, 628, 193, 0, 628,
2087 628, 628, 0, 194, 0, 0, 0, 194, 1213, 1213,
2088 1213, 32, 0, 0, 0, 32, 195, 0, 0, 0,
2089 1461, 0, 0, 970, 970, 970, 1184, 1184, 1184, 1307,
2090 0, 0, 908, 970, 78, 0, 0, 0, 0, 908,
2091 0, 0, 0, 0, 0, 0, 7, 127, 128, 10,
2092 0, 0, 7, 8, 9, 10, 1184, 1184, 1184, 0,
2093 257, 261, 0, 0, 0, 0, 0, 0, 754, 754,
2094 754, 754, 0, 0, 18, 0, 202, 0, 0, 102,
2095 18, 0, 0, 0, 21, 0, 0, 0, 121, 102,
2096 21, 0, 204, 0, 0, 102, 102, 26, 102, 27,
2097 28, 0, 0, 26, 0, 27, 28, 0, 0, 0,
2098 0, 0, 0, 30, 0, 202, 0, 202, 202, 476,
2099 0, 0, 0, 31, 0, 0, 0, 0, 0, 477,
2100 235, 32, 0, 0, 0, 0, 33, 32, 0, 0,
2101 0, 0, 478, 0, 0, 0, 0, 0, 688, 1307,
2102 970, 970, 1307, 1307, 1307, 0, 0, 970, 0, 0,
2103 0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
2104 0, 0, 0, 0, 202, 202, 202, 202, 202, 487,
2105 0, 0, 202, 0, 0, 0, 0, 0, 0, 389,
2106 0, 121, 0, 204, 0, 204, 0, 0, 102, 102,
2107 0, 0, 0, 0, 0, 102, 102, 0, 261, 102,
2108 102, 102, 735, 417, 102, 102, 102, 0, 735, 0,
2109 0, 202, 578, 579, 580, 581, 582, 583, 584, 585,
2110 586, 587, 588, 589, 590, 591, 592, 593, 626, 626,
2111 626, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2112 0, 0, 783, 0, 7, 8, 784, 10, 167, 12,
2113 13, 0, 0, 1307, 1307, 14, 1307, 0, 0, 0,
2114 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2115 0, 17, 18, 19, 0, 0, 1116, 20, -527, 0,
2116 0, 0, 21, 0, 0, 0, 23, 785, 0, 168,
2117 0, 0, 0, 235, 102, 26, 0, 27, 28, 481,
2118 0, 786, 0, 787, 0, 0, 0, 0, 0, 0,
2119 0, 30, 849, 0, 102, 0, 0, 0, 735, 0,
2120 0, 31, 908, 0, 0, 0, 0, 0, 0, 32,
2121 0, 0, 0, 0, 33, 0, 0, 0, 1307, 1307,
2122 1307, 1307, 0, 0, 0, 257, 261, 257, 0, 0,
2123 -527, 0, 0, 102, 0, 0, 0, 0, 0, 0,
2124 688, 0, 1173, 0, 0, 0, 908, 0, 0, 0,
2125 481, 481, 481, 0, 0, 0, 0, 0, 0, 0,
2126 0, 0, 202, 202, 1182, 0, 0, 0, 0, 257,
2127 1307, 0, 0, 0, 0, 0, 204, 0, 0, 0,
2128 0, 102, 0, 102, 102, 0, 0, 0, 0, 908,
2129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2130 0, 0, 1217, 0, 0, 0, 0, 1182, 0, 0,
2131 0, 0, 1228, 0, 0, 0, 0, 0, 0, 735,
2132 0, 202, 202, 202, 0, 0, 0, 0, 102, 0,
2133 0, 735, 7, 8, 9, 10, 300, 8, 9, 10,
2134 202, 0, 0, 0, 0, 0, 0, 102, 0, 0,
2135 0, 0, 0, 0, 102, 0, 0, 102, 0, 0,
2136 18, 487, 0, 0, 18, 735, 0, 735, 0, 102,
2137 21, 0, 0, 0, 21, 0, 0, 0, 0, 0,
2138 0, 626, 626, 26, 626, 27, 28, 26, 0, 27,
2139 319, 926, 0, 0, 0, 1277, 0, 0, 0, 193,
2140 0, 0, 0, 750, 0, 0, 0, 0, 0, 194,
2141 0, 0, 0, 751, 0, 0, 0, 32, 0, 0,
2142 0, 32, 195, 0, 0, 0, 752, 0, 0, 0,
2143 0, 908, 0, 0, 0, 0, 0, 0, 0, 0,
2144 102, 0, 775, 0, 0, 0, 0, 0, 0, 626,
2145 257, 626, 626, 0, 626, 0, 0, 0, 908, 300,
2146 8, 9, 10, 167, 12, 13, 102, 0, 733, 0,
2147 14, 202, 202, 202, 202, 202, 1182, 202, 0, 1308,
2148 0, 202, 0, 0, 16, 0, 17, 18, 908, 0,
2149 0, 0, 20, 0, 0, 0, 626, 21, 0, 0,
2150 0, 23, 0, 620, 1182, 1182, 1182, 0, 0, 0,
2151 26, 0, 27, 319, 0, 0, 202, 202, 202, 202,
2152 0, 0, 0, 0, 0, 0, 1304, 0, 0, 1381,
2153 127, 128, 10, 0, 0, 0, 1305, 0, 0, 0,
2154 202, 0, 102, 0, 32, 0, 623, 0, 0, 1306,
2155 625, 0, 0, 102, 102, 0, 102, 102, 0, 0,
2156 0, 0, 0, 0, 0, 0, 0, 21, 0, 7,
2157 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
2158 26, 0, 27, 28, 908, 0, 0, 0, 1383, 626,
2159 0, 0, 0, 0, 0, 0, 30, 202, 202, 202,
2160 202, 202, 1182, 0, 0, 202, 31, 21, 0, 102,
2161 0, 0, 0, 0, 32, 0, 102, 121, 0, 33,
2162 26, 0, 27, 28, 0, 0, 1455, 0, 235, 0,
2163 0, 0, 0, 0, 0, 0, 193, 0, 0, 0,
2164 0, 202, 1217, 202, 0, 0, 194, 0, 0, 0,
2165 0, 0, 775, 0, 32, 0, 0, 18, 0, 195,
2166 0, 0, 626, 626, 0, 0, 626, 0, 0, 626,
2167 0, 0, 0, 0, 0, 0, 0, 0, 626, 0,
2168 0, 0, 926, 926, 926, 0, 0, 0, 626, 572,
2169 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
2170 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
2171 593, 202, 202, 1308, 202, 0, 0, 775, 0, 0,
2172 102, 0, 0, 0, 0, 0, 626, 626, 626, 0,
2173 0, 0, 783, 0, 7, 8, 784, 10, 167, 12,
2174 13, 0, 0, 0, 0, 14, 0, 0, 0, 0,
2175 0, 0, 102, 102, 102, 0, 0, 1182, 0, 16,
2176 0, 17, 18, 19, 102, 0, 0, 20, -526, 0,
2177 0, 926, 21, 0, 0, 0, 23, 785, 0, 168,
2178 908, 0, 0, 0, 0, 26, 0, 27, 28, 0,
2179 0, 786, 0, 787, 0, 0, 202, 202, 1182, 202,
2180 0, 30, 0, 0, 0, 0, 0, 0, 0, 0,
2181 0, 31, 562, 0, 0, 0, 0, 0, 0, 32,
2182 0, 0, 0, 0, 33, 0, 0, 0, 1182, 1182,
2183 1182, 688, 0, 0, 8, 9, 0, 102, 102, 13,
2184 -526, 102, 0, 0, 102, 0, 0, 0, 202, 0,
2185 0, 0, 0, 102, 202, 0, 0, 0, 0, 0,
2186 0, 18, 0, 102, 0, 7, 8, 9, 10, 167,
2187 12, 13, 0, 0, 1016, 0, 14, 620, 0, 0,
2188 0, 0, 0, 0, 26, 0, 130, 131, 0, 0,
2189 16, 0, 17, 18, 0, 0, 0, 0, 20, 0,
2190 1500, 0, 0, 21, 0, 0, 0, 23, 626, 0,
2191 1501, 626, 626, 626, 0, 0, 26, 0, 27, 28,
2192 623, 0, 0, 1502, 625, 0, 0, 0, 0, 0,
2193 0, 0, 30, 0, 0, 626, 626, 626, 626, 626,
2194 626, 626, 31, 0, 852, 626, 300, 8, 9, 10,
2195 32, 12, 536, 302, 303, 33, 304, 14, 0, 0,
2196 0, 0, 0, 0, 0, 0, 0, 0, 926, 926,
2197 926, 16, 305, 17, 775, 19, 0, 306, 307, 20,
2198 0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
2199 0, 0, 313, 314, 315, 316, 317, 26, 0, 27,
2200 319, 102, 0, 0, 320, -791, 0, 0, 0, 0,
2201 321, 0, 0, 322, 0, 0, 0, 0, 0, 0,
2202 0, 323, 324, 325, 0, 0, 0, 0, 0, 326,
2203 327, 328, 0, 0, 0, 0, 329, 0, 1516, 0,
2204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2205 0, 0, 0, 330, 0, 0, 0, 102, 102, 0,
2206 102, 626, 626, 626, 626, 626, 626, 0, 0, 626,
2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2208 0, 0, 0, 102, 0, 0, 102, 102, 1517, 572,
2209 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
2210 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
2211 593, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 0, 0, 0, 0, 775, 0, 0,
2213 0, 0, 0, 1545, 0, -480, -480, -480, -480, -480,
2214 -480, -480, 0, 0, -480, 0, -480, 0, 0, 0,
2215 0, 0, 0, 0, 0, 0, 0, -480, 0, -480,
2216 0, 0, 0, -480, 775, 0, 0, 0, -480, 0,
2217 0, 0, 0, -480, 0, 626, 626, -480, 626, -480,
2218 0, 0, 102, 0, 102, 0, -480, 0, -480, -480,
2219 -480, -480, -480, 0, -480, -480, -480, -480, -480, -480,
2220 -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
2221 -480, -480, -480, -480, -480, -480, -480, 0, -480, -480,
2222 -480, 0, -480, -480, -480, -480, -480, -480, 0, -480,
2223 0, 0, 0, 0, 1546, 0, 0, 0, 0, -480,
2224 -480, -480, 0, -480, 0, 0, 0, 0, 0, 0,
2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2226 626, 626, 626, 626, 0, 1463, 0, 1319, 1320, 1321,
2227 10, 167, 12, 301, 302, 303, 0, 304, 14, 1322,
2228 0, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
2229 1332, 15, 16, 305, 17, 18, 19, 0, 306, 307,
2230 20, 0, 308, 309, 310, 21, 311, 312, 1333, 23,
2231 1334, 0, 626, 313, 314, 315, 316, 317, 26, 0,
2232 1335, 319, 720, 0, 1336, 320, 0, 0, 0, 0,
2233 0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
2234 0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
2235 326, 327, 328, 0, 0, 0, 0, 329, 0, 1337,
2236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2237 0, 0, 0, 1464, 330, 1318, 0, 1319, 1320, 1321,
2238 10, 167, 12, 301, 302, 303, 0, 304, 14, 1322,
2239 0, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
2240 1332, 15, 16, 305, 17, 18, 19, 0, 306, 307,
2241 20, 0, 308, 309, 310, 21, 311, 312, 1333, 23,
2242 1334, 0, 0, 313, 314, 315, 316, 317, 26, 0,
2243 1335, 319, 720, 0, 1336, 320, 0, 0, 0, 0,
2244 0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
2245 0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
2246 326, 327, 328, 0, 0, 0, 0, 329, 554, 1337,
2247 300, 8, 9, 10, 167, 12, 301, 302, 303, 733,
2248 304, 14, 0, 0, 330, 0, 0, 0, 0, 0,
2249 0, 0, 0, 0, 0, 16, 305, 17, 18, 19,
2250 0, 306, 307, 20, 0, 308, 309, 310, 21, 311,
2251 312, 0, 23, 0, 620, 0, 313, 314, 315, 316,
2252 317, 26, 0, 27, 319, -312, 0, 0, 320, 0,
2253 0, 0, 0, 0, 321, 0, 0, 922, 0, 0,
2254 0, 0, 0, 0, 0, 323, 324, 923, 0, 0,
2255 0, 0, 0, 326, 327, 328, 0, 623, 0, 0,
2256 924, 625, 554, 0, 7, 8, 9, 10, 167, 12,
2257 301, 302, 303, 733, 304, 14, 0, 330, 0, 0,
2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2259 305, 17, 18, 19, 0, 306, 307, 20, 0, 308,
2260 309, 310, 21, 311, 312, 0, 23, 0, 620, 0,
2261 313, 314, 315, 316, 317, 26, 0, 27, 28, -312,
2262 0, 0, 320, 0, 0, 0, 0, 0, 321, 0,
2263 0, 1208, 0, 0, 0, 0, 0, 0, 0, 323,
2264 324, 1209, 0, 0, 0, 0, 0, 326, 327, 328,
2265 0, 623, 0, 0, 1210, 625, 852, 0, 300, 8,
2266 9, 10, 167, 12, 301, 302, 303, 0, 304, 14,
2267 0, 330, 0, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 16, 305, 17, 18, 19, 0, 306,
2269 307, 20, 0, 308, 309, 310, 21, 311, 312, 0,
2270 23, 0, 0, 0, 313, 314, 315, 316, 317, 26,
2271 0, 27, 319, 1563, 0, -791, 320, 0, 0, 0,
2272 0, 0, 321, 0, 0, 322, 0, 0, 0, 0,
2273 0, 0, 0, 323, 324, 325, 0, 0, 0, 0,
2274 0, 326, 327, 328, 0, 0, 0, 554, 329, 300,
2275 8, 9, 10, 0, 12, 301, 302, 303, 0, 304,
2276 14, 0, 0, 0, 0, 330, 0, 0, 0, 0,
2277 0, 0, 0, 0, 16, 305, 17, 18, 19, 0,
2278 306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
2279 0, 23, 0, 0, 0, 313, 314, 315, 316, 317,
2280 26, 0, 27, 319, -312, 0, 0, 320, 0, 0,
2281 0, 0, 0, 321, 0, 0, 555, 0, 0, 0,
2282 0, 0, 0, 0, 323, 324, 556, 0, 0, 0,
2283 0, 0, 326, 327, 328, 0, 0, 0, 723, 557,
2284 840, 841, 842, 10, 0, 12, 536, 302, 303, 0,
2285 304, 14, 0, 0, 0, 0, 330, 0, 0, 0,
2286 0, 0, 0, 0, 0, 16, 305, 17, 0, 19,
2287 0, 306, 307, 20, 0, 308, 309, 310, 21, 311,
2288 312, 0, 23, 0, 0, 0, 313, 314, 315, 316,
2289 317, 26, 0, 843, 844, 724, 0, 0, 320, 0,
2290 0, 0, 0, 0, 321, 0, 0, 322, 0, 0,
2291 0, 0, 0, 0, 0, 323, 324, 325, 0, 0,
2292 0, 0, 0, 326, 327, 328, 0, 0, 0, 0,
2293 329, 845, 723, 0, 840, 841, 842, 10, 0, 12,
2294 536, 302, 303, 0, 304, 14, 0, 330, 0, 0,
2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2296 305, 17, 0, 19, 0, 306, 307, 20, 0, 308,
2297 309, 310, 21, 311, 312, 0, 23, 0, 0, 0,
2298 313, 314, 315, 316, 317, 26, 0, 843, 844, 724,
2299 0, 0, 320, 0, 0, 0, 0, 0, 321, 0,
2300 0, 322, 0, 0, 0, 0, 0, 0, 0, 323,
2301 324, 325, 0, 0, 0, 0, 0, 326, 327, 328,
2302 0, 0, 0, 723, 329, 840, 841, 842, 10, 0,
2303 12, 536, 302, 303, 0, 304, 14, 0, 0, 0,
2304 -484, 330, 0, 0, 0, 0, 0, 0, 0, 0,
2305 16, 305, 17, 0, 19, 0, 306, 307, 20, 0,
2306 308, 309, 310, 21, 311, 312, 0, 23, 0, 0,
2307 0, 313, 314, 315, 316, 317, 26, 0, 843, 844,
2308 724, 0, 0, 320, 0, 0, 0, 0, 0, 321,
2309 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
2310 323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
2311 328, 0, 0, 0, 723, 329, 300, 8, 9, 10,
2312 0, 12, 536, 302, 303, 0, 304, 14, 0, 0,
2313 0, 1357, 330, 0, 0, 0, 0, 0, 0, 0,
2314 0, 16, 305, 17, 0, 19, 0, 306, 307, 20,
2315 0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
2316 0, 0, 313, 314, 315, 316, 317, 26, 0, 27,
2317 319, 724, 0, 0, 320, 0, 0, 0, 0, 0,
2318 321, 0, 0, 322, 0, 0, 0, 0, 0, 0,
2319 0, 323, 324, 325, 0, 0, 0, 0, 0, 326,
2320 327, 328, 0, 0, 0, 0, 329, 0, 554, 0,
2321 7, 8, 9, 10, 1361, 12, 301, 302, 303, 0,
2322 304, 14, 0, 330, 0, 0, 0, 0, 0, 0,
2323 0, 0, 0, 0, 0, 16, 305, 17, 18, 19,
2324 0, 306, 307, 20, 0, 308, 309, 310, 21, 311,
2325 312, 0, 23, 0, 0, 0, 313, 314, 315, 316,
2326 317, 26, 0, 27, 28, -312, 0, 0, 320, 0,
2327 0, 0, 0, 0, 321, 0, 0, 1532, 0, 0,
2328 0, 0, 0, 0, 0, 323, 324, 1533, 0, 0,
2329 0, 0, 0, 326, 327, 328, 0, 0, 0, 723,
2330 1534, 300, 8, 9, 10, 0, 12, 536, 302, 303,
2331 0, 304, 14, 0, 0, 0, 0, 330, 0, 0,
2332 0, 0, 0, 0, 0, 0, 16, 305, 17, 0,
2333 19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
2334 311, 312, 0, 23, 0, 0, 0, 313, 314, 315,
2335 316, 317, 26, 0, 27, 319, 724, 0, 0, 320,
2336 0, 0, 0, 0, 0, 321, 0, 0, 322, 0,
2337 0, 0, 0, 0, 0, 0, 323, 324, 325, 0,
2338 0, 0, 0, 0, 326, 327, 328, 0, 0, 0,
2339 1616, 329, 300, 8, 9, 10, 0, 12, 301, 302,
2340 303, 0, 304, 14, 0, 0, 0, 0, 330, 0,
2341 0, 0, 0, 0, 0, 0, 0, 16, 305, 17,
2342 0, 19, 0, 306, 307, 20, 0, 308, 309, 310,
2343 21, 311, 312, 0, 23, 0, 0, 0, 313, 314,
2344 315, 316, 317, 26, 0, 27, 319, 0, 0, -196,
2345 320, 0, 0, 0, 0, 0, 321, 0, 0, 322,
2346 0, 0, 0, 0, 0, 0, 0, 323, 324, 325,
2347 0, 0, 0, 0, 0, 326, 327, 328, 0, 0,
2348 0, 852, 329, 300, 8, 9, 10, 0, 12, 536,
2349 302, 303, 0, 304, 14, 0, 0, 0, 0, 330,
2350 0, 0, 0, 0, 0, 0, 0, 0, 16, 305,
2351 17, 0, 19, 0, 306, 307, 20, 0, 308, 309,
2352 310, 21, 311, 312, 0, 23, 0, 0, 0, 313,
2353 314, 315, 316, 317, 26, 0, 27, 319, 0, 0,
2354 0, 320, 0, 0, 0, 0, 0, 321, 0, 0,
2355 322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
2356 325, 0, 0, 0, 0, 0, 326, 327, 328, 0,
2357 0, 0, 944, 329, 300, 8, 9, 10, 0, 12,
2358 536, 302, 303, 0, 304, 14, 0, 0, -791, 0,
2359 330, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2360 305, 17, 0, 19, 0, 306, 307, 20, 0, 308,
2361 309, 310, 21, 311, 312, 0, 23, 0, 0, 0,
2362 313, 314, 315, 316, 317, 26, 0, 27, 319, 0,
2363 0, 0, 320, 0, 0, 0, 0, 0, 321, 0,
2364 0, 322, 0, 0, 0, 0, 0, 0, 0, 323,
2365 324, 325, 0, 0, 0, 0, 0, 326, 327, 328,
2366 0, 0, 0, 946, 329, 300, 8, 9, 10, 0,
2367 12, 536, 302, 303, 0, 304, 14, 0, 0, 0,
2368 0, 330, 0, 0, 0, 0, 0, 0, 0, 0,
2369 16, 305, 17, 0, 19, 0, 306, 307, 20, 0,
2370 308, 309, 310, 21, 311, 312, 0, 23, 0, 0,
2371 0, 313, 314, 315, 316, 317, 26, 0, 27, 319,
2372 0, 0, 0, 320, 0, 0, 0, 0, 0, 321,
2373 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
2374 323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
2375 328, 0, 0, 0, 1581, 329, 300, 8, 9, 10,
2376 0, 12, 536, 302, 303, 0, 304, 14, 0, 0,
2377 0, 0, 330, 0, 0, 0, 0, 0, 0, 0,
2378 0, 16, 305, 17, 0, 19, 0, 306, 307, 20,
2379 0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
2380 0, 0, 313, 314, 315, 316, 317, 26, 0, 27,
2381 319, 0, 0, 0, 320, 0, 0, 0, 0, 0,
2382 321, 0, 0, 322, 0, 0, 0, 0, 0, 0,
2383 0, 323, 324, 325, 0, 0, 0, 0, 0, 326,
2384 327, 328, 300, 8, 9, 10, 329, 12, 536, 302,
2385 303, 0, 304, 14, 0, 0, 0, 0, 0, 0,
2386 0, 0, 0, 330, 0, 0, 0, 16, 305, 17,
2387 0, 19, 0, 306, 307, 20, 0, 308, 309, 310,
2388 21, 311, 312, 0, 23, 0, 0, 0, 313, 314,
2389 315, 316, 317, 26, 0, 27, 319, 0, 0, 0,
2390 320, 0, 0, 0, 0, 0, 321, 0, 0, 322,
2391 0, 0, 0, 0, 0, 0, 0, 323, 324, 325,
2392 0, 0, 0, 0, 0, 326, 327, 328, 0, 0,
2393 0, 0, 329, 0, 0, 0, 0, 0, 0, 0,
2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 330,
2395 891, 1319, 1320, 1321, 10, 167, 12, 301, 302, 303,
2396 0, 304, 14, 1322, 0, 1323, 1324, 1325, 1326, 1327,
2397 1328, 1329, 1330, 1331, 1332, 15, 16, 305, 17, 18,
2398 19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
2399 311, 312, 1333, 23, 1334, 0, 0, 313, 314, 315,
2400 316, 317, 26, 0, 1335, 319, 720, 0, 1336, 320,
2401 0, 0, 0, 0, 0, 321, 0, 0, 322, 0,
2402 0, 0, 0, 0, 0, 0, 323, 324, 325, 0,
2403 0, 0, 0, 0, 326, 327, 328, 0, 0, 0,
2404 0, 329, 0, 1337, 0, 0, 0, 0, 0, 0,
2405 0, 0, 0, 0, 0, 0, 0, 1468, 330, 1319,
2406 1320, 1321, 10, 167, 12, 301, 302, 303, 0, 304,
2407 14, 1322, 0, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
2408 1330, 1331, 1332, 15, 16, 305, 17, 18, 19, 0,
2409 306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
2410 1333, 23, 1334, 0, 0, 313, 314, 315, 316, 317,
2411 26, 0, 1335, 319, 720, 0, 1336, 320, 0, 0,
2412 0, 0, 0, 321, 0, 0, 322, 0, 0, 0,
2413 0, 0, 0, 0, 323, 324, 325, 0, 0, 0,
2414 0, 0, 326, 327, 328, 0, 0, 0, 0, 329,
2415 0, 1337, 0, 1319, 1320, 1321, 10, 167, 12, 301,
2416 302, 303, 0, 304, 14, 1322, 330, 1323, 1324, 1325,
2417 1326, 1327, 1328, 1329, 1330, 1331, 1332, 15, 16, 305,
2418 17, 18, 19, 0, 306, 307, 20, 0, 308, 309,
2419 310, 21, 311, 312, 1333, 23, 1334, 0, 0, 313,
2420 314, 315, 316, 317, 26, 0, 1335, 319, 1590, 0,
2421 1336, 320, 0, 0, 0, 0, 0, 321, 0, 0,
2422 322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
2423 325, 0, 0, 0, 0, 0, 326, 327, 328, 0,
2424 0, 0, 0, 329, 0, 1337, 0, 1319, 1320, 1321,
2425 10, 167, 12, 301, 302, 303, 0, 304, 14, 1322,
2426 330, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
2427 1332, 15, 16, 305, 17, 18, 19, 0, 306, 307,
2428 20, 0, 308, 309, 310, 21, 311, 312, 1333, 23,
2429 1334, 0, 0, 313, 314, 315, 316, 317, 26, 0,
2430 1335, 319, 0, 0, 1336, 320, 0, 0, 0, 0,
2431 0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
2432 0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
2433 326, 327, 328, 0, 0, 0, 0, 329, 0, 1337,
2434 300, 8, 9, 10, 167, 12, 301, 302, 303, 733,
2435 304, 14, 0, 0, 330, 0, 0, 0, 0, 0,
2436 0, 0, 0, 0, 0, 16, 305, 17, 18, 19,
2437 0, 306, 307, 20, 0, 308, 309, 310, 21, 311,
2438 312, 0, 23, 0, 620, 0, 313, 314, 315, 316,
2439 317, 26, 0, 27, 319, 0, 0, 0, 320, 0,
2440 0, 0, 0, 0, 321, 0, 0, 922, 0, 0,
2441 0, 0, 0, 0, 0, 323, 324, 923, 0, 0,
2442 0, 0, 0, 326, 327, 328, 0, 623, 0, 0,
2443 924, 625, 7, 8, 9, 10, 167, 12, 301, 302,
2444 303, 733, 304, 14, 0, 0, 0, 330, 0, 0,
2445 0, 0, 0, 0, 0, 0, 0, 16, 305, 17,
2446 18, 19, 0, 306, 307, 20, 0, 308, 309, 310,
2447 21, 311, 312, 0, 23, 0, 620, 0, 313, 314,
2448 315, 316, 317, 26, 0, 27, 28, 0, 0, 0,
2449 320, 0, 0, 0, 0, 0, 321, 0, 0, 1208,
2450 0, 0, 0, 0, 0, 0, 0, 323, 324, 1209,
2451 0, 0, 0, 0, 0, 326, 327, 328, 0, 623,
2452 0, 0, 1210, 625, 7, 8, 9, 10, 0, 12,
2453 301, 302, 303, 0, 304, 14, 0, 0, 0, 330,
2454 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2455 305, 17, 18, 19, 0, 306, 307, 20, 0, 308,
2456 309, 310, 21, 311, 312, 0, 23, 0, 620, 0,
2457 313, 314, 315, 316, 317, 26, 0, 27, 28, 0,
2458 0, 0, 0, 0, 0, 0, 0, 0, 321, 0,
2459 0, 1208, 0, 0, 0, 0, 0, 0, 0, 323,
2460 324, 1209, 0, 0, 0, 0, 0, 326, 327, 328,
2461 0, 623, 0, 0, 1210, 625, 300, 8, 9, 10,
2462 0, 12, 536, 302, 303, 0, 304, 14, 0, 0,
2463 0, 330, 0, 0, 0, 0, 0, 0, 0, 0,
2464 0, 16, 305, 17, 18, 19, 0, 306, 307, 20,
2465 0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
2466 0, 0, 313, 314, 315, 316, 317, 26, 0, 27,
2467 319, 0, 0, 0, 320, 0, 0, 0, 0, 0,
2468 321, 0, 0, 555, 0, 0, 0, 0, 0, 0,
2469 0, 323, 324, 556, 0, 0, 0, 0, 0, 326,
2470 327, 328, 300, 8, 9, 10, 557, 12, 536, 302,
2471 303, 0, 304, 14, 0, 0, 0, 0, 0, 0,
2472 0, 0, 0, 330, 0, 0, 0, 16, 305, 17,
2473 0, 19, 0, 306, 307, 20, 0, 308, 309, 310,
2474 21, 311, 312, 0, 23, 0, 0, 0, 313, 314,
2475 315, 316, 317, 26, 0, 27, 319, 0, 0, 1441,
2476 320, 0, 0, 0, 0, 0, 321, 0, 0, 322,
2477 0, 0, 0, 0, 0, 0, 0, 323, 324, 325,
2478 0, 0, 0, 0, 0, 326, 327, 328, 0, 0,
2479 0, 0, 329, 300, 8, 9, 10, 167, 12, 301,
2480 302, 303, 0, 304, 14, 0, 0, 0, 0, 330,
2481 0, 0, 0, 0, 0, 0, 0, 0, 16, 305,
2482 17, 18, 19, 0, 306, 307, 20, 0, 308, 309,
2483 310, 21, 311, 312, 0, 23, 0, 0, 0, 313,
2484 314, 315, 316, 317, 26, 0, 27, 319, 0, 0,
2485 0, 0, 0, 0, 0, 0, 0, 321, 0, 0,
2486 322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
2487 325, 0, 0, 0, 0, 0, 326, 327, 328, 7,
2488 8, 9, 10, 329, 12, 536, 302, 303, 0, 304,
2489 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490 330, 0, 0, 0, 16, 305, 17, 18, 19, 0,
2491 306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
2492 0, 23, 0, 0, 0, 313, 314, 315, 316, 317,
2493 26, 0, 27, 28, 0, 0, 0, 320, 0, 0,
2494 0, 0, 0, 321, 0, 0, 1532, 0, 0, 0,
2495 0, 0, 0, 0, 323, 324, 1533, 0, 0, 0,
2496 0, 0, 326, 327, 328, 300, 8, 9, 10, 1534,
2497 12, 301, 302, 303, 0, 304, 14, 0, 0, 0,
2498 0, 0, 0, 0, 0, 0, 330, 0, 0, 0,
2499 16, 305, 17, 0, 19, 0, 306, 307, 20, 0,
2500 308, 309, 310, 21, 311, 312, 0, 23, 0, 0,
2501 0, 313, 314, 315, 316, 317, 26, 0, 318, 319,
2502 0, 0, 0, 320, 0, 0, 0, 0, 0, 321,
2503 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
2504 323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
2505 328, 300, 8, 9, 10, 329, 12, 301, 302, 303,
2506 0, 304, 14, 0, 0, 0, 0, 0, 0, 0,
2507 0, 0, 330, 0, 0, 0, 16, 305, 17, 0,
2508 19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
2509 311, 312, 0, 23, 0, 0, 0, 313, 314, 315,
2510 316, 317, 26, 0, 27, 319, 0, 0, 0, 320,
2511 0, 0, 0, 0, 0, 321, 0, 0, 322, 0,
2512 0, 0, 0, 0, 0, 0, 323, 324, 325, 0,
2513 0, 0, 0, 0, 326, 327, 328, 300, 8, 9,
2514 10, 329, 12, 536, 302, 303, 0, 304, 14, 0,
2515 0, 0, 0, 0, 0, 0, 0, 0, 330, 0,
2516 0, 0, 16, 305, 17, 0, 19, 0, 306, 307,
2517 20, 0, 308, 309, 310, 21, 311, 312, 0, 23,
2518 0, 0, 0, 313, 314, 315, 316, 317, 26, 0,
2519 27, 319, 0, 0, 0, 320, 0, 0, 0, 0,
2520 0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
2521 0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
2522 326, 327, 328, 300, 8, 9, 10, 329, 12, 536,
2523 302, 303, 0, 304, 14, 0, 0, 0, 0, 0,
2524 0, 0, 0, 0, 330, 0, 0, 0, 16, 305,
2525 17, 0, 19, 0, 306, 307, 20, 0, 308, 309,
2526 310, 21, 311, 312, 0, 23, 0, 0, 0, 313,
2527 314, 315, 316, 317, 26, 0, 27, 319, 569, 0,
2528 0, 0, 0, 0, 0, 0, 0, 321, 0, 0,
2529 322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
2530 325, 0, 0, 0, 0, 0, 326, 327, 328, 300,
2531 8, 9, 10, 570, 12, 536, 302, 303, 0, 304,
2532 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2533 330, 0, 0, 0, 16, 305, 17, 0, 19, 0,
2534 306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
2535 0, 23, 0, 0, 0, 313, 314, 315, 316, 317,
2536 26, 0, 27, 319, 0, 0, 0, 0, 0, 0,
2537 0, 0, 0, 321, 0, 0, 322, 0, 0, 0,
2538 0, 0, 0, 0, 323, 324, 325, 0, 0, 0,
2539 0, 0, 326, 327, 328, 0, 0, 0, 0, 329,
2540 608, 300, 8, 9, 10, 0, 12, 536, 302, 303,
2541 0, 304, 14, 0, 0, 0, 330, 0, 0, 0,
2542 0, 0, 0, 0, 0, 0, 16, 305, 17, 18,
2543 19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
2544 311, 312, 0, 23, 0, 0, 0, 313, 314, 315,
2545 316, 317, 26, 0, 27, 319, 0, 0, 0, 0,
2546 0, 0, 0, 0, 0, 321, 0, 0, 555, 0,
2547 0, 0, 0, 0, 0, 0, 323, 324, 556, 0,
2548 0, 0, 0, 0, 326, 327, 328, 1166, 8, 9,
2549 10, 557, 12, 536, 302, 303, 0, 304, 14, 0,
2550 0, 0, 0, 0, 0, 0, 0, 0, 330, 0,
2551 0, 0, 16, 305, 17, 0, 19, 0, 306, 307,
2552 20, 0, 308, 309, 310, 21, 311, 312, 0, 23,
2553 0, 0, 0, 313, 314, 315, 316, 317, 26, 0,
2554 27, 319, 0, 0, 0, 320, 0, 0, 0, 0,
2555 0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
2556 0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
2557 326, 327, 328, 7, 8, 9, 10, 329, 12, 301,
2558 302, 303, 0, 304, 14, 0, 0, 0, 0, 0,
2559 0, 0, 0, 0, 330, 0, 0, 0, 16, 305,
2560 17, 18, 19, 0, 306, 307, 20, 0, 308, 309,
2561 310, 21, 311, 312, 0, 23, 0, 0, 0, 313,
2562 314, 315, 316, 317, 26, 0, 27, 28, 0, 0,
2563 0, 0, 0, 0, 0, 0, 0, 321, 0, 0,
2564 1532, 0, 0, 0, 0, 0, 0, 0, 323, 324,
2565 1533, 0, 0, 0, 0, 0, 326, 327, 328, 300,
2566 8, 9, 10, 1534, 12, 536, 302, 303, 0, 304,
2567 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2568 330, 0, 0, 0, 16, 305, 17, 0, 19, 0,
2569 306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
2570 0, 23, 0, 0, 0, 313, 314, 315, 316, 317,
2571 26, 0, 27, 319, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 321, 0, 0, 322, 0, 0, 0,
2573 0, 0, 0, 0, 323, 324, 325, 0, 0, 0,
2574 0, 0, 326, 327, 328, 300, 8, 9, 10, 537,
2575 12, 536, 302, 303, 0, 304, 14, 0, 0, 0,
2576 0, 0, 0, 0, 0, 0, 330, 0, 0, 0,
2577 16, 305, 17, 0, 19, 0, 306, 307, 20, 0,
2578 308, 309, 310, 21, 311, 312, 0, 23, 0, 0,
2579 0, 313, 314, 315, 316, 317, 26, 0, 27, 319,
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
2581 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
2582 323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
2583 328, 300, 8, 9, 10, 540, 12, 536, 302, 303,
2584 0, 304, 14, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 330, 0, 0, 0, 16, 305, 17, 0,
2586 19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
2587 311, 312, 0, 23, 0, 0, 0, 313, 314, 315,
2588 316, 317, 26, 0, 27, 319, 0, 0, 0, 0,
2589 0, 0, 0, 0, 0, 321, 0, 783, 322, 7,
2590 8, 784, 10, 167, 12, 13, 323, 324, 325, 0,
2591 14, 0, 0, 0, 326, 327, 328, 0, 0, 0,
2592 0, 329, 0, 0, 16, 0, 17, 18, 19, 0,
2593 0, 0, 20, 0, 0, 0, 0, 21, 330, 0,
2594 0, 23, 785, 0, 168, 0, 0, 0, 0, 0,
2595 26, 0, 27, 28, 0, 0, 786, 0, 787, 0,
2596 0, 0, 0, 0, 0, 0, 30, -387, 8, 9,
2597 -387, -387, 12, 246, 0, 0, 31, 0, 14, 0,
2598 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
2599 0, 0, 16, 0, 17, -387, 0, 0, 0, 0,
2600 20, 0, 0, 0, 0, -387, 0, 0, 0, 23,
2601 0, 620, 0, 0, 0, 0, 0, 0, 26, 0,
2602 130, 131, 1054, 8, 784, 10, 205, 12, 206, 0,
2603 0, 0, 0, 14, 621, 0, 0, 0, 0, 0,
2604 0, 0, 0, 0, 622, 0, 0, 16, 0, 17,
2605 18, 0, -387, 0, 623, 20, 0, 624, 625, 0,
2606 21, 0, 0, 0, 23, 0, 0, 0, 0, 0,
2607 0, 0, 0, 26, 0, 27, 28, 0, 0, 0,
2608 0, 1056, 0, 0, 0, 0, 0, 0, 0, 30,
2609 7, 8, 9, 10, 205, 12, 206, 0, 0, 31,
2610 0, 14, 0, 0, 0, 0, 0, 32, 0, 0,
2611 0, 0, 33, 0, 0, 16, 0, 17, 18, 0,
2612 0, 0, 0, 20, 0, 0, 0, 0, 21, 0,
2613 0, 0, 23, 0, 0, 0, 0, 0, 0, 0,
2614 0, 26, 0, 27, 28, 0, 0, 1458, 0, 7,
2615 8, 9, 10, 167, 12, 13, 0, 30, 0, 0,
2616 14, 0, 0, 0, 0, 0, 0, 31, 0, 0,
2617 0, 0, 0, 0, 16, 32, 17, 18, 0, 0,
2618 33, 0, 20, 0, 0, 0, 0, 21, 0, 0,
2619 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
2620 26, 0, 27, 28, 7, 8, 9, 10, 205, 12,
2621 206, 0, 0, 0, 0, 14, 30, 0, 0, 0,
2622 0, 0, 0, 0, 0, 0, 31, 0, 0, 16,
2623 0, 17, 18, 0, 32, 0, 0, 20, 0, 33,
2624 0, 0, 21, 0, 0, 0, 23, 0, 0, 0,
2625 0, 0, 0, 0, 0, 26, 0, 27, 28, 8,
2626 9, 0, 167, 12, 13, 0, 0, 0, 0, 14,
2627 0, 30, 0, 0, 0, 0, 0, 0, 0, 0,
2628 0, 31, 0, 16, 0, 17, 18, 0, 0, 32,
2629 0, 20, 0, 0, 33, 0, 0, 0, 0, 0,
2630 682, 0, 0, 168, 0, 0, 0, 0, 0, 26,
2631 0, 130, 131, 572, 573, 574, 575, 576, 577, 578,
2632 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
2633 589, 590, 591, 592, 593, 572, 573, 574, 575, 576,
2634 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
2635 587, 588, 589, 590, 591, 592, 593, 0, 0, 0,
2636 0, 1267, 0, 0, 0, 0, 0, 0, 0, 0,
2637 0, 0, 0, 0, 0, 0, 661, 0, 0, 1604,
2638 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
2639 582, 583, 584, 585, 586, 587, 588, 589, 590, 591,
2640 592, 593, 1598, 572, 573, 574, 575, 576, 577, 578,
2641 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
2642 589, 590, 591, 592, 593, 572, 573, 574, 575, 576,
2643 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
2644 587, 588, 589, 590, 591, 592, 593, 572, 573, 574,
2645 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
2646 585, 586, 587, 588, 589, 590, 591, 592, 593, 576,
2647 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
2648 587, 588, 589, 590, 591, 592, 593, 577, 578, 579,
2649 580, 581, 582, 583, 584, 585, 586, 587, 588, 589,
2653 static const short yycheck[] = { 4,
2654 175, 174, 55, 349, 62, 149, 150, 161, 176, 402,
2655 23, 4, 507, 485, 718, 355, 251, 209, 402, 126,
2656 304, 305, 90, 880, 92, 14, 156, 84, 80, 355,
2657 35, 700, 4, 133, 4, 402, 788, 42, 790, 42,
2658 133, 134, 35, 4, 356, 357, 798, 42, 567, 134,
2659 604, 42, 57, 337, 440, 247, 1236, 1237, 124, 647,
2660 693, 1423, 243, 35, 1338, 35, 1514, 72, 59, 137,
2661 42, 373, 42, 1253, 35, 54, 1513, 1537, 42, 84,
2662 42, 42, 140, 88, 209, 90, 12, 92, 217, 218,
2663 59, 11, 144, 218, 83, 47, 408, 409, 156, 1559,
2664 47, 1348, 107, 108, 296, 11, 468, 0, 1355, 11,
2665 1515, 1, 4, 701, 60, 33, 59, 106, 804, 455,
2666 355, 9, 175, 1560, 810, 54, 0, 493, 60, 37,
2667 74, 136, 137, 59, 139, 74, 62, 1, 30, 31,
2668 109, 93, 62, 35, 510, 74, 93, 94, 27, 4,
2669 42, 203, 31, 625, 212, 58, 108, 349, 80, 1619,
2670 165, 108, 220, 109, 169, 108, 169, 12, 58, 47,
2671 165, 176, 57, 61, 169, 136, 155, 109, 169, 237,
2672 35, 60, 348, 349, 350, 64, 1, 42, 108, 48,
2673 1595, 109, 84, 539, 58, 98, 1644, 169, 62, 169,
2674 1380, 109, 108, 74, 165, 169, 108, 169, 169, 1389,
2675 1390, 59, 1392, 59, 59, 93, 94, 62, 209, 46,
2676 60, 200, 717, 1660, 54, 561, 217, 218, 47, 38,
2677 109, 95, 62, 47, 920, 60, 47, 59, 1600, 25,
2678 1514, 27, 93, 58, 136, 54, 346, 62, 460, 76,
2679 25, 136, 27, 346, 4, 5, 247, 149, 150, 248,
2680 108, 74, 108, 108, 3, 4, 5, 936, 4, 109,
2681 939, 1518, 58, 165, 93, 94, 62, 169, 33, 93,
2682 95, 136, 93, 58, 109, 342, 108, 62, 47, 108,
2683 358, 176, 297, 54, 448, 1563, 47, 108, 48, 35,
2684 93, 193, 194, 93, 644, 296, 56, 57, 393, 95,
2685 165, 980, 981, 74, 169, 93, 683, 56, 57, 385,
2686 95, 31, 1569, 47, 329, 879, 712, 713, 961, 47,
2687 80, 47, 476, 477, 93, 94, 648, 342, 60, 25,
2688 262, 80, 93, 94, 1612, 350, 64, 740, 64, 479,
2689 4, 404, 60, 358, 359, 1041, 740, 108, 349, 47,
2690 489, 490, 47, 1543, 1544, 490, 355, 1053, 497, 93,
2691 94, 673, 58, 1620, 107, 93, 62, 93, 613, 4,
2692 509, 35, 47, 719, 108, 4, 213, 58, 42, 25,
2693 736, 54, 450, 64, 149, 150, 151, 402, 359, 528,
2694 405, 1087, 75, 1089, 77, 93, 94, 55, 93, 95,
2695 35, 74, 470, 47, 47, 406, 35, 8, 9, 1276,
2696 25, 479, 27, 14, 3, 4, 5, 6, 93, 94,
2697 84, 141, 402, 501, 4, 5, 146, 442, 496, 442,
2698 195, 4, 804, 108, 1032, 36, 965, 442, 810, 921,
2699 342, 442, 31, 58, 45, 182, 47, 62, 44, 93,
2700 93, 58, 41, 468, 59, 62, 534, 359, 54, 4,
2701 5, 57, 35, 47, 359, 54, 54, 56, 57, 42,
2702 75, 442, 136, 25, 194, 27, 56, 57, 1157, 1158,
2703 95, 70, 55, 62, 57, 31, 501, 62, 489, 490,
2704 1252, 80, 93, 508, 359, 74, 497, 12, 820, 88,
2705 402, 165, 62, 48, 93, 169, 58, 47, 509, 93,
2706 62, 56, 57, 689, 74, 691, 692, 175, 694, 534,
2707 7, 58, 537, 74, 64, 540, 508, 528, 711, 544,
2708 545, 546, 547, 548, 1039, 80, 47, 508, 605, 259,
2709 442, 1408, 557, 95, 59, 47, 54, 62, 920, 64,
2710 37, 47, 567, 93, 94, 570, 109, 483, 47, 962,
2711 736, 47, 47, 136, 222, 491, 468, 140, 962, 54,
2712 58, 4, 5, 93, 476, 477, 508, 442, 681, 674,
2713 930, 772, 93, 774, 54, 962, 681, 650, 779, 74,
2714 605, 93, 165, 47, 930, 54, 169, 93, 676, 4,
2715 5, 54, 175, 176, 93, 108, 508, 93, 93, 624,
2716 3, 4, 5, 508, 4, 5, 631, 3, 4, 5,
2717 75, 54, 54, 56, 57, 764, 689, 829, 691, 692,
2718 4, 5, 926, 955, 62, 9, 635, 70, 94, 93,
2719 4, 5, 74, 508, 1126, 62, 74, 80, 108, 222,
2720 651, 56, 57, 829, 1000, 4, 5, 74, 48, 682,
2721 882, 676, 499, 56, 57, 782, 56, 57, 54, 1041,
2722 56, 57, 58, 736, 108, 690, 11, 47, 342, 694,
2723 54, 1053, 56, 57, 48, 930, 108, 1192, 47, 109,
2724 14, 692, 56, 57, 717, 359, 70, 47, 22, 419,
2725 98, 47, 422, 605, 60, 54, 80, 56, 57, 47,
2726 93, 476, 477, 478, 434, 1087, 80, 1089, 62, 621,
2727 622, 70, 624, 93, 1229, 740, 902, 805, 806, 631,
2728 808, 80, 795, 909, 93, 736, 62, 3, 402, 1122,
2729 1123, 65, 1125, 93, 60, 94, 404, 93, 3, 4,
2730 5, 471, 928, 111, 474, 93, 3, 4, 5, 1081,
2731 1082, 1083, 33, 764, 108, 1121, 74, 47, 488, 3,
2732 4, 5, 6, 788, 54, 790, 54, 54, 442, 83,
2733 84, 796, 108, 798, 62, 62, 359, 94, 928, 804,
2734 805, 806, 94, 808, 74, 810, 74, 74, 4, 5,
2735 124, 56, 57, 58, 468, 988, 788, 41, 790, 56,
2736 57, 62, 470, 93, 111, 54, 798, 788, 93, 790,
2737 93, 479, 56, 57, 148, 483, 74, 798, 829, 59,
2738 60, 404, 54, 491, 902, 74, 74, 54, 740, 27,
2739 62, 909, 48, 31, 508, 1036, 1037, 1038, 750, 751,
2740 56, 57, 74, 54, 4, 5, 788, 74, 790, 9,
2741 928, 62, 54, 878, 796, 59, 798, 74, 883, 442,
2742 62, 59, 60, 74, 80, 3, 4, 5, 149, 150,
2743 151, 75, 74, 77, 1106, 1107, 788, 74, 790, 3,
2744 4, 5, 59, 788, 11, 790, 798, 470, 109, 914,
2745 795, 796, 804, 798, 54, 920, 56, 57, 810, 924,
2746 483, 973, 1626, 108, 238, 239, 59, 60, 491, 59,
2747 70, 4, 5, 788, 195, 790, 54, 251, 56, 57,
2748 80, 930, 47, 798, 48, 508, 3, 4, 5, 54,
2749 7, 605, 56, 57, 94, 108, 108, 962, 54, 964,
2750 965, 59, 60, 968, 791, 792, 62, 59, 60, 74,
2751 624, 4, 5, 30, 801, 1287, 9, 631, 74, 108,
2752 37, 54, 1148, 56, 57, 817, 818, 819, 93, 59,
2753 60, 1044, 962, 74, 1206, 59, 60, 54, 31, 56,
2754 57, 1347, 650, 1215, 1216, 74, 1011, 321, 54, 1175,
2755 59, 60, 1224, 1065, 74, 1181, 59, 60, 1148, 1024,
2756 108, 54, 109, 56, 57, 3, 4, 5, 920, 1034,
2757 922, 923, 924, 109, 1178, 1179, 1041, 70, 748, 749,
2758 767, 689, 27, 691, 692, 111, 756, 80, 1053, 363,
2759 108, 1181, 59, 60, 9, 1267, 111, 12, 372, 74,
2760 93, 74, 1130, 27, 1208, 1209, 54, 31, 74, 1074,
2761 962, 385, 59, 60, 966, 967, 968, 111, 56, 57,
2762 111, 108, 1087, 108, 1089, 108, 740, 650, 736, 58,
2763 1148, 108, 47, 8, 9, 59, 60, 54, 1434, 14,
2764 64, 8, 1074, 111, 59, 47, 61, 62, 64, 64,
2765 4, 5, 1117, 1074, 1450, 59, 93, 1175, 93, 1011,
2766 75, 36, 77, 1181, 54, 1130, 689, 690, 691, 692,
2767 45, 1183, 4, 5, 788, 1301, 790, 109, 93, 94,
2768 60, 36, 64, 1065, 798, 64, 64, 795, 1153, 1041,
2769 804, 60, 1074, 108, 48, 1367, 810, 108, 108, 1044,
2770 1553, 1053, 56, 57, 62, 1223, 111, 108, 108, 1553,
2771 1345, 1301, 1347, 736, 108, 1180, 48, 740, 1346, 1192,
2772 108, 64, 1074, 64, 56, 57, 80, 64, 75, 1074,
2773 93, 505, 59, 1405, 108, 1087, 108, 1089, 1203, 75,
2774 3, 1537, 108, 6, 108, 1210, 108, 75, 80, 75,
2775 1203, 1557, 75, 968, 62, 476, 477, 478, 108, 1074,
2776 3, 4, 5, 1559, 108, 788, 62, 790, 31, 59,
2777 1057, 1203, 795, 796, 108, 798, 1063, 1064, 41, 62,
2778 1067, 1068, 111, 1301, 1071, 94, 108, 1252, 108, 88,
2779 1586, 108, 111, 56, 57, 569, 1011, 967, 74, 1151,
2780 1152, 1153, 47, 59, 47, 108, 920, 70, 108, 111,
2781 924, 54, 109, 56, 57, 108, 111, 80, 74, 75,
2782 1252, 77, 108, 1619, 108, 88, 1178, 1179, 1180, 109,
2783 93, 1252, 1345, 60, 1347, 59, 64, 59, 64, 613,
2784 59, 1306, 64, 59, 1640, 62, 108, 108, 962, 93,
2785 93, 1203, 74, 75, 968, 93, 1208, 1209, 1210, 1046,
2786 1047, 93, 93, 109, 111, 1247, 8, 109, 1220, 1221,
2787 1252, 108, 108, 1338, 108, 108, 111, 1503, 108, 108,
2788 33, 1346, 64, 1348, 109, 108, 1073, 108, 1203, 54,
2789 1355, 1078, 62, 108, 108, 1348, 1347, 1011, 108, 1364,
2790 1252, 108, 1355, 108, 108, 1557, 1338, 1252, 682, 4,
2791 5, 30, 31, 108, 33, 1529, 1348, 108, 111, 693,
2792 47, 108, 108, 1355, 108, 96, 1552, 1041, 1532, 1533,
2793 62, 62, 12, 9, 60, 60, 1044, 1252, 57, 1053,
2794 59, 80, 81, 82, 83, 84, 65, 27, 60, 44,
2795 724, 31, 1304, 1305, 1306, 3, 4, 5, 16, 54,
2796 1074, 56, 57, 1178, 1179, 1180, 60, 47, 108, 93,
2797 108, 108, 108, 1087, 1607, 1089, 60, 93, 1650, 59,
2798 60, 64, 62, 54, 64, 1503, 1338, 108, 3, 4,
2799 5, 108, 93, 1208, 1209, 1210, 1348, 111, 17, 60,
2800 48, 93, 54, 1355, 108, 60, 1176, 1177, 56, 57,
2801 108, 107, 97, 93, 94, 1185, 11, 3, 4, 5,
2802 108, 1044, 141, 1338, 3, 4, 5, 146, 108, 108,
2803 149, 150, 151, 1348, 1552, 60, 60, 1502, 60, 1153,
2804 1355, 56, 57, 1508, 30, 1558, 93, 59, 1513, 1514,
2805 1515, 1074, 108, 1518, 64, 1242, 1243, 176, 1245, 1246,
2806 1513, 1248, 60, 182, 108, 1518, 1180, 1175, 54, 1534,
2807 56, 57, 108, 1181, 193, 194, 195, 56, 57, 11,
2808 60, 1513, 1514, 11, 60, 0, 1518, 0, 1553, 1203,
2809 209, 3, 4, 5, 6, 1560, 1210, 0, 217, 218,
2810 1387, 1388, 170, 2, 1569, 35, 1557, 1560, 1448, 962,
2811 169, 3, 4, 5, 674, 1223, 1569, 442, 3, 4,
2812 5, 1606, 7, 8, 9, 3, 4, 5, 1560, 41,
2813 1595, 165, 1302, 1303, 796, 94, 1244, 1569, 1252, 1309,
2814 259, 238, 54, 1192, 56, 57, 31, 139, 1500, 1501,
2815 1502, 36, 1175, 1433, 1660, 1620, 1508, 1277, 3, 4,
2816 5, 1513, 1514, 1515, 56, 57, 1518, 1620, 948, 299,
2817 724, 56, 57, 1460, 948, 943, 88, 242, 56, 57,
2818 1532, 1533, 3, 4, 5, 6, 1229, 961, 1620, 1039,
2819 1377, 1378, 1306, 1301, 1074, 1660, 1249, 796, 1513, 1514,
2820 657, 1553, 941, 1518, 200, 346, 605, 1660, 1560, 54,
2821 329, 56, 57, 124, 1348, 1204, 1626, 1569, 33, 1574,
2822 41, 1244, 1640, 1636, 1338, 1364, 1249, 1638, 1660, 1252,
2823 1019, 4, 5, 54, 1348, 56, 57, 1345, -1, 1347,
2824 -1, 1355, -1, 1595, -1, 1560, 1461, 968, -1, 70,
2825 107, 108, -1, -1, 1569, -1, -1, -1, 31, 80,
2826 3, 4, 5, -1, 7, 8, 9, 88, 1620, -1,
2827 -1, -1, 93, -1, -1, 4, 5, -1, -1, -1,
2828 9, 54, -1, 56, 57, -1, 405, 406, -1, -1,
2829 1011, -1, -1, 1480, 1481, 1482, -1, 70, -1, 762,
2830 419, 1588, 31, 422, -1, 1620, -1, 80, 1660, 428,
2831 429, 430, -1, 56, 57, 434, -1, 1532, 1533, 1534,
2832 93, -1, 1345, 1346, 1347, 54, -1, 56, 57, 3,
2833 4, 5, 6, 1107, -1, 150, 151, 7, 8, 9,
2834 803, 70, -1, -1, 14, 1660, 809, -1, -1, -1,
2835 -1, 80, 471, 1540, 1541, 474, -1, 476, 477, 478,
2836 -1, 31, -1, 482, 93, -1, 36, 41, -1, 488,
2837 489, 490, -1, -1, 493, 45, -1, -1, 497, -1,
2838 195, -1, 56, 57, -1, -1, -1, -1, 1502, -1,
2839 60, 510, -1, -1, 1508, 1503, 7, 8, 9, 1513,
2840 1514, 1515, -1, 14, 1518, 76, 77, 78, 79, 80,
2841 81, 82, 83, 84, 88, -1, -1, -1, 537, -1,
2842 31, 540, 47, -1, 1611, 36, 1200, -1, -1, -1,
2843 -1, -1, 1206, -1, 45, 461, 555, 556, 557, 1553,
2844 -1, -1, 468, -1, 1552, -1, 1560, -1, -1, 60,
2845 1558, 570, 915, -1, 917, 1569, 402, 1178, 1179, 1180,
2846 -1, 86, 87, -1, -1, -1, 91, 92, 93, 94,
2847 -1, -1, 329, -1, 4, 5, -1, -1, -1, 9,
2848 -1, 1595, -1, 3, 4, 5, 6, 1208, 1209, 1210,
2849 -1, 4, 5, -1, 306, 307, 88, -1, 90, -1,
2850 92, 31, 621, 622, -1, 624, 1620, -1, -1, 535,
2851 322, -1, 631, 325, 329, -1, 328, 47, 31, 331,
2852 -1, 41, 468, 335, 54, -1, 56, 57, 48, -1,
2853 -1, 343, 651, -1, 47, 1558, 56, 57, -1, -1,
2854 70, 54, -1, 56, 57, 137, 1660, 139, -1, -1,
2855 80, -1, -1, 3, 4, 5, 6, 70, 1332, 1333,
2856 90, -1, -1, 93, 94, -1, -1, 80, 88, 595,
2857 -1, 690, -1, 692, 693, 601, -1, 90, -1, -1,
2858 93, 94, 3, 4, 5, 6, -1, -1, 3, 4,
2859 5, 41, 7, 8, 9, -1, -1, -1, 48, -1,
2860 80, -1, -1, -1, -1, -1, 56, 57, 465, -1,
2861 -1, -1, 638, -1, 429, 430, 31, 736, -1, -1,
2862 41, 36, -1, 1086, 104, 1088, -1, 48, -1, 748,
2863 749, 750, 751, 752, -1, 56, 57, 756, 88, 54,
2864 -1, 56, 57, 58, -1, 764, -1, -1, 767, -1,
2865 -1, 1425, -1, 133, -1, -1, -1, -1, -1, 80,
2866 -1, -1, 477, 478, 144, -1, -1, 88, 7, 8,
2867 9, -1, -1, 1447, 1448, 14, -1, 796, 624, -1,
2868 537, 1144, -1, 540, -1, 631, -1, 544, 103, 104,
2869 105, -1, 31, -1, -1, -1, -1, 36, -1, -1,
2870 557, -1, -1, -1, 823, -1, 45, 4, 5, -1,
2871 -1, -1, 9, 570, -1, -1, -1, 574, 3, 4,
2872 5, 6, 537, 203, -1, 540, -1, -1, 320, -1,
2873 -1, 82, -1, -1, 31, -1, 3, 4, 5, 6,
2874 1461, 556, 557, 555, 556, 602, -1, 3, 4, 5,
2875 6, 608, 1526, 38, 39, 570, 41, 54, 238, 56,
2876 57, -1, -1, -1, -1, -1, 358, -1, -1, 54,
2877 1233, 56, 57, 70, 41, 1238, -1, -1, -1, -1,
2878 -1, 48, 262, 80, 903, 41, -1, 906, -1, 56,
2879 57, 47, -1, -1, 740, -1, 93, -1, 54, 918,
2880 56, 57, -1, 922, 923, 924, -1, -1, 159, -1,
2881 -1, 1532, 1533, 1534, 70, -1, 631, -1, -1, -1,
2882 -1, 88, -1, -1, 80, -1, -1, -1, 1291, 4,
2883 5, -1, 88, -1, 90, -1, -1, 93, 94, -1,
2884 191, -1, 961, -1, -1, -1, -1, 966, 967, 968,
2885 -1, 877, 878, 204, -1, -1, 31, 883, 804, -1,
2886 7, 8, 9, -1, 810, -1, -1, 14, 460, 461,
2887 -1, 897, 47, 899, 354, 901, 468, -1, -1, 54,
2888 -1, 56, 57, -1, 31, 3, 4, 5, 6, 36,
2889 -1, -1, 1011, -1, -1, 70, -1, -1, 45, -1,
2890 -1, -1, -1, -1, -1, 80, 1025, 1026, 1027, 501,
2891 -1, -1, -1, -1, -1, 90, -1, -1, 93, 94,
2892 -1, -1, -1, 41, 950, -1, -1, 1046, 1047, -1,
2893 48, -1, 412, 1396, 1397, -1, 751, 752, 56, 57,
2894 -1, -1, 534, 535, -1, -1, -1, -1, -1, -1,
2895 1413, -1, -1, -1, 1073, -1, -1, -1, -1, 1078,
2896 -1, -1, 80, -1, 3, 4, 5, 6, 994, -1,
2897 88, -1, -1, -1, 920, 567, -1, 569, 924, -1,
2898 572, 573, -1, 575, 576, 577, 578, 579, 580, 581,
2899 582, 583, 584, 585, 586, 587, 588, 589, 590, 591,
2900 592, 593, 41, 595, -1, -1, -1, -1, 823, 601,
2901 1473, 1474, -1, -1, -1, 54, 962, 56, 57, -1,
2902 -1, 60, 968, 62, -1, 505, 1489, 1490, 4, 5,
2903 887, 70, 1151, 1152, 1153, -1, -1, -1, -1, 631,
2904 -1, 80, -1, -1, -1, -1, 638, -1, -1, 88,
2905 -1, 531, -1, -1, 93, -1, -1, 1176, 1177, 1178,
2906 1179, 1180, -1, 461, -1, 1011, 1185, 924, 660, 661,
2907 468, 47, -1, -1, -1, -1, -1, -1, 54, 891,
2908 56, 57, -1, -1, 676, -1, -1, -1, -1, 1208,
2909 1209, 1210, -1, -1, 70, 1041, -1, -1, -1, -1,
2910 -1, 1220, 1221, 1222, 80, -1, -1, 1053, 923, 924,
2911 922, 923, -1, -1, 90, -1, -1, 93, 94, -1,
2912 -1, -1, -1, 1242, 1243, -1, 1245, 1246, -1, 1248,
2913 481, -1, 724, -1, -1, 486, -1, 535, 618, -1,
2914 -1, 1087, -1, 1089, 78, 79, 80, 81, 82, 83,
2915 84, -1, -1, 968, 634, -1, -1, -1, -1, -1,
2916 511, -1, -1, -1, -1, -1, 517, -1, 1194, -1,
2917 1196, -1, 1198, -1, -1, -1, -1, 1034, 529, 530,
2918 -1, 532, -1, 1302, 1303, 1304, 1305, 1306, -1, -1,
2919 1309, -1, -1, -1, -1, 787, 1011, 595, 3, 4,
2920 5, 6, -1, 601, 9, -1, -1, 1153, -1, -1,
2921 -1, -1, -1, 805, 806, 1, 808, 3, 4, 5,
2922 6, -1, 8, -1, -1, -1, 31, 1346, 1347, -1,
2923 -1, 823, -1, 631, 1180, -1, 41, -1, -1, -1,
2924 638, -1, -1, -1, -1, -1, -1, -1, -1, 54,
2925 -1, 56, 57, 845, -1, 41, -1, -1, 1377, 1378,
2926 -1, -1, 48, -1, 1210, 70, -1, -1, 54, -1,
2927 56, 57, 1298, 753, -1, 80, 627, 628, -1, -1,
2928 -1, 632, -1, 88, -1, 877, 878, -1, 93, -1,
2929 882, 883, -1, -1, -1, -1, 1415, 1416, 4, 1418,
2930 -1, -1, 88, -1, -1, 897, -1, 899, 14, 901,
2931 -1, -1, -1, -1, -1, -1, 1128, -1, 24, -1,
2932 -1, -1, -1, -1, 30, 31, -1, 33, -1, 35,
2933 -1, -1, -1, -1, -1, -1, 42, 1152, 1153, -1,
2934 -1, -1, 1461, -1, -1, -1, -1, -1, 940, 55,
2935 -1, 57, -1, 1210, -1, -1, -1, -1, 950, 65,
2936 1306, 1480, 1481, 1482, 1179, 1180, 72, -1, -1, -1,
2937 -1, -1, -1, 965, -1, -1, -1, 83, 84, -1,
2938 -1, 1500, 1501, 1502, -1, -1, 978, -1, -1, -1,
2939 -1, -1, -1, -1, 1209, 1210, 1208, 1209, -1, -1,
2940 106, -1, 994, 754, -1, -1, 1263, 1264, 1265, 1266,
2941 -1, -1, -1, 1532, 1533, 1534, -1, -1, -1, 1011,
2942 -1, 1540, 1541, -1, -1, 823, -1, -1, 134, -1,
2943 136, -1, -1, -1, 140, 141, -1, -1, -1, 145,
2944 146, -1, -1, 149, 150, 151, -1, -1, -1, 929,
2945 -1, 931, -1, -1, -1, -1, -1, -1, -1, 165,
2946 811, -1, 813, 169, 1056, -1, -1, -1, -1, 175,
2947 176, -1, 4, 5, 1331, -1, 8, 9, -1, 877,
2948 878, -1, 14, -1, -1, 883, -1, 193, 194, 195,
2949 1305, 1306, 1611, 973, -1, -1, 28, -1, 30, 897,
2950 -1, 899, -1, 901, 36, -1, -1, -1, -1, -1,
2951 -1, -1, -1, 45, 1106, 1107, 222, -1, 1110, -1,
2952 -1, -1, 54, -1, 56, 57, 1338, -1, -1, -1,
2953 -1, -1, -1, 239, 885, 886, -1, 888, 1130, -1,
2954 -1, -1, 248, -1, 3, 4, 5, 6, -1, 1406,
2955 9, -1, 950, 259, -1, -1, 1502, -1, -1, -1,
2956 -1, 93, -1, -1, 621, 622, -1, -1, 919, -1,
2957 -1, -1, 31, -1, -1, -1, -1, -1, -1, -1,
2958 -1, -1, 41, -1, -1, 1065, 1443, -1, 47, -1,
2959 -1, 297, 298, -1, -1, 54, 994, 56, 57, -1,
2960 -1, -1, 1194, -1, 1196, -1, 1198, 1553, -1, -1,
2961 -1, 70, -1, 1011, 1206, -1, -1, -1, -1, 970,
2962 -1, 80, -1, 1215, 1216, 3, 4, 5, 6, 88,
2963 -1, 90, 1224, -1, 93, 94, 342, -1, -1, -1,
2964 346, -1, 348, 349, 350, -1, 1461, -1, 1240, 1241,
2965 -1, 1508, -1, 359, -1, -1, -1, 1514, 1515, -1,
2966 -1, -1, -1, 41, -1, -1, -1, -1, -1, -1,
2967 -1, -1, -1, -1, 1154, 1267, 54, 1534, 56, 57,
2968 -1, -1, 60, -1, -1, -1, -1, 393, -1, 1040,
2969 4, 5, 70, -1, 8, 9, 402, -1, 404, 405,
2970 14, 1052, 80, 1183, -1, -1, 1298, -1, -1, -1,
2971 88, -1, -1, 419, -1, 93, 422, -1, 1533, 1534,
2972 1532, 1533, 36, -1, -1, -1, -1, -1, 434, -1,
2973 -1, 45, -1, 47, -1, 1327, 442, -1, 1595, -1,
2974 54, -1, 56, 57, 73, 74, 75, 76, 77, 78,
2975 79, 80, 81, 82, 83, 84, 70, 1614, -1, -1,
2976 -1, -1, -1, -1, 470, 471, 80, 1247, 474, -1,
2977 476, 477, 478, 479, -1, 1367, 90, 483, 1635, 93,
2978 94, -1, 488, -1, -1, 491, -1, 1644, 1139, -1,
2979 -1, 1383, -1, -1, -1, -1, 1194, -1, 1196, -1,
2980 1198, -1, 508, -1, -1, -1, 3, 4, 5, 6,
2981 -1, -1, 9, 1405, -1, -1, -1, 3, 4, 5,
2982 6, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2983 -1, -1, -1, 1184, 31, -1, -1, -1, -1, 545,
2984 546, 547, 548, -1, 41, -1, 903, -1, -1, 906,
2985 47, -1, -1, -1, -1, 41, -1, 54, -1, 56,
2986 57, 918, 48, -1, -1, 922, 923, -1, -1, 1461,
2987 56, 57, -1, 70, -1, -1, -1, -1, -1, -1,
2988 4, 5, -1, 80, 8, 9, 1478, 1479, -1, -1,
2989 14, 88, -1, 90, 80, -1, 93, 94, -1, 605,
2990 1298, 607, 88, 1254, 28, -1, 30, 1258, -1, 966,
2991 967, -1, 36, 619, -1, 621, 622, -1, 624, -1,
2992 -1, 45, -1, -1, 1516, 631, -1, -1, -1, 635,
2993 54, -1, 56, 57, 58, -1, -1, 1417, -1, -1,
2994 -1, -1, 1293, -1, 650, -1, 4, 5, -1, -1,
2995 -1, 9, -1, -1, 1546, -1, 1307, -1, -1, -1,
2996 -1, -1, -1, -1, 3, 4, 5, 6, 674, 93,
2997 9, -1, -1, 31, -1, 681, -1, -1, -1, -1,
2998 -1, -1, -1, 689, 690, 691, 692, 693, 694, 47,
2999 -1, -1, 31, -1, -1, -1, 54, -1, 56, 57,
3000 -1, -1, 41, -1, -1, -1, -1, -1, 47, -1,
3001 -1, -1, 70, -1, -1, 54, -1, 56, 57, -1,
3002 -1, 1372, 80, -1, -1, 1376, -1, -1, -1, -1,
3003 736, 70, 90, -1, 740, 93, 94, -1, -1, -1,
3004 -1, 80, 748, 749, 750, 751, 752, 1398, 1399, 88,
3005 756, 90, -1, -1, 93, 94, -1, -1, 1650, -1,
3006 -1, -1, -1, 1461, 70, 71, 72, 73, 74, 75,
3007 76, 77, 78, 79, 80, 81, 82, 83, 84, 785,
3008 -1, -1, 788, -1, 790, -1, -1, -1, -1, 795,
3009 796, -1, 798, -1, 1151, 1152, -1, -1, 804, -1,
3010 -1, -1, 1, -1, 810, 4, 5, -1, -1, 8,
3011 9, 817, 818, 819, -1, 14, -1, -1, -1, 1176,
3012 1177, 1178, 1179, 829, -1, -1, -1, -1, 1185, 28,
3013 -1, 30, -1, -1, -1, -1, -1, 36, -1, 38,
3014 39, -1, -1, -1, -1, -1, 45, -1, 47, -1,
3015 -1, 1208, 1209, -1, -1, 54, -1, 56, 57, -1,
3016 59, -1, -1, -1, 63, 64, 65, 66, 67, 68,
3017 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3018 79, 80, 81, 82, 83, -1, -1, 86, 87, 88,
3019 -1, -1, 91, -1, -1, 94, 902, 903, -1, -1,
3020 906, -1, -1, 909, -1, -1, -1, -1, 914, -1,
3021 -1, 110, 918, -1, 920, -1, 922, 923, 924, -1,
3022 -1, -1, 928, -1, 930, -1, 3, 4, 5, 6,
3023 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3024 81, 82, 83, 84, -1, 1302, 1303, 1304, 1305, -1,
3025 -1, -1, 1309, -1, -1, -1, 962, -1, 964, -1,
3026 966, 967, 968, 4, 41, -1, -1, -1, -1, -1,
3027 -1, 48, -1, 14, -1, -1, -1, 193, 194, 56,
3028 57, -1, 23, 24, -1, -1, -1, -1, -1, 30,
3029 31, -1, 33, -1, 35, 3, 4, 5, 6, -1,
3030 -1, 42, -1, 80, -1, 1011, -1, -1, -1, -1,
3031 -1, 88, -1, -1, 55, -1, 57, -1, 1024, 1025,
3032 1026, 1027, -1, 31, 65, -1, -1, -1, -1, -1,
3033 -1, 72, -1, 41, -1, 1041, -1, -1, 1044, 47,
3034 -1, -1, -1, 84, -1, -1, 54, 1053, 56, 57,
3035 -1, -1, -1, 3, 4, 5, 6, -1, 1415, 1416,
3036 1066, 1418, 70, -1, -1, -1, -1, -1, 1074, -1,
3037 -1, -1, 80, -1, -1, -1, -1, -1, -1, -1,
3038 88, 1087, 90, 1089, -1, 93, 94, -1, -1, -1,
3039 -1, 41, -1, -1, -1, 136, -1, -1, 48, 140,
3040 141, -1, -1, -1, -1, 146, 56, 57, 149, 150,
3041 151, 1117, -1, -1, -1, -1, 1122, 1123, -1, 1125,
3042 -1, -1, -1, -1, 165, -1, -1, -1, 169, -1,
3043 80, -1, -1, -1, 175, 176, -1, -1, 88, -1,
3044 -1, -1, 1148, 1500, 1501, 1151, 1152, 1153, -1, -1,
3045 -1, -1, 193, 194, 195, 3, 4, 5, 6, 7,
3046 8, 9, -1, -1, -1, -1, 14, -1, -1, 1175,
3047 1176, 1177, 1178, 1179, 1180, 1181, -1, -1, -1, 1185,
3048 28, 222, 30, 31, 32, -1, -1, -1, 36, -1,
3049 -1, -1, -1, 41, -1, -1, -1, 45, -1, -1,
3050 48, -1, 1208, 1209, 1210, -1, 54, -1, 56, 57,
3051 -1, -1, -1, -1, 1220, 1221, 1222, 1223, 259, -1,
3052 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
3053 -1, -1, 80, -1, -1, -1, -1, -1, 1244, -1,
3054 88, -1, -1, 1249, -1, 93, 1252, -1, -1, -1,
3055 98, -1, -1, -1, -1, 471, 297, 298, 474, -1,
3056 476, 477, -1, -1, -1, -1, -1, -1, -1, -1,
3057 -1, -1, 488, -1, -1, -1, -1, -1, -1, -1,
3058 -1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3059 -1, -1, -1, 14, -1, 1301, 1302, 1303, 1304, 1305,
3060 1306, 342, -1, 1309, -1, 346, -1, 348, 349, 350,
3061 31, -1, -1, -1, 355, 36, -1, -1, 359, -1,
3062 41, -1, -1, -1, 45, -1, 47, -1, -1, -1,
3063 -1, -1, -1, 54, -1, 56, 57, -1, -1, 1345,
3064 1346, 1347, -1, -1, -1, -1, -1, -1, -1, 70,
3065 -1, -1, 393, -1, 3, 4, 5, 6, 1364, 80,
3066 9, 402, -1, 404, 405, -1, -1, 88, -1, 90,
3067 4, 5, 93, 94, 8, 9, -1, -1, 419, -1,
3068 14, 422, 31, -1, -1, -1, -1, -1, -1, -1,
3069 -1, -1, 41, 434, 28, -1, 30, -1, 47, -1,
3070 -1, 442, 36, -1, -1, 54, -1, 56, 57, 1415,
3071 1416, 45, 1418, -1, -1, -1, -1, -1, -1, -1,
3072 54, 70, 56, 57, -1, -1, -1, -1, -1, 470,
3073 471, 80, -1, 474, -1, 476, 477, 478, 479, 88,
3074 -1, 90, 483, -1, 93, 94, -1, 488, -1, -1,
3075 491, -1, -1, -1, -1, 1461, -1, -1, -1, -1,
3076 4, 5, -1, 7, 8, 9, 507, 508, 12, -1,
3077 14, 3, 4, 5, 6, -1, -1, 9, -1, -1,
3078 -1, -1, -1, -1, 28, -1, 30, 31, -1, -1,
3079 -1, -1, 36, -1, 1500, 1501, 1502, 1503, -1, 31,
3080 -1, 45, -1, -1, 545, 546, 547, 548, -1, 41,
3081 54, -1, 56, 57, -1, 47, -1, -1, -1, -1,
3082 -1, -1, 54, -1, 56, 57, 1532, 1533, 1534, -1,
3083 -1, -1, 748, 749, 750, 751, -1, -1, 70, -1,
3084 756, -1, -1, -1, -1, -1, 1552, 1553, 80, -1,
3085 -1, -1, 1558, -1, -1, -1, 88, -1, 90, -1,
3086 -1, 93, 94, -1, 605, -1, 607, 72, 73, 74,
3087 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3088 621, 622, -1, 624, -1, -1, -1, -1, -1, -1,
3089 631, 1, -1, 3, 4, 5, 6, 7, 8, 9,
3090 -1, -1, -1, 644, 14, -1, -1, -1, -1, 650,
3091 -1, -1, -1, -1, -1, -1, -1, -1, 28, -1,
3092 30, 31, 32, -1, -1, -1, 36, -1, -1, -1,
3093 -1, 41, -1, 674, -1, 45, -1, -1, 48, -1,
3094 -1, 682, -1, -1, 54, -1, 56, 57, 689, 690,
3095 691, 692, 693, 694, -1, -1, -1, -1, -1, -1,
3096 70, -1, -1, 3, 4, 5, 6, -1, -1, 9,
3097 80, -1, -1, -1, -1, -1, 717, -1, 88, -1,
3098 -1, -1, -1, 93, -1, -1, -1, -1, 98, -1,
3099 -1, 31, -1, -1, -1, 736, -1, -1, -1, 740,
3100 -1, 41, -1, -1, -1, -1, -1, 748, 749, 750,
3101 751, 752, -1, -1, 54, 756, 56, 57, 4, 5,
3102 -1, -1, -1, 9, -1, -1, -1, -1, -1, -1,
3103 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3104 80, -1, -1, -1, 785, 31, -1, 788, 88, 790,
3105 966, 967, -1, 93, 795, 796, -1, 798, -1, -1,
3106 -1, 47, -1, 804, -1, -1, -1, -1, 54, 810,
3107 56, 57, -1, -1, -1, -1, 817, 818, 819, -1,
3108 -1, -1, -1, -1, 70, -1, -1, -1, 829, -1,
3109 -1, -1, -1, -1, 80, -1, -1, -1, -1, -1,
3110 -1, -1, -1, -1, 90, -1, -1, 93, 94, 1025,
3111 1026, 1027, -1, -1, -1, -1, 1, -1, 3, 4,
3112 5, 6, 7, 8, 9, -1, -1, -1, -1, 14,
3113 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3114 -1, -1, -1, 28, -1, 30, 31, -1, -1, -1,
3115 -1, 36, -1, -1, -1, -1, 41, -1, -1, -1,
3116 45, 902, 903, 48, -1, 906, -1, -1, 909, 54,
3117 -1, 56, 57, 914, -1, 60, -1, 918, -1, 920,
3118 -1, 922, 923, 924, -1, 70, -1, 928, -1, 930,
3119 -1, -1, -1, -1, -1, 80, -1, -1, -1, -1,
3120 -1, -1, -1, 88, 3, 4, 5, 6, 93, 8,
3121 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3122 -1, 962, -1, 964, -1, 966, 967, 968, -1, 28,
3123 29, 30, 31, 32, -1, 34, 35, 36, -1, 38,
3124 39, 40, 41, 42, 43, -1, 45, -1, 47, -1,
3125 49, 50, 51, 52, 53, 54, -1, 56, 57, -1,
3126 1176, 1177, 1178, 1179, -1, -1, -1, -1, 67, 1185,
3127 1011, 70, -1, -1, -1, -1, -1, -1, -1, 78,
3128 79, 80, -1, 1024, 1025, 1026, 1027, 86, 87, 88,
3129 -1, 90, 1208, 1209, 93, 94, -1, -1, 1039, -1,
3130 1041, -1, -1, 1044, 1220, 1221, -1, -1, -1, -1,
3131 -1, 110, 1053, 3, 4, 5, 6, -1, -1, 9,
3132 -1, -1, -1, -1, 3, 4, 5, 6, -1, -1,
3133 9, -1, -1, 1074, -1, -1, -1, -1, -1, -1,
3134 -1, 31, 4, 5, -1, -1, 1087, 9, 1089, -1,
3135 -1, 41, 31, -1, -1, -1, -1, 47, -1, -1,
3136 -1, -1, 41, -1, 54, -1, 56, 57, -1, 31,
3137 -1, -1, -1, -1, -1, 54, 1117, 56, 57, -1,
3138 70, 1122, 1123, -1, 1125, 47, 1302, 1303, 1304, 1305,
3139 80, 70, 54, 1309, 56, 57, -1, -1, 88, -1,
3140 90, 80, -1, 93, 94, -1, -1, 1148, 70, 88,
3141 1151, 1152, 1153, -1, 93, -1, -1, -1, 80, 3,
3142 4, 5, 6, 7, 8, 9, -1, -1, 90, -1,
3143 14, 93, 94, -1, 1175, 1176, 1177, 1178, 1179, 1180,
3144 1181, -1, -1, -1, 1185, -1, -1, 31, -1, -1,
3145 -1, 1192, 36, -1, -1, -1, -1, 41, -1, -1,
3146 -1, 45, -1, 47, -1, -1, -1, 1208, 1209, 1210,
3147 54, -1, 56, 57, -1, -1, -1, -1, -1, 1220,
3148 1221, 1222, 1223, -1, -1, -1, 70, -1, 1229, -1,
3149 4, -1, -1, -1, -1, -1, 80, -1, -1, 1415,
3150 1416, -1, 1418, 1244, 88, -1, 90, -1, 1249, 93,
3151 94, 1252, -1, -1, -1, -1, 30, 31, -1, 33,
3152 -1, 35, -1, -1, -1, -1, -1, -1, 42, -1,
3153 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3154 -1, 55, 1, 57, 3, 4, 5, 6, 7, 8,
3155 9, -1, -1, -1, -1, 14, -1, -1, -1, -1,
3156 1301, 1302, 1303, 1304, 1305, 1306, 80, -1, 1309, 28,
3157 -1, 30, 31, 32, -1, -1, -1, 36, 37, -1,
3158 -1, -1, 41, -1, 1500, 1501, 45, 46, -1, 48,
3159 -1, -1, -1, 1334, -1, 54, -1, 56, 57, -1,
3160 -1, 60, -1, 62, 1345, 1346, 1347, -1, -1, -1,
3161 -1, 70, -1, -1, -1, -1, 1532, 1533, -1, 133,
3162 134, 80, 136, 1364, -1, -1, 140, 141, -1, 88,
3163 144, -1, 146, -1, 93, 149, 150, 151, -1, -1,
3164 -1, -1, 156, -1, -1, -1, -1, -1, -1, -1,
3165 109, 165, -1, -1, -1, 169, -1, -1, -1, -1,
3166 -1, 175, 176, -1, -1, -1, -1, -1, -1, -1,
3167 -1, -1, -1, -1, 1415, 1416, -1, 1418, -1, 193,
3168 194, 195, -1, -1, -1, -1, -1, -1, 1, 203,
3169 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3170 13, 14, -1, -1, -1, -1, -1, -1, 222, -1,
3171 -1, -1, -1, -1, -1, 28, 29, 30, 31, 32,
3172 1461, 34, 35, 36, -1, 38, 39, 40, 41, 42,
3173 43, -1, 45, -1, -1, -1, 49, 50, 51, 52,
3174 53, 54, -1, 56, 57, 259, -1, -1, 61, 3,
3175 4, 5, 6, -1, 67, 9, -1, 70, -1, 1500,
3176 1501, 1502, 1503, -1, -1, 78, 79, 80, -1, -1,
3177 -1, -1, -1, 86, 87, 88, -1, 31, -1, -1,
3178 93, -1, -1, -1, -1, -1, -1, 41, -1, -1,
3179 -1, 1532, 1533, 1534, -1, 108, -1, 110, -1, -1,
3180 54, -1, 56, 57, -1, -1, -1, -1, -1, -1,
3181 -1, 1552, 1553, -1, -1, 329, 70, 1558, -1, -1,
3182 -1, -1, -1, -1, -1, -1, 80, -1, -1, -1,
3183 -1, -1, 346, -1, 88, -1, -1, -1, -1, 93,
3184 354, -1, -1, -1, -1, 359, -1, -1, -1, -1,
3185 3, 4, 5, 6, 7, 8, 9, -1, -1, 12,
3186 4, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3187 -1, -1, -1, -1, -1, 28, -1, 30, 31, 393,
3188 -1, -1, -1, 36, -1, -1, 30, 31, 41, 33,
3189 404, 35, 45, -1, 47, -1, -1, -1, 42, -1,
3190 -1, 54, -1, 56, 57, 419, -1, -1, 422, -1,
3191 -1, 55, -1, 57, 428, 429, 430, 70, -1, -1,
3192 434, -1, -1, -1, -1, -1, -1, 80, 442, -1,
3193 -1, -1, -1, -1, -1, 88, -1, 90, 4, 5,
3194 93, 94, 8, 9, -1, -1, -1, -1, 14, -1,
3195 -1, -1, -1, -1, -1, -1, 470, 471, -1, -1,
3196 474, -1, 476, 477, 478, 479, -1, -1, -1, 483,
3197 36, -1, -1, -1, 488, -1, -1, 491, -1, 45,
3198 -1, 47, -1, -1, -1, -1, -1, -1, 54, -1,
3199 56, 57, 136, -1, 508, -1, 140, 141, -1, -1,
3200 -1, -1, 146, -1, 70, 149, 150, 151, -1, -1,
3201 -1, -1, 4, 5, 80, 7, 8, 9, -1, -1,
3202 12, 165, 14, 537, 90, 169, 540, 93, 94, -1,
3203 -1, 175, 176, -1, -1, -1, 28, -1, 30, 31,
3204 -1, 555, 556, 557, 36, -1, -1, -1, -1, 193,
3205 194, 195, -1, 45, -1, -1, 570, -1, -1, -1,
3206 -1, -1, 54, -1, 56, 57, -1, -1, -1, -1,
3207 -1, -1, 1, -1, 3, 4, 5, 6, 222, 8,
3208 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3209 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3210 29, 30, -1, 32, 618, 34, 35, 36, -1, 38,
3211 39, 40, 41, 42, 43, 259, 45, 631, -1, -1,
3212 49, 50, 51, 52, 53, 54, -1, 56, 57, 58,
3213 -1, -1, 61, -1, -1, -1, 650, -1, 67, -1,
3214 -1, 70, 4, 5, -1, -1, 8, 9, -1, 78,
3215 79, 80, 14, -1, -1, -1, -1, 86, 87, 88,
3216 674, -1, -1, -1, 93, 94, 28, 681, 30, -1,
3217 -1, -1, -1, -1, 36, 689, 690, 691, 692, -1,
3218 109, 110, -1, 45, -1, 47, -1, -1, -1, -1,
3219 -1, -1, 54, -1, 56, 57, -1, -1, -1, -1,
3220 -1, -1, 3, 4, 5, 6, -1, -1, 70, -1,
3221 -1, 355, -1, -1, -1, 359, -1, -1, 80, -1,
3222 -1, -1, 736, -1, -1, -1, 740, -1, 90, -1,
3223 31, 93, 94, -1, 748, 749, 750, 751, 752, -1,
3224 41, -1, 756, -1, -1, -1, 47, -1, -1, -1,
3225 -1, -1, -1, 54, -1, 56, 57, -1, -1, -1,
3226 404, 33, -1, -1, -1, -1, -1, -1, -1, 70,
3227 -1, -1, -1, -1, 788, 419, 790, -1, 422, 80,
3228 -1, 795, 796, 55, 798, -1, -1, 88, -1, 90,
3229 434, -1, 93, 94, -1, -1, -1, -1, 442, -1,
3230 -1, -1, -1, -1, -1, -1, -1, -1, -1, 823,
3231 -1, -1, -1, -1, 3, 4, 5, 6, -1, 4,
3232 5, -1, 7, 8, 9, -1, 470, 471, -1, 14,
3233 474, -1, 476, 477, 478, 3, 4, 5, 6, 483,
3234 -1, 9, 31, 28, 488, 30, 31, 491, -1, -1,
3235 -1, 36, 41, -1, -1, -1, -1, -1, 47, -1,
3236 45, -1, -1, 31, 508, 54, -1, 56, 57, 54,
3237 -1, 56, 57, 41, -1, -1, -1, 149, 150, 151,
3238 -1, 70, -1, -1, -1, -1, 54, -1, 56, 57,
3239 -1, 80, -1, -1, -1, -1, -1, -1, -1, 88,
3240 -1, 90, 70, 175, 93, 94, -1, -1, 922, 923,
3241 924, -1, 80, -1, 928, 929, -1, -1, -1, -1,
3242 88, 193, 194, 195, -1, 93, -1, -1, 3, 4,
3243 5, 6, -1, 1, 9, 3, 4, 5, 6, 7,
3244 8, 9, -1, -1, -1, -1, 14, -1, -1, -1,
3245 222, -1, 966, 967, 968, -1, 31, -1, -1, 973,
3246 28, -1, 30, 31, 32, -1, 41, -1, 36, 37,
3247 -1, -1, -1, 41, -1, 619, -1, 45, 46, 54,
3248 48, 56, 57, -1, -1, -1, 54, -1, 56, 57,
3249 -1, -1, 60, -1, 62, 70, -1, 1011, -1, -1,
3250 -1, -1, 70, -1, -1, 80, 650, -1, -1, -1,
3251 -1, -1, 80, 88, -1, -1, -1, -1, 93, -1,
3252 88, -1, -1, -1, -1, 93, 298, -1, -1, -1,
3253 1044, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3254 12, 109, 14, -1, -1, 689, 690, 691, 692, -1,
3255 -1, 1065, -1, -1, -1, -1, 28, -1, 30, 31,
3256 1074, -1, -1, -1, 36, -1, -1, 4, 5, 41,
3257 -1, -1, 9, 45, -1, 47, 348, 349, 350, -1,
3258 -1, -1, 54, -1, 56, 57, -1, -1, -1, -1,
3259 -1, -1, 736, -1, 31, -1, 740, -1, 70, -1,
3260 -1, -1, -1, -1, 748, 749, -1, -1, 80, -1,
3261 47, -1, 756, -1, -1, -1, 88, 54, 90, 56,
3262 57, 93, 94, -1, -1, -1, -1, -1, -1, -1,
3263 -1, -1, 404, 70, 1148, -1, -1, 1151, 1152, 1153,
3264 1154, -1, -1, 80, 788, -1, 790, -1, -1, -1,
3265 -1, 795, 796, 90, 798, -1, 93, 94, -1, -1,
3266 -1, 1175, 1176, 1177, 1178, 1179, 1180, 1181, -1, 1183,
3267 -1, 1185, -1, -1, -1, -1, -1, -1, -1, -1,
3268 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
3269 -1, -1, 9, -1, 1208, 1209, 1210, -1, 470, 471,
3270 -1, -1, 474, -1, 476, 477, 478, 479, -1, -1,
3271 -1, 483, -1, -1, 31, -1, 488, 4, 5, 491,
3272 7, 8, 9, -1, 41, 12, -1, 14, -1, -1,
3273 1244, -1, -1, -1, -1, 1249, -1, 54, 1252, 56,
3274 57, 28, -1, 30, 31, -1, -1, -1, -1, 36,
3275 -1, -1, -1, 70, -1, -1, -1, -1, 45, -1,
3276 47, -1, -1, 80, -1, -1, -1, 54, -1, 56,
3277 57, 88, -1, -1, -1, -1, 93, -1, -1, -1,
3278 -1, -1, -1, 70, -1, -1, 930, 1301, 1302, 1303,
3279 1304, 1305, 1306, 80, -1, 1309, -1, -1, -1, -1,
3280 -1, -1, -1, 90, -1, -1, 93, 94, -1, -1,
3281 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3282 -1, -1, 966, 967, 968, -1, -1, -1, -1, -1,
3283 -1, 1345, 1346, 1347, -1, 607, -1, -1, 4, 5,
3284 -1, 7, 8, 9, -1, -1, 12, -1, 14, 621,
3285 622, -1, 624, -1, 3, 4, 5, 6, -1, 631,
3286 9, 55, 28, -1, 30, 31, -1, 1011, -1, -1,
3287 36, -1, -1, -1, -1, -1, -1, -1, 650, 45,
3288 -1, 47, 31, -1, -1, -1, 80, -1, 54, 83,
3289 56, 57, 41, -1, -1, 107, 108, -1, -1, -1,
3290 1044, -1, -1, -1, 70, 54, -1, 56, 57, -1,
3291 104, -1, 106, -1, 80, -1, -1, 689, -1, 691,
3292 692, 70, 694, -1, 90, -1, -1, 93, 94, -1,
3293 1074, 80, -1, -1, -1, -1, -1, -1, -1, 88,
3294 -1, 4, 5, -1, 93, 8, 9, 1461, -1, -1,
3295 -1, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3296 -1, -1, -1, -1, 736, 28, -1, 30, -1, -1,
3297 -1, -1, -1, 36, -1, -1, 748, 749, 750, 751,
3298 752, 175, 45, -1, 756, -1, 3, 4, 5, 6,
3299 -1, 54, 9, 56, 57, -1, -1, -1, -1, 193,
3300 194, 195, -1, -1, -1, -1, -1, -1, -1, 203,
3301 -1, -1, -1, -1, 31, -1, -1, -1, 1532, 1533,
3302 1534, -1, -1, 795, 41, -1, -1, -1, 222, -1,
3303 -1, 1175, 1176, 1177, 1178, 1179, 1180, 54, -1, 56,
3304 57, 1185, -1, -1, 1558, 817, 818, 819, -1, -1,
3305 -1, -1, -1, 70, 248, -1, -1, 829, -1, -1,
3306 -1, -1, -1, 80, 1208, 1209, 1210, -1, 262, -1,
3307 -1, 88, -1, -1, -1, -1, 93, -1, -1, -1,
3308 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3309 6, 7, 8, 9, -1, -1, -1, -1, 14, -1,
3310 1244, -1, -1, -1, -1, 1249, -1, -1, 1252, -1,
3311 -1, -1, 28, -1, 30, 31, -1, 329, -1, -1,
3312 36, -1, -1, -1, -1, 41, -1, -1, -1, 45,
3313 902, 903, -1, -1, 906, -1, -1, 909, 54, -1,
3314 56, 57, -1, -1, 60, -1, 918, -1, -1, -1,
3315 922, 923, 924, -1, 70, -1, 928, -1, 1302, 1303,
3316 354, 355, -1, -1, 80, 1309, -1, -1, -1, -1,
3317 -1, -1, 88, 3, 4, 5, 6, 93, 1, -1,
3318 3, 4, 5, 6, 7, 8, 9, -1, -1, -1,
3319 402, 14, -1, -1, 966, 967, 968, -1, -1, -1,
3320 -1, 1345, 1346, 1347, 27, 28, -1, 30, 31, 32,
3321 404, 41, -1, 36, -1, -1, -1, -1, 41, -1,
3322 -1, 44, 45, 46, 54, 48, 56, 57, -1, -1,
3323 -1, 54, 62, 56, 57, -1, -1, 60, -1, 1011,
3324 70, -1, -1, -1, -1, -1, -1, 70, -1, -1,
3325 80, -1, -1, 1025, 1026, 1027, 468, 80, 88, -1,
3326 -1, -1, -1, 93, -1, 88, -1, -1, -1, -1,
3327 93, -1, 1044, -1, -1, 98, 470, 471, -1, -1,
3328 474, -1, 476, 477, 478, 479, -1, -1, -1, 483,
3329 -1, -1, -1, -1, 488, -1, -1, 491, -1, -1,
3330 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
3331 3, 4, 5, 6, 7, 8, 9, 1461, -1, -1,
3332 -1, 14, -1, -1, -1, 537, -1, -1, 540, -1,
3333 -1, -1, 544, 545, 546, 547, 548, -1, 31, -1,
3334 -1, -1, -1, 36, 41, 557, -1, -1, 41, -1,
3335 1122, 1123, 45, 1125, 47, -1, -1, 54, 570, 56,
3336 57, 54, -1, 56, 57, 62, -1, -1, -1, -1,
3337 -1, -1, -1, 70, -1, -1, 1148, 70, -1, 1151,
3338 1152, 1153, -1, 80, -1, -1, -1, 80, 1532, 1533,
3339 1534, 88, -1, -1, -1, 88, 93, -1, -1, -1,
3340 93, -1, -1, 1175, 1176, 1177, 1178, 1179, 1180, 1181,
3341 -1, -1, 624, 1185, 1558, -1, -1, -1, -1, 631,
3342 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
3343 -1, -1, 3, 4, 5, 6, 1208, 1209, 1210, -1,
3344 634, 635, -1, -1, -1, -1, -1, -1, 1220, 1221,
3345 1222, 1223, -1, -1, 31, -1, 650, -1, -1, 14,
3346 31, -1, -1, -1, 41, -1, -1, -1, 23, 24,
3347 41, -1, 1244, -1, -1, 30, 31, 54, 33, 56,
3348 57, -1, -1, 54, -1, 56, 57, -1, -1, -1,
3349 -1, -1, -1, 70, -1, 689, -1, 691, 692, 70,
3350 -1, -1, -1, 80, -1, -1, -1, -1, -1, 80,
3351 65, 88, -1, -1, -1, -1, 93, 88, -1, -1,
3352 -1, -1, 93, -1, -1, -1, -1, -1, 740, 1301,
3353 1302, 1303, 1304, 1305, 1306, -1, -1, 1309, -1, -1,
3354 -1, -1, 736, -1, -1, -1, -1, -1, -1, -1,
3355 -1, -1, -1, -1, 748, 749, 750, 751, 752, 753,
3356 -1, -1, 756, -1, -1, -1, -1, -1, -1, 124,
3357 -1, 126, -1, 1345, -1, 1347, -1, -1, 133, 134,
3358 -1, -1, -1, -1, -1, 140, 141, -1, 782, 144,
3359 145, 146, 804, 148, 149, 150, 151, -1, 810, -1,
3360 -1, 795, 69, 70, 71, 72, 73, 74, 75, 76,
3361 77, 78, 79, 80, 81, 82, 83, 84, 348, 349,
3362 350, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3363 -1, -1, 1, -1, 3, 4, 5, 6, 7, 8,
3364 9, -1, -1, 1415, 1416, 14, 1418, -1, -1, -1,
3365 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3366 -1, 30, 31, 32, -1, -1, 878, 36, 37, -1,
3367 -1, -1, 41, -1, -1, -1, 45, 46, -1, 48,
3368 -1, -1, -1, 238, 239, 54, -1, 56, 57, 1461,
3369 -1, 60, -1, 62, -1, -1, -1, -1, -1, -1,
3370 -1, 70, 914, -1, 259, -1, -1, -1, 920, -1,
3371 -1, 80, 924, -1, -1, -1, -1, -1, -1, 88,
3372 -1, -1, -1, -1, 93, -1, -1, -1, 1500, 1501,
3373 1502, 1503, -1, -1, -1, 929, 930, 931, -1, -1,
3374 109, -1, -1, 298, -1, -1, -1, -1, -1, -1,
3375 962, -1, 964, -1, -1, -1, 968, -1, -1, -1,
3376 1532, 1533, 1534, -1, -1, -1, -1, -1, -1, -1,
3377 -1, -1, 966, 967, 968, -1, -1, -1, -1, 973,
3378 1552, -1, -1, -1, -1, -1, 1558, -1, -1, -1,
3379 -1, 346, -1, 348, 349, -1, -1, -1, -1, 1011,
3380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3381 -1, -1, 1024, -1, -1, -1, -1, 1011, -1, -1,
3382 -1, -1, 1034, -1, -1, -1, -1, -1, -1, 1041,
3383 -1, 1025, 1026, 1027, -1, -1, -1, -1, 393, -1,
3384 -1, 1053, 3, 4, 5, 6, 3, 4, 5, 6,
3385 1044, -1, -1, -1, -1, -1, -1, 412, -1, -1,
3386 -1, -1, -1, -1, 419, -1, -1, 422, -1, -1,
3387 31, 1065, -1, -1, 31, 1087, -1, 1089, -1, 434,
3388 41, -1, -1, -1, 41, -1, -1, -1, -1, -1,
3389 -1, 621, 622, 54, 624, 56, 57, 54, -1, 56,
3390 57, 631, -1, -1, -1, 1117, -1, -1, -1, 70,
3391 -1, -1, -1, 70, -1, -1, -1, -1, -1, 80,
3392 -1, -1, -1, 80, -1, -1, -1, 88, -1, -1,
3393 -1, 88, 93, -1, -1, -1, 93, -1, -1, -1,
3394 -1, 1153, -1, -1, -1, -1, -1, -1, -1, -1,
3395 505, -1, 507, -1, -1, -1, -1, -1, -1, 689,
3396 1154, 691, 692, -1, 694, -1, -1, -1, 1180, 3,
3397 4, 5, 6, 7, 8, 9, 531, -1, 12, -1,
3398 14, 1175, 1176, 1177, 1178, 1179, 1180, 1181, -1, 1183,
3399 -1, 1185, -1, -1, 28, -1, 30, 31, 1210, -1,
3400 -1, -1, 36, -1, -1, -1, 736, 41, -1, -1,
3401 -1, 45, -1, 47, 1208, 1209, 1210, -1, -1, -1,
3402 54, -1, 56, 57, -1, -1, 1220, 1221, 1222, 1223,
3403 -1, -1, -1, -1, -1, -1, 70, -1, -1, 3,
3404 4, 5, 6, -1, -1, -1, 80, -1, -1, -1,
3405 1244, -1, 607, -1, 88, -1, 90, -1, -1, 93,
3406 94, -1, -1, 618, 619, -1, 621, 622, -1, -1,
3407 -1, -1, -1, -1, -1, -1, -1, 41, -1, 3,
3408 4, 5, 6, -1, -1, -1, -1, -1, -1, -1,
3409 54, -1, 56, 57, 1306, -1, -1, -1, 62, 829,
3410 -1, -1, -1, -1, -1, -1, 70, 1301, 1302, 1303,
3411 1304, 1305, 1306, -1, -1, 1309, 80, 41, -1, 674,
3412 -1, -1, -1, -1, 88, -1, 681, 682, -1, 93,
3413 54, -1, 56, 57, -1, -1, 60, -1, 693, -1,
3414 -1, -1, -1, -1, -1, -1, 70, -1, -1, -1,
3415 -1, 1345, 1364, 1347, -1, -1, 80, -1, -1, -1,
3416 -1, -1, 717, -1, 88, -1, -1, 31, -1, 93,
3417 -1, -1, 902, 903, -1, -1, 906, -1, -1, 909,
3418 -1, -1, -1, -1, -1, -1, -1, -1, 918, -1,
3419 -1, -1, 922, 923, 924, -1, -1, -1, 928, 63,
3420 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3421 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3422 84, 1415, 1416, 1417, 1418, -1, -1, 782, -1, -1,
3423 785, -1, -1, -1, -1, -1, 966, 967, 968, -1,
3424 -1, -1, 1, -1, 3, 4, 5, 6, 7, 8,
3425 9, -1, -1, -1, -1, 14, -1, -1, -1, -1,
3426 -1, -1, 817, 818, 819, -1, -1, 1461, -1, 28,
3427 -1, 30, 31, 32, 829, -1, -1, 36, 37, -1,
3428 -1, 1011, 41, -1, -1, -1, 45, 46, -1, 48,
3429 1502, -1, -1, -1, -1, 54, -1, 56, 57, -1,
3430 -1, 60, -1, 62, -1, -1, 1500, 1501, 1502, 1503,
3431 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
3432 -1, 80, 1534, -1, -1, -1, -1, -1, -1, 88,
3433 -1, -1, -1, -1, 93, -1, -1, -1, 1532, 1533,
3434 1534, 1553, -1, -1, 4, 5, -1, 902, 903, 9,
3435 109, 906, -1, -1, 909, -1, -1, -1, 1552, -1,
3436 -1, -1, -1, 918, 1558, -1, -1, -1, -1, -1,
3437 -1, 31, -1, 928, -1, 3, 4, 5, 6, 7,
3438 8, 9, -1, -1, 12, -1, 14, 47, -1, -1,
3439 -1, -1, -1, -1, 54, -1, 56, 57, -1, -1,
3440 28, -1, 30, 31, -1, -1, -1, -1, 36, -1,
3441 70, -1, -1, 41, -1, -1, -1, 45, 1148, -1,
3442 80, 1151, 1152, 1153, -1, -1, 54, -1, 56, 57,
3443 90, -1, -1, 93, 94, -1, -1, -1, -1, -1,
3444 -1, -1, 70, -1, -1, 1175, 1176, 1177, 1178, 1179,
3445 1180, 1181, 80, -1, 1, 1185, 3, 4, 5, 6,
3446 88, 8, 9, 10, 11, 93, 13, 14, -1, -1,
3447 -1, -1, -1, -1, -1, -1, -1, -1, 1208, 1209,
3448 1210, 28, 29, 30, 1039, 32, -1, 34, 35, 36,
3449 -1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
3450 -1, -1, 49, 50, 51, 52, 53, 54, -1, 56,
3451 57, 1066, -1, -1, 61, 62, -1, -1, -1, -1,
3452 67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
3453 -1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
3454 87, 88, -1, -1, -1, -1, 93, -1, 12, -1,
3455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3456 -1, -1, -1, 110, -1, -1, -1, 1122, 1123, -1,
3457 1125, 1301, 1302, 1303, 1304, 1305, 1306, -1, -1, 1309,
3458 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3459 -1, -1, -1, 1148, -1, -1, 1151, 1152, 62, 63,
3460 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3461 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3462 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3463 -1, -1, -1, -1, -1, -1, -1, 1192, -1, -1,
3464 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3465 8, 9, -1, -1, 12, -1, 14, -1, -1, -1,
3466 -1, -1, -1, -1, -1, -1, -1, 25, -1, 27,
3467 -1, -1, -1, 31, 1229, -1, -1, -1, 36, -1,
3468 -1, -1, -1, 41, -1, 1415, 1416, 45, 1418, 47,
3469 -1, -1, 1247, -1, 1249, -1, 54, -1, 56, 57,
3470 58, 59, 60, -1, 62, 63, 64, 65, 66, 67,
3471 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3472 78, 79, 80, 81, 82, 83, 84, -1, 86, 87,
3473 88, -1, 90, 91, 92, 93, 94, 95, -1, 97,
3474 -1, -1, -1, -1, 102, -1, -1, -1, -1, 107,
3475 108, 109, -1, 111, -1, -1, -1, -1, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3477 1500, 1501, 1502, 1503, -1, 1, -1, 3, 4, 5,
3478 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
3479 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3480 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
3481 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
3482 46, -1, 1552, 49, 50, 51, 52, 53, 54, -1,
3483 56, 57, 58, -1, 60, 61, -1, -1, -1, -1,
3484 -1, 67, -1, -1, 70, -1, -1, -1, -1, -1,
3485 -1, -1, 78, 79, 80, -1, -1, -1, -1, -1,
3486 86, 87, 88, -1, -1, -1, -1, 93, -1, 95,
3487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3488 -1, -1, -1, 109, 110, 1, -1, 3, 4, 5,
3489 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
3490 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3491 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
3492 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
3493 46, -1, -1, 49, 50, 51, 52, 53, 54, -1,
3494 56, 57, 58, -1, 60, 61, -1, -1, -1, -1,
3495 -1, 67, -1, -1, 70, -1, -1, -1, -1, -1,
3496 -1, -1, 78, 79, 80, -1, -1, -1, -1, -1,
3497 86, 87, 88, -1, -1, -1, -1, 93, 1, 95,
3498 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3499 13, 14, -1, -1, 110, -1, -1, -1, -1, -1,
3500 -1, -1, -1, -1, -1, 28, 29, 30, 31, 32,
3501 -1, 34, 35, 36, -1, 38, 39, 40, 41, 42,
3502 43, -1, 45, -1, 47, -1, 49, 50, 51, 52,
3503 53, 54, -1, 56, 57, 58, -1, -1, 61, -1,
3504 -1, -1, -1, -1, 67, -1, -1, 70, -1, -1,
3505 -1, -1, -1, -1, -1, 78, 79, 80, -1, -1,
3506 -1, -1, -1, 86, 87, 88, -1, 90, -1, -1,
3507 93, 94, 1, -1, 3, 4, 5, 6, 7, 8,
3508 9, 10, 11, 12, 13, 14, -1, 110, -1, -1,
3509 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3510 29, 30, 31, 32, -1, 34, 35, 36, -1, 38,
3511 39, 40, 41, 42, 43, -1, 45, -1, 47, -1,
3512 49, 50, 51, 52, 53, 54, -1, 56, 57, 58,
3513 -1, -1, 61, -1, -1, -1, -1, -1, 67, -1,
3514 -1, 70, -1, -1, -1, -1, -1, -1, -1, 78,
3515 79, 80, -1, -1, -1, -1, -1, 86, 87, 88,
3516 -1, 90, -1, -1, 93, 94, 1, -1, 3, 4,
3517 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
3518 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
3519 -1, -1, -1, 28, 29, 30, 31, 32, -1, 34,
3520 35, 36, -1, 38, 39, 40, 41, 42, 43, -1,
3521 45, -1, -1, -1, 49, 50, 51, 52, 53, 54,
3522 -1, 56, 57, 58, -1, 60, 61, -1, -1, -1,
3523 -1, -1, 67, -1, -1, 70, -1, -1, -1, -1,
3524 -1, -1, -1, 78, 79, 80, -1, -1, -1, -1,
3525 -1, 86, 87, 88, -1, -1, -1, 1, 93, 3,
3526 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3527 14, -1, -1, -1, -1, 110, -1, -1, -1, -1,
3528 -1, -1, -1, -1, 28, 29, 30, 31, 32, -1,
3529 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
3530 -1, 45, -1, -1, -1, 49, 50, 51, 52, 53,
3531 54, -1, 56, 57, 58, -1, -1, 61, -1, -1,
3532 -1, -1, -1, 67, -1, -1, 70, -1, -1, -1,
3533 -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
3534 -1, -1, 86, 87, 88, -1, -1, -1, 1, 93,
3535 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3536 13, 14, -1, -1, -1, -1, 110, -1, -1, -1,
3537 -1, -1, -1, -1, -1, 28, 29, 30, -1, 32,
3538 -1, 34, 35, 36, -1, 38, 39, 40, 41, 42,
3539 43, -1, 45, -1, -1, -1, 49, 50, 51, 52,
3540 53, 54, -1, 56, 57, 58, -1, -1, 61, -1,
3541 -1, -1, -1, -1, 67, -1, -1, 70, -1, -1,
3542 -1, -1, -1, -1, -1, 78, 79, 80, -1, -1,
3543 -1, -1, -1, 86, 87, 88, -1, -1, -1, -1,
3544 93, 94, 1, -1, 3, 4, 5, 6, -1, 8,
3545 9, 10, 11, -1, 13, 14, -1, 110, -1, -1,
3546 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3547 29, 30, -1, 32, -1, 34, 35, 36, -1, 38,
3548 39, 40, 41, 42, 43, -1, 45, -1, -1, -1,
3549 49, 50, 51, 52, 53, 54, -1, 56, 57, 58,
3550 -1, -1, 61, -1, -1, -1, -1, -1, 67, -1,
3551 -1, 70, -1, -1, -1, -1, -1, -1, -1, 78,
3552 79, 80, -1, -1, -1, -1, -1, 86, 87, 88,
3553 -1, -1, -1, 1, 93, 3, 4, 5, 6, -1,
3554 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3555 109, 110, -1, -1, -1, -1, -1, -1, -1, -1,
3556 28, 29, 30, -1, 32, -1, 34, 35, 36, -1,
3557 38, 39, 40, 41, 42, 43, -1, 45, -1, -1,
3558 -1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
3559 58, -1, -1, 61, -1, -1, -1, -1, -1, 67,
3560 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
3561 78, 79, 80, -1, -1, -1, -1, -1, 86, 87,
3562 88, -1, -1, -1, 1, 93, 3, 4, 5, 6,
3563 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3564 -1, 109, 110, -1, -1, -1, -1, -1, -1, -1,
3565 -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
3566 -1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
3567 -1, -1, 49, 50, 51, 52, 53, 54, -1, 56,
3568 57, 58, -1, -1, 61, -1, -1, -1, -1, -1,
3569 67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
3570 -1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
3571 87, 88, -1, -1, -1, -1, 93, -1, 1, -1,
3572 3, 4, 5, 6, 101, 8, 9, 10, 11, -1,
3573 13, 14, -1, 110, -1, -1, -1, -1, -1, -1,
3574 -1, -1, -1, -1, -1, 28, 29, 30, 31, 32,
3575 -1, 34, 35, 36, -1, 38, 39, 40, 41, 42,
3576 43, -1, 45, -1, -1, -1, 49, 50, 51, 52,
3577 53, 54, -1, 56, 57, 58, -1, -1, 61, -1,
3578 -1, -1, -1, -1, 67, -1, -1, 70, -1, -1,
3579 -1, -1, -1, -1, -1, 78, 79, 80, -1, -1,
3580 -1, -1, -1, 86, 87, 88, -1, -1, -1, 1,
3581 93, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3582 -1, 13, 14, -1, -1, -1, -1, 110, -1, -1,
3583 -1, -1, -1, -1, -1, -1, 28, 29, 30, -1,
3584 32, -1, 34, 35, 36, -1, 38, 39, 40, 41,
3585 42, 43, -1, 45, -1, -1, -1, 49, 50, 51,
3586 52, 53, 54, -1, 56, 57, 58, -1, -1, 61,
3587 -1, -1, -1, -1, -1, 67, -1, -1, 70, -1,
3588 -1, -1, -1, -1, -1, -1, 78, 79, 80, -1,
3589 -1, -1, -1, -1, 86, 87, 88, -1, -1, -1,
3590 1, 93, 3, 4, 5, 6, -1, 8, 9, 10,
3591 11, -1, 13, 14, -1, -1, -1, -1, 110, -1,
3592 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3593 -1, 32, -1, 34, 35, 36, -1, 38, 39, 40,
3594 41, 42, 43, -1, 45, -1, -1, -1, 49, 50,
3595 51, 52, 53, 54, -1, 56, 57, -1, -1, 60,
3596 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
3597 -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
3598 -1, -1, -1, -1, -1, 86, 87, 88, -1, -1,
3599 -1, 1, 93, 3, 4, 5, 6, -1, 8, 9,
3600 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
3601 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
3602 30, -1, 32, -1, 34, 35, 36, -1, 38, 39,
3603 40, 41, 42, 43, -1, 45, -1, -1, -1, 49,
3604 50, 51, 52, 53, 54, -1, 56, 57, -1, -1,
3605 -1, 61, -1, -1, -1, -1, -1, 67, -1, -1,
3606 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
3607 80, -1, -1, -1, -1, -1, 86, 87, 88, -1,
3608 -1, -1, 1, 93, 3, 4, 5, 6, -1, 8,
3609 9, 10, 11, -1, 13, 14, -1, -1, 108, -1,
3610 110, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3611 29, 30, -1, 32, -1, 34, 35, 36, -1, 38,
3612 39, 40, 41, 42, 43, -1, 45, -1, -1, -1,
3613 49, 50, 51, 52, 53, 54, -1, 56, 57, -1,
3614 -1, -1, 61, -1, -1, -1, -1, -1, 67, -1,
3615 -1, 70, -1, -1, -1, -1, -1, -1, -1, 78,
3616 79, 80, -1, -1, -1, -1, -1, 86, 87, 88,
3617 -1, -1, -1, 1, 93, 3, 4, 5, 6, -1,
3618 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3619 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
3620 28, 29, 30, -1, 32, -1, 34, 35, 36, -1,
3621 38, 39, 40, 41, 42, 43, -1, 45, -1, -1,
3622 -1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
3623 -1, -1, -1, 61, -1, -1, -1, -1, -1, 67,
3624 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
3625 78, 79, 80, -1, -1, -1, -1, -1, 86, 87,
3626 88, -1, -1, -1, 1, 93, 3, 4, 5, 6,
3627 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3628 -1, -1, 110, -1, -1, -1, -1, -1, -1, -1,
3629 -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
3630 -1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
3631 -1, -1, 49, 50, 51, 52, 53, 54, -1, 56,
3632 57, -1, -1, -1, 61, -1, -1, -1, -1, -1,
3633 67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
3634 -1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
3635 87, 88, 3, 4, 5, 6, 93, 8, 9, 10,
3636 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3637 -1, -1, -1, 110, -1, -1, -1, 28, 29, 30,
3638 -1, 32, -1, 34, 35, 36, -1, 38, 39, 40,
3639 41, 42, 43, -1, 45, -1, -1, -1, 49, 50,
3640 51, 52, 53, 54, -1, 56, 57, -1, -1, -1,
3641 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
3642 -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
3643 -1, -1, -1, -1, -1, 86, 87, 88, -1, -1,
3644 -1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
3645 -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
3646 111, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3647 -1, 13, 14, 15, -1, 17, 18, 19, 20, 21,
3648 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
3649 32, -1, 34, 35, 36, -1, 38, 39, 40, 41,
3650 42, 43, 44, 45, 46, -1, -1, 49, 50, 51,
3651 52, 53, 54, -1, 56, 57, 58, -1, 60, 61,
3652 -1, -1, -1, -1, -1, 67, -1, -1, 70, -1,
3653 -1, -1, -1, -1, -1, -1, 78, 79, 80, -1,
3654 -1, -1, -1, -1, 86, 87, 88, -1, -1, -1,
3655 -1, 93, -1, 95, -1, -1, -1, -1, -1, -1,
3656 -1, -1, -1, -1, -1, -1, -1, 109, 110, 3,
3657 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
3658 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
3659 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
3660 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
3661 44, 45, 46, -1, -1, 49, 50, 51, 52, 53,
3662 54, -1, 56, 57, 58, -1, 60, 61, -1, -1,
3663 -1, -1, -1, 67, -1, -1, 70, -1, -1, -1,
3664 -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
3665 -1, -1, 86, 87, 88, -1, -1, -1, -1, 93,
3666 -1, 95, -1, 3, 4, 5, 6, 7, 8, 9,
3667 10, 11, -1, 13, 14, 15, 110, 17, 18, 19,
3668 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3669 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
3670 40, 41, 42, 43, 44, 45, 46, -1, -1, 49,
3671 50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
3672 60, 61, -1, -1, -1, -1, -1, 67, -1, -1,
3673 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
3674 80, -1, -1, -1, -1, -1, 86, 87, 88, -1,
3675 -1, -1, -1, 93, -1, 95, -1, 3, 4, 5,
3676 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
3677 110, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3678 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
3679 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
3680 46, -1, -1, 49, 50, 51, 52, 53, 54, -1,
3681 56, 57, -1, -1, 60, 61, -1, -1, -1, -1,
3682 -1, 67, -1, -1, 70, -1, -1, -1, -1, -1,
3683 -1, -1, 78, 79, 80, -1, -1, -1, -1, -1,
3684 86, 87, 88, -1, -1, -1, -1, 93, -1, 95,
3685 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3686 13, 14, -1, -1, 110, -1, -1, -1, -1, -1,
3687 -1, -1, -1, -1, -1, 28, 29, 30, 31, 32,
3688 -1, 34, 35, 36, -1, 38, 39, 40, 41, 42,
3689 43, -1, 45, -1, 47, -1, 49, 50, 51, 52,
3690 53, 54, -1, 56, 57, -1, -1, -1, 61, -1,
3691 -1, -1, -1, -1, 67, -1, -1, 70, -1, -1,
3692 -1, -1, -1, -1, -1, 78, 79, 80, -1, -1,
3693 -1, -1, -1, 86, 87, 88, -1, 90, -1, -1,
3694 93, 94, 3, 4, 5, 6, 7, 8, 9, 10,
3695 11, 12, 13, 14, -1, -1, -1, 110, -1, -1,
3696 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3697 31, 32, -1, 34, 35, 36, -1, 38, 39, 40,
3698 41, 42, 43, -1, 45, -1, 47, -1, 49, 50,
3699 51, 52, 53, 54, -1, 56, 57, -1, -1, -1,
3700 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
3701 -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
3702 -1, -1, -1, -1, -1, 86, 87, 88, -1, 90,
3703 -1, -1, 93, 94, 3, 4, 5, 6, -1, 8,
3704 9, 10, 11, -1, 13, 14, -1, -1, -1, 110,
3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3706 29, 30, 31, 32, -1, 34, 35, 36, -1, 38,
3707 39, 40, 41, 42, 43, -1, 45, -1, 47, -1,
3708 49, 50, 51, 52, 53, 54, -1, 56, 57, -1,
3709 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1,
3710 -1, 70, -1, -1, -1, -1, -1, -1, -1, 78,
3711 79, 80, -1, -1, -1, -1, -1, 86, 87, 88,
3712 -1, 90, -1, -1, 93, 94, 3, 4, 5, 6,
3713 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3714 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
3715 -1, 28, 29, 30, 31, 32, -1, 34, 35, 36,
3716 -1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
3717 -1, -1, 49, 50, 51, 52, 53, 54, -1, 56,
3718 57, -1, -1, -1, 61, -1, -1, -1, -1, -1,
3719 67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
3720 -1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
3721 87, 88, 3, 4, 5, 6, 93, 8, 9, 10,
3722 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3723 -1, -1, -1, 110, -1, -1, -1, 28, 29, 30,
3724 -1, 32, -1, 34, 35, 36, -1, 38, 39, 40,
3725 41, 42, 43, -1, 45, -1, -1, -1, 49, 50,
3726 51, 52, 53, 54, -1, 56, 57, -1, -1, 60,
3727 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
3728 -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
3729 -1, -1, -1, -1, -1, 86, 87, 88, -1, -1,
3730 -1, -1, 93, 3, 4, 5, 6, 7, 8, 9,
3731 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
3732 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
3733 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
3734 40, 41, 42, 43, -1, 45, -1, -1, -1, 49,
3735 50, 51, 52, 53, 54, -1, 56, 57, -1, -1,
3736 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1,
3737 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
3738 80, -1, -1, -1, -1, -1, 86, 87, 88, 3,
3739 4, 5, 6, 93, 8, 9, 10, 11, -1, 13,
3740 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3741 110, -1, -1, -1, 28, 29, 30, 31, 32, -1,
3742 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
3743 -1, 45, -1, -1, -1, 49, 50, 51, 52, 53,
3744 54, -1, 56, 57, -1, -1, -1, 61, -1, -1,
3745 -1, -1, -1, 67, -1, -1, 70, -1, -1, -1,
3746 -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
3747 -1, -1, 86, 87, 88, 3, 4, 5, 6, 93,
3748 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3749 -1, -1, -1, -1, -1, -1, 110, -1, -1, -1,
3750 28, 29, 30, -1, 32, -1, 34, 35, 36, -1,
3751 38, 39, 40, 41, 42, 43, -1, 45, -1, -1,
3752 -1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
3753 -1, -1, -1, 61, -1, -1, -1, -1, -1, 67,
3754 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
3755 78, 79, 80, -1, -1, -1, -1, -1, 86, 87,
3756 88, 3, 4, 5, 6, 93, 8, 9, 10, 11,
3757 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3758 -1, -1, 110, -1, -1, -1, 28, 29, 30, -1,
3759 32, -1, 34, 35, 36, -1, 38, 39, 40, 41,
3760 42, 43, -1, 45, -1, -1, -1, 49, 50, 51,
3761 52, 53, 54, -1, 56, 57, -1, -1, -1, 61,
3762 -1, -1, -1, -1, -1, 67, -1, -1, 70, -1,
3763 -1, -1, -1, -1, -1, -1, 78, 79, 80, -1,
3764 -1, -1, -1, -1, 86, 87, 88, 3, 4, 5,
3765 6, 93, 8, 9, 10, 11, -1, 13, 14, -1,
3766 -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
3767 -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
3768 36, -1, 38, 39, 40, 41, 42, 43, -1, 45,
3769 -1, -1, -1, 49, 50, 51, 52, 53, 54, -1,
3770 56, 57, -1, -1, -1, 61, -1, -1, -1, -1,
3771 -1, 67, -1, -1, 70, -1, -1, -1, -1, -1,
3772 -1, -1, 78, 79, 80, -1, -1, -1, -1, -1,
3773 86, 87, 88, 3, 4, 5, 6, 93, 8, 9,
3774 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3775 -1, -1, -1, -1, 110, -1, -1, -1, 28, 29,
3776 30, -1, 32, -1, 34, 35, 36, -1, 38, 39,
3777 40, 41, 42, 43, -1, 45, -1, -1, -1, 49,
3778 50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
3779 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1,
3780 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
3781 80, -1, -1, -1, -1, -1, 86, 87, 88, 3,
3782 4, 5, 6, 93, 8, 9, 10, 11, -1, 13,
3783 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3784 110, -1, -1, -1, 28, 29, 30, -1, 32, -1,
3785 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
3786 -1, 45, -1, -1, -1, 49, 50, 51, 52, 53,
3787 54, -1, 56, 57, -1, -1, -1, -1, -1, -1,
3788 -1, -1, -1, 67, -1, -1, 70, -1, -1, -1,
3789 -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
3790 -1, -1, 86, 87, 88, -1, -1, -1, -1, 93,
3791 94, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3792 -1, 13, 14, -1, -1, -1, 110, -1, -1, -1,
3793 -1, -1, -1, -1, -1, -1, 28, 29, 30, 31,
3794 32, -1, 34, 35, 36, -1, 38, 39, 40, 41,
3795 42, 43, -1, 45, -1, -1, -1, 49, 50, 51,
3796 52, 53, 54, -1, 56, 57, -1, -1, -1, -1,
3797 -1, -1, -1, -1, -1, 67, -1, -1, 70, -1,
3798 -1, -1, -1, -1, -1, -1, 78, 79, 80, -1,
3799 -1, -1, -1, -1, 86, 87, 88, 3, 4, 5,
3800 6, 93, 8, 9, 10, 11, -1, 13, 14, -1,
3801 -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
3802 -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
3803 36, -1, 38, 39, 40, 41, 42, 43, -1, 45,
3804 -1, -1, -1, 49, 50, 51, 52, 53, 54, -1,
3805 56, 57, -1, -1, -1, 61, -1, -1, -1, -1,
3806 -1, 67, -1, -1, 70, -1, -1, -1, -1, -1,
3807 -1, -1, 78, 79, 80, -1, -1, -1, -1, -1,
3808 86, 87, 88, 3, 4, 5, 6, 93, 8, 9,
3809 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3810 -1, -1, -1, -1, 110, -1, -1, -1, 28, 29,
3811 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
3812 40, 41, 42, 43, -1, 45, -1, -1, -1, 49,
3813 50, 51, 52, 53, 54, -1, 56, 57, -1, -1,
3814 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1,
3815 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
3816 80, -1, -1, -1, -1, -1, 86, 87, 88, 3,
3817 4, 5, 6, 93, 8, 9, 10, 11, -1, 13,
3818 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3819 110, -1, -1, -1, 28, 29, 30, -1, 32, -1,
3820 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
3821 -1, 45, -1, -1, -1, 49, 50, 51, 52, 53,
3822 54, -1, 56, 57, -1, -1, -1, -1, -1, -1,
3823 -1, -1, -1, 67, -1, -1, 70, -1, -1, -1,
3824 -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
3825 -1, -1, 86, 87, 88, 3, 4, 5, 6, 93,
3826 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3827 -1, -1, -1, -1, -1, -1, 110, -1, -1, -1,
3828 28, 29, 30, -1, 32, -1, 34, 35, 36, -1,
3829 38, 39, 40, 41, 42, 43, -1, 45, -1, -1,
3830 -1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
3831 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
3832 -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
3833 78, 79, 80, -1, -1, -1, -1, -1, 86, 87,
3834 88, 3, 4, 5, 6, 93, 8, 9, 10, 11,
3835 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3836 -1, -1, 110, -1, -1, -1, 28, 29, 30, -1,
3837 32, -1, 34, 35, 36, -1, 38, 39, 40, 41,
3838 42, 43, -1, 45, -1, -1, -1, 49, 50, 51,
3839 52, 53, 54, -1, 56, 57, -1, -1, -1, -1,
3840 -1, -1, -1, -1, -1, 67, -1, 1, 70, 3,
3841 4, 5, 6, 7, 8, 9, 78, 79, 80, -1,
3842 14, -1, -1, -1, 86, 87, 88, -1, -1, -1,
3843 -1, 93, -1, -1, 28, -1, 30, 31, 32, -1,
3844 -1, -1, 36, -1, -1, -1, -1, 41, 110, -1,
3845 -1, 45, 46, -1, 48, -1, -1, -1, -1, -1,
3846 54, -1, 56, 57, -1, -1, 60, -1, 62, -1,
3847 -1, -1, -1, -1, -1, -1, 70, 3, 4, 5,
3848 6, 7, 8, 9, -1, -1, 80, -1, 14, -1,
3849 -1, -1, -1, -1, 88, -1, -1, -1, -1, 93,
3850 -1, -1, 28, -1, 30, 31, -1, -1, -1, -1,
3851 36, -1, -1, -1, -1, 41, -1, -1, -1, 45,
3852 -1, 47, -1, -1, -1, -1, -1, -1, 54, -1,
3853 56, 57, 3, 4, 5, 6, 7, 8, 9, -1,
3854 -1, -1, -1, 14, 70, -1, -1, -1, -1, -1,
3855 -1, -1, -1, -1, 80, -1, -1, 28, -1, 30,
3856 31, -1, 88, -1, 90, 36, -1, 93, 94, -1,
3857 41, -1, -1, -1, 45, -1, -1, -1, -1, -1,
3858 -1, -1, -1, 54, -1, 56, 57, -1, -1, -1,
3859 -1, 62, -1, -1, -1, -1, -1, -1, -1, 70,
3860 3, 4, 5, 6, 7, 8, 9, -1, -1, 80,
3861 -1, 14, -1, -1, -1, -1, -1, 88, -1, -1,
3862 -1, -1, 93, -1, -1, 28, -1, 30, 31, -1,
3863 -1, -1, -1, 36, -1, -1, -1, -1, 41, -1,
3864 -1, -1, 45, -1, -1, -1, -1, -1, -1, -1,
3865 -1, 54, -1, 56, 57, -1, -1, 60, -1, 3,
3866 4, 5, 6, 7, 8, 9, -1, 70, -1, -1,
3867 14, -1, -1, -1, -1, -1, -1, 80, -1, -1,
3868 -1, -1, -1, -1, 28, 88, 30, 31, -1, -1,
3869 93, -1, 36, -1, -1, -1, -1, 41, -1, -1,
3870 -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
3871 54, -1, 56, 57, 3, 4, 5, 6, 7, 8,
3872 9, -1, -1, -1, -1, 14, 70, -1, -1, -1,
3873 -1, -1, -1, -1, -1, -1, 80, -1, -1, 28,
3874 -1, 30, 31, -1, 88, -1, -1, 36, -1, 93,
3875 -1, -1, 41, -1, -1, -1, 45, -1, -1, -1,
3876 -1, -1, -1, -1, -1, 54, -1, 56, 57, 4,
3877 5, -1, 7, 8, 9, -1, -1, -1, -1, 14,
3878 -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
3879 -1, 80, -1, 28, -1, 30, 31, -1, -1, 88,
3880 -1, 36, -1, -1, 93, -1, -1, -1, -1, -1,
3881 45, -1, -1, 48, -1, -1, -1, -1, -1, 54,
3882 -1, 56, 57, 63, 64, 65, 66, 67, 68, 69,
3883 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3884 80, 81, 82, 83, 84, 63, 64, 65, 66, 67,
3885 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3886 78, 79, 80, 81, 82, 83, 84, -1, -1, -1,
3887 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
3888 -1, -1, -1, -1, -1, -1, 59, -1, -1, 107,
3889 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3890 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3891 83, 84, 62, 63, 64, 65, 66, 67, 68, 69,
3892 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3893 80, 81, 82, 83, 84, 63, 64, 65, 66, 67,
3894 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3895 78, 79, 80, 81, 82, 83, 84, 63, 64, 65,
3896 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
3897 76, 77, 78, 79, 80, 81, 82, 83, 84, 67,
3898 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3899 78, 79, 80, 81, 82, 83, 84, 68, 69, 70,
3900 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3903 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3904 #line 3 "/usr/lib/bison.simple"
3906 /* Skeleton output parser for bison,
3907 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3909 This program is free software; you can redistribute it and/or modify
3910 it under the terms of the GNU General Public License as published by
3911 the Free Software Foundation; either version 2, or (at your option)
3914 This program is distributed in the hope that it will be useful,
3915 but WITHOUT ANY WARRANTY; without even the implied warranty of
3916 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3917 GNU General Public License for more details.
3919 You should have received a copy of the GNU General Public License
3920 along with this program; if not, write to the Free Software
3921 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
3923 /* As a special exception, when this file is copied by Bison into a
3924 Bison output file, you may use that output file without restriction.
3925 This special exception was added by the Free Software Foundation
3926 in version 1.24 of Bison. */
3930 #define alloca __builtin_alloca
3931 #else /* not GNU C. */
3932 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3934 #else /* not sparc */
3935 #if defined (MSDOS) && !defined (__TURBOC__)
3937 #else /* not MSDOS, or __TURBOC__ */
3941 #else /* not MSDOS, __TURBOC__, or _AIX */
3945 void *alloca (unsigned int);
3947 #else /* not __cplusplus */
3949 #endif /* not __cplusplus */
3951 #endif /* not _AIX */
3952 #endif /* not MSDOS, or __TURBOC__ */
3953 #endif /* not sparc. */
3954 #endif /* not GNU C. */
3955 #endif /* alloca not defined. */
3957 /* This is the parser code that is written into each bison parser
3958 when the %semantic_parser declaration is not specified in the grammar.
3959 It was written by Richard Stallman by simplifying the hairy parser
3960 used when %semantic_parser is specified. */
3962 /* Note: there must be only one dollar sign in this file.
3963 It is replaced by the list of actions, each action
3964 as one case of the switch. */
3966 #define yyerrok (yyerrstatus = 0)
3967 #define yyclearin (yychar = YYEMPTY)
3970 #define YYACCEPT return(0)
3971 #define YYABORT return(1)
3972 #define YYERROR goto yyerrlab1
3973 /* Like YYERROR except do call yyerror.
3974 This remains here temporarily to ease the
3975 transition to the new meaning of YYERROR, for GCC.
3976 Once GCC version 2 has supplanted version 1, this can go. */
3977 #define YYFAIL goto yyerrlab
3978 #define YYRECOVERING() (!!yyerrstatus)
3979 #define YYBACKUP(token, value) \
3981 if (yychar == YYEMPTY && yylen == 1) \
3982 { yychar = (token), yylval = (value); \
3983 yychar1 = YYTRANSLATE (yychar); \
3988 { yyerror ("syntax error: cannot back up"); YYERROR; } \
3992 #define YYERRCODE 256
3995 #define YYLEX yylex()
4001 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
4003 #define YYLEX yylex(&yylval, &yylloc)
4005 #else /* not YYLSP_NEEDED */
4007 #define YYLEX yylex(&yylval, YYLEX_PARAM)
4009 #define YYLEX yylex(&yylval)
4011 #endif /* not YYLSP_NEEDED */
4014 /* If nonreentrant, generate the variables here */
4018 int yychar; /* the lookahead symbol */
4019 YYSTYPE yylval; /* the semantic value of the */
4020 /* lookahead symbol */
4023 YYLTYPE yylloc; /* location data for the lookahead */
4027 int yynerrs; /* number of parse errors so far */
4028 #endif /* not YYPURE */
4031 int yydebug; /* nonzero means print parse trace */
4032 /* Since this is uninitialized, it does not stop multiple parsers
4036 /* YYINITDEPTH indicates the initial size of the parser's stacks */
4039 #define YYINITDEPTH 200
4042 /* YYMAXDEPTH is the maximum size the stacks can grow to
4043 (effective only if the built-in stack extension method is used). */
4050 #define YYMAXDEPTH 10000
4053 /* Prevent warning if -Wstrict-prototypes. */
4058 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
4059 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
4060 #else /* not GNU C or C++ */
4063 /* This is the most reliable way to avoid incompatibilities
4064 in available built-in functions on various systems. */
4066 __yy_memcpy (to, from, count)
4071 register char *f = from;
4072 register char *t = to;
4073 register int i = count;
4079 #else /* __cplusplus */
4081 /* This is the most reliable way to avoid incompatibilities
4082 in available built-in functions on various systems. */
4084 __yy_memcpy (char *to, char *from, int count)
4086 register char *f = from;
4087 register char *t = to;
4088 register int i = count;
4097 #line 196 "/usr/lib/bison.simple"
4099 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
4100 into yyparse. The argument should have type void *.
4101 It should actually point to an object.
4102 Grammar actions can access the variable by casting it
4103 to the proper pointer type. */
4105 #ifdef YYPARSE_PARAM
4107 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
4108 #define YYPARSE_PARAM_DECL
4109 #else /* not __cplusplus */
4110 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
4111 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
4112 #endif /* not __cplusplus */
4113 #else /* not YYPARSE_PARAM */
4114 #define YYPARSE_PARAM_ARG
4115 #define YYPARSE_PARAM_DECL
4116 #endif /* not YYPARSE_PARAM */
4119 yyparse(YYPARSE_PARAM_ARG)
4122 register int yystate;
4124 register short *yyssp;
4125 register YYSTYPE *yyvsp;
4126 int yyerrstatus; /* number of tokens to shift before error messages enabled */
4127 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
4129 short yyssa[YYINITDEPTH]; /* the state stack */
4130 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
4132 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
4133 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
4136 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
4137 YYLTYPE *yyls = yylsa;
4140 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
4142 #define YYPOPSTACK (yyvsp--, yyssp--)
4145 int yystacksize = YYINITDEPTH;
4156 YYSTYPE yyval; /* the variable used to return */
4157 /* semantic values from the action */
4164 fprintf(stderr, "Starting parse\n");
4170 yychar = YYEMPTY; /* Cause a token to be read. */
4172 /* Initialize stack pointers.
4173 Waste one element of value and location stack
4174 so that they stay on the same level as the state stack.
4175 The wasted elements are never initialized. */
4183 /* Push a new state, which is found in yystate . */
4184 /* In all cases, when you get here, the value and location stacks
4185 have just been pushed. so pushing a state here evens the stacks. */
4190 if (yyssp >= yyss + yystacksize - 1)
4192 /* Give user a chance to reallocate the stack */
4193 /* Use copies of these so that the &'s don't force the real ones into memory. */
4194 YYSTYPE *yyvs1 = yyvs;
4195 short *yyss1 = yyss;
4197 YYLTYPE *yyls1 = yyls;
4200 /* Get the current used size of the three stacks, in elements. */
4201 int size = yyssp - yyss + 1;
4204 /* Each stack pointer address is followed by the size of
4205 the data in use in that stack, in bytes. */
4207 /* This used to be a conditional around just the two extra args,
4208 but that might be undefined if yyoverflow is a macro. */
4209 yyoverflow("parser stack overflow",
4210 &yyss1, size * sizeof (*yyssp),
4211 &yyvs1, size * sizeof (*yyvsp),
4212 &yyls1, size * sizeof (*yylsp),
4215 yyoverflow("parser stack overflow",
4216 &yyss1, size * sizeof (*yyssp),
4217 &yyvs1, size * sizeof (*yyvsp),
4221 yyss = yyss1; yyvs = yyvs1;
4225 #else /* no yyoverflow */
4226 /* Extend the stack our own way. */
4227 if (yystacksize >= YYMAXDEPTH)
4229 yyerror("parser stack overflow");
4233 if (yystacksize > YYMAXDEPTH)
4234 yystacksize = YYMAXDEPTH;
4235 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
4236 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
4237 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
4238 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
4240 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
4241 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
4243 #endif /* no yyoverflow */
4245 yyssp = yyss + size - 1;
4246 yyvsp = yyvs + size - 1;
4248 yylsp = yyls + size - 1;
4253 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
4256 if (yyssp >= yyss + yystacksize - 1)
4262 fprintf(stderr, "Entering state %d\n", yystate);
4268 /* Do appropriate processing given the current state. */
4269 /* Read a lookahead token if we need one and don't already have one. */
4272 /* First try to decide what to do without reference to lookahead token. */
4274 yyn = yypact[yystate];
4278 /* Not known => get a lookahead token if don't already have one. */
4280 /* yychar is either YYEMPTY or YYEOF
4281 or a valid token in external form. */
4283 if (yychar == YYEMPTY)
4287 fprintf(stderr, "Reading a token: ");
4292 /* Convert token to internal form (in yychar1) for indexing tables with */
4294 if (yychar <= 0) /* This means end of input. */
4297 yychar = YYEOF; /* Don't call YYLEX any more */
4301 fprintf(stderr, "Now at end of input.\n");
4306 yychar1 = YYTRANSLATE(yychar);
4311 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
4312 /* Give the individual parser a way to print the precise meaning
4313 of a token, for further debugging info. */
4315 YYPRINT (stderr, yychar, yylval);
4317 fprintf (stderr, ")\n");
4323 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
4328 /* yyn is what to do for this token type in this state.
4329 Negative => reduce, -yyn is rule number.
4330 Positive => shift, yyn is new state.
4331 New state is final state => don't bother to shift,
4332 just return success.
4333 0, or most negative number => error. */
4348 /* Shift the lookahead token. */
4352 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
4355 /* Discard the token being shifted unless it is eof. */
4356 if (yychar != YYEOF)
4364 /* count tokens shifted since error; after three, turn off error status. */
4365 if (yyerrstatus) yyerrstatus--;
4370 /* Do the default action for the current state. */
4373 yyn = yydefact[yystate];
4377 /* Do a reduction. yyn is the number of a rule to reduce with. */
4381 yyval = yyvsp[1-yylen]; /* implement default value of the action */
4388 fprintf (stderr, "Reducing via rule %d (line %d), ",
4391 /* Print the symbols being reduced, and their result. */
4392 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
4393 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
4394 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
4403 { finish_translation_unit (); ;
4407 { yyval.ttype = NULL_TREE; ;
4411 { yyval.ttype = NULL_TREE; ;
4415 { yyval.ttype = NULL_TREE; ;
4419 { have_extern_spec = 1;
4420 used_extern_spec = 0;
4421 yyval.ttype = NULL_TREE; ;
4425 { have_extern_spec = 0; ;
4429 { yyval.itype = pedantic;
4434 { if (pending_lang_change) do_pending_lang_change(); ;
4438 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4439 pop_everything (); ;
4443 { if (pending_inlines) do_pending_inlines (); ;
4447 { if (pending_inlines) do_pending_inlines (); ;
4451 { if (pending_inlines) do_pending_inlines (); ;
4455 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4456 assemble_asm (yyvsp[-2].ttype); ;
4460 { pop_lang_context (); ;
4464 { if (pending_inlines) do_pending_inlines ();
4465 pop_lang_context (); ;
4469 { if (pending_inlines) do_pending_inlines ();
4470 pop_lang_context (); ;
4474 { push_namespace (yyvsp[-1].ttype); ;
4478 { pop_namespace (); ;
4482 { push_namespace (NULL_TREE); ;
4486 { pop_namespace (); ;
4490 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4494 { pedantic = yyvsp[-1].itype; ;
4498 { begin_only_namespace_names (); ;
4503 end_only_namespace_names ();
4505 yyvsp[-1].ttype = lastiddecl;
4506 do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
4511 { yyval.ttype = yyvsp[0].ttype; ;
4515 { yyval.ttype = yyvsp[0].ttype; ;
4519 { yyval.ttype = yyvsp[0].ttype; ;
4523 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4527 { yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
4531 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4535 { begin_only_namespace_names (); ;
4540 end_only_namespace_names ();
4541 /* If no declaration was found, the using-directive is
4542 invalid. Since that was not reported, we need the
4543 identifier for the error message. */
4544 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
4545 yyvsp[-1].ttype = lastiddecl;
4546 do_using_directive (yyvsp[-1].ttype);
4552 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4553 yyval.ttype = lastiddecl;
4554 got_scope = yyval.ttype;
4560 yyval.ttype = yyvsp[-1].ttype;
4561 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4562 yyval.ttype = lastiddecl;
4563 got_scope = yyval.ttype;
4568 { yyval.ttype = yyvsp[0].ttype; ;
4572 { yyval.ttype = yyvsp[0].ttype; ;
4576 { push_lang_context (yyvsp[0].ttype); ;
4580 { if (current_lang_name != yyvsp[0].ttype)
4581 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4582 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4586 { begin_template_parm_list (); ;
4590 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4594 { begin_specialization();
4595 yyval.ttype = NULL_TREE; ;
4599 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4603 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4607 { yyval.ttype = yyvsp[0].ttype; ;
4611 { yyval.ttype = NULL_TREE; ;
4615 { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4619 { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
4623 { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4627 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4631 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4635 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4639 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4643 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4648 if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4649 && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4650 && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4652 error ("invalid default template argument");
4653 yyvsp[0].ttype = error_mark_node;
4655 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4660 { finish_template_decl (yyvsp[-1].ttype); ;
4664 { finish_template_decl (yyvsp[-1].ttype); ;
4668 { if (pending_inlines) do_pending_inlines (); ;
4672 { if (pending_inlines) do_pending_inlines (); ;
4676 { if (pending_inlines) do_pending_inlines (); ;
4680 { if (pending_inlines) do_pending_inlines ();
4681 pop_lang_context (); ;
4685 { if (pending_inlines) do_pending_inlines ();
4686 pop_lang_context (); ;
4690 { pedantic = yyvsp[-1].itype; ;
4698 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4702 { maybe_process_partial_specialization (yyvsp[-1].ftype.t);
4703 note_got_semicolon (yyvsp[-1].ftype.t); ;
4711 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4715 { pedwarn ("empty declaration"); ;
4721 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4723 note_list_got_semicolon (yyvsp[-1].ftype.t);
4728 { yyval.itype = 0; ;
4732 { yyval.itype = 1; ;
4736 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4741 int nested = (hack_decl_function_context
4742 (current_function_decl) != NULL_TREE);
4743 finish_function (lineno, (int)yyvsp[0].itype, nested);
4752 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4756 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4760 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4761 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4766 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4770 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4774 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4775 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4780 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4784 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4788 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4789 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4794 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4798 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4802 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4803 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4808 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
4813 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4818 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4823 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4828 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4833 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4837 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4841 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4845 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4849 { tree specs, attrs;
4850 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4851 attrs = build_tree_list (attrs, NULL_TREE);
4852 yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs);
4856 if (yychar == YYEMPTY)
4858 reinit_parse_for_method (yychar, yyval.ttype); ;
4862 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
4863 goto rest_of_mdef; ;
4867 { tree specs, attrs;
4868 split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4869 attrs = build_tree_list (attrs, NULL_TREE);
4870 yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4874 { tree specs, attrs;
4875 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4876 attrs = build_tree_list (attrs, NULL_TREE);
4877 yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4881 { yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE);
4882 goto rest_of_mdef; ;
4886 { tree specs, attrs;
4887 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4888 attrs = build_tree_list (attrs, NULL_TREE);
4889 yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4893 { yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE);
4894 goto rest_of_mdef; ;
4899 if (! current_function_parms_stored)
4900 store_parm_decls ();
4901 yyval.ttype = yyvsp[0].ttype;
4906 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4910 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4914 { store_return_init (yyval.ttype, NULL_TREE); ;
4919 if (yyvsp[0].itype == 0)
4920 error ("no base initializers given following ':'");
4922 /* Always keep the BLOCK node associated with the outermost
4923 pair of curley braces of a function. These are needed
4924 for correct operation of dwarfout.c. */
4931 if (! current_function_parms_stored)
4932 store_parm_decls ();
4934 if (DECL_CONSTRUCTOR_P (current_function_decl))
4936 /* Make a contour for the initializer list. */
4939 expand_start_bindings (0);
4941 else if (current_class_type == NULL_TREE)
4942 error ("base initializers not allowed for non-member functions");
4943 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4944 error ("only constructors take base initializers");
4949 { yyval.itype = 0; ;
4953 { yyval.itype = 1; ;
4958 if (current_class_name)
4959 pedwarn ("anachronistic old style base class initializer");
4960 expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4966 if (current_class_name)
4967 pedwarn ("anachronistic old style base class initializer");
4968 expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4973 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4977 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4981 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4985 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4989 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4994 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4999 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
5000 yyungetc (';', 1); ;
5004 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
5005 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
5009 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
5013 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
5017 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
5018 yyungetc (';', 1); ;
5022 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
5023 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
5027 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
5031 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
5035 { begin_explicit_instantiation(); ;
5039 { end_explicit_instantiation(); ;
5043 { yyval.ttype = yyvsp[0].ttype; ;
5047 { yyval.ttype = yyvsp[0].ttype; ;
5051 { yyval.ttype = yyvsp[0].ttype; ;
5055 { yyval.ttype = yyvsp[0].ttype; ;
5060 if (yychar == YYEMPTY)
5063 yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype,
5070 /* Handle `Class<Class<Type>>' without space in the `>>' */
5071 pedwarn ("`>>' should be `> >' in template class name");
5077 { yyval.ttype = NULL_TREE; ;
5081 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5085 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5089 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
5093 { yyval.ttype = lastiddecl; ;
5097 { yyval.code = NEGATE_EXPR; ;
5101 { yyval.code = CONVERT_EXPR; ;
5105 { yyval.code = PREINCREMENT_EXPR; ;
5109 { yyval.code = PREDECREMENT_EXPR; ;
5113 { yyval.code = TRUTH_NOT_EXPR; ;
5117 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
5121 { error ("ANSI C++ forbids an empty condition for `%s'",
5123 yyval.ttype = integer_zero_node; ;
5127 { yyval.ttype = yyvsp[-1].ttype; ;
5130 #line 1001 "parse.y"
5131 { error ("ANSI C++ forbids an empty condition for `%s'",
5133 yyval.ttype = integer_zero_node; ;
5136 #line 1005 "parse.y"
5137 { yyval.ttype = yyvsp[-1].ttype; ;
5140 #line 1010 "parse.y"
5141 { yyval.ttype = NULL_TREE; ;
5144 #line 1013 "parse.y"
5145 { yyval.ttype = NULL_TREE; ;
5148 #line 1018 "parse.y"
5151 for (d = getdecls (); d; d = TREE_CHAIN (d))
5152 if (TREE_CODE (d) == TYPE_DECL) {
5153 tree s = TREE_TYPE (d);
5154 if (TREE_CODE (s) == RECORD_TYPE)
5155 cp_error ("definition of class `%T' in condition", s);
5156 else if (TREE_CODE (s) == ENUMERAL_TYPE)
5157 cp_error ("definition of enum `%T' in condition", s);
5160 current_declspecs = yyvsp[-4].ftype.t;
5161 yyvsp[0].itype = suspend_momentary ();
5162 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
5163 yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
5167 #line 1035 "parse.y"
5169 cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
5170 resume_momentary (yyvsp[-2].itype);
5171 yyval.ttype = convert_from_reference (yyvsp[-1].ttype);
5172 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
5173 cp_error ("definition of array `%#D' in condition", yyval.ttype);
5177 #line 1054 "parse.y"
5178 { yyval.ttype = begin_compound_stmt (1); ;
5181 #line 1056 "parse.y"
5182 { finish_compound_stmt (1, yyvsp[-1].ttype); ;
5185 #line 1063 "parse.y"
5186 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
5187 build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
5190 #line 1066 "parse.y"
5191 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
5192 build_expr_list (NULL_TREE, error_mark_node)); ;
5195 #line 1069 "parse.y"
5196 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
5199 #line 1071 "parse.y"
5200 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
5203 #line 1076 "parse.y"
5204 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
5207 #line 1082 "parse.y"
5208 { yyval.ttype = yyvsp[0].ttype; ;
5211 #line 1085 "parse.y"
5212 { yyval.ttype = yyvsp[0].ttype;
5213 pedantic = yyvsp[-1].itype; ;
5216 #line 1088 "parse.y"
5217 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
5220 #line 1090 "parse.y"
5221 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
5224 #line 1092 "parse.y"
5225 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5228 #line 1094 "parse.y"
5229 { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
5232 #line 1097 "parse.y"
5234 pedwarn ("ANSI C++ forbids `&&'");
5235 yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
5238 #line 1101 "parse.y"
5239 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
5242 #line 1103 "parse.y"
5243 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t));
5244 check_for_new_type ("sizeof", yyvsp[-1].ftype); ;
5247 #line 1106 "parse.y"
5248 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
5251 #line 1108 "parse.y"
5252 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
5253 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
5256 #line 1114 "parse.y"
5257 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
5258 check_for_new_type ("new", yyvsp[0].ftype); ;
5261 #line 1117 "parse.y"
5262 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
5263 check_for_new_type ("new", yyvsp[-1].ftype); ;
5266 #line 1120 "parse.y"
5267 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
5268 check_for_new_type ("new", yyvsp[0].ftype); ;
5271 #line 1123 "parse.y"
5272 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
5273 check_for_new_type ("new", yyvsp[-1].ftype); ;
5276 #line 1136 "parse.y"
5277 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
5278 NULL_TREE, yyvsp[-4].itype);
5279 check_for_new_type ("new", yyvsp[-1].ftype); ;
5282 #line 1141 "parse.y"
5283 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
5284 check_for_new_type ("new", yyvsp[-2].ftype); ;
5287 #line 1145 "parse.y"
5288 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype);
5289 check_for_new_type ("new", yyvsp[-1].ftype); ;
5292 #line 1149 "parse.y"
5293 { yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype);
5294 check_for_new_type ("new", yyvsp[-2].ftype); ;
5297 #line 1153 "parse.y"
5298 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
5301 #line 1155 "parse.y"
5302 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
5303 if (yychar == YYEMPTY)
5307 #line 1159 "parse.y"
5308 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
5309 if (yychar == YYEMPTY)
5313 #line 1163 "parse.y"
5314 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
5317 #line 1165 "parse.y"
5318 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
5321 #line 1175 "parse.y"
5322 { finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
5325 #line 1178 "parse.y"
5326 { yyval.itype = begin_new_placement (); ;
5329 #line 1182 "parse.y"
5330 { yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
5333 #line 1184 "parse.y"
5334 { cp_pedwarn ("old style placement syntax, use () instead");
5335 yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
5338 #line 1190 "parse.y"
5339 { yyval.ttype = yyvsp[-1].ttype; ;
5342 #line 1192 "parse.y"
5343 { yyval.ttype = NULL_TREE; ;
5346 #line 1194 "parse.y"
5348 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
5349 yyval.ttype = error_mark_node;
5353 #line 1202 "parse.y"
5356 pedwarn ("ANSI C++ forbids initialization of new expression with `='");
5357 if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
5358 && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
5359 yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
5361 yyval.ttype = yyvsp[0].ttype;
5365 #line 1216 "parse.y"
5366 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
5367 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5368 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5371 #line 1220 "parse.y"
5372 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
5373 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5374 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5377 #line 1228 "parse.y"
5378 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5381 #line 1230 "parse.y"
5383 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5384 nreverse (yyvsp[-2].ttype));
5386 pedwarn ("ANSI C++ forbids constructor-expressions");
5387 /* Indicate that this was a GNU C constructor expression. */
5388 TREE_HAS_CONSTRUCTOR (init) = 1;
5390 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5394 #line 1246 "parse.y"
5395 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5398 #line 1248 "parse.y"
5399 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5402 #line 1250 "parse.y"
5403 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5406 #line 1252 "parse.y"
5407 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5410 #line 1254 "parse.y"
5411 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5414 #line 1256 "parse.y"
5415 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5418 #line 1258 "parse.y"
5419 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5422 #line 1260 "parse.y"
5423 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5426 #line 1262 "parse.y"
5427 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5430 #line 1264 "parse.y"
5431 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5434 #line 1266 "parse.y"
5435 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5438 #line 1268 "parse.y"
5439 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5442 #line 1270 "parse.y"
5443 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5446 #line 1272 "parse.y"
5447 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5450 #line 1274 "parse.y"
5451 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5454 #line 1276 "parse.y"
5455 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5458 #line 1278 "parse.y"
5459 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5462 #line 1280 "parse.y"
5463 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5466 #line 1282 "parse.y"
5467 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5470 #line 1284 "parse.y"
5471 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5474 #line 1286 "parse.y"
5475 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5476 if (yyval.ttype != error_mark_node)
5477 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5480 #line 1290 "parse.y"
5481 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5484 #line 1292 "parse.y"
5485 { yyval.ttype = build_throw (NULL_TREE); ;
5488 #line 1294 "parse.y"
5489 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5492 #line 1312 "parse.y"
5493 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5496 #line 1314 "parse.y"
5497 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5500 #line 1323 "parse.y"
5502 /* If lastiddecl is a TREE_LIST, it's a baselink, which
5503 means that we're in an expression like S::f<int>, so
5504 don't do_identifier; we only do that for unqualified
5506 if (lastiddecl && TREE_CODE (lastiddecl) != TREE_LIST)
5507 yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE);
5509 yyval.ttype = yyvsp[-1].ttype;
5513 #line 1336 "parse.y"
5514 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5517 #line 1338 "parse.y"
5518 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5521 #line 1343 "parse.y"
5522 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5525 #line 1345 "parse.y"
5526 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5529 #line 1348 "parse.y"
5530 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5533 #line 1360 "parse.y"
5535 /* Provide support for '(' attributes '*' declarator ')'
5537 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
5541 #line 1370 "parse.y"
5542 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5545 #line 1372 "parse.y"
5546 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5549 #line 1374 "parse.y"
5550 { yyval.ttype = yyvsp[-1].ttype; ;
5553 #line 1379 "parse.y"
5554 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5557 #line 1381 "parse.y"
5558 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5561 #line 1391 "parse.y"
5562 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5565 #line 1396 "parse.y"
5567 if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
5568 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
5570 yyval.ttype = finish_id_expr (yyvsp[0].ttype);
5574 #line 1405 "parse.y"
5576 if (processing_template_decl)
5577 push_obstacks (&permanent_obstack, &permanent_obstack);
5578 yyval.ttype = combine_strings (yyval.ttype);
5579 /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
5580 a const array the way we want, so fix it. */
5581 if (flag_const_strings)
5582 TREE_TYPE (yyval.ttype) = build_cplus_array_type
5583 (TREE_TYPE (TREE_TYPE (yyval.ttype)),
5584 TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
5585 if (processing_template_decl)
5590 #line 1419 "parse.y"
5591 { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5594 #line 1421 "parse.y"
5595 { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5596 yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5599 #line 1424 "parse.y"
5600 { yyval.ttype = error_mark_node; ;
5603 #line 1426 "parse.y"
5604 { tree scope = current_scope ();
5605 if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
5607 error ("braced-group within expression allowed only inside a function");
5611 pedwarn ("ANSI C++ forbids braced-groups within expressions");
5612 yyval.ttype = begin_stmt_expr ();
5616 #line 1437 "parse.y"
5617 { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5620 #line 1442 "parse.y"
5621 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
5624 #line 1444 "parse.y"
5625 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
5628 #line 1446 "parse.y"
5629 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
5632 #line 1448 "parse.y"
5633 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
5636 #line 1450 "parse.y"
5637 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5640 #line 1452 "parse.y"
5641 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
5644 #line 1454 "parse.y"
5645 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
5648 #line 1457 "parse.y"
5649 { yyval.ttype = finish_this_expr (); ;
5652 #line 1459 "parse.y"
5654 /* This is a C cast in C++'s `functional' notation
5655 using the "implicit int" extension so that:
5656 `const (3)' is equivalent to `const int (3)'. */
5659 if (yyvsp[-1].ttype == error_mark_node)
5661 yyval.ttype = error_mark_node;
5665 type = cp_build_qualified_type (integer_type_node,
5666 cp_type_qual_from_rid (yyvsp[-3].ttype));
5667 yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5671 #line 1477 "parse.y"
5672 { tree type = groktypename (yyvsp[-4].ftype.t);
5673 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5674 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5677 #line 1481 "parse.y"
5678 { tree type = groktypename (yyvsp[-4].ftype.t);
5679 check_for_new_type ("static_cast", yyvsp[-4].ftype);
5680 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5683 #line 1485 "parse.y"
5684 { tree type = groktypename (yyvsp[-4].ftype.t);
5685 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5686 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5689 #line 1489 "parse.y"
5690 { tree type = groktypename (yyvsp[-4].ftype.t);
5691 check_for_new_type ("const_cast", yyvsp[-4].ftype);
5692 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5695 #line 1493 "parse.y"
5696 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5699 #line 1495 "parse.y"
5700 { tree type = groktypename (yyvsp[-1].ftype.t);
5701 check_for_new_type ("typeid", yyvsp[-1].ftype);
5702 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5705 #line 1499 "parse.y"
5706 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5709 #line 1501 "parse.y"
5710 { yyval.ttype = yyvsp[0].ttype; ;
5713 #line 1503 "parse.y"
5715 got_scope = NULL_TREE;
5716 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5717 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5719 yyval.ttype = yyvsp[0].ttype;
5723 #line 1511 "parse.y"
5724 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5727 #line 1513 "parse.y"
5728 { yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5731 #line 1515 "parse.y"
5732 { yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5735 #line 1517 "parse.y"
5737 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
5741 #line 1521 "parse.y"
5742 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5745 #line 1523 "parse.y"
5746 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5749 #line 1525 "parse.y"
5750 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5753 #line 1527 "parse.y"
5754 { if (processing_template_decl)
5755 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5757 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5760 #line 1532 "parse.y"
5761 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5764 #line 1534 "parse.y"
5765 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5768 #line 1536 "parse.y"
5769 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5772 #line 1538 "parse.y"
5773 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5776 #line 1541 "parse.y"
5777 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5780 #line 1543 "parse.y"
5781 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5784 #line 1545 "parse.y"
5786 yyval.ttype = error_mark_node;
5790 #line 1590 "parse.y"
5791 { yyval.itype = 0; ;
5794 #line 1592 "parse.y"
5795 { got_scope = NULL_TREE; yyval.itype = 1; ;
5798 #line 1597 "parse.y"
5799 { yyval.itype = 0; ;
5802 #line 1599 "parse.y"
5803 { got_scope = NULL_TREE; yyval.itype = 1; ;
5806 #line 1604 "parse.y"
5807 { yyval.ttype = boolean_true_node; ;
5810 #line 1606 "parse.y"
5811 { yyval.ttype = boolean_false_node; ;
5814 #line 1613 "parse.y"
5815 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5818 #line 1618 "parse.y"
5820 if (! current_function_parms_stored)
5821 store_parm_decls ();
5823 /* Always keep the BLOCK node associated with the outermost
5824 pair of curley braces of a function. These are needed
5825 for correct operation of dwarfout.c. */
5830 #line 1631 "parse.y"
5831 { got_object = TREE_TYPE (yyval.ttype); ;
5834 #line 1633 "parse.y"
5836 yyval.ttype = build_x_arrow (yyval.ttype);
5837 got_object = TREE_TYPE (yyval.ttype);
5841 #line 1641 "parse.y"
5843 resume_momentary (yyvsp[-1].itype);
5844 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5845 note_got_semicolon (yyvsp[-2].ftype.t);
5849 #line 1647 "parse.y"
5851 resume_momentary (yyvsp[-1].itype);
5852 note_list_got_semicolon (yyvsp[-2].ftype.t);
5856 #line 1652 "parse.y"
5857 { resume_momentary (yyvsp[-1].itype); ;
5860 #line 1654 "parse.y"
5862 shadow_tag (yyvsp[-1].ftype.t);
5863 note_list_got_semicolon (yyvsp[-1].ftype.t);
5867 #line 1659 "parse.y"
5868 { warning ("empty declaration"); ;
5871 #line 1661 "parse.y"
5872 { pedantic = yyvsp[-1].itype; ;
5875 #line 1675 "parse.y"
5876 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5877 NULL_TREE, NULL_TREE); ;
5880 #line 1678 "parse.y"
5881 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5885 #line 1685 "parse.y"
5886 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5887 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5890 #line 1688 "parse.y"
5891 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5892 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5895 #line 1691 "parse.y"
5896 { yyval.ftype.t = build_decl_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
5898 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5901 #line 1695 "parse.y"
5902 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5903 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5906 #line 1698 "parse.y"
5907 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5908 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5911 #line 1714 "parse.y"
5912 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
5913 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5916 #line 1717 "parse.y"
5917 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5918 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5921 #line 1720 "parse.y"
5922 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
5923 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5926 #line 1723 "parse.y"
5927 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5928 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5931 #line 1726 "parse.y"
5932 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5933 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5936 #line 1729 "parse.y"
5937 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5938 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
5939 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5942 #line 1736 "parse.y"
5943 { if (extra_warnings)
5944 warning ("`%s' is not at beginning of declaration",
5945 IDENTIFIER_POINTER (yyval.ttype));
5946 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5949 #line 1741 "parse.y"
5950 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5953 #line 1743 "parse.y"
5954 { if (extra_warnings)
5955 warning ("`%s' is not at beginning of declaration",
5956 IDENTIFIER_POINTER (yyvsp[0].ttype));
5957 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5960 #line 1748 "parse.y"
5961 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5964 #line 1750 "parse.y"
5965 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5968 #line 1769 "parse.y"
5969 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5972 #line 1771 "parse.y"
5973 { yyval.ttype = hash_tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
5976 #line 1773 "parse.y"
5977 { yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5978 TREE_STATIC (yyval.ttype) = 1; ;
5981 #line 1776 "parse.y"
5982 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5983 warning ("`%s' is not at beginning of declaration",
5984 IDENTIFIER_POINTER (yyvsp[0].ttype));
5985 yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5986 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5989 #line 1782 "parse.y"
5990 { yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5993 #line 1784 "parse.y"
5994 { yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5997 #line 1795 "parse.y"
5998 { yyval.ftype.t = build_decl_list (NULL_TREE, yyvsp[0].ftype.t);
5999 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6002 #line 1798 "parse.y"
6003 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
6004 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6007 #line 1801 "parse.y"
6008 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
6009 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6012 #line 1804 "parse.y"
6013 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
6014 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
6017 #line 1810 "parse.y"
6018 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
6021 #line 1812 "parse.y"
6022 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
6025 #line 1822 "parse.y"
6026 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6029 #line 1824 "parse.y"
6030 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6033 #line 1826 "parse.y"
6034 { yyval.ftype.t = finish_typeof (yyvsp[-1].ttype);
6035 yyval.ftype.new_type_flag = 0; ;
6038 #line 1829 "parse.y"
6039 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
6040 yyval.ftype.new_type_flag = 0; ;
6043 #line 1832 "parse.y"
6044 { tree type = TREE_TYPE (yyvsp[-1].ttype);
6046 yyval.ftype.new_type_flag = 0;
6047 if (IS_AGGR_TYPE (type))
6049 sorry ("sigof type specifier");
6050 yyval.ftype.t = type;
6054 error ("`sigof' applied to non-aggregate expression");
6055 yyval.ftype.t = error_mark_node;
6060 #line 1847 "parse.y"
6061 { tree type = groktypename (yyvsp[-1].ftype.t);
6063 yyval.ftype.new_type_flag = 0;
6064 if (IS_AGGR_TYPE (type))
6066 sorry ("sigof type specifier");
6067 yyval.ftype.t = type;
6071 error("`sigof' applied to non-aggregate type");
6072 yyval.ftype.t = error_mark_node;
6077 #line 1867 "parse.y"
6078 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6081 #line 1869 "parse.y"
6082 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6085 #line 1876 "parse.y"
6086 { check_multiple_declarators (); ;
6089 #line 1882 "parse.y"
6090 { check_multiple_declarators (); ;
6093 #line 1888 "parse.y"
6094 { check_multiple_declarators (); ;
6097 #line 1893 "parse.y"
6098 { yyval.ttype = NULL_TREE; ;
6101 #line 1895 "parse.y"
6102 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
6105 #line 1900 "parse.y"
6106 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
6107 yyvsp[-1].ttype, prefix_attributes); ;
6110 #line 1904 "parse.y"
6111 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
6114 #line 1906 "parse.y"
6115 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
6116 yyvsp[0].ttype, prefix_attributes);
6117 cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
6120 #line 1919 "parse.y"
6121 { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype,
6122 yyvsp[-1].ttype, 1, &yyval.ttype); ;
6125 #line 1924 "parse.y"
6126 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
6127 LOOKUP_ONLYCONVERTING);
6128 yyval.itype = yyvsp[-2].itype; ;
6131 #line 1928 "parse.y"
6133 yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
6134 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
6137 #line 1935 "parse.y"
6138 { yyval.itype = yyvsp[0].itype; ;
6141 #line 1939 "parse.y"
6142 { yyval.itype = yyvsp[0].itype; ;
6145 #line 1944 "parse.y"
6146 { /* Set things up as initdcl0_innards expects. */
6147 yyvsp[0].ttype = yyvsp[-1].ttype;
6148 yyvsp[-1].ttype = NULL_TREE; ;
6151 #line 1948 "parse.y"
6155 #line 1950 "parse.y"
6157 parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
6158 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
6161 #line 1959 "parse.y"
6162 { yyval.ttype = NULL_TREE; ;
6165 #line 1961 "parse.y"
6166 { yyval.ttype = yyvsp[0].ttype; ;
6169 #line 1966 "parse.y"
6170 { yyval.ttype = yyvsp[0].ttype; ;
6173 #line 1968 "parse.y"
6174 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6177 #line 1973 "parse.y"
6178 { yyval.ttype = yyvsp[-2].ttype; ;
6181 #line 1978 "parse.y"
6182 { yyval.ttype = yyvsp[0].ttype; ;
6185 #line 1980 "parse.y"
6186 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6189 #line 1985 "parse.y"
6190 { yyval.ttype = NULL_TREE; ;
6193 #line 1987 "parse.y"
6194 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
6197 #line 1989 "parse.y"
6198 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
6201 #line 1991 "parse.y"
6202 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
6205 #line 1993 "parse.y"
6206 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6209 #line 2009 "parse.y"
6210 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
6213 #line 2011 "parse.y"
6214 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6217 #line 2016 "parse.y"
6218 { yyval.ttype = NULL_TREE; ;
6221 #line 2018 "parse.y"
6222 { yyval.ttype = yyvsp[0].ttype; ;
6225 #line 2026 "parse.y"
6226 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
6227 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6230 #line 2029 "parse.y"
6231 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6232 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6235 #line 2032 "parse.y"
6236 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6237 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6240 #line 2035 "parse.y"
6241 { yyval.ttype = NULL_TREE; ;
6244 #line 2042 "parse.y"
6245 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6248 #line 2044 "parse.y"
6249 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6252 #line 2047 "parse.y"
6253 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6256 #line 2049 "parse.y"
6257 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6260 #line 2051 "parse.y"
6261 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6264 #line 2056 "parse.y"
6265 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
6267 reinit_parse_for_function (); ;
6270 #line 2062 "parse.y"
6272 int nested = (hack_decl_function_context
6273 (current_function_decl) != NULL_TREE);
6274 finish_function (lineno, (int)yyvsp[-1].itype | 2, nested);
6275 process_next_inline (yyvsp[-3].ttype);
6279 #line 2069 "parse.y"
6281 int nested = (hack_decl_function_context
6282 (current_function_decl) != NULL_TREE);
6283 finish_function (lineno, (int)yyvsp[0].itype | 2, nested);
6284 process_next_inline (yyvsp[-2].ttype);
6288 #line 2076 "parse.y"
6289 { process_next_inline (yyvsp[-2].ttype); ;
6292 #line 2088 "parse.y"
6293 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6296 #line 2090 "parse.y"
6297 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6300 #line 2095 "parse.y"
6301 { do_pending_defargs (); ;
6304 #line 2097 "parse.y"
6305 { do_pending_defargs (); ;
6308 #line 2102 "parse.y"
6309 { yyvsp[0].itype = suspend_momentary ();
6310 yyval.ttype = current_enum_type;
6311 current_enum_type = start_enum (yyvsp[-1].ttype); ;
6314 #line 2106 "parse.y"
6315 { TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
6316 yyval.ftype.t = finish_enum (current_enum_type);
6317 yyval.ftype.new_type_flag = 1;
6318 current_enum_type = yyvsp[-3].ttype;
6319 resume_momentary ((int) yyvsp[-4].itype);
6320 check_for_missing_semicolon (yyval.ftype.t); ;
6323 #line 2113 "parse.y"
6324 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype));
6325 yyval.ftype.new_type_flag = 1;
6326 check_for_missing_semicolon (yyval.ftype.t); ;
6329 #line 2117 "parse.y"
6330 { yyvsp[0].itype = suspend_momentary ();
6331 yyval.ttype = current_enum_type;
6332 current_enum_type = start_enum (make_anon_name ()); ;
6335 #line 2121 "parse.y"
6336 { TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
6337 yyval.ftype.t = finish_enum (current_enum_type);
6338 yyval.ftype.new_type_flag = 1;
6339 current_enum_type = yyvsp[-3].ttype;
6340 resume_momentary ((int) yyvsp[-5].itype);
6341 check_for_missing_semicolon (yyval.ftype.t); ;
6344 #line 2128 "parse.y"
6345 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()));
6346 yyval.ftype.new_type_flag = 1;
6347 check_for_missing_semicolon (yyval.ftype.t); ;
6350 #line 2132 "parse.y"
6351 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1);
6352 yyval.ftype.new_type_flag = 0; ;
6355 #line 2135 "parse.y"
6356 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1);
6357 yyval.ftype.new_type_flag = 0; ;
6360 #line 2138 "parse.y"
6361 { yyval.ftype.t = yyvsp[0].ttype;
6362 yyval.ftype.new_type_flag = 0;
6363 if (!processing_template_decl)
6364 cp_pedwarn ("using `typename' outside of template"); ;
6367 #line 2144 "parse.y"
6368 { yyvsp[-1].ftype.t = begin_class_definition (yyvsp[-1].ftype.t); ;
6371 #line 2146 "parse.y"
6375 if (yychar == YYEMPTY)
6377 semi = yychar == ';';
6379 yyval.ttype = finish_class_definition (yyvsp[-5].ftype.t, yyvsp[0].ttype, semi,
6380 yyvsp[-5].ftype.new_type_flag);
6384 #line 2157 "parse.y"
6386 begin_inline_definitions ();
6390 #line 2161 "parse.y"
6392 finish_inline_definitions ();
6393 yyval.ftype.t = yyvsp[-3].ttype;
6394 yyval.ftype.new_type_flag = 1;
6398 #line 2167 "parse.y"
6400 if (yyvsp[0].ftype.new_type_flag)
6401 pop_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (yyvsp[0].ftype.t)));
6402 yyval.ftype.new_type_flag = 0;
6403 if (TYPE_BINFO (yyvsp[0].ftype.t) == NULL_TREE)
6405 cp_error ("%T is not a class type", yyvsp[0].ftype.t);
6406 yyval.ftype.t = error_mark_node;
6410 yyval.ftype.t = yyvsp[0].ftype.t;
6411 /* struct B: public A; is not accepted by the WP grammar. */
6412 if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6413 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6414 cp_error ("base clause without member specification for `%#T'",
6420 #line 2196 "parse.y"
6421 { if (pedantic && !in_system_header)
6422 pedwarn ("comma at end of enumerator list"); ;
6425 #line 2203 "parse.y"
6426 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6429 #line 2205 "parse.y"
6430 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6433 #line 2207 "parse.y"
6434 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6437 #line 2209 "parse.y"
6438 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6441 #line 2211 "parse.y"
6442 { yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
6445 #line 2216 "parse.y"
6447 current_aggr = yyvsp[-1].ttype;
6448 yyval.ttype = yyvsp[0].ttype;
6452 #line 2224 "parse.y"
6453 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6456 #line 2226 "parse.y"
6457 { yyungetc ('{', 1); ;
6460 #line 2228 "parse.y"
6461 { yyungetc (':', 1); ;
6464 #line 2233 "parse.y"
6466 current_aggr = yyvsp[-2].ttype;
6467 yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6468 yyval.ftype.new_type_flag = 1;
6472 #line 2239 "parse.y"
6474 current_aggr = yyvsp[-3].ttype;
6475 yyval.ftype.t = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6476 yyval.ftype.new_type_flag = 1;
6480 #line 2245 "parse.y"
6482 current_aggr = yyvsp[-2].ttype;
6483 yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6484 yyval.ftype.new_type_flag = 1;
6488 #line 2251 "parse.y"
6490 current_aggr = yyvsp[-1].ttype;
6491 yyval.ftype.t = yyvsp[0].ttype;
6492 yyval.ftype.new_type_flag = 0;
6496 #line 2257 "parse.y"
6498 current_aggr = yyvsp[-2].ttype;
6499 yyval.ftype.t = yyvsp[0].ttype;
6500 if (CP_DECL_CONTEXT (yyval.ftype.t))
6501 push_scope (CP_DECL_CONTEXT (yyval.ftype.t));
6502 yyval.ftype.new_type_flag = 1;
6506 #line 2268 "parse.y"
6508 yyval.ftype.t = xref_tag (current_aggr, yyvsp[0].ttype, 1);
6509 yyval.ftype.new_type_flag = 0;
6513 #line 2273 "parse.y"
6514 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
6517 #line 2277 "parse.y"
6519 yyval.ftype.t = yyvsp[-1].ttype;
6520 yyval.ftype.new_type_flag = 0;
6522 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6526 #line 2285 "parse.y"
6528 if (yyvsp[-1].ftype.t != error_mark_node)
6530 yyval.ftype.t = TREE_TYPE (yyvsp[-1].ftype.t);
6531 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
6532 if (current_aggr == union_type_node
6533 && TREE_CODE (yyval.ftype.t) != UNION_TYPE)
6534 cp_pedwarn ("`union' tag used in declaring `%#T'",
6536 else if (TREE_CODE (yyval.ftype.t) == UNION_TYPE
6537 && current_aggr != union_type_node)
6538 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ftype);
6539 else if (TREE_CODE (yyval.ftype.t) == RECORD_TYPE)
6540 /* We might be specializing a template with a different
6542 CLASSTYPE_DECLARED_CLASS (yyval.ftype.t)
6543 = (current_aggr == class_type_node);
6546 maybe_process_partial_specialization (yyval.ftype.t);
6547 xref_basetypes (current_aggr, yyvsp[-1].ftype.t, yyval.ftype.t, yyvsp[0].ttype);
6553 #line 2313 "parse.y"
6554 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
6555 yyungetc ('{', 1); ;
6558 #line 2323 "parse.y"
6560 yyval.ftype.t = yyvsp[0].ttype;
6561 yyval.ftype.new_type_flag = 0;
6565 #line 2332 "parse.y"
6566 { yyval.ttype = NULL_TREE; ;
6569 #line 2334 "parse.y"
6570 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6573 #line 2336 "parse.y"
6574 { yyval.ttype = yyvsp[0].ttype; ;
6577 #line 2342 "parse.y"
6578 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6581 #line 2347 "parse.y"
6582 { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype,
6584 == signature_type_node); ;
6587 #line 2351 "parse.y"
6588 { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype,
6590 == signature_type_node); ;
6593 #line 2358 "parse.y"
6594 { if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6597 #line 2361 "parse.y"
6599 if (current_aggr == signature_type_node)
6601 if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6603 sorry ("`sigof' as base signature specifier");
6604 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6608 error ("`sigof' applied to non-aggregate expression");
6609 yyval.ttype = error_mark_node;
6614 error ("`sigof' in struct or class declaration");
6615 yyval.ttype = error_mark_node;
6620 #line 2382 "parse.y"
6622 if (current_aggr == signature_type_node)
6624 if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6626 sorry ("`sigof' as base signature specifier");
6627 yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6631 error ("`sigof' applied to non-aggregate expression");
6632 yyval.ttype = error_mark_node;
6637 error ("`sigof' in struct or class declaration");
6638 yyval.ttype = error_mark_node;
6643 #line 2407 "parse.y"
6644 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6645 cp_error ("`%D' access", yyvsp[-1].ttype);
6646 yyval.ttype = access_default_virtual_node; ;
6649 #line 2411 "parse.y"
6651 if (yyvsp[-2].ttype != access_default_virtual_node)
6652 error ("multiple access specifiers");
6653 else if (yyvsp[-1].ttype == access_public_node)
6654 yyval.ttype = access_public_virtual_node;
6655 else if (yyvsp[-1].ttype == access_protected_node)
6656 yyval.ttype = access_protected_virtual_node;
6657 else /* $2 == access_private_node */
6658 yyval.ttype = access_private_virtual_node;
6662 #line 2422 "parse.y"
6663 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6664 cp_error ("`%D' access", yyvsp[-1].ttype);
6665 else if (yyval.ttype == access_public_node)
6666 yyval.ttype = access_public_virtual_node;
6667 else if (yyval.ttype == access_protected_node)
6668 yyval.ttype = access_protected_virtual_node;
6669 else if (yyval.ttype == access_private_node)
6670 yyval.ttype = access_private_virtual_node;
6672 error ("multiple `virtual' specifiers");
6676 #line 2443 "parse.y"
6678 if (current_aggr == signature_type_node)
6680 error ("access specifier not allowed in signature");
6681 yyvsp[-1].ttype = access_public_node;
6684 current_access_specifier = yyvsp[-1].ttype;
6688 #line 2458 "parse.y"
6690 finish_member_declaration (yyvsp[0].ttype);
6694 #line 2462 "parse.y"
6696 finish_member_declaration (yyvsp[0].ttype);
6700 #line 2470 "parse.y"
6701 { error ("missing ';' before right brace");
6702 yyungetc ('}', 0); ;
6705 #line 2475 "parse.y"
6706 { yyval.ttype = finish_method (yyval.ttype); ;
6709 #line 2477 "parse.y"
6710 { yyval.ttype = finish_method (yyval.ttype); ;
6713 #line 2479 "parse.y"
6714 { yyval.ttype = finish_method (yyval.ttype); ;
6717 #line 2481 "parse.y"
6718 { yyval.ttype = finish_method (yyval.ttype); ;
6721 #line 2483 "parse.y"
6722 { yyval.ttype = NULL_TREE; ;
6725 #line 2485 "parse.y"
6726 { yyval.ttype = yyvsp[0].ttype;
6727 pedantic = yyvsp[-1].itype; ;
6730 #line 2488 "parse.y"
6733 yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
6735 /* The component was already processed. */
6736 yyval.ttype = NULL_TREE;
6738 finish_template_decl (yyvsp[-1].ttype);
6742 #line 2498 "parse.y"
6744 yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t);
6745 finish_template_decl (yyvsp[-2].ttype);
6749 #line 2509 "parse.y"
6751 /* Most of the productions for component_decl only
6752 allow the creation of one new member, so we call
6753 finish_member_declaration in component_decl_list.
6754 For this rule and the next, however, there can be
6755 more than one member, e.g.:
6759 and we need the first member to be fully
6760 registered before the second is processed.
6761 Therefore, the rules for components take care of
6762 this processing. To avoid registering the
6763 components more than once, we send NULL_TREE up
6764 here; that lets finish_member_declaration know
6765 that there is nothing to do. */
6766 if (!yyvsp[0].itype)
6767 grok_x_components (yyvsp[-1].ftype.t);
6768 yyval.ttype = NULL_TREE;
6772 #line 2530 "parse.y"
6774 if (!yyvsp[0].itype)
6775 grok_x_components (yyvsp[-1].ttype);
6776 yyval.ttype = NULL_TREE;
6780 #line 2536 "parse.y"
6781 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6782 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6785 #line 2539 "parse.y"
6786 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6787 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6790 #line 2542 "parse.y"
6791 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6794 #line 2544 "parse.y"
6795 { yyval.ttype = NULL_TREE; ;
6798 #line 2555 "parse.y"
6799 { tree specs, attrs;
6800 split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6801 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6802 build_tree_list (yyvsp[-1].ttype, attrs)); ;
6805 #line 2560 "parse.y"
6806 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6807 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6810 #line 2563 "parse.y"
6811 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6814 #line 2569 "parse.y"
6815 { yyval.itype = 0; ;
6818 #line 2571 "parse.y"
6820 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6821 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6822 finish_member_declaration (yyvsp[0].ttype);
6827 #line 2578 "parse.y"
6829 check_multiple_declarators ();
6830 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6831 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6832 finish_member_declaration (yyvsp[0].ttype);
6837 #line 2589 "parse.y"
6838 { yyval.itype = 0; ;
6841 #line 2591 "parse.y"
6843 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6844 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6845 finish_member_declaration (yyvsp[0].ttype);
6850 #line 2598 "parse.y"
6852 check_multiple_declarators ();
6853 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6854 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6855 finish_member_declaration (yyvsp[0].ttype);
6860 #line 2619 "parse.y"
6861 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6862 &prefix_attributes);
6863 yyvsp[-4].ttype = current_declspecs;
6864 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6865 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6868 #line 2625 "parse.y"
6869 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6870 &prefix_attributes);
6871 yyvsp[-4].ttype = current_declspecs;
6872 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6873 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6876 #line 2634 "parse.y"
6877 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6878 &prefix_attributes);
6879 yyvsp[-4].ttype = current_declspecs;
6880 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6881 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6884 #line 2640 "parse.y"
6885 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6886 &prefix_attributes);
6887 yyvsp[-4].ttype = current_declspecs;
6888 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6889 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6892 #line 2646 "parse.y"
6893 { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs,
6894 &prefix_attributes);
6895 yyvsp[-4].ttype = current_declspecs;
6896 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6897 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6900 #line 2652 "parse.y"
6901 { split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs,
6902 &prefix_attributes);
6903 yyvsp[-3].ttype = current_declspecs;
6904 yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6905 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6908 #line 2661 "parse.y"
6909 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6910 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6913 #line 2664 "parse.y"
6914 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6915 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6918 #line 2670 "parse.y"
6919 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6920 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6923 #line 2673 "parse.y"
6924 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6925 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6928 #line 2676 "parse.y"
6929 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6930 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6933 #line 2687 "parse.y"
6934 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6937 #line 2692 "parse.y"
6938 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE, current_enum_type); ;
6941 #line 2694 "parse.y"
6942 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype, current_enum_type); ;
6945 #line 2700 "parse.y"
6946 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6947 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6950 #line 2703 "parse.y"
6951 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6952 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6955 #line 2710 "parse.y"
6958 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6959 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6960 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6961 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6965 #line 2721 "parse.y"
6966 { yyval.ttype = NULL_TREE; ;
6969 #line 2723 "parse.y"
6970 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6973 #line 2728 "parse.y"
6974 { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
6975 yyval.ftype.new_type_flag = 0; ;
6978 #line 2731 "parse.y"
6979 { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6980 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6983 #line 2740 "parse.y"
6984 { yyval.itype = suspend_momentary (); ;
6987 #line 2745 "parse.y"
6988 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6991 #line 2751 "parse.y"
6992 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6995 #line 2753 "parse.y"
6996 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6999 #line 2755 "parse.y"
7000 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
7003 #line 2757 "parse.y"
7004 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
7007 #line 2765 "parse.y"
7009 /* Provide support for '(' attributes '*' declarator ')'
7011 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7015 #line 2775 "parse.y"
7016 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7019 #line 2777 "parse.y"
7020 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7023 #line 2779 "parse.y"
7024 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7027 #line 2781 "parse.y"
7028 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7031 #line 2783 "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 2791 "parse.y"
7038 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7041 #line 2793 "parse.y"
7042 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7045 #line 2795 "parse.y"
7046 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7049 #line 2797 "parse.y"
7050 { yyval.ttype = yyvsp[-1].ttype; ;
7053 #line 2799 "parse.y"
7054 { push_nested_class (yyvsp[-1].ttype, 3);
7055 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
7056 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
7059 #line 2807 "parse.y"
7061 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7063 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
7064 maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype);
7067 yyval.ttype = yyvsp[0].ttype;
7071 #line 2817 "parse.y"
7073 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7074 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7076 yyval.ttype = yyvsp[0].ttype;
7077 got_scope = NULL_TREE;
7081 #line 2830 "parse.y"
7082 { yyval.ttype = yyvsp[0].ttype; ;
7085 #line 2835 "parse.y"
7086 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
7089 #line 2844 "parse.y"
7091 /* Provide support for '(' attributes '*' declarator ')'
7093 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7097 #line 2853 "parse.y"
7098 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7101 #line 2855 "parse.y"
7102 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7105 #line 2857 "parse.y"
7106 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7109 #line 2859 "parse.y"
7110 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7113 #line 2861 "parse.y"
7114 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7115 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7119 #line 2869 "parse.y"
7120 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7123 #line 2871 "parse.y"
7124 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7127 #line 2873 "parse.y"
7128 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7131 #line 2875 "parse.y"
7132 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7135 #line 2877 "parse.y"
7136 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7137 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7141 #line 2885 "parse.y"
7142 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7145 #line 2887 "parse.y"
7146 { yyval.ttype = yyvsp[-1].ttype; ;
7149 #line 2889 "parse.y"
7150 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7153 #line 2891 "parse.y"
7154 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7157 #line 2893 "parse.y"
7158 { enter_scope_of (yyvsp[0].ttype); ;
7161 #line 2895 "parse.y"
7162 { got_scope = NULL_TREE;
7163 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7164 enter_scope_of (yyval.ttype);
7168 #line 2903 "parse.y"
7169 { got_scope = NULL_TREE;
7170 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7173 #line 2906 "parse.y"
7174 { got_scope = NULL_TREE;
7175 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7178 #line 2912 "parse.y"
7179 { got_scope = NULL_TREE;
7180 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7183 #line 2915 "parse.y"
7184 { got_scope = NULL_TREE;
7185 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7188 #line 2922 "parse.y"
7189 { yyval.ttype = yyvsp[0].ttype; ;
7192 #line 2927 "parse.y"
7193 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7196 #line 2929 "parse.y"
7197 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7200 #line 2931 "parse.y"
7201 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7204 #line 2942 "parse.y"
7205 { yyval.ttype = yyvsp[0].ttype; ;
7208 #line 2944 "parse.y"
7209 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7212 #line 2951 "parse.y"
7214 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7216 yyval.ttype = lastiddecl;
7217 maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype);
7219 got_scope = yyval.ttype =
7220 complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype)));
7224 #line 2961 "parse.y"
7226 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7227 yyval.ttype = lastiddecl;
7228 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7232 #line 2967 "parse.y"
7234 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7235 yyval.ttype = lastiddecl;
7236 got_scope = yyval.ttype;
7240 #line 2973 "parse.y"
7241 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7244 #line 2989 "parse.y"
7245 { yyval.ttype = yyvsp[0].ttype; ;
7248 #line 2994 "parse.y"
7250 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7251 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7252 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7253 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7256 yyval.ttype = yyvsp[0].ttype;
7257 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7258 yyval.ttype = TREE_TYPE (yyval.ttype);
7263 #line 3007 "parse.y"
7264 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
7267 #line 3009 "parse.y"
7268 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7271 #line 3011 "parse.y"
7272 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
7275 #line 3016 "parse.y"
7277 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7278 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7282 #line 3021 "parse.y"
7284 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7285 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7286 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7287 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7290 yyval.ttype = yyvsp[0].ttype;
7291 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7292 yyval.ttype = TREE_TYPE (yyval.ttype);
7297 #line 3034 "parse.y"
7298 { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
7301 #line 3036 "parse.y"
7302 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7305 #line 3041 "parse.y"
7307 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7308 yyvsp[-1].ttype = lastiddecl;
7310 /* Retrieve the type for the identifier, which might involve
7311 some computation. */
7312 got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));
7314 if (yyval.ttype == error_mark_node)
7315 cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
7319 #line 3053 "parse.y"
7321 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7322 yyval.ttype = lastiddecl;
7323 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7327 #line 3059 "parse.y"
7328 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7331 #line 3063 "parse.y"
7333 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7334 yyval.ttype = lastiddecl;
7335 got_scope = yyval.ttype;
7339 #line 3072 "parse.y"
7340 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7343 #line 3077 "parse.y"
7345 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7346 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7348 yyval.ttype = yyvsp[0].ttype;
7349 got_scope = NULL_TREE;
7353 #line 3086 "parse.y"
7354 { yyval.ttype = yyvsp[0].ttype; ;
7357 #line 3091 "parse.y"
7358 { got_scope = NULL_TREE; ;
7361 #line 3093 "parse.y"
7362 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7365 #line 3100 "parse.y"
7366 { got_scope = void_type_node; ;
7369 #line 3106 "parse.y"
7370 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7373 #line 3108 "parse.y"
7374 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7377 #line 3110 "parse.y"
7378 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7381 #line 3112 "parse.y"
7382 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7385 #line 3114 "parse.y"
7386 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7387 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7391 #line 3118 "parse.y"
7392 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7393 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7397 #line 3127 "parse.y"
7398 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7401 #line 3129 "parse.y"
7402 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7405 #line 3135 "parse.y"
7407 /* Provide support for '(' attributes '*' declarator ')'
7409 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7413 #line 3145 "parse.y"
7414 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7417 #line 3147 "parse.y"
7418 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7421 #line 3149 "parse.y"
7422 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7425 #line 3151 "parse.y"
7426 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7429 #line 3153 "parse.y"
7430 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7433 #line 3155 "parse.y"
7434 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7437 #line 3157 "parse.y"
7438 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7441 #line 3159 "parse.y"
7442 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7445 #line 3161 "parse.y"
7446 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7447 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7451 #line 3165 "parse.y"
7452 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7453 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7457 #line 3174 "parse.y"
7458 { yyval.ttype = yyvsp[-1].ttype; ;
7461 #line 3178 "parse.y"
7462 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7465 #line 3180 "parse.y"
7466 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7469 #line 3182 "parse.y"
7470 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7473 #line 3184 "parse.y"
7474 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7477 #line 3186 "parse.y"
7478 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7481 #line 3188 "parse.y"
7482 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7485 #line 3190 "parse.y"
7486 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7489 #line 3192 "parse.y"
7490 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7493 #line 3194 "parse.y"
7494 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7497 #line 3217 "parse.y"
7499 pedwarn ("ANSI C++ forbids label declarations"); ;
7502 #line 3228 "parse.y"
7504 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7506 tree label = shadow_label (TREE_VALUE (link));
7507 C_DECLARED_LABEL_FLAG (label) = 1;
7508 declare_nonlocal_label (label);
7513 #line 3242 "parse.y"
7517 #line 3248 "parse.y"
7518 { yyval.ttype = begin_compound_stmt (0); ;
7521 #line 3250 "parse.y"
7522 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7525 #line 3255 "parse.y"
7527 yyval.ttype = begin_if_stmt ();
7528 cond_stmt_keyword = "if";
7532 #line 3260 "parse.y"
7533 { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7536 #line 3262 "parse.y"
7537 { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
7540 #line 3267 "parse.y"
7541 { yyval.ttype = begin_compound_stmt (0); ;
7544 #line 3269 "parse.y"
7545 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7548 #line 3274 "parse.y"
7552 #line 3280 "parse.y"
7556 #line 3282 "parse.y"
7557 { finish_expr_stmt (yyvsp[-1].ttype); ;
7560 #line 3284 "parse.y"
7561 { begin_else_clause (); ;
7564 #line 3286 "parse.y"
7566 finish_else_clause (yyvsp[-3].ttype);
7571 #line 3291 "parse.y"
7572 { finish_if_stmt (); ;
7575 #line 3293 "parse.y"
7577 yyval.ttype = begin_while_stmt ();
7578 cond_stmt_keyword = "while";
7582 #line 3298 "parse.y"
7583 { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7586 #line 3300 "parse.y"
7587 { finish_while_stmt (yyvsp[-3].ttype); ;
7590 #line 3302 "parse.y"
7591 { yyval.ttype = begin_do_stmt (); ;
7594 #line 3304 "parse.y"
7596 finish_do_body (yyvsp[-2].ttype);
7597 cond_stmt_keyword = "do";
7601 #line 3309 "parse.y"
7602 { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7605 #line 3311 "parse.y"
7606 { yyval.ttype = begin_for_stmt (); ;
7609 #line 3313 "parse.y"
7610 { finish_for_init_stmt (yyvsp[-2].ttype); ;
7613 #line 3315 "parse.y"
7614 { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7617 #line 3317 "parse.y"
7618 { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
7621 #line 3319 "parse.y"
7622 { finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
7625 #line 3321 "parse.y"
7626 { begin_switch_stmt (); ;
7629 #line 3323 "parse.y"
7630 { yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
7633 #line 3325 "parse.y"
7634 { finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7637 #line 3327 "parse.y"
7638 { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
7641 #line 3330 "parse.y"
7642 { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7645 #line 3333 "parse.y"
7646 { finish_case_label (NULL_TREE, NULL_TREE); ;
7649 #line 3336 "parse.y"
7650 { finish_break_stmt (); ;
7653 #line 3338 "parse.y"
7654 { finish_continue_stmt (); ;
7657 #line 3340 "parse.y"
7658 { finish_return_stmt (NULL_TREE); ;
7661 #line 3342 "parse.y"
7662 { finish_return_stmt (yyvsp[-1].ttype); ;
7665 #line 3344 "parse.y"
7667 finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7672 #line 3350 "parse.y"
7674 finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7679 #line 3356 "parse.y"
7680 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
7683 #line 3360 "parse.y"
7684 { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7687 #line 3362 "parse.y"
7690 pedwarn ("ANSI C++ forbids computed gotos");
7691 finish_goto_stmt (yyvsp[-1].ttype);
7695 #line 3368 "parse.y"
7696 { finish_goto_stmt (yyvsp[-1].ttype); ;
7699 #line 3370 "parse.y"
7703 #line 3372 "parse.y"
7704 { error ("label must be followed by statement");
7709 #line 3376 "parse.y"
7713 #line 3380 "parse.y"
7714 { do_local_using_decl (yyvsp[0].ttype); ;
7717 #line 3386 "parse.y"
7719 if (! current_function_parms_stored)
7720 store_parm_decls ();
7721 expand_start_early_try_stmts ();
7725 #line 3392 "parse.y"
7727 expand_start_all_catch ();
7731 #line 3396 "parse.y"
7733 expand_end_all_catch ();
7734 yyval.itype = yyvsp[-3].itype;
7738 #line 3404 "parse.y"
7739 { yyval.ttype = begin_try_block (); ;
7742 #line 3406 "parse.y"
7743 { finish_try_block (yyvsp[-1].ttype); ;
7746 #line 3408 "parse.y"
7747 { finish_handler_sequence (yyvsp[-3].ttype); ;
7750 #line 3418 "parse.y"
7751 { yyval.ttype = begin_handler(); ;
7754 #line 3420 "parse.y"
7755 { finish_handler_parms (yyvsp[-1].ttype); ;
7758 #line 3422 "parse.y"
7759 { finish_handler (yyvsp[-3].ttype); ;
7762 #line 3432 "parse.y"
7763 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7766 #line 3448 "parse.y"
7767 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7768 expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7769 TREE_VALUE (yyvsp[-1].ftype.t)); ;
7772 #line 3455 "parse.y"
7775 label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7776 if (label && ! minimal_parse_mode)
7777 expand_label (label);
7781 #line 3462 "parse.y"
7785 #line 3464 "parse.y"
7789 #line 3466 "parse.y"
7793 #line 3471 "parse.y"
7794 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
7797 #line 3474 "parse.y"
7799 pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7803 #line 3483 "parse.y"
7804 { emit_line_note (input_filename, lineno);
7805 yyval.ttype = NULL_TREE; ;
7808 #line 3486 "parse.y"
7809 { emit_line_note (input_filename, lineno); ;
7812 #line 3491 "parse.y"
7813 { yyval.ttype = NULL_TREE; ;
7816 #line 3494 "parse.y"
7817 { yyval.ttype = NULL_TREE; ;
7820 #line 3501 "parse.y"
7821 { yyval.ttype = NULL_TREE; ;
7824 #line 3508 "parse.y"
7825 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
7828 #line 3513 "parse.y"
7829 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
7832 #line 3518 "parse.y"
7833 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
7836 #line 3520 "parse.y"
7837 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7840 #line 3531 "parse.y"
7842 yyval.ttype = empty_parms();
7846 #line 3536 "parse.y"
7847 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
7848 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
7851 #line 3544 "parse.y"
7852 { yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
7855 #line 3546 "parse.y"
7856 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7859 #line 3549 "parse.y"
7860 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7863 #line 3551 "parse.y"
7864 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7865 yyvsp[-1].ftype.t), 1); ;
7868 #line 3554 "parse.y"
7869 { yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
7872 #line 3556 "parse.y"
7874 /* This helps us recover from really nasty
7875 parse errors, for example, a missing right
7877 yyerror ("possibly missing ')'");
7878 yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
7884 #line 3566 "parse.y"
7886 /* This helps us recover from really nasty
7887 parse errors, for example, a missing right
7889 yyerror ("possibly missing ')'");
7890 yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7891 yyvsp[-1].ftype.t), 0);
7897 #line 3581 "parse.y"
7898 { maybe_snarf_defarg (); ;
7901 #line 3583 "parse.y"
7902 { yyval.ttype = yyvsp[0].ttype; ;
7905 #line 3594 "parse.y"
7906 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7907 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
7910 #line 3597 "parse.y"
7911 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7912 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
7915 #line 3600 "parse.y"
7916 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7917 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
7920 #line 3603 "parse.y"
7921 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
7924 #line 3605 "parse.y"
7925 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
7928 #line 3611 "parse.y"
7929 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7930 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
7933 #line 3621 "parse.y"
7934 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7935 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
7936 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
7939 #line 3625 "parse.y"
7940 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
7941 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7944 #line 3628 "parse.y"
7945 { yyval.ftype.t = build_tree_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
7947 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7950 #line 3632 "parse.y"
7951 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7952 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7953 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7956 #line 3636 "parse.y"
7957 { tree specs = strip_attrs (yyvsp[0].ftype.t);
7958 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
7959 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7962 #line 3640 "parse.y"
7963 { tree specs = strip_attrs (yyvsp[-1].ttype);
7964 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7965 yyval.ftype.new_type_flag = 0; ;
7968 #line 3647 "parse.y"
7969 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
7970 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7973 #line 3650 "parse.y"
7974 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
7975 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7978 #line 3661 "parse.y"
7979 { see_typename (); ;
7982 #line 3666 "parse.y"
7984 error ("type specifier omitted for parameter");
7985 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
7989 #line 3671 "parse.y"
7991 error ("type specifier omitted for parameter");
7992 if (TREE_CODE (yyval.ttype) == SCOPE_REF
7993 && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
7994 || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
7995 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
7996 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8000 #line 3683 "parse.y"
8001 { yyval.ttype = NULL_TREE; ;
8004 #line 3685 "parse.y"
8005 { yyval.ttype = yyvsp[-1].ttype; ;
8008 #line 3687 "parse.y"
8009 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8012 #line 3692 "parse.y"
8013 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8016 #line 3698 "parse.y"
8018 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8019 yyval.ttype = yyvsp[0].ttype;
8023 #line 3706 "parse.y"
8024 { yyval.ttype = NULL_TREE; ;
8027 #line 3708 "parse.y"
8028 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8031 #line 3710 "parse.y"
8032 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8035 #line 3712 "parse.y"
8036 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8037 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8041 #line 3719 "parse.y"
8042 { got_scope = NULL_TREE; ;
8045 #line 3724 "parse.y"
8046 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8049 #line 3726 "parse.y"
8050 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8053 #line 3728 "parse.y"
8054 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8057 #line 3730 "parse.y"
8058 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8061 #line 3732 "parse.y"
8062 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8065 #line 3734 "parse.y"
8066 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8069 #line 3736 "parse.y"
8070 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8073 #line 3738 "parse.y"
8074 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8077 #line 3740 "parse.y"
8078 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8081 #line 3742 "parse.y"
8082 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8085 #line 3744 "parse.y"
8086 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8089 #line 3746 "parse.y"
8090 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8093 #line 3748 "parse.y"
8094 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8097 #line 3750 "parse.y"
8098 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8101 #line 3752 "parse.y"
8102 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8105 #line 3754 "parse.y"
8106 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8109 #line 3756 "parse.y"
8110 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8113 #line 3758 "parse.y"
8114 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8117 #line 3760 "parse.y"
8118 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8121 #line 3762 "parse.y"
8122 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8125 #line 3764 "parse.y"
8126 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8129 #line 3766 "parse.y"
8130 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8133 #line 3768 "parse.y"
8134 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8137 #line 3770 "parse.y"
8138 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8141 #line 3772 "parse.y"
8142 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8145 #line 3774 "parse.y"
8146 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8149 #line 3776 "parse.y"
8150 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8153 #line 3778 "parse.y"
8154 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8157 #line 3780 "parse.y"
8158 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8161 #line 3782 "parse.y"
8162 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8165 #line 3784 "parse.y"
8166 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8169 #line 3786 "parse.y"
8170 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8173 #line 3788 "parse.y"
8174 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8177 #line 3791 "parse.y"
8178 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8181 #line 3793 "parse.y"
8182 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8185 /* the action file gets copied in in place of this dollarsign */
8186 #line 498 "/usr/lib/bison.simple"
8197 short *ssp1 = yyss - 1;
8198 fprintf (stderr, "state stack now");
8199 while (ssp1 != yyssp)
8200 fprintf (stderr, " %d", *++ssp1);
8201 fprintf (stderr, "\n");
8211 yylsp->first_line = yylloc.first_line;
8212 yylsp->first_column = yylloc.first_column;
8213 yylsp->last_line = (yylsp-1)->last_line;
8214 yylsp->last_column = (yylsp-1)->last_column;
8219 yylsp->last_line = (yylsp+yylen-1)->last_line;
8220 yylsp->last_column = (yylsp+yylen-1)->last_column;
8224 /* Now "shift" the result of the reduction.
8225 Determine what state that goes to,
8226 based on the state we popped back to
8227 and the rule number reduced by. */
8231 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8232 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8233 yystate = yytable[yystate];
8235 yystate = yydefgoto[yyn - YYNTBASE];
8239 yyerrlab: /* here on detecting error */
8242 /* If not already recovering from an error, report this error. */
8246 #ifdef YYERROR_VERBOSE
8247 yyn = yypact[yystate];
8249 if (yyn > YYFLAG && yyn < YYLAST)
8256 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8257 for (x = (yyn < 0 ? -yyn : 0);
8258 x < (sizeof(yytname) / sizeof(char *)); x++)
8259 if (yycheck[x + yyn] == x)
8260 size += strlen(yytname[x]) + 15, count++;
8261 msg = (char *) malloc(size + 15);
8264 strcpy(msg, "parse error");
8269 for (x = (yyn < 0 ? -yyn : 0);
8270 x < (sizeof(yytname) / sizeof(char *)); x++)
8271 if (yycheck[x + yyn] == x)
8273 strcat(msg, count == 0 ? ", expecting `" : " or `");
8274 strcat(msg, yytname[x]);
8283 yyerror ("parse error; also virtual memory exceeded");
8286 #endif /* YYERROR_VERBOSE */
8287 yyerror("parse error");
8291 yyerrlab1: /* here on error raised explicitly by an action */
8293 if (yyerrstatus == 3)
8295 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8297 /* return failure if at end of input */
8298 if (yychar == YYEOF)
8303 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8309 /* Else will try to reuse lookahead token
8310 after shifting the error token. */
8312 yyerrstatus = 3; /* Each real token shifted decrements this */
8316 yyerrdefault: /* current state does not do anything special for the error token. */
8319 /* This is wrong; only states that explicitly want error tokens
8320 should shift them. */
8321 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8322 if (yyn) goto yydefault;
8325 yyerrpop: /* pop the current state because it cannot handle the error token */
8327 if (yyssp == yyss) YYABORT;
8337 short *ssp1 = yyss - 1;
8338 fprintf (stderr, "Error: state stack now");
8339 while (ssp1 != yyssp)
8340 fprintf (stderr, " %d", *++ssp1);
8341 fprintf (stderr, "\n");
8347 yyn = yypact[yystate];
8352 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8371 fprintf(stderr, "Shifting error token, ");
8382 #line 3796 "parse.y"
8387 debug_yytranslate (value)
8390 return yytname[YYTRANSLATE (value)];