OSDN Git Service

Rebuild after recent parse.y change.
[pf3gnuchains/gcc-fork.git] / gcc / cp / parse.c
1
2 /*  A Bison parser, made from parse.y
3  by  GNU Bison version 1.25
4   */
5
6 #define YYBISON 1  /* Identify Bison output.  */
7
8 #define IDENTIFIER      258
9 #define TYPENAME        259
10 #define SELFNAME        260
11 #define PFUNCNAME       261
12 #define SCSPEC  262
13 #define TYPESPEC        263
14 #define CV_QUALIFIER    264
15 #define CONSTANT        265
16 #define STRING  266
17 #define ELLIPSIS        267
18 #define SIZEOF  268
19 #define ENUM    269
20 #define IF      270
21 #define ELSE    271
22 #define WHILE   272
23 #define DO      273
24 #define FOR     274
25 #define SWITCH  275
26 #define CASE    276
27 #define DEFAULT 277
28 #define BREAK   278
29 #define CONTINUE        279
30 #define RETURN  280
31 #define GOTO    281
32 #define ASM_KEYWORD     282
33 #define GCC_ASM_KEYWORD 283
34 #define TYPEOF  284
35 #define ALIGNOF 285
36 #define SIGOF   286
37 #define ATTRIBUTE       287
38 #define EXTENSION       288
39 #define LABEL   289
40 #define REALPART        290
41 #define IMAGPART        291
42 #define AGGR    292
43 #define VISSPEC 293
44 #define DELETE  294
45 #define NEW     295
46 #define THIS    296
47 #define OPERATOR        297
48 #define CXX_TRUE        298
49 #define CXX_FALSE       299
50 #define NAMESPACE       300
51 #define TYPENAME_KEYWORD        301
52 #define USING   302
53 #define LEFT_RIGHT      303
54 #define TEMPLATE        304
55 #define TYPEID  305
56 #define DYNAMIC_CAST    306
57 #define STATIC_CAST     307
58 #define REINTERPRET_CAST        308
59 #define CONST_CAST      309
60 #define SCOPE   310
61 #define EMPTY   311
62 #define PTYPENAME       312
63 #define NSNAME  313
64 #define THROW   314
65 #define ASSIGN  315
66 #define OROR    316
67 #define ANDAND  317
68 #define MIN_MAX 318
69 #define EQCOMPARE       319
70 #define ARITHCOMPARE    320
71 #define LSHIFT  321
72 #define RSHIFT  322
73 #define POINTSAT_STAR   323
74 #define DOT_STAR        324
75 #define UNARY   325
76 #define PLUSPLUS        326
77 #define MINUSMINUS      327
78 #define HYPERUNARY      328
79 #define PAREN_STAR_PAREN        329
80 #define POINTSAT        330
81 #define TRY     331
82 #define CATCH   332
83 #define TYPENAME_ELLIPSIS       333
84 #define PRE_PARSED_FUNCTION_DECL        334
85 #define EXTERN_LANG_STRING      335
86 #define ALL     336
87 #define PRE_PARSED_CLASS_DECL   337
88 #define DEFARG  338
89 #define DEFARG_MARKER   339
90 #define TYPENAME_DEFN   340
91 #define IDENTIFIER_DEFN 341
92 #define PTYPENAME_DEFN  342
93 #define END_OF_LINE     343
94 #define END_OF_SAVED_INPUT      344
95
96 #line 29 "parse.y"
97
98 /* Cause the `yydebug' variable to be defined.  */
99 #define YYDEBUG 1
100
101 #include "config.h"
102
103 #include "system.h"
104
105 #include "tree.h"
106 #include "input.h"
107 #include "flags.h"
108 #include "lex.h"
109 #include "cp-tree.h"
110 #include "output.h"
111 #include "except.h"
112
113 /* Since parsers are distinct for each language, put the language string
114    definition here.  (fnf) */
115 char *language_string = "GNU C++";
116
117 extern tree void_list_node;
118 extern struct obstack permanent_obstack;
119
120 extern int end_of_file;
121
122 /* Like YYERROR but do call yyerror.  */
123 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
124
125 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
126 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
127
128 /* Contains the statement keyword (if/while/do) to include in an
129    error message if the user supplies an empty conditional expression.  */
130 static char *cond_stmt_keyword;
131
132 static tree empty_parms PROTO((void));
133
134 /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
135 int have_extern_spec;
136 int used_extern_spec;
137
138 /* Cons up an empty parameter list.  */
139 #ifdef __GNUC__
140 __inline
141 #endif
142 static tree
143 empty_parms ()
144 {
145   tree parms;
146
147   if (strict_prototype
148       || current_class_type != NULL)
149     parms = void_list_node;
150   else
151     parms = NULL_TREE;
152   return parms;
153 }
154
155
156 #line 91 "parse.y"
157 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
158 #line 280 "parse.y"
159
160 /* List of types and structure classes of the current declaration.  */
161 static tree current_declspecs = NULL_TREE;
162 /* List of prefix attributes in effect.
163    Prefix attributes are parsed by the reserved_declspecs and declmods
164    rules.  They create a list that contains *both* declspecs and attrs.  */
165 /* ??? It is not clear yet that all cases where an attribute can now appear in
166    a declspec list have been updated.  */
167 static tree prefix_attributes = NULL_TREE;
168
169 /* When defining an aggregate, this is the most recent one being defined.  */
170 static tree current_aggr;
171
172 /* Tell yyparse how to print a token's value, if yydebug is set.  */
173
174 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
175 extern void yyprint                     PROTO((FILE *, int, YYSTYPE));
176 extern tree combine_strings             PROTO((tree));
177
178 static int
179 parse_decl(declarator, specs_attrs, attributes, initialized, decl)
180   tree declarator;
181   tree specs_attrs;
182   tree attributes;
183   int initialized;
184   tree* decl;
185 {
186   int  sm;
187
188   split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
189   if (current_declspecs
190       && TREE_CODE (current_declspecs) != TREE_LIST)
191     current_declspecs = get_decl_list (current_declspecs);
192   if (have_extern_spec && !used_extern_spec)
193     {
194       current_declspecs = decl_tree_cons (NULL_TREE, 
195                                           get_identifier ("extern"), 
196                                           current_declspecs);
197       used_extern_spec = 1;
198     }
199   sm = suspend_momentary ();
200   *decl = start_decl (declarator, current_declspecs, initialized,
201                       attributes, prefix_attributes);
202   return sm;
203 }
204 #include <stdio.h>
205
206 #ifndef __cplusplus
207 #ifndef __STDC__
208 #define const
209 #endif
210 #endif
211
212
213
214 #define YYFINAL         1549
215 #define YYFLAG          -32768
216 #define YYNTBASE        114
217
218 #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 386)
219
220 static const char yytranslate[] = {     0,
221      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
222      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
223      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
224      2,     2,   112,     2,     2,     2,    83,    71,     2,    94,
225    110,    81,    79,    60,    80,    93,    82,     2,     2,     2,
226      2,     2,     2,     2,     2,     2,     2,    63,    61,    75,
227     65,    76,    66,     2,     2,     2,     2,     2,     2,     2,
228      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
229      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
230     95,     2,   113,    70,     2,     2,     2,     2,     2,     2,
231      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
232      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
233      2,     2,    59,    69,   111,    89,     2,     2,     2,     2,
234      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
235      2,     2,     2,     2,     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,     2,     2,     2,     2,     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,     1,     2,     3,     4,     5,
247      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
248     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
249     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
250     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
251     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
252     56,    57,    58,    62,    64,    67,    68,    72,    73,    74,
253     77,    78,    84,    85,    86,    87,    88,    90,    91,    92,
254     96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
255    106,   107,   108,   109
256 };
257
258 #if YYDEBUG != 0
259 static const short yyprhs[] = {     0,
260      0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
261     17,    19,    21,    22,    25,    28,    30,    32,    38,    43,
262     49,    54,    55,    62,    63,    69,    75,    78,    83,    86,
263     89,    93,    97,    99,   101,   104,   107,   109,   112,   113,
264    119,   123,   125,   129,   131,   132,   135,   138,   142,   144,
265    148,   150,   154,   156,   160,   163,   166,   169,   173,   177,
266    180,   183,   186,   189,   192,   194,   196,   198,   199,   201,
267    204,   205,   207,   212,   216,   220,   221,   230,   236,   237,
268    247,   254,   255,   264,   270,   271,   281,   288,   291,   294,
269    296,   299,   301,   308,   313,   320,   325,   328,   330,   333,
270    336,   338,   341,   343,   346,   349,   354,   357,   361,   362,
271    363,   365,   369,   372,   376,   378,   383,   386,   391,   394,
272    399,   402,   404,   406,   408,   410,   412,   414,   416,   418,
273    420,   422,   424,   425,   432,   433,   440,   441,   447,   448,
274    454,   455,   463,   464,   472,   473,   480,   481,   488,   489,
275    490,   495,   500,   502,   507,   509,   511,   512,   514,   516,
276    520,   522,   524,   526,   528,   530,   532,   534,   536,   538,
277    540,   544,   546,   550,   551,   553,   555,   556,   564,   566,
278    568,   572,   577,   581,   582,   586,   588,   592,   596,   600,
279    604,   606,   608,   610,   613,   616,   619,   622,   625,   628,
280    631,   636,   639,   644,   647,   651,   655,   660,   665,   671,
281    677,   684,   687,   692,   698,   701,   704,   708,   712,   716,
282    718,   722,   725,   729,   734,   736,   739,   745,   747,   751,
283    755,   759,   763,   767,   771,   775,   779,   783,   787,   791,
284    795,   799,   803,   807,   811,   815,   819,   823,   829,   833,
285    837,   839,   842,   846,   848,   850,   852,   854,   856,   857,
286    863,   869,   875,   881,   887,   889,   891,   893,   895,   898,
287    901,   905,   910,   915,   917,   919,   921,   925,   927,   929,
288    931,   933,   937,   941,   945,   946,   951,   956,   959,   964,
289    967,   970,   972,   977,   979,   987,   995,  1003,  1011,  1016,
290   1021,  1024,  1027,  1029,  1034,  1037,  1040,  1046,  1050,  1053,
291   1056,  1062,  1066,  1072,  1076,  1081,  1088,  1091,  1093,  1096,
292   1098,  1101,  1103,  1105,  1107,  1110,  1111,  1114,  1117,  1121,
293   1125,  1129,  1132,  1135,  1138,  1140,  1142,  1144,  1147,  1150,
294   1153,  1156,  1158,  1160,  1162,  1164,  1167,  1170,  1174,  1178,
295   1182,  1187,  1189,  1192,  1195,  1198,  1200,  1202,  1204,  1207,
296   1210,  1213,  1215,  1217,  1220,  1223,  1227,  1229,  1232,  1234,
297   1236,  1238,  1243,  1248,  1253,  1258,  1260,  1262,  1264,  1266,
298   1270,  1272,  1276,  1278,  1282,  1283,  1288,  1289,  1296,  1300,
299   1301,  1306,  1308,  1312,  1316,  1317,  1322,  1326,  1327,  1329,
300   1331,  1334,  1341,  1343,  1347,  1348,  1350,  1355,  1362,  1367,
301   1369,  1371,  1373,  1375,  1377,  1381,  1382,  1385,  1387,  1390,
302   1394,  1399,  1401,  1403,  1407,  1412,  1416,  1422,  1424,  1429,
303   1433,  1437,  1438,  1442,  1446,  1450,  1451,  1454,  1457,  1458,
304   1466,  1471,  1472,  1479,  1483,  1486,  1489,  1492,  1493,  1494,
305   1504,  1506,  1507,  1509,  1510,  1512,  1514,  1517,  1520,  1523,
306   1526,  1529,  1532,  1536,  1541,  1545,  1548,  1552,  1553,  1555,
307   1559,  1562,  1565,  1567,  1569,  1570,  1573,  1577,  1579,  1584,
308   1586,  1590,  1592,  1594,  1599,  1604,  1607,  1610,  1614,  1618,
309   1620,  1621,  1623,  1626,  1631,  1635,  1637,  1640,  1643,  1646,
310   1649,  1652,  1655,  1658,  1660,  1663,  1666,  1670,  1673,  1676,
311   1681,  1686,  1689,  1691,  1697,  1702,  1704,  1705,  1707,  1711,
312   1712,  1714,  1718,  1720,  1722,  1724,  1726,  1731,  1736,  1741,
313   1746,  1751,  1755,  1760,  1765,  1770,  1775,  1779,  1781,  1785,
314   1787,  1791,  1794,  1796,  1803,  1804,  1807,  1809,  1812,  1813,
315   1816,  1821,  1826,  1829,  1834,  1838,  1842,  1845,  1848,  1852,
316   1854,  1856,  1859,  1861,  1863,  1866,  1869,  1874,  1879,  1883,
317   1887,  1890,  1892,  1896,  1900,  1903,  1906,  1910,  1912,  1916,
318   1920,  1923,  1926,  1930,  1932,  1937,  1941,  1946,  1950,  1952,
319   1955,  1958,  1961,  1964,  1967,  1969,  1972,  1977,  1982,  1985,
320   1987,  1989,  1991,  1993,  1996,  2001,  2004,  2007,  2010,  2013,
321   2015,  2018,  2021,  2024,  2027,  2031,  2033,  2036,  2040,  2045,
322   2048,  2051,  2054,  2057,  2060,  2063,  2068,  2071,  2073,  2076,
323   2079,  2083,  2085,  2089,  2092,  2096,  2099,  2102,  2106,  2108,
324   2112,  2117,  2121,  2124,  2127,  2129,  2133,  2136,  2139,  2141,
325   2144,  2148,  2150,  2154,  2156,  2163,  2168,  2173,  2177,  2183,
326   2187,  2191,  2195,  2198,  2200,  2202,  2205,  2208,  2211,  2212,
327   2214,  2216,  2219,  2223,  2225,  2228,  2229,  2233,  2234,  2235,
328   2241,  2243,  2244,  2247,  2249,  2251,  2253,  2256,  2257,  2262,
329   2264,  2265,  2266,  2272,  2273,  2274,  2282,  2283,  2284,  2285,
330   2286,  2299,  2300,  2301,  2309,  2310,  2316,  2317,  2325,  2326,
331   2331,  2334,  2337,  2340,  2344,  2351,  2360,  2371,  2384,  2389,
332   2393,  2396,  2399,  2401,  2403,  2404,  2405,  2412,  2413,  2414,
333   2420,  2422,  2425,  2426,  2427,  2433,  2435,  2437,  2441,  2445,
334   2448,  2451,  2454,  2457,  2460,  2462,  2465,  2466,  2468,  2469,
335   2471,  2473,  2474,  2476,  2478,  2482,  2487,  2489,  2493,  2494,
336   2496,  2498,  2500,  2503,  2506,  2509,  2511,  2513,  2516,  2519,
337   2522,  2525,  2526,  2530,  2532,  2534,  2536,  2539,  2542,  2545,
338   2550,  2553,  2556,  2559,  2562,  2565,  2568,  2570,  2573,  2575,
339   2578,  2580,  2582,  2583,  2584,  2586,  2587,  2592,  2595,  2597,
340   2599,  2603,  2604,  2608,  2612,  2616,  2618,  2621,  2624,  2627,
341   2630,  2633,  2636,  2639,  2642,  2645,  2648,  2651,  2654,  2657,
342   2660,  2663,  2666,  2669,  2672,  2675,  2678,  2681,  2684,  2687,
343   2691,  2694,  2697,  2700,  2703,  2707,  2710,  2713,  2718,  2723,
344   2727
345 };
346
347 static const short yyrhs[] = {    -1,
348    115,     0,     0,   116,   122,     0,   115,   122,     0,   115,
349      0,     0,     0,     0,    33,     0,    27,     0,    28,     0,
350      0,   123,   124,     0,   142,   141,     0,   138,     0,   137,
351      0,   121,    94,   208,   110,    61,     0,   129,    59,   117,
352    111,     0,   129,   118,   142,   119,   141,     0,   129,   118,
353    138,   119,     0,     0,    45,   157,    59,   125,   117,   111,
354      0,     0,    45,    59,   126,   117,   111,     0,    45,   157,
355     65,   128,    61,     0,   127,    61,     0,    47,    45,   128,
356     61,     0,   120,   124,     0,    47,   300,     0,    47,   314,
357    300,     0,    47,   314,   199,     0,   199,     0,   300,     0,
358    314,   300,     0,   314,   199,     0,   100,     0,   129,   100,
359      0,     0,    49,    75,   131,   132,    76,     0,    49,    75,
360     76,     0,   136,     0,   132,    60,   136,     0,   157,     0,
361      0,   257,   133,     0,    46,   133,     0,   130,   257,   133,
362      0,   134,     0,   134,    65,   214,     0,   377,     0,   377,
363     65,   194,     0,   135,     0,   135,    65,   176,     0,   130,
364    124,     0,   130,     1,     0,   225,    61,     0,   218,   224,
365     61,     0,   215,   223,    61,     0,   218,    61,     0,   160,
366     61,     0,   215,    61,     0,     1,    61,     0,     1,   111,
367      0,    61,     0,   209,     0,   153,     0,     0,   152,     0,
368    152,    61,     0,     0,   109,     0,   148,   140,   139,   324,
369      0,   148,   140,   348,     0,   148,   140,     1,     0,     0,
370    305,     5,    94,   144,   368,   110,   287,   380,     0,   305,
371      5,    48,   287,   380,     0,     0,   314,   305,     5,    94,
372    145,   368,   110,   287,   380,     0,   314,   305,     5,    48,
373    287,   380,     0,     0,   305,   172,    94,   146,   368,   110,
374    287,   380,     0,   305,   172,    48,   287,   380,     0,     0,
375    314,   305,   172,    94,   147,   368,   110,   287,   380,     0,
376    314,   305,   172,    48,   287,   380,     0,   215,   212,     0,
377    218,   297,     0,   297,     0,   218,   143,     0,   143,     0,
378      5,    94,   368,   110,   287,   380,     0,     5,    48,   287,
379    380,     0,   172,    94,   368,   110,   287,   380,     0,   172,
380     48,   287,   380,     0,   218,   149,     0,   149,     0,   215,
381    212,     0,   218,   297,     0,   297,     0,   218,   143,     0,
382    143,     0,    25,     3,     0,   151,   242,     0,   151,    94,
383    188,   110,     0,   151,    48,     0,    63,   154,   155,     0,
384      0,     0,   156,     0,   155,    60,   156,     0,   155,     1,
385      0,    94,   188,   110,     0,    48,     0,   158,    94,   188,
386    110,     0,   158,    48,     0,   293,    94,   188,   110,     0,
387    293,    48,     0,   307,    94,   188,   110,     0,   307,    48,
388      0,     3,     0,     4,     0,     5,     0,    57,     0,    58,
389      0,     3,     0,    57,     0,    58,     0,   106,     0,   105,
390      0,   107,     0,     0,    49,   169,   221,    61,   161,   170,
391      0,     0,    49,   169,   215,   212,   162,   170,     0,     0,
392     49,   169,   297,   163,   170,     0,     0,    49,   169,   143,
393    164,   170,     0,     0,     7,    49,   169,   221,    61,   165,
394    170,     0,     0,     7,    49,   169,   215,   212,   166,   170,
395      0,     0,     7,    49,   169,   297,   167,   170,     0,     0,
396      7,    49,   169,   143,   168,   170,     0,     0,     0,    57,
397     75,   174,   173,     0,     4,    75,   174,   173,     0,   172,
398      0,     5,    75,   174,   173,     0,    76,     0,    78,     0,
399      0,   175,     0,   176,     0,   175,    60,   176,     0,   214,
400      0,   194,     0,    80,     0,    79,     0,    87,     0,    88,
401      0,   112,     0,   187,     0,   194,     0,    48,     0,    94,
402    178,   110,     0,    48,     0,    94,   182,   110,     0,     0,
403    182,     0,     1,     0,     0,   358,   212,   226,   235,    65,
404    183,   243,     0,   178,     0,   111,     0,   321,   319,   111,
405      0,   321,   319,     1,   111,     0,   321,     1,   111,     0,
406      0,    59,   186,   184,     0,   333,     0,   194,    60,   194,
407      0,   194,    60,     1,     0,   187,    60,   194,     0,   187,
408     60,     1,     0,   194,     0,   187,     0,   203,     0,   120,
409    193,     0,    81,   193,     0,    71,   193,     0,    89,   193,
410      0,   177,   193,     0,    68,   157,     0,    13,   189,     0,
411     13,    94,   214,   110,     0,    30,   189,     0,    30,    94,
412    214,   110,     0,   205,   286,     0,   205,   286,   191,     0,
413    205,   190,   286,     0,   205,   190,   286,   191,     0,   205,
414     94,   214,   110,     0,   205,    94,   214,   110,   191,     0,
415    205,   190,    94,   214,   110,     0,   205,   190,    94,   214,
416    110,   191,     0,   206,   193,     0,   206,    95,   113,   193,
417      0,   206,    95,   178,   113,   193,     0,    35,   193,     0,
418     36,   193,     0,    94,   188,   110,     0,    59,   188,   111,
419      0,    94,   188,   110,     0,    48,     0,    94,   221,   110,
420      0,    65,   243,     0,    94,   214,   110,     0,   192,    94,
421    214,   110,     0,   189,     0,   192,   189,     0,   192,    59,
422    244,   255,   111,     0,   193,     0,   194,    84,   194,     0,
423    194,    85,   194,     0,   194,    79,   194,     0,   194,    80,
424    194,     0,   194,    81,   194,     0,   194,    82,   194,     0,
425    194,    83,   194,     0,   194,    77,   194,     0,   194,    78,
426    194,     0,   194,    74,   194,     0,   194,    75,   194,     0,
427    194,    76,   194,     0,   194,    73,   194,     0,   194,    72,
428    194,     0,   194,    71,   194,     0,   194,    69,   194,     0,
429    194,    70,   194,     0,   194,    68,   194,     0,   194,    67,
430    194,     0,   194,    66,   363,    63,   194,     0,   194,    65,
431    194,     0,   194,    64,   194,     0,    62,     0,    62,   194,
432      0,    89,   378,   157,     0,   197,     0,   385,     0,     3,
433      0,    57,     0,    58,     0,     0,     6,    75,   196,   174,
434    173,     0,   385,    75,   196,   174,   173,     0,    49,   157,
435     75,   174,   173,     0,    49,     6,    75,   174,   173,     0,
436     49,   385,    75,   174,   173,     0,   195,     0,     4,     0,
437      5,     0,   195,     0,    81,   200,     0,    71,   200,     0,
438     94,   200,   110,     0,     3,    75,   174,   173,     0,    58,
439     75,   175,   173,     0,   299,     0,   195,     0,   201,     0,
440     94,   200,   110,     0,   195,     0,    10,     0,   207,     0,
441    208,     0,    94,   178,   110,     0,    94,   200,   110,     0,
442     94,     1,   110,     0,     0,    94,   204,   325,   110,     0,
443    203,    94,   188,   110,     0,   203,    48,     0,   203,    95,
444    178,   113,     0,   203,    87,     0,   203,    88,     0,    41,
445      0,     9,    94,   188,   110,     0,   303,     0,    51,    75,
446    214,    76,    94,   178,   110,     0,    52,    75,   214,    76,
447     94,   178,   110,     0,    53,    75,   214,    76,    94,   178,
448    110,     0,    54,    75,   214,    76,    94,   178,   110,     0,
449     50,    94,   178,   110,     0,    50,    94,   214,   110,     0,
450    314,     3,     0,   314,   385,     0,   302,     0,   302,    94,
451    188,   110,     0,   302,    48,     0,   210,   198,     0,   210,
452    198,    94,   188,   110,     0,   210,   198,    48,     0,   210,
453    199,     0,   210,   302,     0,   210,   199,    94,   188,   110,
454      0,   210,   199,    48,     0,   210,   302,    94,   188,   110,
455      0,   210,   302,    48,     0,   210,    89,     8,    48,     0,
456    210,     8,    55,    89,     8,    48,     0,   210,     1,     0,
457     40,     0,   314,    40,     0,    39,     0,   314,   206,     0,
458     43,     0,    44,     0,    11,     0,   208,    11,     0,     0,
459    203,    93,     0,   203,    92,     0,   221,   223,    61,     0,
460    215,   223,    61,     0,   218,   224,    61,     0,   215,    61,
461      0,   218,    61,     0,   120,   211,     0,   292,     0,   297,
462      0,    48,     0,   213,    48,     0,   219,   317,     0,   288,
463    317,     0,   221,   317,     0,   219,     0,   288,     0,   219,
464      0,   216,     0,   218,   221,     0,   221,   217,     0,   221,
465    220,   217,     0,   218,   221,   217,     0,   218,   221,   220,
466      0,   218,   221,   220,   217,     0,     7,     0,   217,   222,
467      0,   217,     7,     0,   217,   236,     0,   236,     0,   288,
468      0,     7,     0,   218,     9,     0,   218,     7,     0,   218,
469    236,     0,   236,     0,   221,     0,   288,   221,     0,   221,
470    220,     0,   288,   221,   220,     0,   222,     0,   220,   222,
471      0,   250,     0,     8,     0,   294,     0,    29,    94,   178,
472    110,     0,    29,    94,   214,   110,     0,    31,    94,   178,
473    110,     0,    31,    94,   214,   110,     0,     8,     0,     9,
474      0,   250,     0,   231,     0,   223,    60,   227,     0,   232,
475      0,   224,    60,   227,     0,   233,     0,   225,    60,   227,
476      0,     0,   121,    94,   208,   110,     0,     0,   212,   226,
477    235,    65,   228,   243,     0,   212,   226,   235,     0,     0,
478    235,    65,   230,   243,     0,   235,     0,   212,   226,   229,
479      0,   297,   226,   229,     0,     0,   297,   226,   234,   229,
480      0,   143,   226,   235,     0,     0,   236,     0,   237,     0,
481    236,   237,     0,    32,    94,    94,   238,   110,   110,     0,
482    239,     0,   238,    60,   239,     0,     0,   240,     0,   240,
483     94,     3,   110,     0,   240,    94,     3,    60,   188,   110,
484      0,   240,    94,   188,   110,     0,   157,     0,     7,     0,
485      8,     0,     9,     0,   157,     0,   241,    60,   157,     0,
486      0,    65,   243,     0,   194,     0,    59,   111,     0,    59,
487    244,   111,     0,    59,   244,    60,   111,     0,     1,     0,
488    243,     0,   244,    60,   243,     0,    95,   194,   113,   243,
489      0,   157,    63,   243,     0,   244,    60,   157,    63,   243,
490      0,    99,     0,   245,   140,   139,   324,     0,   245,   140,
491    348,     0,   245,   140,     1,     0,     0,   247,   246,   141,
492      0,   104,   194,   109,     0,   104,     1,   109,     0,     0,
493    249,   248,     0,   249,     1,     0,     0,    14,   157,    59,
494    251,   284,   256,   111,     0,    14,   157,    59,   111,     0,
495      0,    14,    59,   252,   284,   256,   111,     0,    14,    59,
496    111,     0,    14,   157,     0,    14,   312,     0,    46,   307,
497      0,     0,     0,   264,   270,   272,   111,   235,   253,   249,
498    254,   247,     0,   264,     0,     0,    60,     0,     0,    60,
499      0,    37,     0,   257,     7,     0,   257,     8,     0,   257,
500      9,     0,   257,    37,     0,   257,   157,     0,   257,   159,
501      0,   257,   305,   157,     0,   257,   314,   305,   157,     0,
502    257,   314,   157,     0,   257,   171,     0,   257,   305,   171,
503      0,     0,   258,     0,   259,   261,   265,     0,   260,   265,
504      0,   257,    59,     0,   263,     0,   262,     0,     0,    63,
505    378,     0,    63,   378,   266,     0,   267,     0,   266,    60,
506    378,   267,     0,   268,     0,   269,   378,   268,     0,   307,
507      0,   293,     0,    31,    94,   178,   110,     0,    31,    94,
508    214,   110,     0,    38,   378,     0,     7,   378,     0,   269,
509     38,   378,     0,   269,     7,   378,     0,    59,     0,     0,
510    271,     0,   271,   273,     0,   272,    38,    63,   273,     0,
511    272,    38,    63,     0,   274,     0,   273,   274,     0,   275,
512     61,     0,   275,   111,     0,   150,    63,     0,   150,    96,
513      0,   150,    25,     0,   150,    59,     0,    61,     0,   120,
514    274,     0,   130,   274,     0,   130,   215,    61,     0,   215,
515    276,     0,   218,   277,     0,   297,   226,   235,   242,     0,
516    143,   226,   235,   242,     0,    63,   194,     0,     1,     0,
517    218,   149,   226,   235,   242,     0,   149,   226,   235,   242,
518      0,   127,     0,     0,   278,     0,   276,    60,   279,     0,
519      0,   281,     0,   277,    60,   283,     0,   280,     0,   281,
520      0,   282,     0,   283,     0,   292,   226,   235,   242,     0,
521      4,    63,   194,   235,     0,   297,   226,   235,   242,     0,
522    143,   226,   235,   242,     0,     3,    63,   194,   235,     0,
523     63,   194,   235,     0,   292,   226,   235,   242,     0,     4,
524     63,   194,   235,     0,   297,   226,   235,   242,     0,     3,
525     63,   194,   235,     0,    63,   194,   235,     0,   285,     0,
526    284,    60,   285,     0,   157,     0,   157,    65,   194,     0,
527    358,   315,     0,   358,     0,    94,   214,   110,    95,   178,
528    113,     0,     0,   287,     9,     0,     9,     0,   288,     9,
529      0,     0,   289,   178,     0,   289,    94,   188,   110,     0,
530    289,    94,   368,   110,     0,   289,    48,     0,   289,    94,
531      1,   110,     0,    81,   288,   292,     0,    71,   288,   292,
532      0,    81,   292,     0,    71,   292,     0,   313,   287,   292,
533      0,   296,     0,   304,     0,   314,   304,     0,   293,     0,
534    295,     0,   314,   295,     0,   305,   304,     0,   296,   291,
535    287,   380,     0,   296,    95,   290,   113,     0,   296,    95,
536    113,     0,    94,   292,   110,     0,   305,   304,     0,   304,
537      0,    81,   288,   297,     0,    71,   288,   297,     0,    81,
538    297,     0,    71,   297,     0,   313,   287,   297,     0,   202,
539      0,    81,   288,   297,     0,    71,   288,   297,     0,    81,
540    298,     0,    71,   298,     0,   313,   287,   297,     0,   299,
541      0,   202,   291,   287,   380,     0,    94,   298,   110,     0,
542    202,    95,   290,   113,     0,   202,    95,   113,     0,   301,
543      0,   305,   201,     0,   305,   199,     0,   305,   198,     0,
544    305,   195,     0,   305,   198,     0,   301,     0,   314,   301,
545      0,   221,    94,   188,   110,     0,   221,    94,   200,   110,
546      0,   221,   213,     0,     4,     0,     5,     0,   171,     0,
547    306,     0,   305,   306,     0,   305,    49,   311,    55,     0,
548      4,    55,     0,     5,    55,     0,    58,    55,     0,   171,
549     55,     0,   308,     0,   314,   308,     0,   309,   157,     0,
550    309,   171,     0,   309,   311,     0,   309,    49,   311,     0,
551    310,     0,   309,   310,     0,   309,   311,    55,     0,   309,
552     49,   311,    55,     0,     4,    55,     0,     5,    55,     0,
553    171,    55,     0,    57,    55,     0,     3,    55,     0,    58,
554     55,     0,   157,    75,   174,   173,     0,   314,   304,     0,
555    295,     0,   314,   295,     0,   305,    81,     0,   314,   305,
556     81,     0,    55,     0,    81,   287,   315,     0,    81,   287,
557      0,    71,   287,   315,     0,    71,   287,     0,   313,   287,
558      0,   313,   287,   315,     0,   316,     0,    95,   178,   113,
559      0,   316,    95,   290,   113,     0,    81,   288,   317,     0,
560     81,   317,     0,    81,   288,     0,    81,     0,    71,   288,
561    317,     0,    71,   317,     0,    71,   288,     0,    71,     0,
562    313,   287,     0,   313,   287,   317,     0,   318,     0,    94,
563    317,   110,     0,    91,     0,   318,    94,   368,   110,   287,
564    380,     0,   318,    48,   287,   380,     0,   318,    95,   290,
565    113,     0,   318,    95,   113,     0,    94,   369,   110,   287,
566    380,     0,   192,   287,   380,     0,   213,   287,   380,     0,
567     95,   290,   113,     0,    95,   113,     0,   332,     0,   320,
568      0,   319,   332,     0,   319,   320,     0,     1,    61,     0,
569      0,   322,     0,   323,     0,   322,   323,     0,    34,   241,
570     61,     0,   325,     0,     1,   325,     0,     0,    59,   326,
571    184,     0,     0,     0,    15,   328,   180,   329,   330,     0,
572    325,     0,     0,   331,   333,     0,   325,     0,   333,     0,
573    211,     0,   178,    61,     0,     0,   327,    16,   334,   330,
574      0,   327,     0,     0,     0,    17,   335,   180,   336,   185,
575      0,     0,     0,    18,   337,   330,    17,   338,   179,    61,
576      0,     0,     0,     0,     0,    19,   339,    94,   361,   340,
577    181,    61,   341,   363,   110,   342,   185,     0,     0,     0,
578     20,   343,    94,   182,   110,   344,   330,     0,     0,    21,
579    194,    63,   345,   332,     0,     0,    21,   194,    12,   194,
580     63,   346,   332,     0,     0,    22,    63,   347,   332,     0,
581     23,    61,     0,    24,    61,     0,    25,    61,     0,    25,
582    178,    61,     0,   121,   362,    94,   208,   110,    61,     0,
583    121,   362,    94,   208,    63,   364,   110,    61,     0,   121,
584    362,    94,   208,    63,   364,    63,   364,   110,    61,     0,
585    121,   362,    94,   208,    63,   364,    63,   364,    63,   367,
586    110,    61,     0,    26,    81,   178,    61,     0,    26,   157,
587     61,     0,   360,   332,     0,   360,   111,     0,    61,     0,
588    351,     0,     0,     0,    96,   349,   139,   325,   350,   354,
589      0,     0,     0,    96,   352,   325,   353,   354,     0,   355,
590      0,   354,   355,     0,     0,     0,    97,   356,   359,   357,
591    325,     0,   219,     0,   288,     0,    94,    12,   110,     0,
592     94,   377,   110,     0,     3,    63,     0,    57,    63,     0,
593      4,    63,     0,     5,    63,     0,   363,    61,     0,   211,
594      0,    59,   184,     0,     0,     9,     0,     0,   178,     0,
595      1,     0,     0,   365,     0,   366,     0,   365,    60,   366,
596      0,    11,    94,   178,   110,     0,    11,     0,   367,    60,
597     11,     0,     0,   369,     0,   214,     0,   373,     0,   374,
598     12,     0,   373,    12,     0,   214,    12,     0,    12,     0,
599     98,     0,   373,    98,     0,   214,    98,     0,   373,    63,
600      0,   214,    63,     0,     0,    65,   371,   372,     0,   103,
601      0,   243,     0,   375,     0,   377,   370,     0,   374,   376,
602      0,   374,   379,     0,   374,   379,    65,   243,     0,   373,
603     60,     0,   214,    60,     0,   216,   212,     0,   219,   212,
604      0,   221,   212,     0,   216,   317,     0,   216,     0,   218,
605    297,     0,   377,     0,   377,   370,     0,   375,     0,   214,
606      0,     0,     0,   297,     0,     0,    62,    94,   382,   110,
607      0,    62,    48,     0,   214,     0,   381,     0,   382,    60,
608    381,     0,     0,    81,   287,   383,     0,    71,   287,   383,
609      0,   313,   287,   383,     0,    42,     0,   384,    81,     0,
610    384,    82,     0,   384,    83,     0,   384,    79,     0,   384,
611     80,     0,   384,    71,     0,   384,    69,     0,   384,    70,
612      0,   384,    89,     0,   384,    60,     0,   384,    74,     0,
613    384,    75,     0,   384,    76,     0,   384,    73,     0,   384,
614     64,     0,   384,    65,     0,   384,    77,     0,   384,    78,
615      0,   384,    87,     0,   384,    88,     0,   384,    68,     0,
616    384,    67,     0,   384,   112,     0,   384,    66,    63,     0,
617    384,    72,     0,   384,    92,     0,   384,    84,     0,   384,
618     48,     0,   384,    95,   113,     0,   384,    40,     0,   384,
619     39,     0,   384,    40,    95,   113,     0,   384,    39,    95,
620    113,     0,   384,   358,   383,     0,   384,     1,     0
621 };
622
623 #endif
624
625 #if YYDEBUG != 0
626 static const short yyrline[] = { 0,
627    328,   330,   344,   347,   348,   352,   354,   357,   362,   366,
628    372,   374,   377,   380,   384,   387,   389,   391,   394,   396,
629    399,   402,   404,   406,   408,   410,   412,   414,   420,   424,
630    427,   429,   433,   435,   436,   438,   442,   445,   451,   454,
631    456,   461,   464,   468,   471,   474,   477,   481,   486,   496,
632    498,   500,   502,   504,   517,   526,   536,   538,   540,   544,
633    546,   547,   554,   555,   556,   559,   562,   566,   568,   569,
634    572,   574,   577,   580,   582,   586,   589,   591,   595,   597,
635    599,   603,   605,   607,   611,   613,   615,   621,   625,   628,
636    631,   634,   639,   642,   644,   646,   652,   662,   664,   667,
637    670,   672,   675,   679,   688,   691,   693,   697,   710,   730,
638    733,   735,   736,   739,   746,   752,   754,   756,   758,   760,
639    763,   768,   770,   771,   772,   773,   776,   778,   779,   782,
640    784,   785,   788,   793,   793,   797,   797,   800,   800,   803,
641    803,   807,   807,   812,   812,   815,   815,   818,   820,   823,
642    830,   837,   843,   846,   855,   857,   865,   868,   871,   874,
643    878,   881,   884,   887,   889,   891,   893,   897,   900,   903,
644    908,   912,   917,   921,   924,   926,   930,   949,   956,   959,
645    961,   962,   963,   966,   970,   971,   975,   979,   982,   984,
646    988,   991,   994,   998,  1001,  1003,  1005,  1007,  1014,  1018,
647   1020,  1022,  1024,  1030,  1033,  1036,  1039,  1042,  1046,  1049,
648   1052,  1056,  1058,  1062,  1066,  1068,  1072,  1075,  1082,  1085,
649   1087,  1095,  1108,  1114,  1121,  1123,  1125,  1138,  1141,  1143,
650   1145,  1147,  1149,  1151,  1153,  1155,  1157,  1159,  1161,  1163,
651   1165,  1167,  1169,  1171,  1173,  1175,  1177,  1179,  1181,  1185,
652   1187,  1189,  1206,  1209,  1210,  1211,  1212,  1213,  1216,  1219,
653   1222,  1226,  1229,  1231,  1236,  1238,  1239,  1242,  1244,  1246,
654   1248,  1252,  1255,  1259,  1261,  1262,  1263,  1267,  1275,  1276,
655   1277,  1285,  1287,  1290,  1292,  1302,  1304,  1306,  1308,  1310,
656   1312,  1315,  1317,  1361,  1362,  1366,  1370,  1374,  1378,  1380,
657   1384,  1386,  1394,  1396,  1398,  1400,  1404,  1406,  1408,  1410,
658   1415,  1417,  1419,  1421,  1424,  1426,  1428,  1472,  1475,  1479,
659   1482,  1486,  1489,  1494,  1496,  1500,  1513,  1516,  1523,  1530,
660   1535,  1537,  1542,  1544,  1551,  1553,  1557,  1561,  1567,  1571,
661   1574,  1577,  1580,  1590,  1592,  1595,  1599,  1602,  1605,  1608,
662   1611,  1617,  1623,  1625,  1630,  1632,  1641,  1644,  1646,  1649,
663   1655,  1657,  1667,  1671,  1674,  1677,  1682,  1685,  1693,  1695,
664   1697,  1699,  1702,  1705,  1720,  1739,  1742,  1744,  1747,  1749,
665   1752,  1754,  1757,  1759,  1762,  1765,  1769,  1775,  1776,  1788,
666   1795,  1798,  1804,  1808,  1813,  1819,  1820,  1828,  1831,  1835,
667   1838,  1842,  1847,  1850,  1854,  1857,  1859,  1861,  1863,  1870,
668   1872,  1873,  1874,  1878,  1881,  1885,  1888,  1894,  1896,  1899,
669   1902,  1905,  1911,  1914,  1917,  1919,  1921,  1925,  1931,  1939,
670   1941,  1945,  1947,  1952,  1955,  1958,  1960,  1962,  1966,  1970,
671   1975,  1979,  1982,  1987,  1991,  1994,  1997,  2001,  2036,  2042,
672   2051,  2071,  2073,  2076,  2078,  2083,  2085,  2087,  2089,  2091,
673   2095,  2100,  2105,  2111,  2116,  2121,  2123,  2127,  2132,  2135,
674   2142,  2170,  2176,  2178,  2181,  2184,  2186,  2190,  2192,  2196,
675   2222,  2251,  2254,  2255,  2276,  2299,  2301,  2305,  2316,  2330,
676   2419,  2426,  2429,  2437,  2448,  2457,  2461,  2476,  2479,  2484,
677   2486,  2488,  2490,  2492,  2494,  2497,  2499,  2507,  2513,  2515,
678   2518,  2521,  2523,  2534,  2539,  2542,  2547,  2550,  2551,  2562,
679   2565,  2566,  2577,  2579,  2582,  2584,  2587,  2594,  2602,  2609,
680   2615,  2621,  2629,  2633,  2638,  2642,  2645,  2654,  2656,  2660,
681   2663,  2668,  2672,  2677,  2687,  2690,  2694,  2698,  2706,  2711,
682   2717,  2720,  2722,  2724,  2730,  2733,  2735,  2737,  2739,  2743,
683   2746,  2764,  2774,  2776,  2777,  2781,  2786,  2789,  2791,  2793,
684   2795,  2799,  2805,  2808,  2810,  2812,  2814,  2818,  2821,  2824,
685   2826,  2828,  2830,  2834,  2837,  2840,  2842,  2844,  2846,  2853,
686   2864,  2868,  2873,  2877,  2882,  2884,  2888,  2891,  2893,  2897,
687   2899,  2900,  2903,  2905,  2907,  2913,  2928,  2934,  2940,  2954,
688   2956,  2960,  2974,  2976,  2978,  2982,  2988,  3001,  3003,  3007,
689   3018,  3024,  3026,  3027,  3028,  3036,  3041,  3050,  3051,  3055,
690   3058,  3064,  3070,  3073,  3075,  3077,  3079,  3083,  3087,  3091,
691   3094,  3099,  3102,  3104,  3106,  3108,  3110,  3112,  3114,  3116,
692   3120,  3124,  3128,  3132,  3133,  3135,  3137,  3139,  3141,  3143,
693   3145,  3147,  3149,  3157,  3159,  3160,  3161,  3164,  3170,  3172,
694   3177,  3179,  3182,  3196,  3199,  3202,  3206,  3209,  3216,  3218,
695   3221,  3223,  3225,  3228,  3231,  3234,  3237,  3239,  3242,  3246,
696   3248,  3254,  3256,  3257,  3259,  3264,  3266,  3268,  3270,  3272,
697   3275,  3276,  3278,  3281,  3282,  3285,  3285,  3288,  3288,  3291,
698   3291,  3293,  3295,  3297,  3299,  3305,  3311,  3314,  3317,  3323,
699   3325,  3327,  3331,  3333,  3336,  3343,  3346,  3354,  3358,  3360,
700   3363,  3365,  3368,  3372,  3374,  3377,  3379,  3382,  3399,  3405,
701   3413,  3415,  3417,  3421,  3424,  3425,  3433,  3437,  3441,  3444,
702   3445,  3451,  3454,  3457,  3459,  3463,  3468,  3471,  3481,  3486,
703   3487,  3495,  3501,  3506,  3510,  3515,  3519,  3523,  3527,  3532,
704   3543,  3557,  3561,  3564,  3566,  3570,  3574,  3577,  3580,  3582,
705   3586,  3588,  3595,  3602,  3605,  3608,  3612,  3616,  3622,  3626,
706   3631,  3633,  3636,  3641,  3647,  3658,  3661,  3663,  3667,  3672,
707   3674,  3681,  3684,  3686,  3688,  3694,  3699,  3702,  3704,  3706,
708   3708,  3710,  3712,  3714,  3716,  3718,  3720,  3722,  3724,  3726,
709   3728,  3730,  3732,  3734,  3736,  3738,  3740,  3742,  3744,  3746,
710   3748,  3750,  3752,  3754,  3756,  3758,  3760,  3762,  3764,  3767,
711   3769
712 };
713 #endif
714
715
716 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
717
718 static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
719 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
720 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
721 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
722 "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
723 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
724 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
725 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
726 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
727 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
728 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
729 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
730 "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
731 "DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
732 "END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
733 "@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
734 "@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
735 "@5","template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
736 "template_parm","template_def","datadef","ctor_initializer_opt","maybe_return_init",
737 "eat_saved_input","fndef","constructor_declarator","@6","@7","@8","@9","fn.def1",
738 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
739 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
740 "identifier_defn","explicit_instantiation","@10","@11","@12","@13","@14","@15",
741 "@16","@17","begin_explicit_instantiation","end_explicit_instantiation","template_type",
742 "self_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
743 "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
744 "condition","@18","compstmtend","already_scoped_stmt","@19","nontrivial_exprlist",
745 "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
746 "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
747 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
748 "primary","@20","new","delete","boolean.literal","string","nodecls","object",
749 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
750 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
751 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
752 "initdcl","@21","initdcl0_innards","@22","initdcl0","notype_initdcl0","nomods_initdcl0",
753 "@23","maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
754 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
755 "pending_inlines","defarg_again","pending_defargs","structsp","@24","@25","@26",
756 "@27","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
757 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
758 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
759 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
760 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
761 "component_decl_1","components","notype_components","component_declarator0",
762 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
763 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
764 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
765 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
766 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
767 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
768 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
769 "typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type",
770 "complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
771 "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
772 "label_decls","label_decl","compstmt_or_error","compstmt","@28","simple_if",
773 "@29","@30","implicitly_scoped_stmt","@31","stmt","simple_stmt","@32","@33",
774 "@34","@35","@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","function_try_block",
775 "@46","@47","try_block","@48","@49","handler_seq","handler","@50","@51","type_specifier_seq",
776 "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
777 "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
778 "complex_parmlist","defarg","@52","defarg1","parms","parms_comma","named_parm",
779 "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
780 "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
781 };
782 #endif
783
784 static const short yyr1[] = {     0,
785    114,   114,   116,   115,   115,   117,   117,   118,   119,   120,
786    121,   121,   123,   122,   124,   124,   124,   124,   124,   124,
787    124,   125,   124,   126,   124,   124,   124,   124,   124,   127,
788    127,   127,   128,   128,   128,   128,   129,   129,   131,   130,
789    130,   132,   132,   133,   133,   134,   134,   135,   136,   136,
790    136,   136,   136,   136,   137,   137,   138,   138,   138,   138,
791    138,   138,   138,   138,   138,   139,   139,   140,   140,   140,
792    141,   141,   142,   142,   142,   144,   143,   143,   145,   143,
793    143,   146,   143,   143,   147,   143,   143,   148,   148,   148,
794    148,   148,   149,   149,   149,   149,   150,   150,   150,   150,
795    150,   150,   150,   151,   152,   152,   152,   153,   154,   155,
796    155,   155,   155,   156,   156,   156,   156,   156,   156,   156,
797    156,   157,   157,   157,   157,   157,   158,   158,   158,   159,
798    159,   159,   161,   160,   162,   160,   163,   160,   164,   160,
799    165,   160,   166,   160,   167,   160,   168,   160,   169,   170,
800    171,   171,   171,   172,   173,   173,   174,   174,   175,   175,
801    176,   176,   177,   177,   177,   177,   177,   178,   178,   179,
802    179,   180,   180,   181,   181,   181,   183,   182,   182,   184,
803    184,   184,   184,   186,   185,   185,   187,   187,   187,   187,
804    188,   188,   189,   189,   189,   189,   189,   189,   189,   189,
805    189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
806    189,   189,   189,   189,   189,   189,   190,   190,   191,   191,
807    191,   191,   192,   192,   193,   193,   193,   194,   194,   194,
808    194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
809    194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
810    194,   194,   195,   195,   195,   195,   195,   195,   196,   197,
811    197,   198,   198,   198,   199,   199,   199,   200,   200,   200,
812    200,   201,   201,   202,   202,   202,   202,   203,   203,   203,
813    203,   203,   203,   203,   204,   203,   203,   203,   203,   203,
814    203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
815    203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
816    203,   203,   203,   203,   203,   203,   203,   205,   205,   206,
817    206,   207,   207,   208,   208,   209,   210,   210,   211,   211,
818    211,   211,   211,   211,   212,   212,   213,   213,   214,   214,
819    214,   214,   214,   215,   215,   216,   216,   216,   216,   216,
820    216,   217,   217,   217,   217,   217,   218,   218,   218,   218,
821    218,   218,   219,   219,   219,   219,   220,   220,   221,   221,
822    221,   221,   221,   221,   221,   222,   222,   222,   223,   223,
823    224,   224,   225,   225,   226,   226,   228,   227,   227,   230,
824    229,   229,   231,   232,   234,   233,   233,   235,   235,   236,
825    236,   237,   238,   238,   239,   239,   239,   239,   239,   240,
826    240,   240,   240,   241,   241,   242,   242,   243,   243,   243,
827    243,   243,   244,   244,   244,   244,   244,   245,   246,   246,
828    246,   247,   247,   248,   248,   249,   249,   249,   251,   250,
829    250,   252,   250,   250,   250,   250,   250,   253,   254,   250,
830    250,   255,   255,   256,   256,   257,   257,   257,   257,   257,
831    258,   259,   260,   260,   260,   260,   260,   261,   262,   262,
832    262,   263,   264,   264,   265,   265,   265,   266,   266,   267,
833    267,   268,   268,   268,   268,   269,   269,   269,   269,   270,
834    271,   272,   272,   272,   272,   273,   273,   274,   274,   274,
835    274,   274,   274,   274,   274,   274,   274,   275,   275,   275,
836    275,   275,   275,   275,   275,   275,   276,   276,   276,   277,
837    277,   277,   278,   278,   279,   279,   280,   280,   281,   281,
838    281,   281,   282,   282,   283,   283,   283,   284,   284,   285,
839    285,   286,   286,   286,   287,   287,   288,   288,   289,   290,
840    291,   291,   291,   291,   292,   292,   292,   292,   292,   292,
841    293,   293,   294,   294,   294,   295,   296,   296,   296,   296,
842    296,   296,   297,   297,   297,   297,   297,   297,   298,   298,
843    298,   298,   298,   298,   299,   299,   299,   299,   299,   299,
844    300,   300,   301,   301,   302,   302,   303,   303,   303,   304,
845    304,   304,   305,   305,   305,   306,   306,   306,   306,   307,
846    307,   308,   308,   308,   308,   309,   309,   309,   309,   310,
847    310,   310,   310,   310,   310,   311,   312,   312,   312,   313,
848    313,   314,   315,   315,   315,   315,   315,   315,   315,   316,
849    316,   317,   317,   317,   317,   317,   317,   317,   317,   317,
850    317,   317,   318,   318,   318,   318,   318,   318,   318,   318,
851    318,   318,   318,   319,   319,   319,   319,   320,   321,   321,
852    322,   322,   323,   324,   324,   326,   325,   328,   329,   327,
853    330,   331,   330,   332,   332,   333,   333,   334,   333,   333,
854    335,   336,   333,   337,   338,   333,   339,   340,   341,   342,
855    333,   343,   344,   333,   345,   333,   346,   333,   347,   333,
856    333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
857    333,   333,   333,   333,   349,   350,   348,   352,   353,   351,
858    354,   354,   356,   357,   355,   358,   358,   359,   359,   360,
859    360,   360,   360,   361,   361,   361,   362,   362,   363,   363,
860    363,   364,   364,   365,   365,   366,   367,   367,   368,   368,
861    368,   369,   369,   369,   369,   369,   369,   369,   369,   369,
862    369,   371,   370,   372,   372,   373,   373,   373,   373,   373,
863    374,   374,   375,   375,   375,   375,   375,   375,   376,   376,
864    377,   377,   378,   379,   379,   380,   380,   380,   381,   382,
865    382,   383,   383,   383,   383,   384,   385,   385,   385,   385,
866    385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
867    385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
868    385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
869    385
870 };
871
872 static const short yyr2[] = {     0,
873      0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
874      1,     1,     0,     2,     2,     1,     1,     5,     4,     5,
875      4,     0,     6,     0,     5,     5,     2,     4,     2,     2,
876      3,     3,     1,     1,     2,     2,     1,     2,     0,     5,
877      3,     1,     3,     1,     0,     2,     2,     3,     1,     3,
878      1,     3,     1,     3,     2,     2,     2,     3,     3,     2,
879      2,     2,     2,     2,     1,     1,     1,     0,     1,     2,
880      0,     1,     4,     3,     3,     0,     8,     5,     0,     9,
881      6,     0,     8,     5,     0,     9,     6,     2,     2,     1,
882      2,     1,     6,     4,     6,     4,     2,     1,     2,     2,
883      1,     2,     1,     2,     2,     4,     2,     3,     0,     0,
884      1,     3,     2,     3,     1,     4,     2,     4,     2,     4,
885      2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
886      1,     1,     0,     6,     0,     6,     0,     5,     0,     5,
887      0,     7,     0,     7,     0,     6,     0,     6,     0,     0,
888      4,     4,     1,     4,     1,     1,     0,     1,     1,     3,
889      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
890      3,     1,     3,     0,     1,     1,     0,     7,     1,     1,
891      3,     4,     3,     0,     3,     1,     3,     3,     3,     3,
892      1,     1,     1,     2,     2,     2,     2,     2,     2,     2,
893      4,     2,     4,     2,     3,     3,     4,     4,     5,     5,
894      6,     2,     4,     5,     2,     2,     3,     3,     3,     1,
895      3,     2,     3,     4,     1,     2,     5,     1,     3,     3,
896      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
897      3,     3,     3,     3,     3,     3,     3,     5,     3,     3,
898      1,     2,     3,     1,     1,     1,     1,     1,     0,     5,
899      5,     5,     5,     5,     1,     1,     1,     1,     2,     2,
900      3,     4,     4,     1,     1,     1,     3,     1,     1,     1,
901      1,     3,     3,     3,     0,     4,     4,     2,     4,     2,
902      2,     1,     4,     1,     7,     7,     7,     7,     4,     4,
903      2,     2,     1,     4,     2,     2,     5,     3,     2,     2,
904      5,     3,     5,     3,     4,     6,     2,     1,     2,     1,
905      2,     1,     1,     1,     2,     0,     2,     2,     3,     3,
906      3,     2,     2,     2,     1,     1,     1,     2,     2,     2,
907      2,     1,     1,     1,     1,     2,     2,     3,     3,     3,
908      4,     1,     2,     2,     2,     1,     1,     1,     2,     2,
909      2,     1,     1,     2,     2,     3,     1,     2,     1,     1,
910      1,     4,     4,     4,     4,     1,     1,     1,     1,     3,
911      1,     3,     1,     3,     0,     4,     0,     6,     3,     0,
912      4,     1,     3,     3,     0,     4,     3,     0,     1,     1,
913      2,     6,     1,     3,     0,     1,     4,     6,     4,     1,
914      1,     1,     1,     1,     3,     0,     2,     1,     2,     3,
915      4,     1,     1,     3,     4,     3,     5,     1,     4,     3,
916      3,     0,     3,     3,     3,     0,     2,     2,     0,     7,
917      4,     0,     6,     3,     2,     2,     2,     0,     0,     9,
918      1,     0,     1,     0,     1,     1,     2,     2,     2,     2,
919      2,     2,     3,     4,     3,     2,     3,     0,     1,     3,
920      2,     2,     1,     1,     0,     2,     3,     1,     4,     1,
921      3,     1,     1,     4,     4,     2,     2,     3,     3,     1,
922      0,     1,     2,     4,     3,     1,     2,     2,     2,     2,
923      2,     2,     2,     1,     2,     2,     3,     2,     2,     4,
924      4,     2,     1,     5,     4,     1,     0,     1,     3,     0,
925      1,     3,     1,     1,     1,     1,     4,     4,     4,     4,
926      4,     3,     4,     4,     4,     4,     3,     1,     3,     1,
927      3,     2,     1,     6,     0,     2,     1,     2,     0,     2,
928      4,     4,     2,     4,     3,     3,     2,     2,     3,     1,
929      1,     2,     1,     1,     2,     2,     4,     4,     3,     3,
930      2,     1,     3,     3,     2,     2,     3,     1,     3,     3,
931      2,     2,     3,     1,     4,     3,     4,     3,     1,     2,
932      2,     2,     2,     2,     1,     2,     4,     4,     2,     1,
933      1,     1,     1,     2,     4,     2,     2,     2,     2,     1,
934      2,     2,     2,     2,     3,     1,     2,     3,     4,     2,
935      2,     2,     2,     2,     2,     4,     2,     1,     2,     2,
936      3,     1,     3,     2,     3,     2,     2,     3,     1,     3,
937      4,     3,     2,     2,     1,     3,     2,     2,     1,     2,
938      3,     1,     3,     1,     6,     4,     4,     3,     5,     3,
939      3,     3,     2,     1,     1,     2,     2,     2,     0,     1,
940      1,     2,     3,     1,     2,     0,     3,     0,     0,     5,
941      1,     0,     2,     1,     1,     1,     2,     0,     4,     1,
942      0,     0,     5,     0,     0,     7,     0,     0,     0,     0,
943     12,     0,     0,     7,     0,     5,     0,     7,     0,     4,
944      2,     2,     2,     3,     6,     8,    10,    12,     4,     3,
945      2,     2,     1,     1,     0,     0,     6,     0,     0,     5,
946      1,     2,     0,     0,     5,     1,     1,     3,     3,     2,
947      2,     2,     2,     2,     1,     2,     0,     1,     0,     1,
948      1,     0,     1,     1,     3,     4,     1,     3,     0,     1,
949      1,     1,     2,     2,     2,     1,     1,     2,     2,     2,
950      2,     0,     3,     1,     1,     1,     2,     2,     2,     4,
951      2,     2,     2,     2,     2,     2,     1,     2,     1,     2,
952      1,     1,     0,     0,     1,     0,     4,     2,     1,     1,
953      3,     0,     3,     3,     3,     1,     2,     2,     2,     2,
954      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955      2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
956      2,     2,     2,     2,     3,     2,     2,     4,     4,     3,
957      2
958 };
959
960 static const short yydefact[] = {     3,
961     13,    13,     5,     0,     4,     0,   256,   600,   601,     0,
962    358,   370,   547,     0,    11,    12,     0,     0,     0,    10,
963    456,   806,     0,     0,     0,   149,   632,   257,   258,    65,
964      0,     0,   793,     0,    37,     0,     0,    14,     0,     8,
965      0,    17,    16,    71,    92,    68,     0,   602,   153,   275,
966    254,   276,   578,     0,   345,     0,   344,   363,     0,   383,
967    362,   400,   369,     0,   469,   468,   475,   474,   473,   451,
968    357,   563,   371,   564,    90,   274,   589,   561,     0,   603,
969    545,     0,     0,   255,    63,    64,   157,   606,   157,   607,
970    157,   259,   149,   122,   123,   124,   125,   126,   442,   445,
971      0,   628,     0,   446,     0,     0,     0,     0,   123,   124,
972    125,   126,    24,     0,     0,     0,     0,     0,     0,     0,
973    447,   610,     0,   616,     0,     0,     0,     0,     0,     0,
974     30,     0,     0,    39,     0,   157,   608,     0,     0,   576,
975      0,     0,     0,   575,     0,     0,     0,     0,   275,     0,
976    549,     0,   274,   545,    29,     0,    27,     3,    38,     0,
977     56,    55,    72,    15,     0,   398,     0,     0,   416,    69,
978     61,   609,   549,     0,   545,    62,     0,     0,     0,    88,
979      0,   379,   335,   560,   336,   572,     0,   545,   360,   359,
980     60,    91,   346,     0,   381,   361,    89,   352,   376,   377,
981    347,   365,   367,   356,   378,     0,    57,   401,   457,   458,
982    459,   460,   472,   131,   130,   132,   461,   462,   466,     0,
983      0,   475,   793,   471,   490,   491,   548,   364,     0,   395,
984    601,     0,   630,   153,   593,   594,   590,   566,   604,     0,
985    565,   562,     0,   841,   837,   836,   834,   816,   821,   822,
986      0,   828,   827,   813,   814,   812,   831,   820,   817,   818,
987    819,   823,   824,   810,   811,   807,   808,   809,   833,   825,
988    826,   815,   832,     0,   829,   736,   363,   737,   802,   259,
989    256,   547,   279,   324,     0,     0,     0,     0,   320,   318,
990    292,   322,   323,     0,     0,     0,     0,     0,   258,   251,
991      0,     0,   164,   163,     0,   165,   166,     0,     0,   167,
992      0,     0,   158,   159,     0,   225,     0,   228,   162,   278,
993    193,     0,     0,   280,   281,     0,   161,   342,   363,   343,
994    595,   303,   294,     0,     0,     0,     0,   157,     0,   444,
995      0,   439,     0,   629,   627,     0,   168,   169,     0,     0,
996      0,   405,     3,    22,     0,   624,   620,   621,   623,   625,
997    622,   122,   123,   124,     0,   125,   126,   612,   613,   617,
998    614,   611,   266,   267,     0,   265,    33,    34,     0,   592,
999    591,    32,    31,    41,     0,   358,   139,     0,     0,   363,
1000    137,     0,     0,   574,     0,   573,   253,   270,     0,   582,
1001    269,     0,   581,     0,   277,   586,     0,     0,    13,     0,
1002    149,     9,     9,     0,   397,   399,   104,    75,   109,   725,
1003      0,    67,    66,    74,   107,     0,     0,   105,    70,   588,
1004      0,     0,   553,     0,   796,     0,   558,     0,   557,     0,
1005      0,     0,     0,   545,   398,     0,    59,   549,   545,   571,
1006      0,   349,   350,     0,    58,   398,   354,   353,   355,   348,
1007    368,   385,   384,   463,   467,   465,     0,   470,   476,     0,
1008      0,   366,   398,   545,    76,     0,     0,     0,     0,   545,
1009     82,   546,   577,   601,   631,   153,     0,     0,   830,   835,
1010    365,   545,   545,     0,   545,   840,   157,     0,     0,     0,
1011    200,     0,     0,   202,   215,   216,     0,     0,     0,     0,
1012      0,   252,   199,   196,   195,   197,     0,     0,     0,     0,
1013      0,   278,     0,     0,     0,   194,   155,   156,   272,     0,
1014    198,     0,     0,   226,     0,     0,     0,     0,     0,     0,
1015      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1016      0,     0,     0,     0,     0,     0,   288,   290,   291,   328,
1017    327,     0,     0,     0,     0,     0,   204,   543,     0,   212,
1018    325,   317,     0,     0,   793,   306,   309,   310,     0,     0,
1019    337,   649,   645,   654,     0,   549,   545,   545,   545,   339,
1020    652,     0,   599,   341,     0,     0,   340,   305,     0,   301,
1021    319,   321,   596,     0,   302,   152,   154,     0,   147,     0,
1022    363,   145,   540,   454,   538,   441,     0,     0,   372,     0,
1023      0,   373,   374,   375,   411,   412,   413,   410,     0,   403,
1024    406,     0,     3,     0,   615,   157,   618,    28,    36,    35,
1025     45,     0,     0,     0,    49,    53,    42,   792,   787,     0,
1026    342,   363,    45,   343,   791,    51,   150,   135,   133,   150,
1027    151,   273,   580,   579,   277,   583,     0,    19,    21,    71,
1028      0,   110,   326,     0,   676,    73,   674,   422,     0,   418,
1029    417,   192,     0,   191,   550,   587,     0,   766,   767,     0,
1030    761,   363,     0,   760,   762,   794,   776,     0,     0,   585,
1031    556,   555,     0,     0,   570,     0,   393,   392,   380,   569,
1032      0,   796,   559,   351,   382,   394,   398,   464,   600,   601,
1033    793,     0,   793,   602,   477,   478,   480,   793,   483,   482,
1034      0,   513,   601,     0,   504,     0,     0,   516,     0,   103,
1035     98,     0,   153,   517,   520,     0,   496,     0,   101,     0,
1036    398,   396,   796,   759,   157,   157,   605,   157,   796,   759,
1037    545,    79,   545,    85,   839,   838,   802,   802,   802,     0,
1038      0,     0,     0,   599,     0,     0,     0,     0,   363,     0,
1039      0,     0,   284,     0,   282,   283,     0,   223,   160,   256,
1040    600,   601,   257,   258,     0,     0,   423,   452,     0,   250,
1041    249,   751,   750,     0,   247,   246,   244,   245,   243,   242,
1042    241,   238,   239,   240,   236,   237,   231,   232,   233,   234,
1043    235,   229,   230,     0,     0,     0,     0,     0,     0,   206,
1044    220,     0,     0,   205,   545,   545,     0,   545,   542,   639,
1045      0,     0,     0,     0,     0,   308,     0,   312,     0,   314,
1046      0,   648,   647,   644,   643,   792,     0,     0,   663,     0,
1047      0,   796,   338,   796,   650,   545,   759,   549,   649,   645,
1048      0,     0,   545,     0,     0,     0,     0,     0,   260,   150,
1049    143,   141,   150,     0,   455,     0,   454,   190,   189,   188,
1050    187,   405,     0,     0,    25,     0,    26,   619,     0,    47,
1051     44,    45,     0,    40,     0,     0,   649,   645,     0,   783,
1052    545,   786,   788,     0,   784,   785,    46,   461,     0,   140,
1053    150,   150,   138,    18,    20,   386,   127,   115,   128,   129,
1054      0,   108,   111,     0,     0,     0,     0,   675,   669,   419,
1055      0,   106,   554,   551,   765,   782,   771,   769,     0,   552,
1056    764,   781,   770,   768,   763,   795,   778,   789,   779,   772,
1057    777,   798,     0,   390,   568,   567,   389,   487,     0,   486,
1058    793,   793,   793,     0,   545,   759,   512,   505,   517,   506,
1059    398,   398,   502,   503,   500,   501,   545,   759,   256,   600,
1060      0,   385,    99,   508,   518,   523,   524,   385,   385,     0,
1061      0,   385,    97,   509,   521,   385,   497,   498,   499,   398,
1062      0,   448,    78,     0,     0,     0,     0,    84,     0,   796,
1063    759,   796,   759,   804,   803,   805,   261,   293,   201,   203,
1064    299,   300,     0,     0,     0,     0,   283,   286,     0,     0,
1065      0,     0,   224,     0,   287,   289,   218,   217,   208,     0,
1066    207,   222,     0,     0,   636,   634,     0,   637,   549,   213,
1067      0,     0,   157,   315,     0,     0,     0,   646,   642,   653,
1068    545,   662,   660,   661,   651,   796,     0,   658,     0,   597,
1069    598,     0,   304,   148,   150,   150,   146,   541,   539,   443,
1070      0,   404,   402,   256,     0,    23,   626,    48,    43,    50,
1071     54,   648,   644,   649,   645,     0,   561,     0,   545,   650,
1072     52,   136,   134,     0,   113,     0,   117,     0,   119,     0,
1073    121,     0,   726,     0,   180,   677,     0,   670,   671,     0,
1074    420,   649,   645,     0,   278,     0,   595,   790,     0,     0,
1075    799,   800,     0,     0,   387,     0,     0,     0,   489,   488,
1076    481,   796,     0,   507,   416,   416,   796,     0,     0,     0,
1077    398,   398,     0,   398,   398,     0,   398,     0,   416,     0,
1078    436,   545,   263,   262,   264,   545,    81,     0,    87,     0,
1079      0,     0,     0,     0,     0,   426,     0,   424,   227,   248,
1080      0,   209,   210,   219,   221,   635,   633,   640,   638,     0,
1081    214,     0,     0,   307,   311,   313,   796,   656,   545,   657,
1082    144,   142,   440,     0,   407,   409,   648,   644,   566,   650,
1083    114,   112,     0,     0,     0,     0,   414,     0,     0,   256,
1084    600,   601,   678,   691,   694,   697,   702,     0,     0,     0,
1085      0,     0,     0,   257,   723,   728,     0,   747,     0,   686,
1086      0,     0,   363,     0,   665,   684,   690,   664,   685,   724,
1087      0,   672,   421,     0,   598,   780,   774,   775,   773,     0,
1088    797,   391,     0,   484,   485,   479,    94,   545,   511,   515,
1089     96,   545,   398,   398,   532,   416,   256,   600,     0,   519,
1090    525,   526,   385,   385,   416,   416,     0,   416,   522,   510,
1091      0,   796,   796,   545,   545,     0,     0,     0,     0,   425,
1092      0,     0,   211,   641,   316,   262,   659,   796,     0,   116,
1093    118,   120,   733,   727,   731,     0,   673,   668,   183,   740,
1094    742,   743,     0,     0,   682,     0,     0,     0,   709,   711,
1095    712,   713,     0,     0,     0,   741,     0,   334,   748,     0,
1096    687,   332,   385,     0,   333,     0,   385,     0,     0,     0,
1097    181,   667,   666,   688,   722,   721,   283,   801,   388,   796,
1098    796,   531,   528,   530,     0,     0,   398,   398,   398,   527,
1099    529,   514,   438,     0,   437,   432,    77,    83,   796,   796,
1100    295,   296,   297,   298,   427,   544,   655,   408,     0,   732,
1101    415,   172,     0,   679,   692,   681,     0,     0,     0,     0,
1102      0,   705,     0,   714,     0,   720,   729,     0,   330,   331,
1103      0,     0,     0,   329,   182,   682,    93,    95,   398,   398,
1104    537,   416,   416,     0,     0,   450,    80,    86,     0,   734,
1105    179,     0,   363,     0,   682,     0,   695,   683,   669,   745,
1106    698,     0,     0,     0,     0,   710,   719,     0,     0,   689,
1107    536,   534,   533,   535,   435,   434,   428,    68,    71,     0,
1108      0,     0,   173,   385,   680,   184,   693,   186,     0,   746,
1109      0,   744,   703,   707,   706,   730,   752,     0,     0,   433,
1110    738,   739,   735,   398,   669,   170,     0,     0,   176,     0,
1111    175,   682,     0,     0,     0,   753,   754,   715,   431,     0,
1112    430,     0,   185,     0,   696,   699,   704,   708,     0,   752,
1113      0,     0,   429,   177,   171,     0,     0,     0,   716,   755,
1114      0,     0,   756,     0,     0,   178,   700,   757,     0,   717,
1115      0,     0,     0,   701,   758,   718,     0,     0,     0
1116 };
1117
1118 static const short yydefgoto[] = {  1547,
1119    409,     2,   410,   160,   669,   311,   165,     3,     4,    38,
1120    633,   353,   738,   375,    40,   739,   385,   644,   900,   645,
1121    646,   647,    42,    43,   421,   168,   164,    44,   740,   754,
1122   1021,   760,  1023,    46,   741,   742,   169,   170,   422,   672,
1123    932,   933,   613,   934,   218,    47,   922,   921,   660,   657,
1124   1086,  1085,   883,   880,   135,   920,    48,    49,   529,   312,
1125    313,   314,   315,  1249,  1498,  1404,  1500,  1442,  1531,  1126,
1126   1477,  1495,   347,   872,   316,   566,   834,   317,   318,   348,
1127    320,   338,    51,   236,   377,   398,    52,    53,   321,   524,
1128    322,   323,   324,   325,   423,   326,  1250,   462,   588,   327,
1129   1251,    55,   201,   650,   328,   202,   502,   203,   181,   194,
1130     59,   445,   463,  1273,   707,  1144,   182,   195,    60,   473,
1131    708,    61,    62,   629,   630,   631,  1228,   428,   797,   798,
1132   1468,  1469,  1436,  1385,  1301,    63,   617,   341,  1171,  1386,
1133   1042,   886,    64,    65,    66,    67,   222,    68,    69,    70,
1134    224,   725,   726,   727,   728,   226,   470,   471,   746,   747,
1135    748,   994,  1004,   995,  1290,   996,   997,  1291,  1292,   614,
1136    615,   567,   862,   330,   431,   432,   175,   183,    72,    73,
1137     74,   184,   185,   152,    76,   131,   331,   332,   333,    78,
1138    334,    80,   730,   122,   123,   124,   478,   104,    81,   335,
1139    839,   840,   857,   591,  1254,  1255,  1127,  1128,  1129,   676,
1140   1256,   939,  1257,  1333,  1445,  1407,  1408,  1258,  1259,  1426,
1141   1334,  1446,  1335,  1479,  1336,  1481,  1526,  1541,  1337,  1502,
1142   1455,  1503,  1413,   424,   673,  1226,  1260,  1347,  1458,  1324,
1143   1325,  1399,  1472,  1444,  1440,  1261,  1451,  1350,   804,  1505,
1144   1506,  1507,  1539,   693,   694,   961,  1140,  1269,   695,   696,
1145    697,   957,   698,   145,   959,   700,  1142,  1143,   496,    83,
1146     84
1147 };
1148
1149 static const short yypact[] = {   125,
1150    130,-32768,-32768,  3240,-32768,   195,    72,   188,   284,   151,
1151    102,-32768,-32768,  1117,-32768,-32768,   136,   176,   198,-32768,
1152 -32768,-32768,  1085,  1187,  1489,   256,-32768,   304,   367,-32768,
1153   2407,  2407,-32768,  4859,-32768,  3240,   294,-32768,   352,    91,
1154   5970,-32768,-32768,   208,  1265,   379,   356,   372,-32768,-32768,
1155 -32768,-32768,   330,  2553,-32768, 10199,-32768,  1350,   498,-32768,
1156    423,-32768,-32768,  1046,-32768,-32768,   399,-32768,-32768,   417,
1157   4154,-32768,-32768,-32768,   784,-32768,-32768,-32768,   849,-32768,
1158 -32768,   508,  5609,   408,-32768,-32768,  9052,-32768,  9052,-32768,
1159   9052,-32768,-32768,-32768,   188,   284,   304,   445,   453,   492,
1160    372,-32768,  1409,-32768,   508,  9052,  9052,   480,-32768,-32768,
1161 -32768,-32768,-32768,    64,   528,   368,   383,   478,   538,   553,
1162 -32768,-32768,   564,-32768,   572,   188,   284,  1112,   304,   445,
1163 -32768,   855,   467,   509, 10350,  9052,-32768,  9052,  2926,-32768,
1164   1285,   543,  2926,-32768,  1090,  3033,  3033,  4859,   524,   547,
1165    517,   552,   555,-32768,-32768,   627,-32768,   556,-32768, 10084,
1166    195,-32768,-32768,-32768,   582,   423,   691,   145,   179,   624,
1167 -32768,-32768,   592,   250,-32768,-32768,  3416,  3416,  4989,   784,
1168    591,-32768,-32768,   387,-32768,-32768,  2806,-32768,-32768,-32768,
1169 -32768,-32768,  1350,   641,-32768,   423,   784,-32768,-32768,-32768,
1170   1578,  1350,-32768,   423,-32768,  5186,-32768,-32768,-32768,-32768,
1171 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   372,   988,
1172   1434,   399,-32768,-32768,-32768,-32768,-32768,   682,   508,-32768,
1173    497,   963,-32768,   271,-32768,-32768,-32768,-32768,-32768,  3988,
1174 -32768,-32768,   590,-32768,   617,   620,-32768,-32768,-32768,-32768,
1175    658,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1176 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1177 -32768,-32768,-32768,   616,-32768,-32768,   682,  4154,  1158,-32768,
1178 -32768,   646,-32768,-32768,  9667,  9754,  9841,  9841,-32768,-32768,
1179 -32768,-32768,-32768,   668,   701,   711,   721,   732,   445,  9139,
1180   1090,  9841,-32768,-32768,  9841,-32768,-32768,  9841,  7165,-32768,
1181   9841,   223,   683,-32768,  9841,-32768,  9226,-32768, 10446,-32768,
1182   1514,  1785,  9313,-32768,   799,  2426,-32768,   953,  3686,  4007,
1183 -32768,   307,-32768,  1524,  1858,   223,   223,  9052, 10350,-32768,
1184   1090,   703,  1090,-32768,-32768,   708,   768, 10596,   724,   733,
1185    738,   945,   556,-32768,  1112,-32768,-32768,-32768,-32768,-32768,
1186 -32768,   528,   368,   383,  1090,   478,   538,   793,   553,-32768,
1187    776,-32768,   188,   284,   814,-32768,-32768,-32768,   467,-32768,
1188 -32768,-32768,-32768,-32768,  4967,-32768,-32768,  5186,  5373,  1679,
1189 -32768,   223,   809,-32768,   775,-32768,-32768,-32768,  2926,-32768,
1190 -32768,  2926,-32768,   760,-32768,-32768,  3988,    87,   761,   777,
1191 -32768,-32768,-32768,   627,-32768,   423,-32768,-32768,-32768,-32768,
1192    148,-32768,-32768,-32768,-32768,  7257,  9139,-32768,-32768,-32768,
1193   9139,   779,-32768,  6493,   100,  4306,-32768,  4306,-32768,  4584,
1194   4584,  4989,   790,-32768,   423,  5186,-32768,   783,-32768,-32768,
1195   4619,  1578,  1350,  5186,-32768,   423,-32768,-32768,   423,  1578,
1196 -32768,   811,-32768,-32768,   372,-32768,   988,-32768,  1220,  1675,
1197     57,   682,   423,-32768,-32768,   836,   852,   876,   858,-32768,
1198 -32768,-32768,-32768,   532,-32768,   338,   821,   826,-32768,-32768,
1199    682,-32768,-32768,   822,-32768,-32768,  9052,  9139,   646,  7165,
1200 -32768,   437,  7165,-32768,-32768,-32768,  9052,  5977,  5977,  5977,
1201   5977, 10641,-32768,-32768,-32768,-32768,   832,  9928,  9928,  7165,
1202    851,   524,   863,   887,   867,-32768,-32768,-32768,-32768,  9052,
1203 -32768,  6790,  7165,-32768,  9139,  9139,  7349,  9139,  9139,  9139,
1204   9139,  9139,  9139,  9139,  9139,  9139,  9139,  9139,  9139,  9139,
1205   9139,  9139,  9139,  9139,  9139,  9139,-32768,-32768,-32768,-32768,
1206 -32768,  9139,  9139,  9139,  9052,  2857,   366,   440,  7988,-32768,
1207 -32768,-32768,   880,   963,   972,   444,   523,   530,  2780,   543,
1208 -32768,  1687,  1687,-32768,  4837,   868,   877,   948,-32768,-32768,
1209    502,  8495,   725,-32768,   860,   508,-32768,-32768,  9139,-32768,
1210 -32768,-32768,-32768,   249,-32768,-32768,-32768,   223,-32768,  5186,
1211   1998,-32768,   933,   939,-32768,-32768,  1090,   793,-32768,  7717,
1212   7809,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    79,-32768,
1213    906,   895,   556,   951,   961,  9052,-32768,-32768,-32768,-32768,
1214   1386,   256,   990,   206,   970,   971,-32768,-32768,  2152, 10406,
1215   2152,  4432,  1046, 10143,-32768,   973,-32768,-32768,-32768,-32768,
1216 -32768,-32768,-32768,-32768,   929,-32768,   979,-32768,-32768,   208,
1217     89,   460,   993,   887,-32768,-32768,-32768,-32768,  6695, 10641,
1218 -32768,   768,   947, 10596,-32768,-32768,   952,-32768,-32768,   967,
1219    160,  5318,   969,-32768,   169,  5796,   996,  1015,   561,-32768,
1220 -32768,-32768,  4306,  4306,-32768,  4619,-32768,  1016,-32768,-32768,
1221    995,   100,-32768,  1578,-32768,-32768,   423,-32768,   368,   383,
1222 -32768,   964,-32768,   553,  1022,-32768,-32768,   120,-32768,-32768,
1223   1492,-32768,   589,   669,-32768,  9139,  5517,-32768,  5517,   335,
1224    335,   217,   585,  2595, 10244,  2284,-32768,   225,   335,  1043,
1225    423,-32768,   100,  2575,  9052,  9052,-32768,  9052,   100,  2575,
1226 -32768,-32768,-32768,-32768,-32768,-32768,   649,   649,   649,   223,
1227    975,  1000,  9406,   948,  1004,  1014,  1019,  1059,  4066,  1060,
1228   1074,  1079,-32768,  1058,-32768,-32768,  1068,-32768,-32768,  1118,
1229    787,   900,    65,   431,  9139,  1120,-32768,  1124,  1070, 10641,
1230  10641,-32768,-32768,  1123,  5412,  5667,  3513,  5693,  4244,  3542,
1231   3712,  1983,  1983,  1983,  1691,  1691,  1237,  1237,   756,   756,
1232    756,-32768,-32768,  1084,  1082,  1086,  1095,  1097,  5977,   366,
1233 -32768,  7257,  9139,-32768,-32768,-32768,  9139,-32768,-32768,  1105,
1234   9841,  1099,  1119,  1136,  1166,-32768,  9139,-32768,  9139,-32768,
1235   9139,  2683,-32768,  2683,-32768,   140,  1109,  1110,-32768,  1113,
1236   5977,   100,-32768,   100,  4679,-32768,  2575,  1125,  8687,  8687,
1237   6301,  1121,  9226,  1122,  3050,  1858,   984,  1130,-32768,-32768,
1238 -32768,-32768,-32768,  9139,  1090,  1138,   939,-32768, 10641,-32768,
1239  10641,   945,  1137,  9493,-32768,  1141,-32768,-32768,   223,-32768,
1240 -32768,  1364,  4967,-32768,  5977,  9052,  2037,  2037,  3864,-32768,
1241 -32768,-32768,-32768,  2806,-32768,-32768,-32768,    61,  9139,-32768,
1242 -32768,-32768,-32768,-32768,-32768,-32768,   528,-32768,   478,   538,
1243   9139,  1170,-32768,   587,   601,   622,   887,-32768,    71,-32768,
1244     55,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  8591,-32768,
1245 -32768,-32768,-32768,-32768,-32768,-32768,-32768,  1015,  1168,-32768,
1246 -32768,-32768,  5977,-32768,-32768,-32768,  1190,-32768,  9052,-32768,
1247 -32768,-32768,-32768,  1345,-32768,  2575, 10641,-32768,  1904,-32768,
1248    423,   423,-32768,-32768,-32768,-32768,-32768,  2575,   232,   915,
1249   9139,   811,-32768,  1196,-32768,-32768,-32768,   343,   391,   849,
1250    543,   686,   335,  1199,-32768,   901,-32768,-32768,-32768,   423,
1251   4219,-32768,-32768,  1154,   223,   223,   223,-32768,  1157,   100,
1252   2575,   100,  2575,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1253 -32768,-32768,  1175,  1176,  1177,  1179,   929,-32768, 10528,  7257,
1254   6885,  1163,-32768,  9139,-32768,-32768,-32768,-32768,   825,  1172,
1255 -32768,-32768,  1173,    66,   285,   285,  1167,   285,-32768,-32768,
1256   9841,  1268,  9052,-32768,  1185,  1186,  1188,-32768,-32768,-32768,
1257 -32768,-32768,-32768,-32768,-32768,   100,  1191,-32768,  1192,-32768,
1258 -32768,  3120,-32768,-32768,-32768,-32768,-32768, 10641,-32768,-32768,
1259   1189,-32768,-32768,   227,  1197,-32768,-32768,-32768,-32768,-32768,
1260 -32768,  2938,  2938,  3140,  3140,  3864,-32768,  2806,-32768,  3487,
1261  10446,-32768,-32768,  1200,-32768,   460,-32768,  9139,-32768,  9139,
1262 -32768,  9139,-32768,  1090,-32768,-32768,  6207,  1275,-32768,  6977,
1263 -32768,  8780,  8780,  6397,   183,  1205,   254,-32768,  7257,  7069,
1264 -32768,-32768,   240,  7257,-32768,  1214,  1218,  1220,-32768,-32768,
1265 -32768,   100,  1219,-32768,  1266,  1266,   100,  1222,  9139,  9139,
1266  10506,   423,  3309,   423,   423,  1160,   423,  4478,  1266,  5125,
1267 -32768,-32768,-32768,  1278,-32768,-32768,-32768,  1225,-32768,  1226,
1268   9139,  9139,  9139,  9139,  7257,-32768,  1276,-32768,-32768, 10641,
1269   9139,-32768,   825,-32768,-32768,-32768,-32768,-32768,-32768,  1228,
1270 -32768,  1290,   223,-32768,-32768,-32768,   100,-32768,-32768,-32768,
1271 -32768,-32768,-32768,  9139,-32768,-32768,  2938,  2938,-32768,  3487,
1272 -32768,-32768,  1234,  1236,  1244,  1250,-32768,   786,   242,  1297,
1273   1021,  1023,-32768,-32768,-32768,-32768,-32768,  9139,  1300,  1304,
1274   1309,  8873,   257,   415,-32768,-32768,  8965,  1366,  1316,-32768,
1275   4706, 10305, 10451,  6095,-32768,-32768,  1362,-32768,-32768,-32768,
1276   8099,-32768,-32768,  1273,  1916,-32768,-32768,-32768,-32768,  5977,
1277 -32768,-32768,  7257,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1278 -32768,-32768, 10506, 10506,-32768,  1266,   695,  1083,  9139,-32768,
1279 -32768,-32768,   811,   811,  1266,  1266,   532,  1266,-32768,-32768,
1280   5854,   100,   100,-32768,-32768,  1282,  1284,  1298,  1308,-32768,
1281   7257,  1310,-32768,-32768,-32768,-32768,-32768,   100,  1314,-32768,
1282 -32768,-32768,-32768,  1250,-32768,  1090,-32768,-32768,-32768,-32768,
1283 -32768,-32768,   629,   629,   887,  1292,  1294, 10484,-32768,-32768,
1284 -32768,-32768,  1334,  9139,  1369,-32768,   887,-32768,-32768,  1338,
1285 -32768,-32768,   811,   823,-32768,   861,   811,  9580,   864,   266,
1286 -32768,-32768,-32768,-32768,-32768,-32768,   339,-32768,-32768,   100,
1287    100,-32768,-32768,-32768,  9139,  9139, 10506,   423,   423,-32768,
1288 -32768,-32768,-32768,  7901,-32768,-32768,-32768,-32768,   100,   100,
1289 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1339,-32768,
1290 -32768,-32768,  9052,-32768,-32768,-32768,  1435,  8401,  6603,  9052,
1291   9139,-32768,  8209,-32768,  1394,-32768,-32768,   627,-32768,-32768,
1292  10015, 10015,  7441,-32768,-32768,   887,-32768,-32768, 10506, 10506,
1293 -32768,  1266,  1266,  1347, 10550,  1358,-32768,-32768,  5257,-32768,
1294 -32768,  1349,   443,  5186,   887,  8305,-32768,-32768,    71,-32768,
1295 -32768,  1402,  1359, 10619,  8209,-32768,-32768,  1250,    78,-32768,
1296 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   379,   208,  1360,
1297   1361,   887,-32768,   811,-32768,-32768,-32768,-32768,   638,-32768,
1298   7533,-32768,-32768,-32768,-32768,  1250,  1457,  1411,   156,-32768,
1299 -32768,-32768,-32768,   423,    71,-32768,  9139,  1413,-32768,  1414,
1300 -32768,   887,  8209,  1382,    53,  1418,-32768,-32768,-32768,   148,
1301 -32768,  1415,-32768,  1371,-32768,-32768,-32768,-32768,  9139,  1457,
1302   1421,  1457,-32768,-32768,-32768,  7625,  1373,   158,-32768,-32768,
1303   7257,  1377,-32768,  1479,  1439,-32768,-32768,-32768,   301,-32768,
1304   8305,  1490,  1442,-32768,-32768,-32768,  1508,  1509,-32768
1305 };
1306
1307 static const short yypgoto[] = {-32768,
1308   1511,-32768,  -303,-32768,  1101,    18,    -1,  1515,-32768,   192,
1309 -32768,-32768,   519,  1161,-32768,     5,-32768,-32768,  -623,-32768,
1310 -32768,   615,-32768,  1363,  -668,    83,  -664,  1392,    30,-32768,
1311 -32768,-32768,-32768,-32768,   774,-32768,-32768,-32768,-32768,-32768,
1312 -32768,   404,   661,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1313 -32768,-32768,-32768,-32768,  1440,  -611,  5315,    32,  -317,    44,
1314   1416,  -503,-32768,   103,-32768,   222,-32768, -1302,-32768,  -756,
1315     17,-32768,  1320,  1586,  -262,-32768,  -794,  1774,  -110,  1098,
1316   3500,  1281,-32768,   -87,   -55,  1580,   -77,    27,-32768,-32768,
1317 -32768,  -319,-32768,  -155,-32768,-32768, -1156,   -47,  -316,  2413,
1318     58,  -240,  -120,    52,    76,  -181,    -4,  -144,  -610,   312,
1319 -32768,    68,    73,-32768,  -337,-32768,-32768,-32768,-32768,-32768,
1320    374,  1115,    20,-32768,   673,-32768,-32768, -1049,  -422,   890,
1321 -32768,-32768,-32768,-32768,-32768,   -32,-32768,-32768,-32768,-32768,
1322 -32768,   685,  -360,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1323   1348,-32768,   426,   602,-32768,-32768,-32768,-32768,   566,  -686,
1324 -32768,-32768,-32768,-32768,-32768,-32768,   833,-32768,   412,   966,
1325    704,  1024,  3968,     7,    51,  -431,  1407,  3322,  -438,-32768,
1326     19,-32768,  3079,  -118,   247,   -59,  3948,  1271,-32768,  4653,
1327   1794,  1660,   -16,  -115,-32768,  1471,   -81,-32768,  4369,  2696,
1328   -290,-32768,  2504,-32768,-32768,   344,-32768,-32768,   471,    93,
1329   -353,-32768,-32768,-32768,-32768, -1262,-32768, -1191, -1324,-32768,
1330 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1331 -32768,-32768,-32768,   115,-32768,-32768,-32768,-32768,-32768,   153,
1332  -1232,-32768,-32768,   -65,-32768,-32768,-32768,-32768, -1312,    92,
1333 -32768,    94,-32768,  -616,  -520,   660,-32768,-32768,-32768,-32768,
1334   -371,-32768,  -364,  -179,-32768,   681,   349,-32768,  -394,-32768,
1335   -217
1336 };
1337
1338
1339 #define YYLAST          10726
1340
1341
1342 static const short yytable[] = {    58,
1343    408,   237,    37,   681,   937,   925,   180,   121,    41,   372,
1344     71,   453,   593,   655,   479,   602,   711,   279,   606,   607,
1345    656,    36,   501,   504,   653,   205,   789,   400,   403,   917,
1346    729,    58,   102,    45,    37,  1051,    58,   139,   143,    37,
1347     41,   371,    71,   469,   380,    41,   472,    71,   923,   632,
1348    978,   193,   980,    36,   534,    56,   458,   461,    36,  1007,
1349    151,    54,  1363,   237,   858,    45,   228,   677,   378,  1366,
1350     45,   858,   452,   383,   661,   662,   381,   382,   277,    57,
1351    208,   460,   329,  1448,   329,   192,   329,    56,   571,   278,
1352   1348,  1400,    56,    54,   750,   491,  1452,   571,    54,   571,
1353    241,   329,   329,   174,  1124,  1279,  1280,  1453,   482,   237,
1354    234,    57,   166,   581,  1130,  1520,    57,   605,   716,  1300,
1355    -44,  1478,   354,   344,    -1,   -44,   972,  -125,   355,    -2,
1356    390,   329,   336,   329,   337,   752,   -44,  1014,   892,   136,
1357   1487,    71,   230,  1019,   649,   418,    87,   491,   674,   158,
1358     93,   945,   399,   402,   860,    58,  1509,   973,   276,   773,
1359    205,   699,  1521,  1460,   387,  1131,    71,   751,   205,   205,
1360    787,   945,   151,   151,   151,  1195,   505,   506,  1501,   392,
1361    951,  1125,  1475,   436,   438,   774,   389,  1488,   893,    45,
1362    159,   514,   388,   649,   515,   205,   667,   516,   926,   946,
1363    526,   174,   947,  -326,   531,   151,   675,   419,   346,   350,
1364     57,    56,   570,  1532,  -326,   208,  1478,    54,   419,   946,
1365   1534,  1456,   947,   208,  -792,    92,   425,   155,   952,   106,
1366   -275,   953,   162,   935,   174,    57,  1374,   948,   576,  1517,
1367    420,   983,    88,   426,   205,  1380,  1381,   241,  1382,   788,
1368   1077,   420,  1450,  1400,  1192,    85,   568,   948,   671,    94,
1369    109,   110,    89,  1485,   456,   903,   954,  1535,  1084,   107,
1370    577,  1087,   427,   228,   486,   984,  -275,  -275,  1098,   985,
1371    153,   904,   902,   635,   602,  1008,  1214,   289,   126,   127,
1372    879,   108,  -268,   482,  1159,   378,   205,   433,   527,  1270,
1373    528,  -589,  1328,    27,   329,    86,    87,   458,   461,  1112,
1374   1113,  1518,   986,   111,   112,   458,   163,   277,   480,   640,
1375    938,   400,   403,   639,   655,   228,  1328,   461,   278,   896,
1376    134,   958,   714,   329,   611,  1009,  1215,  1344,    90,    27,
1377    658,   129,   130,   434,   649,    71,   461,  -589,  -589,  1271,
1378    858,   649,  1329,   241,   598,   835,   479,   205,    91,  1153,
1379   1542,    15,    16,  -589,   481,   836,  -385,  -335,   609,    15,
1380     16,  1158,  1024,  1025,  1026,   593,  1425,  -549,   136,   837,
1381    652,   608,  1463,  1464,   193,   763,  -277,   156,   858,   643,
1382    389,   654,   153,   153,   153,  -385,   610,   276,  1313,  -385,
1383    599,  -335,  1101,   167,  1178,  -335,  1180,   514,   515,  1052,
1384   1543,   521,   157,   831,    57,  -336,   171,    15,    16,   205,
1385    205,   137,   357,  -549,   173,   153,   172,   205,   858,   692,
1386    832,   764,  -277,  -277,  -549,   208,  1079,   358,  -335,   205,
1387    654,   138,    89,   126,   127,  -385,   703,   704,  -271,  -336,
1388    199,   200,  1027,  -336,    19,   649,    14,    91,   205,   833,
1389    651,   223,   927,   719,   720,    58,   151,   151,   151,   281,
1390    373,   374,    10,  1211,  1212,   225,    71,  1346,   208,    21,
1391   -549,   448,   280,  1007,   581,   137,  -336,   737,    24,   136,
1392    581,   846,   329,  -126,    27,   329,   129,   130,   329,   137,
1393    568,   743,   329,   779,   779,   779,   779,   928,    22,   651,
1394    835,     8,     9,   649,    27,   329,   929,   930,   709,   649,
1395    836,   745,    39,    28,   299,   329,   715,   744,   329,   717,
1396    773,   655,   359,   685,   837,   729,   773,   847,   656,   415,
1397    770,   968,   653,   970,   474,    57,   126,   127,   974,   866,
1398    342,    90,   136,   931,    39,    33,   602,   206,   207,    39,
1399    329,   277,   881,   340,   129,   130,   362,   363,   364,   458,
1400    848,    91,   278,   352,   115,   116,   117,   850,   205,   761,
1401    652,  1097,   356,  1123,   384,   858,    90,   692,   852,   854,
1402    475,   654,   360,     8,   484,   867,   868,   491,   654,   129,
1403    130,   910,   521,   915,   916,   521,    91,   361,   962,   776,
1404    534,   173,   365,   858,   241,   372,   849,  1186,  1188,   205,
1405    366,   367,   521,   851,   121,   762,   649,  1200,   118,   119,
1406    649,   329,   987,  -268,  1117,   521,   975,   284,   343,   803,
1407   1354,   276,  1359,    90,   916,   193,   129,   130,  1119,   228,
1408    446,   447,   126,   127,   963,   936,   405,   482,   605,   205,
1409    651,   406,   649,    91,  -584,   825,    -7,   651,   649,  1121,
1410    485,   842,   126,   127,   100,   414,  1402,   935,   988,   899,
1411   1118,   205,   976,   114,   429,  1496,   153,   153,   153,   199,
1412    200,   652,  1480,   417,  1120,    14,   993,  1173,  1174,  1175,
1413    454,   455,   654,    27,   430,   129,   130,  1188,   649,   729,
1414   -102,   487,    15,    16,   488,  1122,  1266,  1268,    21,   492,
1415    489,  1272,  1403,    27,   217,   129,   130,    24,   490,   493,
1416   1060,  1497,    58,  -545,    58,   649,  -545,   774,  1513,   498,
1417    193,    58,   530,    71,  -102,    71,   205,   649,  -102,   652,
1418    329,   329,    71,   329,   737,   652,   737,  1375,   514,   515,
1419    654,   507,  1310,   737,  1196,  1197,   654,  1199,   743,    87,
1420    743,   651,   863,   992,  1002,   508,   743,   743,   126,   127,
1421    649,  -102,   649,   368,  -545,   509,  -545,  -545,   745,  -545,
1422    745,  1148,  1149,  1150,   744,   510,   979,   745,  1015,  1016,
1423   -545,  1017,  -545,   744,  1490,   397,   511,   981,   982,   571,
1424     15,    16,    57,   616,    57,  -385,  1010,   619,  -545,  -545,
1425   1510,    57,  -545,   343,   779,   126,   127,   620,  1054,   651,
1426    637,   129,   130,   622,  -545,   651,   237,    15,    16,   555,
1427    556,    88,   623,  -385,  -385,  1326,  1327,   624,  -385,  -123,
1428   1369,     7,     8,   231,    10,   485,   779,   281,   373,   374,
1429     10,    89,   652,     8,     9,   649,   692,   636,   530,   665,
1430    343,    -6,   831,   654,   638,   852,   854,   654,   129,   130,
1431    464,   466,   446,  1419,   527,  1316,   528,   668,  1395,   832,
1432     22,   686,   477,   649,   241,   710,    22,   232,   652,   705,
1433    779,   329,   233,   232,   652,    28,    29,   643,   343,   654,
1434    755,    28,   299,  1102,  1103,   654,   129,   130,   833,  1191,
1435    454,  1420,   237,   446,  1424,  -100,   756,    15,    16,   233,
1436    757,   993,   758,   765,   843,   151,   774,    33,   766,  1057,
1437    233,   783,   651,    33,   692,   675,   651,    94,   109,   110,
1438   1201,   625,   626,   627,    90,   654,   126,   127,   779,  -100,
1439    785,   513,  -124,  -100,   329,    94,   109,   110,   476,    88,
1440    861,   652,   786,   521,    91,   151,   788,  1160,   651,   845,
1441    859,  1406,   654,   652,   651,   400,   403,     8,     9,    89,
1442     94,    95,    96,  1417,   654,   863,  -100,   884,   885,   894,
1443    581,   111,   112,   618,    22,   895,    58,    27,   992,   129,
1444    130,   897,   628,   400,   403,   898,   652,    71,   652,   111,
1445    112,   514,   515,   582,   651,   618,    21,   654,   737,   654,
1446    237,   234,   343,   583,   905,   906,   343,   919,  -271,   924,
1447    129,   130,   743,   584,    97,    98,   585,   586,    94,    95,
1448     96,   651,   209,   210,   211,   419,   942,   969,   329,  1162,
1449   -791,   943,   745,   651,   485,  1164,  1165,   655,   744,  1162,
1450   1167,  1146,  1406,  1165,  1471,    88,   944,    90,   950,   960,
1451    964,   971,   212,  1331,  1028,  1332,    57,    94,   109,   110,
1452    967,  1406,    94,   109,   110,    89,   651,    91,   651,   936,
1453     27,   652,    97,    98,   213,  1011,  1203,   965,  1536,  1029,
1454   1217,  1218,   654,  1030,   281,   373,   374,    10,  1493,    94,
1455     95,    96,  1253,  1031,  1012,  1248,   774,   718,  1032,   692,
1456    151,   151,   151,    71,  1033,  1034,   526,    88,  1217,  1218,
1457    654,   111,   112,   113,  1247,  1376,   111,   112,  1406,  1035,
1458    214,   215,   216,    22,  1036,   153,   677,    89,   151,   151,
1459    151,   126,   127,   126,  1297,    58,    27,  1037,    28,   299,
1460    196,    27,   204,    97,    98,    99,    71,  1038,  1252,  1043,
1461   -122,   651,  1040,  1041,   319,  1044,   319,   737,   319,   115,
1462    116,   117,   796,  1045,  1046,   153,  1047,   486,   649,  1059,
1463     33,   743,    57,  1353,  1048,  1353,  1049,  1062,   343,   651,
1464   1063,  1061,    27,  1064,   129,   130,   129,   130,  1070,  1071,
1465    205,   745,   115,   719,   720,  1072,   721,   744,   492,  1116,
1466   1080,  1081,  1139,   319,   844,   319,   521,  1078,   493,  1083,
1467    485,    27,  1253,   118,   119,    57,  1093,   193,  1090,  1253,
1468    722,  1096,  1248,    71,  1145,  1163,  1253,   723,  1168,  1248,
1469     71,   491,  1459,  1172,  1247,   779,  1176,    71,  1181,  1182,
1470   1183,  1247,  1184,  1189,    27,  1202,   118,   119,  1247,  1198,
1471    416,  1193,  1194,  1306,  1307,  1308,  1309,     7,   126,   127,
1472     10,    15,    16,  1312,  1204,  1205,  -385,  1206,  1252,  1213,
1473   1209,   901,   400,   403,  1210,  1252,  1216,   204,  1124,  1221,
1474    514,   515,  1252,   918,  1265,   459,   204,   552,   553,   554,
1475    555,   556,    57,  1274,  -385,  -385,    22,  1275,  1278,    57,
1476    426,  1282,  -626,   232,  1304,  1305,    57,  1315,  1311,   796,
1477   1314,    28,    29,  1320,  1343,  1321,  1323,   115,   719,   720,
1478    153,   153,   153,  1322,  1155,  1156,   198,   199,   200,  1330,
1479   1378,  1379,  1339,    14,  1340,   233,    94,   109,   110,  1341,
1480    209,   210,   211,    33,  1349,   722,  1351,  1364,   153,   153,
1481    153,    19,  1367,  1169,   151,  1409,    21,  1410,   362,   363,
1482    364,  1391,   966,  1392,  1414,    24,  1474,   512,  1443,    27,
1483    212,   118,   119,  1253,  1253,  1443,  1248,  1393,  1253,   278,
1484    205,  1248,     8,     9,    71,    71,   278,  1394,   329,    71,
1485    111,   112,  1396,  1398,   456,  1247,  1247,   703,   704,  1416,
1486   1247,  1418,  1439,  1013,   652,   319,    94,    95,    96,  1018,
1487     27,  1253,   366,   367,  1248,   654,  1415,   151,   151,   151,
1488   1253,  1447,    71,  1248,  1457,  1465,  1467,   343,  1473,  1252,
1489   1252,    71,  1482,  1247,  1252,   129,   130,  1504,  1483,  1491,
1490   1492,  1508,  1247,  1515,  1516,  1519,  1443,  1522,   276,  1524,
1491   1525,  1529,  1533,    57,    57,   276,  1537,   278,    57,  1538,
1492     97,    98,   126,   127,   115,   719,   720,  1252,  1253,  1540,
1493   1545,  1248,  1546,   196,   204,  1441,  1252,  1548,  1549,    71,
1494      1,   803,  1441,   670,   651,   634,     5,  1099,  1003,  1222,
1495   1247,    57,   412,   680,   684,   521,   281,     8,     9,    10,
1496     57,   684,   339,   128,  1285,  1286,  1253,  1295,  1296,  1248,
1497   1298,  1494,  1073,    27,  1074,   129,   130,    71,   118,   119,
1498   1489,   413,   628,   393,  1252,  1405,   276,  1544,  1247,   416,
1499    497,   557,   901,  1356,  1092,    22,   459,   204,   941,   468,
1500    416,  1091,   232,  1276,   459,  1151,  1170,  1005,    57,  1299,
1501     28,   299,   887,  1441,   457,   199,   200,   416,  1089,   830,
1502    449,    14,  1252,   370,   319,   684,   578,  1362,  1262,  1514,
1503    558,   559,  1523,  1511,   153,   560,   561,   562,   563,    19,
1504   1486,  1528,    33,   150,    21,  1530,    57,  1138,  1368,     0,
1505      0,  1527,     0,    24,     0,     0,     0,   319,   803,   680,
1506      0,     0,   800,   801,     0,   805,   806,   807,   808,   809,
1507    810,   811,   812,   813,   814,   815,   816,   817,   818,   819,
1508    820,   821,   822,   823,     0,     0,  1372,  1373,     0,   684,
1509      0,   684,   684,     0,     0,     0,     0,   153,   153,   153,
1510      0,     0,     0,     0,     0,   732,     0,     7,     8,   733,
1511     10,   386,    12,    13,     0,   198,   199,   200,    14,   684,
1512    126,   127,    14,     0,     0,    13,   684,     0,     0,     0,
1513   1177,  1187,  1179,    17,     0,    18,    19,    20,     0,     0,
1514     19,    21,  -492,     0,     0,    21,    22,   889,   891,     0,
1515     24,   734,     0,   642,    24,   204,   401,   404,     0,    27,
1516      0,    28,    29,   319,   581,   735,     0,   736,   239,   659,
1517      0,    27,     0,   129,   130,    31,   682,     0,     0,     0,
1518   1431,  1432,  1433,   682,     0,    32,  1208,   582,   150,     0,
1519      0,     0,   239,    33,   196,     0,   204,   583,    34,   550,
1520    551,   552,   553,   554,   555,   556,   680,   584,     0,     0,
1521    585,   586,     0,     0,  1227,  -492,     0,     0,     8,     9,
1522   1187,   239,    12,    13,     0,     0,     0,    79,    14,     0,
1523    239,     0,  1461,  1462,     0,     0,   204,   103,     0,     0,
1524      0,     0,     0,    17,     0,    18,     0,   682,   132,     0,
1525      0,    21,     0,     0,   141,   141,     0,   141,   459,    79,
1526     24,   416,  1277,   977,    79,     0,     0,  1281,     0,    27,
1527      0,   129,   130,   564,     0,     0,   239,   187,     0,    79,
1528      0,     0,   319,   319,     0,   319,     0,   220,     0,   196,
1529    600,     8,     9,     0,   103,   416,     0,  1512,     0,     0,
1530    684,     0,     0,     0,     0,   243,   103,     0,   565,   239,
1531      0,   682,     0,   682,   682,     0,     0,  1317,   523,     0,
1532      0,     0,  1039,     0,     0,     0,   289,   601,   103,    22,
1533      0,     0,   239,  1345,     0,     0,   989,   990,     9,    10,
1534      0,   682,    27,     0,   129,   130,     0,     0,   682,     0,
1535      0,   132,     0,     0,     0,     0,   132,  -277,    79,   680,
1536    684,     0,   141,     0,     0,   395,   141,     0,     0,   141,
1537    141,   141,  -277,  -277,   684,    22,   684,  -277,   684,     0,
1538      0,     0,     0,    79,     0,     0,     0,     0,    27,     0,
1539     28,    29,     0,  -277,  1154,     0,   991,     0,     0,     0,
1540    187,   187,   187,     0,   177,  -277,  -277,     0,  -277,     0,
1541   -277,  1088,  1387,  1388,   178,     0,  1401,     0,     0,     0,
1542      0,   684,    33,   239,     0,     0,     0,   179,  1397,   187,
1543      0,     0,     0,   319,   198,   199,   200,     0,     0,  -277,
1544   -277,    14,   683,  -277,   467,     0,  1111,     0,     0,   690,
1545    401,   404,   103,     0,     0,  -277,     0,     0,   684,    19,
1546      0,     0,     0,   141,    21,     0,     0,     0,     0,     7,
1547      8,     9,    10,    24,     0,    13,   684,     0,     0,     0,
1548   1427,  1428,     0,     0,   239,     0,     0,     0,   882,   548,
1549    549,   550,   551,   552,   553,   554,   555,   556,     0,  1437,
1550   1438,   103,   494,     0,     0,     0,     0,     0,    22,   523,
1551      0,     0,   523,   771,   581,     0,     0,     0,  1161,     0,
1552      0,    27,   682,    28,    29,   416,   416,     0,   401,   784,
1553      0,   587,   587,   587,     0,     0,     0,   907,     0,     0,
1554      0,     0,   523,     0,     0,   103,     0,   908,     0,   579,
1555      0,   494,   494,   595,   416,    33,   239,   584,     0,     0,
1556    909,   586,    79,     0,     0,     0,     0,   680,   680,     0,
1557      0,  1190,     0,     0,     0,     0,     0,   824,   132,   826,
1558    827,     0,   682,   239,     7,     8,     9,    10,     0,     0,
1559    319,     0,     0,     0,     0,     0,   682,     0,   682,     0,
1560    682,   874,   132,     0,     0,     0,     0,     0,   103,     0,
1561      0,   187,   103,     0,   878,     0,     0,     0,     0,     0,
1562      0,     0,   141,    22,     0,   141,     0,     0,     0,   581,
1563    141,     0,     0,     0,     0,     0,    27,     0,    28,    29,
1564      0,     0,     0,   682,     0,   684,     0,   684,     0,   684,
1565      0,     0,   907,     0,     0,     0,     0,   680,     0,   187,
1566      0,   187,   908,   187,   187,   187,   680,   680,   239,   187,
1567     33,   680,   584,     0,   187,   909,   586,   187,     0,     0,
1568    682,     0,     0,     0,   239,     0,  1283,  1284,     0,     0,
1569      0,     0,     0,    79,     0,     0,     0,     0,   682,     0,
1570      0,     0,     0,     0,     0,   416,   416,     0,   416,   416,
1571      0,   416,   680,     0,   732,     0,     7,     8,   733,    10,
1572    386,    12,    13,     0,     0,     0,     0,    14,     0,     0,
1573      0,   103,   103,   103,   103,     0,     0,     0,     0,     0,
1574      0,   684,    17,     0,    18,    19,    20,     0,     0,     0,
1575     21,  -493,     0,     0,     0,    22,     0,     0,     0,    24,
1576    734,     0,   642,     0,     0,  1338,     0,     0,    27,     0,
1577     28,    29,     0,     0,   735,     0,   736,     0,     0,     0,
1578      0,     0,   874,     0,    31,   587,   587,     0,   587,   103,
1579      0,   494,     0,     0,    32,   873,   196,   204,     0,     0,
1580    680,     0,    33,   579,     0,   494,   494,    34,   595,     0,
1581      0,     0,     0,     0,     0,   875,  1377,     0,     0,   877,
1582      0,     0,     0,     0,  -493,     0,     0,   416,   416,     0,
1583      0,     0,     0,   187,     0,     0,     0,     0,   680,     7,
1584    126,   127,    10,     0,     0,    13,     0,     0,  1053,     0,
1585      0,     0,   587,     0,   587,   587,   572,   587,   281,   373,
1586    374,    10,  1065,   573,  1066,     0,  1067,   682,     0,   682,
1587      0,   682,   187,   914,   187,   187,   220,   595,    22,   401,
1588    784,     0,     0,     0,     0,   684,     0,     0,     0,     0,
1589      0,    27,     0,    28,    29,   587,     0,    22,     0,     0,
1590      0,     0,  1429,  1430,   574,     0,     0,    31,     0,  1095,
1591     27,  1435,    28,   299,     0,   187,     0,    32,   150,   914,
1592      0,   416,   416,   416,     0,    33,   187,   187,     0,   187,
1593     34,     0,     0,     0,     0,     0,     0,     0,  1454,     0,
1594      0,     0,     0,     0,   575,     0,  1114,     0,   349,   351,
1595      0,     0,     0,     0,     0,     0,     0,   132,  1136,     0,
1596     79,     0,    79,   682,   239,     0,   239,  1000,    79,    79,
1597      0,     0,     0,   416,   416,     0,     0,   103,     0,     0,
1598      0,     0,   587,   103,     0,     7,     8,     9,    10,     0,
1599    494,   494,   494,     0,     0,     0,     0,     0,     0,     0,
1600      0,     0,   494,   239,     0,     0,     0,     0,     8,     9,
1601      0,   386,    12,    13,     0,     0,   688,     0,    14,     0,
1602      0,     0,     0,     0,    22,     0,     0,   989,   990,     9,
1603     10,     0,     0,    17,     0,    18,    19,    27,   416,    28,
1604     29,    21,     0,   176,     0,     0,     0,     0,     0,     0,
1605     24,     0,   103,   177,     0,   587,     0,   587,   680,    27,
1606      0,   129,   130,   178,     0,     0,    22,     0,   587,     0,
1607      0,    33,   873,   873,   873,   494,   179,   494,     0,    27,
1608      0,    28,    29,     0,   103,     0,     0,   991,   494,   239,
1609    103,     0,   875,   875,   875,   177,     0,     0,     0,  1082,
1610      0,     0,   689,     0,     0,   178,     0,   682,     0,     0,
1611    587,   587,   587,    33,   401,   404,   126,   127,   179,     0,
1612      0,   227,     0,     0,     0,     0,   103,     0,   103,    82,
1613    187,   187,  1108,  1223,     0,  1224,     0,  1225,     0,   105,
1614      0,     0,   401,  1264,     0,     0,     0,     0,     0,   125,
1615    133,   525,   873,     0,     0,     0,   142,   142,     0,   142,
1616    581,    82,     0,     0,     0,     0,    82,    27,     0,   129,
1617    130,   239,  1108,     0,     0,     0,     0,     0,     0,   142,
1618      0,    82,     0,   582,     0,     0,   103,     0,     0,   221,
1619      0,     0,     0,   583,     0,     0,   229,   239,     0,   103,
1620      0,     0,  1000,   584,     0,     0,   585,   586,   229,     0,
1621      0,   103,   281,   126,   127,    10,     0,     0,     0,     0,
1622      0,     0,     0,     0,  1166,     0,     0,   648,     0,  1319,
1623      0,     0,     0,     0,    79,     0,     0,     0,     7,     8,
1624      9,    10,     0,     0,   103,     0,   103,     0,     0,     0,
1625      0,    22,     0,   379,     0,   239,     0,     0,   232,     0,
1626     82,   590,   594,   597,   142,     0,    28,   299,   142,     0,
1627      0,   142,   142,   142,     0,     0,   691,    22,   494,   494,
1628      0,   494,     0,     0,   232,    82,     0,     0,     0,     0,
1629      8,     9,    28,    29,    12,    13,     0,     0,    33,     0,
1630     14,     0,   142,   142,   142,   587,   587,   587,   587,   587,
1631      0,     0,     0,   587,     0,    17,   233,    18,     0,     0,
1632      0,     0,     0,    21,    33,   187,   187,   187,   187,  1108,
1633      0,   142,    24,   187,     0,   873,   873,   873,     0,     0,
1634      0,    27,   772,   129,   130,   775,     0,     0,     0,   777,
1635    778,   780,   781,   782,     0,  1108,  1108,  1108,     7,   126,
1636    127,    10,   525,     0,   227,   142,     0,  1136,     0,     0,
1637      7,     8,     9,    10,     0,   799,   227,     0,     0,     0,
1638    829,     0,     0,     0,     0,     0,   187,     0,     0,     0,
1639      0,   141,     0,    79,     0,     0,     0,    22,     0,     0,
1640      0,     0,     0,   229,   142,     0,     0,   828,     0,    22,
1641     27,     0,    28,    29,     0,   581,     0,     0,     0,     0,
1642    587,   587,    27,   587,    28,    29,    31,   856,     0,     0,
1643      0,   401,  1264,     0,   856,     0,    32,     0,   907,     0,
1644    187,   187,     0,   187,    33,     0,     0,   229,   908,    34,
1645      0,   580,     0,   142,   142,   596,    33,     0,   584,     0,
1646    604,   909,   586,     0,    82,     7,   126,   127,    10,     0,
1647      0,    13,     0,     0,   187,   914,   187,     0,     0,     0,
1648    379,     0,   281,     8,     9,    10,     0,     0,     0,     0,
1649      0,     0,     0,   103,     0,     0,     0,     0,     0,     0,
1650      0,     0,     0,     0,    22,     0,     0,     0,     0,     0,
1651    229,     0,    75,   142,   229,   853,   855,    27,     0,    28,
1652     29,    22,     0,     0,   142,     0,     0,   142,   232,     0,
1653      0,     0,   142,   146,     0,     0,    28,   299,   648,   140,
1654    144,     0,     0,   147,    75,     0,     0,     0,     0,    75,
1655      0,    33,   281,     8,     9,    10,   148,     0,     0,     0,
1656    233,   142,     0,   142,   197,   142,   142,   142,    33,     0,
1657      0,   142,     7,     8,     9,    10,   142,     0,    13,   142,
1658      0,  1108,   912,     0,   590,   594,     0,   597,     0,     0,
1659      0,    22,     0,     0,   731,    82,   691,     0,   232,     0,
1660      0,     0,   691,     0,     0,     0,    28,   299,     0,     0,
1661      0,    22,     0,     0,     0,     0,     0,   581,     0,     0,
1662      0,     0,     0,     0,    27,   594,    28,    29,     0,     0,
1663    485,     0,     0,   229,   229,   229,   229,     0,    33,     0,
1664   1104,     0,     0,   391,  1108,  1108,  1108,   394,     0,     0,
1665   1105,   396,     0,     0,     0,     0,     0,     0,    33,     0,
1666    584,     0,   103,  1106,   586,     0,     0,   187,    75,     0,
1667      6,  1050,     7,     8,     9,    10,    11,    12,    13,     0,
1668      0,     0,     0,    14,     0,   140,   144,     0,     0,     0,
1669      0,   229,     0,   142,     0,     0,    15,    16,    17,     0,
1670     18,    19,    20,   799,     0,     0,    21,   142,   142,   691,
1671    596,    22,   594,   856,    23,    24,    25,   876,    26,     0,
1672      0,     0,     0,     0,    27,     0,    28,    29,     0,   604,
1673     30,     0,     0,     0,     0,   142,     0,     0,     0,     0,
1674     31,  1287,  1288,     9,    10,   648,     0,  1100,   483,     0,
1675     32,   856,     0,     0,     0,     0,     0,     0,    33,     0,
1676      0,     0,     0,    34,     0,     0,   125,     0,     0,    35,
1677      0,     0,     0,     0,   142,   596,   142,   142,   221,   596,
1678     22,     0,     0,     0,     0,  1068,     0,  1069,     0,     0,
1679      0,   856,     0,    27,     0,    28,    29,   731,  1075,     0,
1680      0,  1289,   853,   855,     0,  1141,     0,     0,     0,   177,
1681      0,  1147,     0,     0,     0,     0,     0,   142,   691,   178,
1682      0,   596,     0,     0,     0,     0,     0,    33,   142,   142,
1683    691,   142,   179,     0,     0,     0,     0,     0,     0,     0,
1684    853,   855,     0,     0,     0,     0,     0,   612,     7,     8,
1685      9,    10,     0,     0,    13,     0,     0,     0,     0,   133,
1686      0,     0,    82,   691,    82,   691,     0,     0,     0,  1001,
1687     82,    82,     0,     0,     0,     0,     0,     0,     0,   229,
1688      0,     0,     0,     0,     0,   229,     0,    22,     0,     0,
1689      0,     0,   142,   142,   142,     0,     0,     0,     0,     0,
1690     27,     0,    28,    29,   142,     0,     0,   663,     0,     0,
1691    664,     0,     0,     0,     0,   666,   177,     0,     0,     7,
1692      8,     9,    10,     0,     0,   482,   178,     0,   437,   439,
1693    443,     0,     0,    50,    33,     0,     0,     0,     0,   179,
1694      0,     0,     0,     0,   394,     0,   396,     0,   856,     0,
1695      0,     0,     0,     0,   229,     0,     0,     0,    22,   483,
1696     50,    50,     0,   149,   581,    50,     0,     0,     0,     0,
1697     50,    27,     0,    28,    29,     0,   856,   142,   749,   142,
1698      0,     0,     0,    50,     0,    50,   229,   907,     0,     0,
1699    142,     0,   229,     0,   876,   876,   876,   908,     0,     0,
1700      0,   604,     0,     0,     0,    33,     0,   584,   235,     0,
1701    909,   586,   541,   542,   543,   544,   545,   546,   547,   548,
1702    549,   550,   551,   552,   553,   554,   555,   556,   229,     0,
1703    229,     0,   142,   142,   596,  1068,  1069,   853,   855,     0,
1704      0,     0,     0,  1075,   544,   545,   546,   547,   548,   549,
1705    550,   551,   552,   553,   554,   555,   556,   376,     0,     0,
1706      0,   376,   376,     0,    50,   853,   855,     0,    50,     0,
1707    235,     0,    50,     0,   876,   149,   149,   149,     0,     0,
1708      0,     0,     0,     0,     0,     0,     0,     0,   229,    50,
1709      0,     0,     0,     0,     0,     0,     0,     0,     0,   731,
1710      0,   229,     0,     0,  1001,     0,    50,    50,   149,     0,
1711      0,     0,  1141,   229,     0,     0,   235,     0,     0,   126,
1712    127,     0,     0,   199,   200,     0,     0,     0,     0,    14,
1713      0,     0,     0,     0,     0,    50,    82,     0,     0,     0,
1714      0,     0,     0,     0,     0,     0,   229,     0,   229,     0,
1715   1068,  1069,    21,  1075,     0,     0,     0,     0,   913,     0,
1716      0,    24,     0,   581,     0,     0,     0,     0,     0,    50,
1717     27,     0,   129,   130,     0,     0,     0,     0,     0,     0,
1718    142,   142,     0,   142,     0,     0,   582,   701,     0,   702,
1719      0,   437,   439,   443,     0,     0,   583,     0,     0,     0,
1720      0,     0,   713,     0,   956,     0,   584,     0,     0,   592,
1721    586,   663,   664,     0,   666,   545,   546,   547,   548,   549,
1722    550,   551,   552,   553,   554,   555,   556,   142,   142,   142,
1723    142,   596,     0,     0,     0,   142,     0,     0,   522,     0,
1724      0,   731,     0,     0,     0,   749,     0,   749,     0,     0,
1725      0,     0,   999,  1006,   749,   376,     0,   876,   876,   876,
1726      0,     0,     0,   235,     0,   525,     0,     0,    50,     0,
1727      0,     0,     0,   731,     0,     0,     0,     0,     0,     0,
1728      0,   648,     0,     0,   376,     0,     0,     0,   142,     0,
1729      0,     0,     0,   142,     0,    82,     7,     8,     9,    10,
1730    386,    12,    13,     0,     0,   688,     0,    14,   376,     0,
1731      0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
1732      0,     0,    17,     0,    18,    19,     0,     0,    50,     0,
1733     21,    50,     0,     0,     0,    22,    50,     0,     0,    24,
1734      0,   581,   142,   142,     0,   142,     0,     0,    27,     0,
1735     28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
1736      0,     0,     0,     0,  1104,    50,     0,    50,     0,   149,
1737    149,   149,     0,     0,  1105,    50,   142,   596,   142,     0,
1738     50,    77,    33,    50,   584,     0,     0,  1106,   586,     0,
1739      0,   689,     0,     0,     0,   229,     0,     0,     0,    50,
1740      0,     0,     0,     0,     0,     0,     0,     0,    77,    77,
1741      0,    77,     0,    77,     0,   140,   144,     0,    77,     0,
1742      7,   126,   127,    10,     0,     0,   482,     0,     0,   522,
1743      0,    77,   522,    77,     0,     0,     0,     0,     0,     0,
1744      8,     9,     0,     0,    12,   227,     0,   522,   522,   522,
1745     14,     0,     0,     0,   701,   702,     0,   713,     0,    22,
1746      0,     0,   522,     0,     0,    17,     0,    18,     0,     0,
1747      0,     0,    27,    21,    28,    29,     0,     0,   240,     0,
1748      0,     0,    24,   876,   581,     0,     0,   999,    31,     0,
1749      0,    27,     0,   129,   130,   998,     0,     0,    32,   126,
1750    127,     0,     0,   199,   200,     0,    33,   582,   235,    14,
1751      0,    34,    77,     0,     0,     0,    77,   583,     0,   749,
1752     77,   522,     0,    77,    77,    77,     0,   584,     0,     0,
1753    585,   586,    21,     0,     0,     0,     0,    77,     0,    50,
1754      0,    24,     0,   581,     0,     0,   876,   876,   876,     0,
1755     27,   407,   129,   130,    77,    77,    77,     0,     0,     0,
1756      0,     0,     0,     0,   229,     0,   582,     0,     0,   142,
1757      0,     0,   435,     0,     0,     0,   583,     0,    50,    50,
1758     50,    50,     0,    77,     0,   451,   584,     8,     9,   585,
1759    586,    12,   227,     0,     0,     0,     0,    14,     0,     0,
1760      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1761    394,   396,    17,     0,    18,     0,     0,    77,   483,     0,
1762     21,    50,     0,     0,     0,    50,     0,     0,     0,    24,
1763      0,     0,    50,    50,     0,    50,     0,     0,    27,     0,
1764    129,   130,     0,     0,     0,     0,     0,     0,     0,   732,
1765      0,     7,     8,   733,    10,   386,    12,    13,   437,   439,
1766    443,     0,    14,     0,     0,     0,    50,     0,    50,     0,
1767      0,  1294,     0,    50,    50,    50,  1294,    17,   749,    18,
1768     19,    20,     0,     0,     0,    21,  -495,     0,     0,     0,
1769     22,     0,     0,     0,    24,   734,     0,   642,     0,     0,
1770    443,     0,   522,    27,     0,    28,    29,     0,     0,   735,
1771      0,   736,   603,     0,     0,     0,    77,     0,     0,    31,
1772      0,     0,     0,     0,     0,   663,   664,     0,   666,    32,
1773    998,     0,     0,     0,     0,     0,     0,    33,     7,     8,
1774      9,    10,    34,     0,   227,   543,   544,   545,   546,   547,
1775    548,   549,   550,   551,   552,   553,   554,   555,   556,  -495,
1776   1357,     0,     0,     0,     0,    77,     0,     0,     0,     0,
1777      0,     0,     0,     0,     0,     0,    77,    22,     0,    77,
1778      0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
1779     27,     0,    28,    29,     0,     0,     0,     0,   522,   522,
1780    522,     0,     0,     0,   235,     0,   177,     0,     0,     0,
1781      0,     0,     0,    77,     0,    77,   178,    77,    77,    77,
1782      0,     0,     0,    77,    33,     0,     0,     0,    77,   179,
1783      0,    77,   154,     0,     0,     0,    50,    50,   149,     0,
1784      0,   706,     0,   235,     0,     0,   712,    77,     0,     0,
1785      0,     0,   188,   701,   702,   437,   439,   443,     0,     0,
1786      0,   713,     0,     0,     7,     8,     9,    10,   198,   199,
1787    200,   753,     0,     0,     0,    14,     0,   759,  1135,     0,
1788      0,     0,     0,   437,   439,   443,     0,     0,     0,   767,
1789    768,     0,   769,    19,     0,     0,     0,     0,    21,     0,
1790      0,     0,     0,    22,     0,     0,     0,    24,    50,   581,
1791   1287,   126,   127,    10,  1293,     0,    27,     0,    28,    29,
1792      0,     0,     0,     0,     0,     0,     0,     0,     0,   235,
1793      0,     0,   907,     0,     0,     0,     0,     0,     0,     0,
1794     50,     0,   908,     0,   154,   154,   154,     0,     0,    22,
1795     33,     0,   584,     0,     0,   909,   586,   603,     0,     0,
1796      0,     0,    27,     0,    28,    29,     0,     0,   701,   702,
1797   1289,   713,     0,     0,     0,   188,   188,   444,    31,     0,
1798      0,     0,     0,     0,     0,   864,   865,    77,    32,     0,
1799    864,     0,     0,     0,     0,     0,    33,     0,     0,     0,
1800      0,    34,     0,     0,   188,     0,     0,     0,     0,     0,
1801      0,   235,     0,     0,     0,     0,     7,     8,     9,    10,
1802      0,     0,    13,     0,     0,     0,    77,    77,    77,    77,
1803      0,    50,    50,   149,   149,   149,     0,   235,     0,    50,
1804      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1805      0,     7,     8,     9,    10,    22,     0,   482,     0,     0,
1806      0,  1135,  1135,  1135,     0,     0,     0,     0,    27,    77,
1807     28,    29,     0,    77,     0,     0,     0,   495,     0,     0,
1808     77,    77,     0,    77,   440,     0,     0,     0,     0,     0,
1809     22,     0,    50,     0,   441,     0,     0,    50,     0,    50,
1810      0,     0,    33,    27,     0,    28,    29,   442,     0,   443,
1811      0,     0,   126,   127,    77,     0,    77,   482,     0,   177,
1812      0,    77,    77,    77,     0,     0,   589,   589,   589,   178,
1813      0,     0,     0,     0,     0,     0,   186,    33,     7,     8,
1814      9,    10,   179,     0,     0,     0,    50,    50,     0,    50,
1815      0,     0,     0,     0,     0,     0,   581,     0,  1020,     0,
1816   1022,   238,     0,    27,   242,   129,   130,     0,     0,     0,
1817      0,     0,   437,   439,   443,     0,     0,    22,     0,   582,
1818     50,    50,    50,     0,     0,   238,   188,   345,     0,   583,
1819     27,     0,    28,    29,     0,     0,  1352,     0,     0,   584,
1820      0,     0,   585,   586,     0,     0,   177,     0,     0,     0,
1821      0,     0,     0,     0,     0,     0,   178,     0,     0,     0,
1822      0,     0,     0,     0,    33,     0,     0,     0,     0,   179,
1823      0,     0,  1055,  1056,   188,  1058,   188,     0,   444,   444,
1824    444,     0,     0,     0,   188,     0,     0,     0,     0,   188,
1825      0,     0,   188,   603,     0,     0,     0,     0,     0,   186,
1826    186,   186,     0,  1076,     0,     0,     0,     0,     0,   450,
1827      8,     9,     0,   386,    12,    13,     0,     0,   688,     0,
1828     14,     0,     0,     0,    77,    77,    77,  1135,   186,     0,
1829      0,     7,   126,   127,    10,    17,     0,    18,    19,     0,
1830      0,     0,     0,    21,     0,     0,     0,     0,  1110,     0,
1831      0,   242,    24,     0,   581,     0,     0,     0,     0,     0,
1832      0,    27,     0,   129,   130,   238,  1137,     0,     0,     0,
1833     22,     0,     0,     0,     0,     0,     0,   582,     0,     0,
1834      0,     0,     0,    27,     0,    28,    29,   583,     0,     0,
1835   1135,  1135,  1135,     0,     0,     0,    77,   584,     0,   146,
1836    585,   586,     0,     0,   689,     0,   838,     0,     0,   147,
1837      0,     0,  1152,    50,     0,     0,     0,    33,     0,     0,
1838    589,   589,   148,   589,  1157,     0,     0,     0,    77,     0,
1839    589,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1840      8,     9,     0,   386,    12,    13,     0,     0,   188,     0,
1841     14,     0,     0,     0,     0,     0,   238,   242,     0,     0,
1842      0,     7,     8,     9,    10,    17,     0,    18,    19,     0,
1843      0,     0,     0,    21,     0,     0,     0,     0,     0,     0,
1844      0,     0,   641,     0,     0,   642,     0,   911,     0,   911,
1845    911,    27,   589,   129,   130,     0,     0,     0,     0,     0,
1846     22,     0,     0,     0,     0,     0,     0,     0,  1207,     0,
1847    186,     0,     0,    27,     0,    28,    29,     0,     0,    77,
1848     77,    77,    77,    77,     0,     0,     0,    77,     0,   440,
1849    911,     0,     0,     0,     0,     0,     0,     0,     0,   441,
1850      0,   188,   188,     0,   188,     0,  1220,    33,     0,  1137,
1851   1137,  1137,   442,     0,     0,     0,     0,     0,   186,     0,
1852    186,     0,   186,   186,   186,     0,     0,     0,   186,     0,
1853      0,     0,     0,   186,     0,     0,   186,     0,     0,     0,
1854     77,     0,   188,     0,     0,    77,     0,    77,     0,     0,
1855      0,     0,     0,     0,     0,   732,     0,     7,     8,   733,
1856     10,   386,    12,    13,     0,   495,   495,   495,    14,  1302,
1857      0,     0,     0,  1303,     0,     0,     0,   589,     0,     0,
1858      0,     0,     0,    17,     0,    18,    19,    20,     0,     0,
1859      0,    21,  -494,     0,    77,    77,    22,    77,     0,     0,
1860     24,   734,     0,   642,     0,     0,  1318,     0,     0,    27,
1861      0,    28,    29,     0,     0,   735,     0,   736,     7,     8,
1862      9,    10,     0,     0,     0,    31,     0,     0,    77,    77,
1863     77,     0,     0,     0,     0,    32,     0,     0,     0,     0,
1864      0,     0,     0,    33,     0,     0,     0,     0,    34,     0,
1865    589,     0,   589,     0,     0,     0,     0,    22,     0,     0,
1866      0,     0,     0,   589,     0,  -494,     0,   589,   589,   589,
1867     27,     0,    28,    29,     0,  1370,     0,   238,   242,  1371,
1868      0,     0,     0,     0,     0,     0,   177,     0,     0,     0,
1869      8,     9,   186,   386,    12,    13,   178,     0,  1470,     0,
1870     14,  1389,  1390,     0,    33,   911,   911,  1109,     0,   179,
1871      0,     0,     0,     0,     0,    17,     0,    18,    19,     0,
1872      0,     0,     0,    21,     0,     0,     0,     0,     0,     0,
1873      0,   186,    24,   186,   186,  1137,     0,     0,     0,     0,
1874      0,    27,     0,   129,   130,     0,     0,  1109,     0,     0,
1875      7,     8,     9,    10,   198,   199,   200,     0,   101,     0,
1876      0,    14,     0,     0,     0,     0,     0,     0,   120,   101,
1877      0,     0,     0,     0,   186,   101,   101,   188,   101,    19,
1878      0,     0,     0,     0,    21,   186,   186,     0,   186,    22,
1879      0,     0,     0,    24,     0,   581,     0,     0,  1137,  1137,
1880   1137,     0,    27,     0,    28,    29,     8,     9,   219,   189,
1881     12,   190,     0,   242,     0,     0,    14,     0,   907,     0,
1882      0,    77,     0,     0,     0,     0,   186,     0,   908,     0,
1883      0,    17,     0,    18,    19,     0,    33,     0,   584,    21,
1884      0,   949,   586,     0,     0,     0,     0,     0,    24,     0,
1885      0,     0,     0,   838,   838,     0,   838,    27,     0,   129,
1886    130,     0,     0,     0,     0,     0,     0,   369,     0,   120,
1887      0,     0,   101,     0,     0,     0,   101,   101,     0,     0,
1888      0,     0,     0,   101,     0,   101,   101,   101,     0,     0,
1889    101,   101,   101,     0,     0,     0,     0,     0,     0,     0,
1890    911,   911,  1109,  1109,  1109,     0,     0,     0,   911,   539,
1891    540,   541,   542,   543,   544,   545,   546,   547,   548,   549,
1892    550,   551,   552,   553,   554,   555,   556,     0,     0,     0,
1893   1109,  1109,  1109,     0,     0,     0,     0,     0,     0,     0,
1894      0,     0,     0,     0,     0,     0,     0,   732,     0,     7,
1895      8,   733,    10,   386,    12,    13,     0,   238,   242,   238,
1896     14,   188,     0,     0,   465,   101,     0,     0,     0,     0,
1897      0,     0,     0,     0,     0,    17,     0,    18,    19,    20,
1898      0,     0,     0,    21,   101,     0,     0,     0,    22,   186,
1899    186,  1107,    24,   734,     0,   642,   238,     0,     0,     0,
1900      0,    27,     0,    28,    29,     0,     0,   735,     0,   736,
1901      0,     0,     0,     0,     0,   911,   911,    31,   911,     0,
1902      0,     0,     0,   101,     0,     0,     0,    32,     0,     0,
1903      0,  1107,     0,     0,     0,    33,     0,     0,     0,   244,
1904     34,     0,     8,     9,     0,     0,    12,    13,     0,   188,
1905      0,   188,    14,     0,     0,     0,     0,     0,     0,     0,
1906      0,   186,     0,     0,     0,     0,     0,    17,     0,    18,
1907    101,     0,   101,   101,     0,    21,     0,   245,   246,     0,
1908      0,     0,   450,     0,    24,     0,   247,     0,     0,     0,
1909      0,     0,     0,    27,     0,   129,   130,     0,   248,   101,
1910      0,     0,   249,   250,   251,   252,   253,   254,   255,   256,
1911    257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1912    267,   268,   269,   101,     0,   270,   271,   272,     0,     0,
1913    273,     0,     0,   274,     0,     0,     0,     0,     0,   101,
1914      0,     0,     0,   101,     0,     0,   101,     0,     0,     0,
1915    275,   101,     0,     0,     0,     0,   444,     0,     0,     0,
1916      0,     0,     0,     0,   238,   540,   541,   542,   543,   544,
1917    545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1918    555,   556,     0,     0,   186,   186,   186,   186,  1107,     0,
1919   1219,     0,   186,   542,   543,   544,   545,   546,   547,   548,
1920    549,   550,   551,   552,   553,   554,   555,   556,     0,     0,
1921      0,   101,     0,   724,  1107,  1107,  1107,     0,     0,   444,
1922    444,   444,     0,     0,     0,     0,     0,     0,     7,     8,
1923      9,    10,   386,    12,    13,     0,     0,   955,   101,    14,
1924      0,     0,   188,     0,     0,   186,     0,     0,     0,     0,
1925      0,     0,     0,     0,    17,     0,    18,    19,     0,     0,
1926      0,     0,    21,     0,     0,     0,     0,    22,     0,     0,
1927      0,    24,     0,     0,     0,     0,     0,     0,     0,     0,
1928     27,     0,    28,    29,  1383,     0,  -449,  -449,  -449,  -449,
1929   -449,  -449,  -449,     0,     0,  -449,    31,  -449,     0,   186,
1930    186,     0,   186,     0,     0,     0,    32,     0,  -449,     0,
1931   -449,  -449,   101,     0,    33,  -449,     0,     0,     0,    34,
1932   -449,     0,     0,   101,   101,  -449,   101,   101,     0,  -449,
1933      0,  -449,     0,   186,     0,   186,     0,     0,  -449,     0,
1934   -449,  -449,  -449,  -449,  -449,     0,  -449,  -449,  -449,  -449,
1935   -449,  -449,  -449,  -449,  -449,  -449,  -449,  -449,  -449,  -449,
1936   -449,  -449,  -449,  -449,  -449,  -449,  -449,  -449,  -449,     0,
1937   -449,  -449,  -449,     0,  -449,  -449,  -449,  -449,  -449,  -449,
1938      0,  -449,  -449,     0,     0,   120,     0,  1384,     0,     0,
1939      0,     0,  -449,  -449,  -449,     0,  -449,   219,     0,     0,
1940    161,     0,     7,     8,     9,    10,    11,    12,    13,     0,
1941      8,     9,     0,    14,    12,    13,   724,     0,     0,     0,
1942     14,     0,     0,     0,     0,     0,    15,    16,    17,     0,
1943     18,    19,    20,     0,     0,    17,    21,    18,     0,     0,
1944   1107,    22,     0,    21,    23,    24,    25,     0,    26,     0,
1945      0,     0,    24,     0,    27,     0,    28,    29,     0,     0,
1946     30,    27,     0,   129,   130,     0,     0,     0,     0,     0,
1947     31,     0,     0,     0,     0,   724,     0,     0,   101,     0,
1948     32,     0,     0,     0,     0,     0,     0,     0,    33,     0,
1949      0,     0,     0,    34,     0,     0,     0,     0,     0,    35,
1950      0,     0,     0,  1107,  1107,  1107,     0,     0,     0,     0,
1951      0,   101,   101,   101,     0,     0,     0,     0,     0,     0,
1952      0,     0,     0,   101,     0,  1360,   186,  1230,  1231,  1232,
1953     10,   386,    12,   282,   283,   284,     0,   285,    14,  1233,
1954      0,  1234,  1235,  1236,  1237,  1238,  1239,  1240,  1241,  1242,
1955   1243,    15,    16,    17,   286,    18,    19,    20,     0,   287,
1956    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
1957     24,     0,     0,     0,   294,   295,   296,   297,   298,    27,
1958      0,  1244,   299,   675,     0,  1245,   300,     0,     0,     0,
1959      0,     0,   301,     0,     0,   302,   101,     0,   101,     0,
1960      0,     0,     0,   303,   304,   305,     0,     0,     0,   101,
1961      0,   306,   307,   308,     0,     0,     0,     0,   309,     0,
1962   1246,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1963      0,     0,     0,     0,     0,  1361,   310,  1229,     0,  1230,
1964   1231,  1232,    10,   386,    12,   282,   283,   284,     0,   285,
1965     14,  1233,     0,  1234,  1235,  1236,  1237,  1238,  1239,  1240,
1966   1241,  1242,  1243,    15,    16,    17,   286,    18,    19,    20,
1967      0,   287,   288,    21,     0,   289,   290,   291,    22,   292,
1968    293,     0,    24,     0,     0,     0,   294,   295,   296,   297,
1969    298,    27,     0,  1244,   299,   675,     0,  1245,   300,     0,
1970      0,     0,     0,     0,   301,     0,     0,   302,     0,     0,
1971      0,     0,     0,     0,     0,   303,   304,   305,   724,     0,
1972      0,     0,     0,   306,   307,   308,     0,     0,     0,     0,
1973    309,   517,  1246,   281,     8,     9,    10,   386,    12,   282,
1974    283,   284,   688,   285,    14,   101,     0,     0,   310,     0,
1975      0,     0,     0,     0,     0,     0,     0,     0,     0,    17,
1976    286,    18,    19,    20,     0,   287,   288,    21,     0,   289,
1977    290,   291,    22,   292,   293,     0,    24,     0,   581,     0,
1978    294,   295,   296,   297,   298,    27,     0,    28,   299,  -285,
1979      0,     0,   300,     0,     0,     0,     0,     0,   301,   101,
1980    101,   869,   101,     0,     0,     0,     0,     0,     0,   303,
1981    304,   870,     0,     0,     0,     0,     0,   306,   307,   308,
1982      0,   584,     0,     0,   871,   586,     0,   517,   689,     7,
1983      8,     9,    10,   386,    12,   282,   283,   284,   688,   285,
1984     14,     0,   310,     0,     0,     0,     0,     0,     0,     0,
1985      0,     0,     0,     0,     0,    17,   286,    18,    19,    20,
1986    724,   287,   288,    21,     0,   289,   290,   291,    22,   292,
1987    293,     0,    24,     0,   581,     0,   294,   295,   296,   297,
1988    298,    27,     0,    28,    29,  -285,     0,     0,   300,     0,
1989      0,     0,   724,     0,   301,     0,     0,  1132,     0,     0,
1990      0,     0,     0,     0,     0,   303,   304,  1133,     0,     0,
1991    101,     0,   101,   306,   307,   308,     0,   584,     0,     0,
1992   1134,   586,     0,   687,   689,   281,     8,     9,    10,   386,
1993     12,   282,   283,   284,   688,   285,    14,     0,   310,     0,
1994      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1995      0,    17,   286,    18,    19,    20,     0,   287,   288,    21,
1996      0,   289,   290,   291,    22,   292,   293,     0,    24,     0,
1997      0,     0,   294,   295,   296,   297,   298,    27,     0,    28,
1998    299,     0,     0,     0,   300,     0,     0,     0,     0,     0,
1999    301,     0,     0,   302,     0,     0,     0,     0,     0,     0,
2000      0,   303,   304,   305,     0,     0,     0,     0,     0,   306,
2001    307,   308,     0,     0,     0,     0,   309,     0,     0,     0,
2002    689,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2003      0,     0,  -759,   802,   310,   281,     8,     9,    10,   386,
2004     12,   282,   283,   284,     0,   285,    14,     0,     0,     0,
2005      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2006      0,    17,   286,    18,    19,    20,     0,   287,   288,    21,
2007      0,   289,   290,   291,    22,   292,   293,     0,    24,     0,
2008      0,     0,   294,   295,   296,   297,   298,    27,     0,    28,
2009    299,  1449,     0,  -749,   300,     0,     0,     0,     0,     0,
2010    301,     0,     0,   302,     0,     0,     0,     0,     0,     0,
2011      0,   303,   304,   305,     0,     0,     0,     0,     0,   306,
2012    307,   308,     0,     0,     0,   678,   309,   790,   791,   792,
2013     10,     0,    12,   499,   283,   284,     0,   285,    14,     0,
2014      0,     0,     0,     0,   310,     0,     0,     0,     0,     0,
2015      0,     0,     0,    17,   286,    18,     0,    20,     0,   287,
2016    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
2017     24,     0,     0,     0,   294,   295,   296,   297,   298,    27,
2018      0,   793,   794,   679,     0,     0,   300,     0,     0,     0,
2019      0,     0,   301,     0,     0,   302,     0,     0,     0,     0,
2020      0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
2021      0,   306,   307,   308,     0,     0,     0,     0,   309,   795,
2022    678,     0,   790,   791,   792,    10,     0,    12,   499,   283,
2023    284,     0,   285,    14,     0,   940,   310,     0,     0,     0,
2024      0,     0,     0,     0,     0,     0,     0,     0,    17,   286,
2025     18,     0,    20,     0,   287,   288,    21,     0,   289,   290,
2026    291,    22,   292,   293,     0,    24,     0,     0,     0,   294,
2027    295,   296,   297,   298,    27,     0,   793,   794,   679,     0,
2028      0,   300,     0,     0,     0,     0,     0,   301,     0,     0,
2029    302,     0,     0,     0,     0,     0,     0,     0,   303,   304,
2030    305,     0,     0,     0,     0,     0,   306,   307,   308,     0,
2031      0,     0,     0,   309,   795,   678,     0,   790,   791,   792,
2032     10,     0,    12,   499,   283,   284,     0,   285,    14,     0,
2033      0,   310,     0,     0,     0,     0,     0,     0,     0,     0,
2034      0,     0,     0,    17,   286,    18,     0,    20,     0,   287,
2035    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
2036     24,     0,     0,     0,   294,   295,   296,   297,   298,    27,
2037      0,   793,   794,   679,     0,     0,   300,     0,     0,     0,
2038      0,     0,   301,     0,     0,   302,     0,     0,     0,     0,
2039      0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
2040      0,   306,   307,   308,     0,     0,     0,   678,   309,   790,
2041    791,   792,    10,     0,    12,   499,   283,   284,     0,   285,
2042     14,     0,     0,     0,     0,  -453,   310,     0,     0,     0,
2043      0,     0,     0,     0,     0,    17,   286,    18,     0,    20,
2044      0,   287,   288,    21,     0,   289,   290,   291,    22,   292,
2045    293,     0,    24,     0,     0,     0,   294,   295,   296,   297,
2046    298,    27,     0,   793,   794,   679,     0,     0,   300,     0,
2047      0,     0,     0,     0,   301,     0,     0,   302,     0,     0,
2048      0,     0,     0,     0,     0,   303,   304,   305,     0,     0,
2049      0,     0,     0,   306,   307,   308,     0,     0,     0,   678,
2050    309,   281,     8,     9,    10,     0,    12,   499,   283,   284,
2051      0,   285,    14,     0,     0,     0,     0,  1263,   310,     0,
2052      0,     0,     0,     0,     0,     0,     0,    17,   286,    18,
2053      0,    20,     0,   287,   288,    21,     0,   289,   290,   291,
2054     22,   292,   293,     0,    24,     0,     0,     0,   294,   295,
2055    296,   297,   298,    27,     0,    28,   299,   679,     0,     0,
2056    300,     0,     0,     0,     0,     0,   301,     0,     0,   302,
2057      0,     0,     0,     0,     0,     0,     0,   303,   304,   305,
2058      0,     0,     0,     0,     0,   306,   307,   308,     0,     0,
2059      0,     0,   309,     0,     0,   517,     0,   281,     8,     9,
2060     10,  1267,    12,   282,   283,   284,     0,   285,    14,     0,
2061    310,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2062      0,     0,     0,    17,   286,    18,     0,    20,     0,   287,
2063    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
2064     24,     0,     0,     0,   294,   295,   296,   297,   298,    27,
2065      0,    28,   299,  -285,     0,     0,   300,     0,     0,     0,
2066      0,     0,   301,     0,     0,   518,     0,     0,     0,     0,
2067      0,     0,     0,   303,   304,   519,     0,     0,     0,     0,
2068      0,   306,   307,   308,     0,     0,     0,   678,   520,   281,
2069      8,     9,    10,     0,    12,   499,   283,   284,     0,   285,
2070     14,     0,     0,     0,     0,     0,   310,     0,     0,     0,
2071      0,     0,     0,     0,     0,    17,   286,    18,     0,    20,
2072      0,   287,   288,    21,     0,   289,   290,   291,    22,   292,
2073    293,     0,    24,     0,     0,     0,   294,   295,   296,   297,
2074    298,    27,     0,    28,   299,   679,     0,     0,   300,     0,
2075      0,     0,     0,     0,   301,     0,     0,   302,     0,     0,
2076      0,     0,     0,     0,     0,   303,   304,   305,     0,     0,
2077      0,     0,     0,   306,   307,   308,     0,     0,     0,   802,
2078    309,   281,     8,     9,    10,     0,    12,   499,   283,   284,
2079      0,   285,    14,     0,     0,     0,     0,     0,   310,     0,
2080      0,     0,     0,     0,     0,     0,     0,    17,   286,    18,
2081      0,    20,     0,   287,   288,    21,     0,   289,   290,   291,
2082     22,   292,   293,     0,    24,     0,     0,     0,   294,   295,
2083    296,   297,   298,    27,     0,    28,   299,     0,     0,     0,
2084    300,  -749,     0,     0,     0,     0,   301,     0,     0,   302,
2085      0,     0,     0,     0,     0,     0,     0,   303,   304,   305,
2086      0,     0,     0,     0,     0,   306,   307,   308,     0,     0,
2087      0,   517,   309,     7,     8,     9,    10,     0,    12,   282,
2088    283,   284,     0,   285,    14,     0,     0,     0,     0,     0,
2089    310,     0,     0,     0,     0,     0,     0,     0,     0,    17,
2090    286,    18,     0,    20,     0,   287,   288,    21,     0,   289,
2091    290,   291,    22,   292,   293,     0,    24,     0,     0,     0,
2092    294,   295,   296,   297,   298,    27,     0,    28,    29,  -285,
2093      0,     0,   300,     0,     0,     0,     0,     0,   301,     0,
2094      0,  1421,     0,     0,     0,     0,     0,     0,     0,   303,
2095    304,  1422,     0,     0,     0,     0,     0,   306,   307,   308,
2096      0,     0,     0,  1499,  1423,   281,     8,     9,    10,     0,
2097     12,   282,   283,   284,     0,   285,    14,     0,     0,     0,
2098      0,     0,   310,     0,     0,     0,     0,     0,     0,     0,
2099      0,    17,   286,    18,     0,    20,     0,   287,   288,    21,
2100      0,   289,   290,   291,    22,   292,   293,     0,    24,     0,
2101      0,     0,   294,   295,   296,   297,   298,    27,     0,    28,
2102    299,     0,     0,  -174,   300,     0,     0,     0,     0,     0,
2103    301,     0,     0,   302,     0,     0,     0,     0,     0,     0,
2104      0,   303,   304,   305,     0,     0,     0,     0,     0,   306,
2105    307,   308,     0,     0,     0,   802,   309,   281,     8,     9,
2106     10,     0,    12,   499,   283,   284,     0,   285,    14,     0,
2107      0,     0,     0,     0,   310,     0,     0,     0,     0,     0,
2108      0,     0,     0,    17,   286,    18,     0,    20,     0,   287,
2109    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
2110     24,     0,     0,     0,   294,   295,   296,   297,   298,    27,
2111      0,    28,   299,     0,     0,     0,   300,     0,     0,     0,
2112      0,     0,   301,     0,     0,   302,     0,     0,     0,     0,
2113      0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
2114      0,   306,   307,   308,     0,     0,     0,   888,   309,   281,
2115      8,     9,    10,     0,    12,   499,   283,   284,     0,   285,
2116     14,     0,     0,     0,  -749,     0,   310,     0,     0,     0,
2117      0,     0,     0,     0,     0,    17,   286,    18,     0,    20,
2118      0,   287,   288,    21,     0,   289,   290,   291,    22,   292,
2119    293,     0,    24,     0,     0,     0,   294,   295,   296,   297,
2120    298,    27,     0,    28,   299,     0,     0,     0,   300,     0,
2121      0,     0,     0,     0,   301,     0,     0,   302,     0,     0,
2122      0,     0,     0,     0,     0,   303,   304,   305,     0,     0,
2123      0,     0,     0,   306,   307,   308,     0,     0,     0,   890,
2124    309,   281,     8,     9,    10,     0,    12,   499,   283,   284,
2125      0,   285,    14,     0,     0,     0,     0,     0,   310,     0,
2126      0,     0,     0,     0,     0,     0,     0,    17,   286,    18,
2127      0,    20,     0,   287,   288,    21,     0,   289,   290,   291,
2128     22,   292,   293,     0,    24,     0,     0,     0,   294,   295,
2129    296,   297,   298,    27,     0,    28,   299,     0,     0,     0,
2130    300,     0,     0,     0,     0,     0,   301,     0,     0,   302,
2131      0,     0,     0,     0,     0,     0,     0,   303,   304,   305,
2132      0,     0,     0,     0,     0,   306,   307,   308,     0,     0,
2133      0,  1434,   309,   281,     8,     9,    10,     0,    12,   499,
2134    283,   284,     0,   285,    14,     0,     0,     0,     0,     0,
2135    310,     0,     0,     0,     0,     0,     0,     0,     0,    17,
2136    286,    18,     0,    20,     0,   287,   288,    21,     0,   289,
2137    290,   291,    22,   292,   293,     0,    24,     0,     0,     0,
2138    294,   295,   296,   297,   298,    27,     0,    28,   299,     0,
2139      0,     0,   300,     0,     0,     0,     0,     0,   301,     0,
2140      0,   302,     0,     0,     0,     0,     0,     0,     0,   303,
2141    304,   305,     0,     0,     0,     0,     0,   306,   307,   308,
2142    281,     8,     9,    10,   309,    12,   499,   283,   284,     0,
2143    285,    14,     0,     0,     0,     0,     0,     0,     0,     0,
2144      0,     0,   310,     0,     0,     0,    17,   286,    18,     0,
2145     20,     0,   287,   288,    21,     0,   289,   290,   291,    22,
2146    292,   293,     0,    24,     0,     0,     0,   294,   295,   296,
2147    297,   298,    27,     0,    28,   299,     0,     0,     0,   300,
2148      0,     0,     0,     0,     0,   301,     0,     0,   302,     0,
2149      0,     0,     0,     0,     0,     0,   303,   304,   305,     0,
2150      0,     0,     0,     0,   306,   307,   308,     0,     0,     0,
2151      0,   309,     0,     0,     0,     0,     0,     0,     0,     0,
2152      0,     0,     0,     0,     0,     0,     0,     0,     0,   310,
2153    841,  1230,  1231,  1232,    10,   386,    12,   282,   283,   284,
2154      0,   285,    14,  1233,     0,  1234,  1235,  1236,  1237,  1238,
2155   1239,  1240,  1241,  1242,  1243,    15,    16,    17,   286,    18,
2156     19,    20,     0,   287,   288,    21,     0,   289,   290,   291,
2157     22,   292,   293,     0,    24,     0,     0,     0,   294,   295,
2158    296,   297,   298,    27,     0,  1244,   299,   675,     0,  1245,
2159    300,     0,     0,     0,     0,     0,   301,     0,     0,   302,
2160      0,     0,     0,     0,     0,     0,     0,   303,   304,   305,
2161      0,     0,     0,     0,     0,   306,   307,   308,     0,     0,
2162      0,     0,   309,     0,  1246,     0,     0,     0,     0,     0,
2163      0,     0,     0,     0,     0,     0,     0,     0,     0,  1365,
2164    310,  1230,  1231,  1232,    10,   386,    12,   282,   283,   284,
2165      0,   285,    14,  1233,     0,  1234,  1235,  1236,  1237,  1238,
2166   1239,  1240,  1241,  1242,  1243,    15,    16,    17,   286,    18,
2167     19,    20,     0,   287,   288,    21,     0,   289,   290,   291,
2168     22,   292,   293,     0,    24,     0,     0,     0,   294,   295,
2169    296,   297,   298,    27,     0,  1244,   299,   675,     0,  1245,
2170    300,     0,     0,     0,     0,     0,   301,     0,     0,   302,
2171      0,     0,     0,     0,     0,     0,     0,   303,   304,   305,
2172      0,     0,     0,     0,     0,   306,   307,   308,     0,     0,
2173      0,     0,   309,     0,  1246,     0,     0,  1230,  1231,  1232,
2174     10,   386,    12,   282,   283,   284,     0,   285,    14,  1233,
2175    310,  1234,  1235,  1236,  1237,  1238,  1239,  1240,  1241,  1242,
2176   1243,    15,    16,    17,   286,    18,    19,    20,     0,   287,
2177    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
2178     24,     0,     0,     0,   294,   295,   296,   297,   298,    27,
2179      0,  1244,   299,  1476,     0,  1245,   300,     0,     0,     0,
2180      0,     0,   301,     0,     0,   302,     0,     0,     0,     0,
2181      0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
2182      0,   306,   307,   308,     0,     0,     0,     0,   309,     0,
2183   1246,     0,     0,  1230,  1231,  1232,    10,   386,    12,   282,
2184    283,   284,     0,   285,    14,  1233,   310,  1234,  1235,  1236,
2185   1237,  1238,  1239,  1240,  1241,  1242,  1243,    15,    16,    17,
2186    286,    18,    19,    20,     0,   287,   288,    21,     0,   289,
2187    290,   291,    22,   292,   293,     0,    24,     0,     0,     0,
2188    294,   295,   296,   297,   298,    27,     0,  1244,   299,     0,
2189      0,  1245,   300,     0,     0,     0,     0,     0,   301,     0,
2190      0,   302,     0,     0,     0,     0,     0,     0,     0,   303,
2191    304,   305,     0,     0,     0,     0,     0,   306,   307,   308,
2192      0,     0,     0,     0,   309,     0,  1246,   281,     8,     9,
2193     10,   386,    12,   282,   283,   284,   688,   285,    14,     0,
2194      0,     0,   310,     0,     0,     0,     0,     0,     0,     0,
2195      0,     0,     0,    17,   286,    18,    19,    20,     0,   287,
2196    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
2197     24,     0,   581,     0,   294,   295,   296,   297,   298,    27,
2198      0,    28,   299,     0,     0,     0,   300,     0,     0,     0,
2199      0,     0,   301,     0,     0,   869,     0,     0,     0,     0,
2200      0,     0,     0,   303,   304,   870,     0,     0,     0,     0,
2201      0,   306,   307,   308,     0,   584,     0,     0,   871,   586,
2202      0,     0,   689,     7,     8,     9,    10,   386,    12,   282,
2203    283,   284,   688,   285,    14,     0,   310,     0,     0,     0,
2204      0,     0,     0,     0,     0,     0,     0,     0,     0,    17,
2205    286,    18,    19,    20,     0,   287,   288,    21,     0,   289,
2206    290,   291,    22,   292,   293,     0,    24,     0,   581,     0,
2207    294,   295,   296,   297,   298,    27,     0,    28,    29,     0,
2208      0,     0,   300,     0,     0,     0,     0,     0,   301,     0,
2209      0,  1132,     0,     0,     0,     0,     0,     0,     0,   303,
2210    304,  1133,     0,     0,     0,     0,     0,   306,   307,   308,
2211      0,   584,     0,     0,  1134,   586,     0,     0,   689,   281,
2212      8,     9,    10,     0,    12,   282,   283,   284,     0,   285,
2213     14,     0,   310,     0,     0,     0,     0,     0,     0,     0,
2214      0,     0,     0,     0,     0,    17,   286,    18,     0,    20,
2215      0,   287,   288,    21,     0,   289,   290,   291,    22,   292,
2216    293,     0,    24,     0,   581,     0,   294,   295,   296,   297,
2217    298,    27,     0,    28,   299,     0,     0,     0,     0,     0,
2218      0,     0,     0,     0,   301,     0,     0,   869,     0,     0,
2219      0,     0,     0,     0,     0,   303,   304,   870,     0,     0,
2220      0,     0,     0,   306,   307,   308,     0,   584,     0,     0,
2221    871,   586,     7,     8,     9,    10,     0,    12,   282,   283,
2222    284,     0,   285,    14,     0,     0,     0,     0,   310,     0,
2223      0,     0,     0,     0,     0,     0,     0,     0,    17,   286,
2224     18,     0,    20,     0,   287,   288,    21,     0,   289,   290,
2225    291,    22,   292,   293,     0,    24,     0,   581,     0,   294,
2226    295,   296,   297,   298,    27,     0,    28,    29,     0,     0,
2227      0,     0,     0,     0,     0,     0,     0,   301,     0,     0,
2228   1132,     0,     0,     0,     0,     0,     0,     0,   303,   304,
2229   1133,     0,     0,     0,     0,     0,   306,   307,   308,     0,
2230    584,     0,     0,  1134,   586,   281,     8,     9,    10,     0,
2231     12,   499,   283,   284,     0,   285,    14,     0,     0,     0,
2232      0,   310,     0,     0,     0,     0,     0,     0,     0,     0,
2233      0,    17,   286,    18,     0,    20,     0,   287,   288,    21,
2234      0,   289,   290,   291,    22,   292,   293,     0,    24,     0,
2235      0,     0,   294,   295,   296,   297,   298,    27,     0,    28,
2236    299,     0,     0,  1342,   300,     0,     0,     0,     0,     0,
2237    301,     0,     0,   302,     0,     0,     0,     0,     0,     0,
2238      0,   303,   304,   305,     0,     0,     0,     0,     0,   306,
2239    307,   308,     0,     0,     0,     0,   309,   281,     8,     9,
2240     10,   386,    12,   282,   283,   284,     0,   285,    14,     0,
2241      0,     0,     0,     0,   310,     0,     0,     0,     0,     0,
2242      0,     0,     0,    17,   286,    18,    19,    20,     0,   287,
2243    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
2244     24,     0,     0,     0,   294,   295,   296,   297,   298,    27,
2245      0,    28,   299,     0,     0,     0,     0,     0,     0,     0,
2246      0,     0,   301,     0,     0,   302,     0,     0,     0,     0,
2247      0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
2248      0,   306,   307,   308,   281,     8,     9,    10,   309,    12,
2249    282,   283,   284,     0,   285,    14,     0,     0,     0,     0,
2250      0,     0,     0,     0,     0,     0,   310,     0,     0,     0,
2251     17,   286,    18,     0,    20,     0,   287,   288,    21,     0,
2252    289,   290,   291,    22,   292,   293,     0,    24,     0,     0,
2253      0,   294,   295,   296,   297,   298,    27,     0,    28,   299,
2254      0,     0,     0,   300,     0,     0,     0,     0,     0,   301,
2255      0,     0,   302,     0,     0,     0,     0,     0,     0,     0,
2256    303,   304,   305,     0,     0,     0,     0,     0,   306,   307,
2257    308,   281,     8,     9,    10,   309,    12,   499,   283,   284,
2258      0,   285,    14,     0,     0,     0,     0,     0,     0,     0,
2259      0,     0,     0,   310,     0,     0,     0,    17,   286,    18,
2260      0,    20,     0,   287,   288,    21,     0,   289,   290,   291,
2261     22,   292,   293,     0,    24,     0,     0,     0,   294,   295,
2262    296,   297,   298,    27,     0,    28,   299,     0,     0,     0,
2263    300,     0,     0,     0,     0,     0,   301,     0,     0,   302,
2264      0,     0,     0,     0,     0,     0,     0,   303,   304,   305,
2265      0,     0,     0,     0,     0,   306,   307,   308,   281,     8,
2266      9,    10,   309,    12,   499,   283,   284,     0,   285,    14,
2267      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2268    310,     0,     0,     0,    17,   286,    18,     0,    20,     0,
2269    287,   288,    21,     0,   289,   290,   291,    22,   292,   293,
2270      0,    24,     0,     0,     0,   294,   295,   296,   297,   298,
2271     27,     0,    28,   299,   532,     0,     0,     0,     0,     0,
2272      0,     0,     0,   301,     0,     0,   302,     0,     0,     0,
2273      0,     0,     0,     0,   303,   304,   305,     0,     0,     0,
2274      0,     0,   306,   307,   308,   281,     8,     9,    10,   533,
2275     12,   499,   283,   284,     0,   285,    14,     0,     0,     0,
2276      0,     0,     0,     0,     0,     0,     0,   310,     0,     0,
2277      0,    17,   286,    18,     0,    20,     0,   287,   288,    21,
2278      0,   289,   290,   291,    22,   292,   293,     0,    24,     0,
2279      0,     0,   294,   295,   296,   297,   298,    27,     0,    28,
2280    299,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2281    301,     0,     0,   302,     0,     0,     0,     0,     0,     0,
2282      0,   303,   304,   305,     0,     0,     0,     0,     0,   306,
2283    307,   308,     0,     0,     0,     0,   309,   569,   281,     8,
2284      9,    10,     0,    12,   499,   283,   284,     0,   285,    14,
2285      0,     0,     0,     0,   310,     0,     0,     0,     0,     0,
2286      0,     0,     0,     0,    17,   286,    18,     0,    20,     0,
2287    287,   288,    21,     0,   289,   290,   291,    22,   292,   293,
2288      0,    24,     0,     0,     0,   294,   295,   296,   297,   298,
2289     27,     0,    28,   299,     0,     0,     0,   300,     0,     0,
2290      0,     0,     0,   301,     0,     0,   518,     0,     0,     0,
2291      0,     0,     0,     0,   303,   304,   519,     0,     0,     0,
2292      0,     0,   306,   307,   308,  1094,     8,     9,    10,   520,
2293     12,   499,   283,   284,     0,   285,    14,     0,     0,     0,
2294      0,     0,     0,     0,     0,     0,     0,   310,     0,     0,
2295      0,    17,   286,    18,     0,    20,     0,   287,   288,    21,
2296      0,   289,   290,   291,    22,   292,   293,     0,    24,     0,
2297      0,     0,   294,   295,   296,   297,   298,    27,     0,    28,
2298    299,     0,     0,     0,   300,     0,     0,     0,     0,     0,
2299    301,     0,     0,   302,     0,     0,     0,     0,     0,     0,
2300      0,   303,   304,   305,     0,     0,     0,     0,     0,   306,
2301    307,   308,     7,     8,     9,    10,   309,    12,   499,   283,
2302    284,     0,   285,    14,     0,     0,     0,     0,     0,     0,
2303      0,     0,     0,     0,   310,     0,     0,     0,    17,   286,
2304     18,     0,    20,     0,   287,   288,    21,     0,   289,   290,
2305    291,    22,   292,   293,     0,    24,     0,     0,     0,   294,
2306    295,   296,   297,   298,    27,     0,    28,    29,     0,     0,
2307      0,   300,     0,     0,     0,     0,     0,   301,     0,     0,
2308   1421,     0,     0,     0,     0,     0,     0,     0,   303,   304,
2309   1422,     0,     0,     0,     0,     0,   306,   307,   308,   281,
2310      8,     9,    10,  1423,    12,   499,   283,   284,     0,   285,
2311     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2312      0,   310,     0,     0,     0,    17,   286,    18,     0,    20,
2313      0,   287,   288,    21,     0,   289,   290,   291,    22,   292,
2314    293,     0,    24,     0,     0,     0,   294,   295,   296,   297,
2315    298,    27,     0,    28,   299,     0,     0,     0,     0,     0,
2316      0,     0,     0,     0,   301,     0,     0,   302,     0,     0,
2317      0,     0,     0,     0,     0,   303,   304,   305,     0,     0,
2318      0,     0,     0,   306,   307,   308,   281,     8,     9,    10,
2319    500,    12,   499,   283,   284,     0,   285,    14,     0,     0,
2320      0,     0,     0,     0,     0,     0,     0,     0,   310,     0,
2321      0,     0,    17,   286,    18,     0,    20,     0,   287,   288,
2322     21,     0,   289,   290,   291,    22,   292,   293,     0,    24,
2323      0,     0,     0,   294,   295,   296,   297,   298,    27,     0,
2324     28,   299,     0,     0,     0,     0,     0,     0,     0,     0,
2325      0,   301,     0,     0,   302,     0,     0,     0,     0,     0,
2326      0,     0,   303,   304,   305,     0,     0,     0,     0,     0,
2327    306,   307,   308,   281,     8,     9,    10,   503,    12,   499,
2328    283,   284,     0,   285,    14,     0,     0,     0,     0,     0,
2329      0,     0,     0,     0,     0,   310,     0,     0,     0,    17,
2330    286,    18,     0,    20,     0,   287,   288,    21,     0,   289,
2331    290,   291,    22,   292,   293,     0,    24,     0,     0,     0,
2332    294,   295,   296,   297,   298,    27,     0,    28,   299,     0,
2333      0,     0,     0,     0,     0,     0,     0,     0,   301,     0,
2334      0,   302,     0,     0,     0,     0,     0,     0,     0,   303,
2335    304,   305,     0,     0,     0,     0,     0,   306,   307,   308,
2336    281,     8,     9,    10,   309,    12,   499,   283,   284,     0,
2337    285,    14,     0,     0,     0,     0,     0,     0,     0,     0,
2338      0,     0,   310,     0,     0,     0,    17,   286,    18,     0,
2339     20,     0,   287,   288,    21,     0,   289,   290,   291,    22,
2340    292,   293,     0,    24,     0,     0,     0,   294,   295,   296,
2341    297,   298,    27,     0,    28,   299,     0,     0,     0,     0,
2342      0,     0,     0,     0,     0,   301,     0,     0,   518,     0,
2343      0,     0,     0,     0,     0,     0,   303,   304,   519,     0,
2344      0,     0,     0,     0,   306,   307,   308,     7,     8,     9,
2345     10,   520,    12,   282,   283,   284,     0,   285,    14,     0,
2346      0,     0,     0,     0,     0,     0,     0,     0,     0,   310,
2347      0,     0,     0,    17,   286,    18,     0,    20,     0,   287,
2348    288,    21,     0,   289,   290,   291,    22,   292,   293,     0,
2349     24,     0,     0,     0,   294,   295,   296,   297,   298,    27,
2350      0,    28,    29,     0,     0,     0,     0,     0,     0,     0,
2351      0,     0,   301,     0,     6,  1421,     7,     8,     9,    10,
2352     11,    12,    13,   303,   304,  1422,     0,    14,     0,     0,
2353      0,   306,   307,   308,     0,     0,     0,     0,  1423,     0,
2354      0,     0,    17,     0,    18,    19,     0,     0,     0,     0,
2355     21,     0,     0,     0,     0,    22,   310,     0,     0,    24,
2356      0,     0,   411,     0,     0,     0,     0,     0,    27,     0,
2357     28,    29,     0,     0,    30,  -357,     8,     9,  -357,  -357,
2358     12,   227,     0,     0,    31,     0,    14,     0,     0,     0,
2359      0,     0,     0,     0,    32,     0,     0,     0,     0,     0,
2360      0,    17,    33,    18,  -357,     0,     0,    34,     0,    21,
2361      0,     0,     0,     0,  -357,     0,     0,     0,    24,     0,
2362    581,     0,     0,     0,     0,     0,     0,    27,     0,   129,
2363    130,     7,     8,     9,    10,   189,    12,   190,     0,     0,
2364      0,     0,    14,   582,     0,     0,     0,     0,     0,     0,
2365      0,     0,     0,   583,     0,     0,     0,    17,     0,    18,
2366     19,  -357,     0,   584,     0,    21,   585,   586,     0,     0,
2367     22,     0,     0,     0,    24,     0,   989,     8,   733,    10,
2368    189,    12,   190,    27,     0,    28,    29,    14,     0,   191,
2369      0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
2370      0,     0,    17,     0,    18,    19,     0,     0,     0,    32,
2371     21,     0,     0,     0,     0,    22,     0,    33,     0,    24,
2372      0,     0,    34,     0,     0,     0,     0,     0,    27,     0,
2373     28,    29,     0,     0,     0,     0,   991,     7,     8,     9,
2374     10,   189,    12,   190,    31,     0,     0,     0,    14,     0,
2375      0,     0,     0,     0,    32,     0,     0,     0,     0,     0,
2376      0,     0,    33,    17,     0,    18,    19,    34,     0,     0,
2377      0,    21,     0,     0,     0,     0,    22,     0,     0,     0,
2378     24,     0,     7,     8,     9,    10,   386,    12,    13,    27,
2379      0,    28,    29,    14,     0,  1355,     0,     0,     0,     0,
2380      0,     0,     0,     0,     0,    31,     0,     0,    17,     0,
2381     18,    19,     0,     0,     0,    32,    21,     0,     0,     0,
2382      0,    22,     0,    33,     0,    24,     0,     0,    34,     0,
2383      0,     0,     0,     0,    27,     0,    28,    29,     7,     8,
2384      9,    10,   189,    12,   190,     0,     0,     0,     0,    14,
2385     31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2386     32,     0,     0,     0,    17,     0,    18,    19,    33,     0,
2387      0,     0,    21,    34,     0,     0,     0,    22,     0,     0,
2388      0,    24,     0,     7,     8,     9,    10,   198,   199,   200,
2389     27,     0,    28,    29,    14,     0,     0,     0,     0,     0,
2390      0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
2391      0,     0,    19,     0,     0,     0,    32,    21,     0,     0,
2392      0,     0,    22,     0,    33,  1411,    24,     0,   581,    34,
2393      0,     0,     0,     0,     0,    27,     0,    28,    29,   535,
2394    536,   537,   538,   539,   540,   541,   542,   543,   544,   545,
2395    546,   177,   548,   549,   550,   551,   552,   553,   554,   555,
2396    556,   178,     0,     0,     0,     0,     0,    19,     0,    33,
2397      0,     0,     0,     0,  1358,     0,  1412,   535,   536,   537,
2398    538,   539,   540,   541,   542,   543,   544,   545,   546,   547,
2399    548,   549,   550,   551,   552,   553,   554,   555,   556,   535,
2400    536,   537,   538,   539,   540,   541,   542,   543,   544,   545,
2401    546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
2402    556,   535,   536,   537,   538,   539,   540,   541,   542,   543,
2403    544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
2404    554,   555,   556,   535,   536,   537,   538,   539,   540,   541,
2405    542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
2406    552,   553,   554,   555,   556,     0,     0,     0,     0,     0,
2407   1185,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2408      0,     0,     0,     0,     0,   621,     0,     0,  1466,   535,
2409    536,   537,   538,   539,   540,   541,   542,   543,   544,   545,
2410    546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
2411    556,  1484,   535,   536,   537,   538,   539,   540,   541,   542,
2412    543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
2413    553,   554,   555,   556,   535,   536,   537,   538,   539,   540,
2414    541,   542,   543,   544,   545,   546,   547,   548,   549,   550,
2415    551,   552,   553,   554,   555,   556
2416 };
2417
2418 static const short yycheck[] = {     4,
2419    156,    79,     4,   426,   673,   670,    54,    24,     4,   125,
2420      4,   193,   329,   385,   232,   335,   448,    83,   336,   337,
2421    385,     4,   285,   286,   385,    58,   530,   146,   147,   653,
2422    469,    36,    14,     4,    36,   830,    41,    31,    32,    41,
2423     36,   123,    36,   223,   132,    41,   228,    41,   660,   353,
2424    737,    56,   739,    36,   317,     4,   201,   202,    41,   746,
2425     34,     4,  1254,   141,   585,    36,    71,   421,   128,  1261,
2426     41,   592,   193,   133,   392,   393,   132,   133,    83,     4,
2427     61,   202,    87,  1408,    89,    56,    91,    36,    11,    83,
2428   1247,  1324,    41,    36,    38,   277,  1409,    11,    41,    11,
2429     82,   106,   107,    53,    34,  1155,  1156,  1410,     9,   187,
2430     79,    36,    45,    48,    60,    63,    41,   335,   456,  1169,
2431     60,  1446,    59,   105,     0,    65,     7,    63,    65,     0,
2432    135,   136,    89,   138,    91,   473,    76,   754,    60,    75,
2433     63,   135,    75,   760,   385,     1,    75,   329,     1,    59,
2434     49,    12,   146,   147,   586,   160,     1,    38,    83,    94,
2435    193,    62,   110,  1426,   135,   111,   160,   111,   201,   202,
2436    524,    12,   146,   147,   148,   110,   287,   288,  1481,   136,
2437     12,   111,  1445,   177,   178,   502,   135,   110,   110,   160,
2438    100,   302,   135,   434,   305,   228,   110,   308,   110,    60,
2439    311,   151,    63,    59,   315,   179,    59,    63,   106,   107,
2440    135,   160,   323,  1526,    59,   196,  1541,   160,    63,    60,
2441     63,  1413,    63,   204,    65,    75,    48,    36,    60,    94,
2442     48,    63,    41,   672,   184,   160,  1286,    98,   326,  1502,
2443     96,    25,    55,    65,   277,  1295,  1296,   229,  1298,   110,
2444    867,    96,  1409,  1486,  1049,    61,   322,    98,   414,     3,
2445      4,     5,    75,  1455,   197,    60,    98,   110,   880,    94,
2446    326,   883,    94,   278,   243,    59,    94,    95,   902,    63,
2447     34,    76,   643,   365,   604,    61,    60,    39,     4,     5,
2448    608,    94,   110,     9,    63,   355,   329,    48,    76,    60,
2449     78,    48,    61,    55,   309,   111,    75,   452,   453,   921,
2450    922,  1503,    96,    57,    58,   460,   109,   322,    48,   379,
2451    674,   440,   441,   379,   696,   330,    61,   472,   322,   633,
2452     75,   696,   453,   338,   339,   111,   110,    81,    55,    55,
2453    388,    57,    58,    94,   585,   339,   491,    94,    95,   110,
2454    871,   592,   111,   335,    48,    71,   574,   390,    75,   976,
2455     60,    27,    28,   110,    94,    81,    32,    25,   339,    27,
2456     28,   988,   767,   768,   769,   692,   111,    48,    75,    95,
2457    385,   338,  1432,  1433,   389,    48,    48,    94,   909,   385,
2458    339,   385,   146,   147,   148,    61,   339,   322,  1193,    65,
2459     94,    59,   906,    25,  1021,    63,  1023,   518,   519,   832,
2460    110,   309,    61,    48,   339,    25,    61,    27,    28,   452,
2461    453,    55,    55,    94,    95,   179,    55,   460,   949,   434,
2462     65,    94,    94,    95,    48,   416,   868,    55,    96,   472,
2463    434,    75,    75,     4,     5,   111,   440,   441,   110,    59,
2464      8,     9,   770,    63,    32,   696,    14,    75,   491,    94,
2465    385,    63,     3,     4,     5,   470,   440,   441,   442,     3,
2466      4,     5,     6,  1085,  1086,    59,   470,    63,   459,    37,
2467     94,    95,    75,  1170,    48,    55,    96,   470,    46,    75,
2468     48,    48,   497,    63,    55,   500,    57,    58,   503,    55,
2469    566,   470,   507,   508,   509,   510,   511,    48,    42,   434,
2470     71,     4,     5,   754,    55,   520,    57,    58,   446,   760,
2471     81,   470,     4,    57,    58,   530,   454,   470,   533,   462,
2472     94,   903,    55,   431,    95,   974,    94,    94,   903,   166,
2473    497,   721,   903,   723,    48,   470,     4,     5,   728,    48,
2474     59,    55,    75,    94,    36,    89,   876,    60,    61,    41,
2475    565,   566,   610,   111,    57,    58,     3,     4,     5,   714,
2476     48,    75,   566,    94,     3,     4,     5,    48,   611,    48,
2477    585,   899,    55,   937,    76,  1106,    55,   592,   582,   583,
2478     94,   585,    55,     4,     5,    94,    95,   779,   592,    57,
2479     58,   649,   500,   651,   652,   503,    75,    55,    48,   507,
2480    873,    95,    49,  1134,   596,   731,    94,  1040,  1041,   652,
2481     57,    58,   520,    94,   641,    94,   867,  1059,    57,    58,
2482    871,   636,    48,   110,    48,   533,    48,    11,    49,   537,
2483   1251,   566,  1253,    55,   692,   650,    57,    58,    48,   654,
2484     60,    61,     4,     5,    94,   672,   110,     9,   876,   692,
2485    585,   110,   903,    75,   110,   563,   111,   592,   909,    48,
2486     81,   569,     4,     5,    14,    94,    48,  1116,    94,   636,
2487     94,   714,    94,    23,    61,    48,   440,   441,   442,     8,
2488      9,   696,  1449,     3,    94,    14,   744,  1015,  1016,  1017,
2489     60,    61,   696,    55,   113,    57,    58,  1130,   949,  1148,
2490     25,    95,    27,    28,    95,    94,  1139,  1140,    37,    71,
2491     63,  1144,    94,    55,    64,    57,    58,    46,   113,    81,
2492    841,    94,   737,     9,   739,   976,    12,  1054,  1495,    94,
2493    745,   746,    60,   737,    59,   739,   779,   988,    63,   754,
2494    755,   756,   746,   758,   737,   760,   739,    63,   869,   870,
2495    754,    94,  1185,   746,  1055,  1056,   760,  1058,   737,    75,
2496    739,   696,    48,   744,   745,    75,   745,   746,     4,     5,
2497   1021,    96,  1023,   123,    60,    75,    62,    63,   737,    65,
2498    739,   971,   972,   973,   737,    75,   739,   746,   755,   756,
2499     76,   758,    78,   746,  1469,   145,    75,   740,   741,    11,
2500     27,    28,   737,   111,   739,    32,   749,   110,    94,    95,
2501   1489,   746,    98,    49,   829,     4,     5,    60,   833,   754,
2502     55,    57,    58,   110,   110,   760,   914,    27,    28,    84,
2503     85,    55,   110,    60,    61,    60,    61,   110,    65,    63,
2504   1273,     3,     4,     5,     6,    81,   861,     3,     4,     5,
2505      6,    75,   867,     4,     5,  1106,   871,    75,    60,   110,
2506     49,   111,    48,   867,    61,   869,   870,   871,    57,    58,
2507    220,   221,    60,    61,    76,  1203,    78,   111,  1311,    65,
2508     42,   113,   232,  1134,   876,   113,    42,    49,   903,   110,
2509    905,   906,    81,    49,   909,    57,    58,   903,    49,   903,
2510     75,    57,    58,   907,   908,   909,    57,    58,    94,    95,
2511     60,    61,  1000,    60,    61,    25,    75,    27,    28,    81,
2512     55,   979,    75,   113,    55,   909,  1253,    89,   113,   837,
2513     81,   110,   867,    89,   949,    59,   871,     3,     4,     5,
2514   1061,     7,     8,     9,    55,   949,     4,     5,   963,    59,
2515    110,   301,    63,    63,   969,     3,     4,     5,     6,    55,
2516     94,   976,   110,   871,    75,   949,   110,    63,   903,     8,
2517    113,  1335,   976,   988,   909,  1104,  1105,     4,     5,    75,
2518      3,     4,     5,  1347,   988,    48,    96,    65,    60,    94,
2519     48,    57,    58,   343,    42,   111,  1011,    55,   979,    57,
2520     58,    61,   352,  1132,  1133,    55,  1021,  1011,  1023,    57,
2521     58,  1132,  1133,    71,   949,   365,    37,  1021,  1011,  1023,
2522   1108,  1000,    49,    81,    65,    65,    49,    65,   110,    61,
2523     57,    58,  1011,    91,    57,    58,    94,    95,     3,     4,
2524      5,   976,     7,     8,     9,    63,   110,    94,  1063,   992,
2525     65,   110,  1011,   988,    81,   998,   999,  1439,  1011,  1002,
2526   1003,   969,  1426,  1006,  1439,    55,   110,    55,   110,    65,
2527     65,    60,    37,    63,   110,    63,  1011,     3,     4,     5,
2528    717,  1445,     3,     4,     5,    75,  1021,    75,  1023,  1116,
2529     55,  1106,    57,    58,    59,    63,  1063,   113,  1531,   110,
2530   1104,  1105,  1106,   110,     3,     4,     5,     6,  1472,     3,
2531      4,     5,  1127,   110,   751,  1127,  1443,   467,   110,  1134,
2532   1104,  1105,  1106,  1127,    76,    76,  1247,    55,  1132,  1133,
2533   1134,    57,    58,    59,  1127,    63,    57,    58,  1502,    76,
2534    105,   106,   107,    42,    76,   909,  1510,    75,  1132,  1133,
2535   1134,     4,     5,     4,     5,  1170,    55,   110,    57,    58,
2536     56,    55,    58,    57,    58,    59,  1170,   110,  1127,   110,
2537     63,  1106,    63,    60,    87,    63,    89,  1170,    91,     3,
2538      4,     5,   532,   110,   113,   949,   111,  1166,  1439,    95,
2539     89,  1170,  1127,  1251,   110,  1253,   110,    89,    49,  1134,
2540     75,   113,    55,    48,    57,    58,    57,    58,   110,   110,
2541   1253,  1170,     3,     4,     5,   113,     7,  1170,    71,    60,
2542    110,   110,    65,   136,   574,   138,  1134,   113,    81,   110,
2543     81,    55,  1247,    57,    58,  1170,   110,  1252,   111,  1254,
2544     31,   111,  1254,  1247,    65,    60,  1261,    38,    60,  1261,
2545   1254,  1443,  1418,   110,  1247,  1270,   110,  1261,    94,    94,
2546     94,  1254,    94,   111,    55,     8,    57,    58,  1261,   113,
2547    166,   110,   110,  1181,  1182,  1183,  1184,     3,     4,     5,
2548      6,    27,    28,  1191,   110,   110,    32,   110,  1247,   111,
2549    110,   641,  1421,  1422,   113,  1254,   110,   193,    34,   110,
2550   1421,  1422,  1261,   653,   110,   201,   202,    81,    82,    83,
2551     84,    85,  1247,   110,    60,    61,    42,   110,   110,  1254,
2552     65,   110,    55,    49,   110,   110,  1261,    48,    63,   679,
2553    113,    57,    58,   110,  1242,   110,    97,     3,     4,     5,
2554   1104,  1105,  1106,   110,   981,   982,     7,     8,     9,    63,
2555   1293,  1294,    63,    14,    61,    81,     3,     4,     5,    61,
2556      7,     8,     9,    89,     9,    31,    61,    16,  1132,  1133,
2557   1134,    32,   110,  1010,  1358,    94,    37,    94,     3,     4,
2558      5,   110,   712,   110,    61,    46,  1444,   300,  1403,    55,
2559     37,    57,    58,  1408,  1409,  1410,  1408,   110,  1413,  1403,
2560   1443,  1413,     4,     5,  1408,  1409,  1410,   110,  1423,  1413,
2561     57,    58,   113,   110,  1357,  1408,  1409,  1421,  1422,    61,
2562   1413,    94,    94,   753,  1439,   338,     3,     4,     5,   759,
2563     55,  1446,    57,    58,  1446,  1439,  1344,  1421,  1422,  1423,
2564   1455,    17,  1446,  1455,    61,   109,    99,    49,   110,  1408,
2565   1409,  1455,    61,  1446,  1413,    57,    58,    11,   110,   110,
2566    110,    61,  1455,    61,    61,    94,  1481,    60,  1403,    65,
2567    110,    61,   110,  1408,  1409,  1410,   110,  1481,  1413,    11,
2568     57,    58,     4,     5,     3,     4,     5,  1446,  1503,    61,
2569     11,  1503,    61,   389,   390,  1403,  1455,     0,     0,  1503,
2570      0,  1409,  1410,   413,  1439,   355,     2,   903,   745,  1116,
2571   1503,  1446,   160,   426,   427,  1423,     3,     4,     5,     6,
2572   1455,   434,    93,    45,  1161,  1162,  1541,  1164,  1165,  1541,
2573   1167,  1474,   862,    55,   864,    57,    58,  1541,    57,    58,
2574   1468,   160,   892,   138,  1503,  1334,  1481,  1541,  1541,   445,
2575    280,    48,   902,  1252,   892,    42,   452,   453,   679,   222,
2576    456,   887,    49,  1148,   460,   974,  1011,   745,  1503,  1168,
2577     57,    58,   617,  1481,     7,     8,     9,   473,   885,   566,
2578    184,    14,  1541,   123,   497,   498,   326,  1254,  1128,  1497,
2579     87,    88,  1510,  1489,  1358,    92,    93,    94,    95,    32,
2580   1458,  1520,    89,    34,    37,  1522,  1541,   958,  1270,    -1,
2581     -1,  1519,    -1,    46,    -1,    -1,    -1,   530,  1526,   532,
2582     -1,    -1,   535,   536,    -1,   538,   539,   540,   541,   542,
2583    543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
2584    553,   554,   555,   556,    -1,    -1,  1283,  1284,    -1,   562,
2585     -1,   564,   565,    -1,    -1,    -1,    -1,  1421,  1422,  1423,
2586     -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2587      6,     7,     8,     9,    -1,     7,     8,     9,    14,   592,
2588      4,     5,    14,    -1,    -1,     9,   599,    -1,    -1,    -1,
2589   1020,  1041,  1022,    29,    -1,    31,    32,    33,    -1,    -1,
2590     32,    37,    38,    -1,    -1,    37,    42,   620,   621,    -1,
2591     46,    47,    -1,    49,    46,   611,   147,   148,    -1,    55,
2592     -1,    57,    58,   636,    48,    61,    -1,    63,    79,    61,
2593     -1,    55,    -1,    57,    58,    71,   427,    -1,    -1,    -1,
2594   1377,  1378,  1379,   434,    -1,    81,  1076,    71,   179,    -1,
2595     -1,    -1,   103,    89,   650,    -1,   652,    81,    94,    79,
2596     80,    81,    82,    83,    84,    85,   679,    91,    -1,    -1,
2597     94,    95,    -1,    -1,  1124,   111,    -1,    -1,     4,     5,
2598   1130,   132,     8,     9,    -1,    -1,    -1,     4,    14,    -1,
2599    141,    -1,  1429,  1430,    -1,    -1,   692,    14,    -1,    -1,
2600     -1,    -1,    -1,    29,    -1,    31,    -1,   498,    25,    -1,
2601     -1,    37,    -1,    -1,    31,    32,    -1,    34,   714,    36,
2602     46,   717,  1152,   736,    41,    -1,    -1,  1157,    -1,    55,
2603     -1,    57,    58,    59,    -1,    -1,   187,    54,    -1,    56,
2604     -1,    -1,   755,   756,    -1,   758,    -1,    64,    -1,   745,
2605      3,     4,     5,    -1,    71,   751,    -1,  1494,    -1,    -1,
2606    773,    -1,    -1,    -1,    -1,    82,    83,    -1,    94,   220,
2607     -1,   562,    -1,   564,   565,    -1,    -1,  1207,   309,    -1,
2608     -1,    -1,   795,    -1,    -1,    -1,    39,    40,   105,    42,
2609     -1,    -1,   243,  1243,    -1,    -1,     3,     4,     5,     6,
2610     -1,   592,    55,    -1,    57,    58,    -1,    -1,   599,    -1,
2611     -1,   128,    -1,    -1,    -1,    -1,   133,    12,   135,   832,
2612    833,    -1,   139,    -1,    -1,   142,   143,    -1,    -1,   146,
2613    147,   148,    27,    28,   847,    42,   849,    32,   851,    -1,
2614     -1,    -1,    -1,   160,    -1,    -1,    -1,    -1,    55,    -1,
2615     57,    58,    -1,    48,    61,    -1,    63,    -1,    -1,    -1,
2616    177,   178,   179,    -1,    71,    60,    61,    -1,    63,    -1,
2617     65,   884,  1302,  1303,    81,    -1,  1326,    -1,    -1,    -1,
2618     -1,   894,    89,   334,    -1,    -1,    -1,    94,  1318,   206,
2619     -1,    -1,    -1,   906,     7,     8,     9,    -1,    -1,    94,
2620     95,    14,   427,    98,   221,    -1,   919,    -1,    -1,   434,
2621    441,   442,   229,    -1,    -1,   110,    -1,    -1,   931,    32,
2622     -1,    -1,    -1,   240,    37,    -1,    -1,    -1,    -1,     3,
2623      4,     5,     6,    46,    -1,     9,   949,    -1,    -1,    -1,
2624   1370,  1371,    -1,    -1,   395,    -1,    -1,    -1,    61,    77,
2625     78,    79,    80,    81,    82,    83,    84,    85,    -1,  1389,
2626   1390,   278,   279,    -1,    -1,    -1,    -1,    -1,    42,   500,
2627     -1,    -1,   503,   498,    48,    -1,    -1,    -1,   991,    -1,
2628     -1,    55,   773,    57,    58,   981,   982,    -1,   519,   520,
2629     -1,   328,   329,   330,    -1,    -1,    -1,    71,    -1,    -1,
2630     -1,    -1,   533,    -1,    -1,   322,    -1,    81,    -1,   326,
2631     -1,   328,   329,   330,  1010,    89,   467,    91,    -1,    -1,
2632     94,    95,   339,    -1,    -1,    -1,    -1,  1040,  1041,    -1,
2633     -1,  1044,    -1,    -1,    -1,    -1,    -1,   562,   355,   564,
2634    565,    -1,   833,   494,     3,     4,     5,     6,    -1,    -1,
2635   1063,    -1,    -1,    -1,    -1,    -1,   847,    -1,   849,    -1,
2636    851,   592,   379,    -1,    -1,    -1,    -1,    -1,   385,    -1,
2637     -1,   388,   389,    -1,   599,    -1,    -1,    -1,    -1,    -1,
2638     -1,    -1,   399,    42,    -1,   402,    -1,    -1,    -1,    48,
2639    407,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,
2640     -1,    -1,    -1,   894,    -1,  1118,    -1,  1120,    -1,  1122,
2641     -1,    -1,    71,    -1,    -1,    -1,    -1,  1130,    -1,   436,
2642     -1,   438,    81,   440,   441,   442,  1139,  1140,   579,   446,
2643     89,  1144,    91,    -1,   451,    94,    95,   454,    -1,    -1,
2644    931,    -1,    -1,    -1,   595,    -1,  1159,  1160,    -1,    -1,
2645     -1,    -1,    -1,   470,    -1,    -1,    -1,    -1,   949,    -1,
2646     -1,    -1,    -1,    -1,    -1,  1161,  1162,    -1,  1164,  1165,
2647     -1,  1167,  1185,    -1,     1,    -1,     3,     4,     5,     6,
2648      7,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,
2649     -1,   508,   509,   510,   511,    -1,    -1,    -1,    -1,    -1,
2650     -1,  1214,    29,    -1,    31,    32,    33,    -1,    -1,    -1,
2651     37,    38,    -1,    -1,    -1,    42,    -1,    -1,    -1,    46,
2652     47,    -1,    49,    -1,    -1,  1238,    -1,    -1,    55,    -1,
2653     57,    58,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,
2654     -1,    -1,   773,    -1,    71,   582,   583,    -1,   585,   566,
2655     -1,   568,    -1,    -1,    81,   592,  1252,  1253,    -1,    -1,
2656   1273,    -1,    89,   580,    -1,   582,   583,    94,   585,    -1,
2657     -1,    -1,    -1,    -1,    -1,   592,  1289,    -1,    -1,   596,
2658     -1,    -1,    -1,    -1,   111,    -1,    -1,  1283,  1284,    -1,
2659     -1,    -1,    -1,   610,    -1,    -1,    -1,    -1,  1311,     3,
2660      4,     5,     6,    -1,    -1,     9,    -1,    -1,   833,    -1,
2661     -1,    -1,   649,    -1,   651,   652,     1,   654,     3,     4,
2662      5,     6,   847,     8,   849,    -1,   851,  1118,    -1,  1120,
2663     -1,  1122,   649,   650,   651,   652,   653,   654,    42,   870,
2664    871,    -1,    -1,    -1,    -1,  1358,    -1,    -1,    -1,    -1,
2665     -1,    55,    -1,    57,    58,   692,    -1,    42,    -1,    -1,
2666     -1,    -1,  1375,  1376,    49,    -1,    -1,    71,    -1,   894,
2667     55,  1384,    57,    58,    -1,   692,    -1,    81,   909,   696,
2668     -1,  1377,  1378,  1379,    -1,    89,   703,   704,    -1,   706,
2669     94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1411,    -1,
2670     -1,    -1,    -1,    -1,    89,    -1,   931,    -1,   106,   107,
2671     -1,    -1,    -1,    -1,    -1,    -1,    -1,   734,   949,    -1,
2672    737,    -1,   739,  1214,   875,    -1,   877,   744,   745,   746,
2673     -1,    -1,    -1,  1429,  1430,    -1,    -1,   754,    -1,    -1,
2674     -1,    -1,   779,   760,    -1,     3,     4,     5,     6,    -1,
2675    767,   768,   769,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2676     -1,    -1,   779,   914,    -1,    -1,    -1,    -1,     4,     5,
2677     -1,     7,     8,     9,    -1,    -1,    12,    -1,    14,    -1,
2678     -1,    -1,    -1,    -1,    42,    -1,    -1,     3,     4,     5,
2679      6,    -1,    -1,    29,    -1,    31,    32,    55,  1494,    57,
2680     58,    37,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
2681     46,    -1,   829,    71,    -1,   852,    -1,   854,  1531,    55,
2682     -1,    57,    58,    81,    -1,    -1,    42,    -1,   865,    -1,
2683     -1,    89,   869,   870,   871,   852,    94,   854,    -1,    55,
2684     -1,    57,    58,    -1,   861,    -1,    -1,    63,   865,  1000,
2685    867,    -1,   869,   870,   871,    71,    -1,    -1,    -1,   876,
2686     -1,    -1,    98,    -1,    -1,    81,    -1,  1358,    -1,    -1,
2687    907,   908,   909,    89,  1105,  1106,     4,     5,    94,    -1,
2688     -1,     9,    -1,    -1,    -1,    -1,   903,    -1,   905,     4,
2689    907,   908,   909,  1118,    -1,  1120,    -1,  1122,    -1,    14,
2690     -1,    -1,  1133,  1134,    -1,    -1,    -1,    -1,    -1,    24,
2691     25,   309,   949,    -1,    -1,    -1,    31,    32,    -1,    34,
2692     48,    36,    -1,    -1,    -1,    -1,    41,    55,    -1,    57,
2693     58,  1082,   949,    -1,    -1,    -1,    -1,    -1,    -1,    54,
2694     -1,    56,    -1,    71,    -1,    -1,   963,    -1,    -1,    64,
2695     -1,    -1,    -1,    81,    -1,    -1,    71,  1108,    -1,   976,
2696     -1,    -1,   979,    91,    -1,    -1,    94,    95,    83,    -1,
2697     -1,   988,     3,     4,     5,     6,    -1,    -1,    -1,    -1,
2698     -1,    -1,    -1,    -1,  1001,    -1,    -1,   385,    -1,  1214,
2699     -1,    -1,    -1,    -1,  1011,    -1,    -1,    -1,     3,     4,
2700      5,     6,    -1,    -1,  1021,    -1,  1023,    -1,    -1,    -1,
2701     -1,    42,    -1,   128,    -1,  1166,    -1,    -1,    49,    -1,
2702    135,   328,   329,   330,   139,    -1,    57,    58,   143,    -1,
2703     -1,   146,   147,   148,    -1,    -1,   434,    42,  1055,  1056,
2704     -1,  1058,    -1,    -1,    49,   160,    -1,    -1,    -1,    -1,
2705      4,     5,    57,    58,     8,     9,    -1,    -1,    89,    -1,
2706     14,    -1,   177,   178,   179,  1102,  1103,  1104,  1105,  1106,
2707     -1,    -1,    -1,  1110,    -1,    29,    81,    31,    -1,    -1,
2708     -1,    -1,    -1,    37,    89,  1102,  1103,  1104,  1105,  1106,
2709     -1,   206,    46,  1110,    -1,  1132,  1133,  1134,    -1,    -1,
2710     -1,    55,   500,    57,    58,   503,    -1,    -1,    -1,   507,
2711    508,   509,   510,   511,    -1,  1132,  1133,  1134,     3,     4,
2712      5,     6,   520,    -1,     9,   240,    -1,  1358,    -1,    -1,
2713      3,     4,     5,     6,    -1,   533,     9,    -1,    -1,    -1,
2714     94,    -1,    -1,    -1,    -1,    -1,  1163,    -1,    -1,    -1,
2715     -1,  1168,    -1,  1170,    -1,    -1,    -1,    42,    -1,    -1,
2716     -1,    -1,    -1,   278,   279,    -1,    -1,   565,    -1,    42,
2717     55,    -1,    57,    58,    -1,    48,    -1,    -1,    -1,    -1,
2718   1217,  1218,    55,  1220,    57,    58,    71,   585,    -1,    -1,
2719     -1,  1422,  1423,    -1,   592,    -1,    81,    -1,    71,    -1,
2720   1217,  1218,    -1,  1220,    89,    -1,    -1,   322,    81,    94,
2721     -1,   326,    -1,   328,   329,   330,    89,    -1,    91,    -1,
2722    335,    94,    95,    -1,   339,     3,     4,     5,     6,    -1,
2723     -1,     9,    -1,    -1,  1251,  1252,  1253,    -1,    -1,    -1,
2724    355,    -1,     3,     4,     5,     6,    -1,    -1,    -1,    -1,
2725     -1,    -1,    -1,  1270,    -1,    -1,    -1,    -1,    -1,    -1,
2726     -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,
2727    385,    -1,     4,   388,   389,   582,   583,    55,    -1,    57,
2728     58,    42,    -1,    -1,   399,    -1,    -1,   402,    49,    -1,
2729     -1,    -1,   407,    71,    -1,    -1,    57,    58,   696,    31,
2730     32,    -1,    -1,    81,    36,    -1,    -1,    -1,    -1,    41,
2731     -1,    89,     3,     4,     5,     6,    94,    -1,    -1,    -1,
2732     81,   436,    -1,   438,    56,   440,   441,   442,    89,    -1,
2733     -1,   446,     3,     4,     5,     6,   451,    -1,     9,   454,
2734     -1,  1358,   649,    -1,   651,   652,    -1,   654,    -1,    -1,
2735     -1,    42,    -1,    -1,   469,   470,   754,    -1,    49,    -1,
2736     -1,    -1,   760,    -1,    -1,    -1,    57,    58,    -1,    -1,
2737     -1,    42,    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,
2738     -1,    -1,    -1,    -1,    55,   692,    57,    58,    -1,    -1,
2739     81,    -1,    -1,   508,   509,   510,   511,    -1,    89,    -1,
2740     71,    -1,    -1,   135,  1421,  1422,  1423,   139,    -1,    -1,
2741     81,   143,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
2742     91,    -1,  1439,    94,    95,    -1,    -1,  1444,   160,    -1,
2743      1,   829,     3,     4,     5,     6,     7,     8,     9,    -1,
2744     -1,    -1,    -1,    14,    -1,   177,   178,    -1,    -1,    -1,
2745     -1,   566,    -1,   568,    -1,    -1,    27,    28,    29,    -1,
2746     31,    32,    33,   861,    -1,    -1,    37,   582,   583,   867,
2747    585,    42,   779,   871,    45,    46,    47,   592,    49,    -1,
2748     -1,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,   604,
2749     61,    -1,    -1,    -1,    -1,   610,    -1,    -1,    -1,    -1,
2750     71,     3,     4,     5,     6,   903,    -1,   905,   240,    -1,
2751     81,   909,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
2752     -1,    -1,    -1,    94,    -1,    -1,   641,    -1,    -1,   100,
2753     -1,    -1,    -1,    -1,   649,   650,   651,   652,   653,   654,
2754     42,    -1,    -1,    -1,    -1,   852,    -1,   854,    -1,    -1,
2755     -1,   949,    -1,    55,    -1,    57,    58,   672,   865,    -1,
2756     -1,    63,   869,   870,    -1,   963,    -1,    -1,    -1,    71,
2757     -1,   969,    -1,    -1,    -1,    -1,    -1,   692,   976,    81,
2758     -1,   696,    -1,    -1,    -1,    -1,    -1,    89,   703,   704,
2759    988,   706,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2760    907,   908,    -1,    -1,    -1,    -1,    -1,   339,     3,     4,
2761      5,     6,    -1,    -1,     9,    -1,    -1,    -1,    -1,   734,
2762     -1,    -1,   737,  1021,   739,  1023,    -1,    -1,    -1,   744,
2763    745,   746,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   754,
2764     -1,    -1,    -1,    -1,    -1,   760,    -1,    42,    -1,    -1,
2765     -1,    -1,   767,   768,   769,    -1,    -1,    -1,    -1,    -1,
2766     55,    -1,    57,    58,   779,    -1,    -1,   399,    -1,    -1,
2767    402,    -1,    -1,    -1,    -1,   407,    71,    -1,    -1,     3,
2768      4,     5,     6,    -1,    -1,     9,    81,    -1,   177,   178,
2769    179,    -1,    -1,     4,    89,    -1,    -1,    -1,    -1,    94,
2770     -1,    -1,    -1,    -1,   436,    -1,   438,    -1,  1106,    -1,
2771     -1,    -1,    -1,    -1,   829,    -1,    -1,    -1,    42,   451,
2772     31,    32,    -1,    34,    48,    36,    -1,    -1,    -1,    -1,
2773     41,    55,    -1,    57,    58,    -1,  1134,   852,   470,   854,
2774     -1,    -1,    -1,    54,    -1,    56,   861,    71,    -1,    -1,
2775    865,    -1,   867,    -1,   869,   870,   871,    81,    -1,    -1,
2776     -1,   876,    -1,    -1,    -1,    89,    -1,    91,    79,    -1,
2777     94,    95,    70,    71,    72,    73,    74,    75,    76,    77,
2778     78,    79,    80,    81,    82,    83,    84,    85,   903,    -1,
2779    905,    -1,   907,   908,   909,  1102,  1103,  1104,  1105,    -1,
2780     -1,    -1,    -1,  1110,    73,    74,    75,    76,    77,    78,
2781     79,    80,    81,    82,    83,    84,    85,   128,    -1,    -1,
2782     -1,   132,   133,    -1,   135,  1132,  1133,    -1,   139,    -1,
2783    141,    -1,   143,    -1,   949,   146,   147,   148,    -1,    -1,
2784     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   963,   160,
2785     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   974,
2786     -1,   976,    -1,    -1,   979,    -1,   177,   178,   179,    -1,
2787     -1,    -1,  1270,   988,    -1,    -1,   187,    -1,    -1,     4,
2788      5,    -1,    -1,     8,     9,    -1,    -1,    -1,    -1,    14,
2789     -1,    -1,    -1,    -1,    -1,   206,  1011,    -1,    -1,    -1,
2790     -1,    -1,    -1,    -1,    -1,    -1,  1021,    -1,  1023,    -1,
2791   1217,  1218,    37,  1220,    -1,    -1,    -1,    -1,   650,    -1,
2792     -1,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,   240,
2793     55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
2794   1055,  1056,    -1,  1058,    -1,    -1,    71,   436,    -1,   438,
2795     -1,   440,   441,   442,    -1,    -1,    81,    -1,    -1,    -1,
2796     -1,    -1,   451,    -1,   696,    -1,    91,    -1,    -1,    94,
2797     95,   703,   704,    -1,   706,    74,    75,    76,    77,    78,
2798     79,    80,    81,    82,    83,    84,    85,  1102,  1103,  1104,
2799   1105,  1106,    -1,    -1,    -1,  1110,    -1,    -1,   309,    -1,
2800     -1,  1116,    -1,    -1,    -1,   737,    -1,   739,    -1,    -1,
2801     -1,    -1,   744,   745,   746,   326,    -1,  1132,  1133,  1134,
2802     -1,    -1,    -1,   334,    -1,  1423,    -1,    -1,   339,    -1,
2803     -1,    -1,    -1,  1148,    -1,    -1,    -1,    -1,    -1,    -1,
2804     -1,  1439,    -1,    -1,   355,    -1,    -1,    -1,  1163,    -1,
2805     -1,    -1,    -1,  1168,    -1,  1170,     3,     4,     5,     6,
2806      7,     8,     9,    -1,    -1,    12,    -1,    14,   379,    -1,
2807     -1,    -1,    -1,    -1,    -1,    -1,    -1,   388,    -1,    -1,
2808     -1,    -1,    29,    -1,    31,    32,    -1,    -1,   399,    -1,
2809     37,   402,    -1,    -1,    -1,    42,   407,    -1,    -1,    46,
2810     -1,    48,  1217,  1218,    -1,  1220,    -1,    -1,    55,    -1,
2811     57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2812     -1,    -1,    -1,    -1,    71,   436,    -1,   438,    -1,   440,
2813    441,   442,    -1,    -1,    81,   446,  1251,  1252,  1253,    -1,
2814    451,     4,    89,   454,    91,    -1,    -1,    94,    95,    -1,
2815     -1,    98,    -1,    -1,    -1,  1270,    -1,    -1,    -1,   470,
2816     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    32,
2817     -1,    34,    -1,    36,    -1,   907,   908,    -1,    41,    -1,
2818      3,     4,     5,     6,    -1,    -1,     9,    -1,    -1,   500,
2819     -1,    54,   503,    56,    -1,    -1,    -1,    -1,    -1,    -1,
2820      4,     5,    -1,    -1,     8,     9,    -1,   518,   519,   520,
2821     14,    -1,    -1,    -1,   703,   704,    -1,   706,    -1,    42,
2822     -1,    -1,   533,    -1,    -1,    29,    -1,    31,    -1,    -1,
2823     -1,    -1,    55,    37,    57,    58,    -1,    -1,    81,    -1,
2824     -1,    -1,    46,  1358,    48,    -1,    -1,   979,    71,    -1,
2825     -1,    55,    -1,    57,    58,   744,    -1,    -1,    81,     4,
2826      5,    -1,    -1,     8,     9,    -1,    89,    71,   579,    14,
2827     -1,    94,   135,    -1,    -1,    -1,   139,    81,    -1,  1011,
2828    143,   592,    -1,   146,   147,   148,    -1,    91,    -1,    -1,
2829     94,    95,    37,    -1,    -1,    -1,    -1,   160,    -1,   610,
2830     -1,    46,    -1,    48,    -1,    -1,  1421,  1422,  1423,    -1,
2831     55,   154,    57,    58,   177,   178,   179,    -1,    -1,    -1,
2832     -1,    -1,    -1,    -1,  1439,    -1,    71,    -1,    -1,  1444,
2833     -1,    -1,   175,    -1,    -1,    -1,    81,    -1,   649,   650,
2834    651,   652,    -1,   206,    -1,   188,    91,     4,     5,    94,
2835     95,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,
2836     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2837   1102,  1103,    29,    -1,    31,    -1,    -1,   240,  1110,    -1,
2838     37,   692,    -1,    -1,    -1,   696,    -1,    -1,    -1,    46,
2839     -1,    -1,   703,   704,    -1,   706,    -1,    -1,    55,    -1,
2840     57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,
2841     -1,     3,     4,     5,     6,     7,     8,     9,   907,   908,
2842    909,    -1,    14,    -1,    -1,    -1,   737,    -1,   739,    -1,
2843     -1,  1163,    -1,   744,   745,   746,  1168,    29,  1170,    31,
2844     32,    33,    -1,    -1,    -1,    37,    38,    -1,    -1,    -1,
2845     42,    -1,    -1,    -1,    46,    47,    -1,    49,    -1,    -1,
2846    949,    -1,   773,    55,    -1,    57,    58,    -1,    -1,    61,
2847     -1,    63,   335,    -1,    -1,    -1,   339,    -1,    -1,    71,
2848     -1,    -1,    -1,    -1,    -1,  1217,  1218,    -1,  1220,    81,
2849    979,    -1,    -1,    -1,    -1,    -1,    -1,    89,     3,     4,
2850      5,     6,    94,    -1,     9,    72,    73,    74,    75,    76,
2851     77,    78,    79,    80,    81,    82,    83,    84,    85,   111,
2852   1252,    -1,    -1,    -1,    -1,   388,    -1,    -1,    -1,    -1,
2853     -1,    -1,    -1,    -1,    -1,    -1,   399,    42,    -1,   402,
2854     -1,    -1,    -1,    -1,   407,    -1,    -1,    -1,    -1,    -1,
2855     55,    -1,    57,    58,    -1,    -1,    -1,    -1,   869,   870,
2856    871,    -1,    -1,    -1,   875,    -1,    71,    -1,    -1,    -1,
2857     -1,    -1,    -1,   436,    -1,   438,    81,   440,   441,   442,
2858     -1,    -1,    -1,   446,    89,    -1,    -1,    -1,   451,    94,
2859     -1,   454,    34,    -1,    -1,    -1,   907,   908,   909,    -1,
2860     -1,   444,    -1,   914,    -1,    -1,   449,   470,    -1,    -1,
2861     -1,    -1,    54,  1102,  1103,  1104,  1105,  1106,    -1,    -1,
2862     -1,  1110,    -1,    -1,     3,     4,     5,     6,     7,     8,
2863      9,   474,    -1,    -1,    -1,    14,    -1,   480,   949,    -1,
2864     -1,    -1,    -1,  1132,  1133,  1134,    -1,    -1,    -1,   492,
2865    493,    -1,   495,    32,    -1,    -1,    -1,    -1,    37,    -1,
2866     -1,    -1,    -1,    42,    -1,    -1,    -1,    46,   979,    48,
2867      3,     4,     5,     6,  1163,    -1,    55,    -1,    57,    58,
2868     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1000,
2869     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2870   1011,    -1,    81,    -1,   146,   147,   148,    -1,    -1,    42,
2871     89,    -1,    91,    -1,    -1,    94,    95,   580,    -1,    -1,
2872     -1,    -1,    55,    -1,    57,    58,    -1,    -1,  1217,  1218,
2873     63,  1220,    -1,    -1,    -1,   177,   178,   179,    71,    -1,
2874     -1,    -1,    -1,    -1,    -1,   588,   589,   610,    81,    -1,
2875    593,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
2876     -1,    94,    -1,    -1,   206,    -1,    -1,    -1,    -1,    -1,
2877     -1,  1082,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
2878     -1,    -1,     9,    -1,    -1,    -1,   649,   650,   651,   652,
2879     -1,  1102,  1103,  1104,  1105,  1106,    -1,  1108,    -1,  1110,
2880     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2881     -1,     3,     4,     5,     6,    42,    -1,     9,    -1,    -1,
2882     -1,  1132,  1133,  1134,    -1,    -1,    -1,    -1,    55,   692,
2883     57,    58,    -1,   696,    -1,    -1,    -1,   279,    -1,    -1,
2884    703,   704,    -1,   706,    71,    -1,    -1,    -1,    -1,    -1,
2885     42,    -1,  1163,    -1,    81,    -1,    -1,  1168,    -1,  1170,
2886     -1,    -1,    89,    55,    -1,    57,    58,    94,    -1,  1358,
2887     -1,    -1,     4,     5,   737,    -1,   739,     9,    -1,    71,
2888     -1,   744,   745,   746,    -1,    -1,   328,   329,   330,    81,
2889     -1,    -1,    -1,    -1,    -1,    -1,    54,    89,     3,     4,
2890      5,     6,    94,    -1,    -1,    -1,  1217,  1218,    -1,  1220,
2891     -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,   761,    -1,
2892    763,    79,    -1,    55,    82,    57,    58,    -1,    -1,    -1,
2893     -1,    -1,  1421,  1422,  1423,    -1,    -1,    42,    -1,    71,
2894   1251,  1252,  1253,    -1,    -1,   103,   388,   105,    -1,    81,
2895     55,    -1,    57,    58,    -1,    -1,    61,    -1,    -1,    91,
2896     -1,    -1,    94,    95,    -1,    -1,    71,    -1,    -1,    -1,
2897     -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,
2898     -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    94,
2899     -1,    -1,   835,   836,   436,   838,   438,    -1,   440,   441,
2900    442,    -1,    -1,    -1,   446,    -1,    -1,    -1,    -1,   451,
2901     -1,    -1,   454,   876,    -1,    -1,    -1,    -1,    -1,   177,
2902    178,   179,    -1,   866,    -1,    -1,    -1,    -1,    -1,   187,
2903      4,     5,    -1,     7,     8,     9,    -1,    -1,    12,    -1,
2904     14,    -1,    -1,    -1,   907,   908,   909,  1358,   206,    -1,
2905     -1,     3,     4,     5,     6,    29,    -1,    31,    32,    -1,
2906     -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,   911,    -1,
2907     -1,   229,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
2908     -1,    55,    -1,    57,    58,   243,   949,    -1,    -1,    -1,
2909     42,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
2910     -1,    -1,    -1,    55,    -1,    57,    58,    81,    -1,    -1,
2911   1421,  1422,  1423,    -1,    -1,    -1,   979,    91,    -1,    71,
2912     94,    95,    -1,    -1,    98,    -1,   568,    -1,    -1,    81,
2913     -1,    -1,   975,  1444,    -1,    -1,    -1,    89,    -1,    -1,
2914    582,   583,    94,   585,   987,    -1,    -1,    -1,  1011,    -1,
2915    592,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2916      4,     5,    -1,     7,     8,     9,    -1,    -1,   610,    -1,
2917     14,    -1,    -1,    -1,    -1,    -1,   334,   335,    -1,    -1,
2918     -1,     3,     4,     5,     6,    29,    -1,    31,    32,    -1,
2919     -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
2920     -1,    -1,    46,    -1,    -1,    49,    -1,   649,    -1,   651,
2921    652,    55,   654,    57,    58,    -1,    -1,    -1,    -1,    -1,
2922     42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1071,    -1,
2923    388,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,  1102,
2924   1103,  1104,  1105,  1106,    -1,    -1,    -1,  1110,    -1,    71,
2925    692,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
2926     -1,   703,   704,    -1,   706,    -1,  1109,    89,    -1,  1132,
2927   1133,  1134,    94,    -1,    -1,    -1,    -1,    -1,   436,    -1,
2928    438,    -1,   440,   441,   442,    -1,    -1,    -1,   446,    -1,
2929     -1,    -1,    -1,   451,    -1,    -1,   454,    -1,    -1,    -1,
2930   1163,    -1,   744,    -1,    -1,  1168,    -1,  1170,    -1,    -1,
2931     -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
2932      6,     7,     8,     9,    -1,   767,   768,   769,    14,  1172,
2933     -1,    -1,    -1,  1176,    -1,    -1,    -1,   779,    -1,    -1,
2934     -1,    -1,    -1,    29,    -1,    31,    32,    33,    -1,    -1,
2935     -1,    37,    38,    -1,  1217,  1218,    42,  1220,    -1,    -1,
2936     46,    47,    -1,    49,    -1,    -1,  1209,    -1,    -1,    55,
2937     -1,    57,    58,    -1,    -1,    61,    -1,    63,     3,     4,
2938      5,     6,    -1,    -1,    -1,    71,    -1,    -1,  1251,  1252,
2939   1253,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,
2940     -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    94,    -1,
2941    852,    -1,   854,    -1,    -1,    -1,    -1,    42,    -1,    -1,
2942     -1,    -1,    -1,   865,    -1,   111,    -1,   869,   870,   871,
2943     55,    -1,    57,    58,    -1,  1278,    -1,   595,   596,  1282,
2944     -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
2945      4,     5,   610,     7,     8,     9,    81,    -1,    12,    -1,
2946     14,  1304,  1305,    -1,    89,   907,   908,   909,    -1,    94,
2947     -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,    -1,
2948     -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
2949     -1,   649,    46,   651,   652,  1358,    -1,    -1,    -1,    -1,
2950     -1,    55,    -1,    57,    58,    -1,    -1,   949,    -1,    -1,
2951      3,     4,     5,     6,     7,     8,     9,    -1,    14,    -1,
2952     -1,    14,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,
2953     -1,    -1,    -1,    -1,   692,    31,    32,   979,    34,    32,
2954     -1,    -1,    -1,    -1,    37,   703,   704,    -1,   706,    42,
2955     -1,    -1,    -1,    46,    -1,    48,    -1,    -1,  1421,  1422,
2956   1423,    -1,    55,    -1,    57,    58,     4,     5,    64,     7,
2957      8,     9,    -1,   731,    -1,    -1,    14,    -1,    71,    -1,
2958     -1,  1444,    -1,    -1,    -1,    -1,   744,    -1,    81,    -1,
2959     -1,    29,    -1,    31,    32,    -1,    89,    -1,    91,    37,
2960     -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    46,    -1,
2961     -1,    -1,    -1,  1055,  1056,    -1,  1058,    55,    -1,    57,
2962     58,    -1,    -1,    -1,    -1,    -1,    -1,   123,    -1,   125,
2963     -1,    -1,   128,    -1,    -1,    -1,   132,   133,    -1,    -1,
2964     -1,    -1,    -1,   139,    -1,   141,   142,   143,    -1,    -1,
2965    146,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2966   1102,  1103,  1104,  1105,  1106,    -1,    -1,    -1,  1110,    68,
2967     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2968     79,    80,    81,    82,    83,    84,    85,    -1,    -1,    -1,
2969   1132,  1133,  1134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2970     -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,
2971      4,     5,     6,     7,     8,     9,    -1,   875,   876,   877,
2972     14,  1163,    -1,    -1,   220,   221,    -1,    -1,    -1,    -1,
2973     -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,    33,
2974     -1,    -1,    -1,    37,   240,    -1,    -1,    -1,    42,   907,
2975    908,   909,    46,    47,    -1,    49,   914,    -1,    -1,    -1,
2976     -1,    55,    -1,    57,    58,    -1,    -1,    61,    -1,    63,
2977     -1,    -1,    -1,    -1,    -1,  1217,  1218,    71,  1220,    -1,
2978     -1,    -1,    -1,   279,    -1,    -1,    -1,    81,    -1,    -1,
2979     -1,   949,    -1,    -1,    -1,    89,    -1,    -1,    -1,     1,
2980     94,    -1,     4,     5,    -1,    -1,     8,     9,    -1,  1251,
2981     -1,  1253,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2982     -1,   979,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,
2983    326,    -1,   328,   329,    -1,    37,    -1,    39,    40,    -1,
2984     -1,    -1,  1000,    -1,    46,    -1,    48,    -1,    -1,    -1,
2985     -1,    -1,    -1,    55,    -1,    57,    58,    -1,    60,   355,
2986     -1,    -1,    64,    65,    66,    67,    68,    69,    70,    71,
2987     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2988     82,    83,    84,   379,    -1,    87,    88,    89,    -1,    -1,
2989     92,    -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,   395,
2990     -1,    -1,    -1,   399,    -1,    -1,   402,    -1,    -1,    -1,
2991    112,   407,    -1,    -1,    -1,    -1,  1358,    -1,    -1,    -1,
2992     -1,    -1,    -1,    -1,  1082,    69,    70,    71,    72,    73,
2993     74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2994     84,    85,    -1,    -1,  1102,  1103,  1104,  1105,  1106,    -1,
2995   1108,    -1,  1110,    71,    72,    73,    74,    75,    76,    77,
2996     78,    79,    80,    81,    82,    83,    84,    85,    -1,    -1,
2997     -1,   467,    -1,   469,  1132,  1133,  1134,    -1,    -1,  1421,
2998   1422,  1423,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
2999      5,     6,     7,     8,     9,    -1,    -1,    12,   494,    14,
3000     -1,    -1,  1444,    -1,    -1,  1163,    -1,    -1,    -1,    -1,
3001     -1,    -1,    -1,    -1,    29,    -1,    31,    32,    -1,    -1,
3002     -1,    -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    -1,
3003     -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3004     55,    -1,    57,    58,     1,    -1,     3,     4,     5,     6,
3005      7,     8,     9,    -1,    -1,    12,    71,    14,    -1,  1217,
3006   1218,    -1,  1220,    -1,    -1,    -1,    81,    -1,    25,    -1,
3007     27,    28,   568,    -1,    89,    32,    -1,    -1,    -1,    94,
3008     37,    -1,    -1,   579,   580,    42,   582,   583,    -1,    46,
3009     -1,    48,    -1,  1251,    -1,  1253,    -1,    -1,    55,    -1,
3010     57,    58,    59,    60,    61,    -1,    63,    64,    65,    66,
3011     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3012     77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
3013     87,    88,    89,    -1,    91,    92,    93,    94,    95,    96,
3014     -1,    98,    99,    -1,    -1,   641,    -1,   104,    -1,    -1,
3015     -1,    -1,   109,   110,   111,    -1,   113,   653,    -1,    -1,
3016      1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
3017      4,     5,    -1,    14,     8,     9,   672,    -1,    -1,    -1,
3018     14,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    -1,
3019     31,    32,    33,    -1,    -1,    29,    37,    31,    -1,    -1,
3020   1358,    42,    -1,    37,    45,    46,    47,    -1,    49,    -1,
3021     -1,    -1,    46,    -1,    55,    -1,    57,    58,    -1,    -1,
3022     61,    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,
3023     71,    -1,    -1,    -1,    -1,   731,    -1,    -1,   734,    -1,
3024     81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
3025     -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,   100,
3026     -1,    -1,    -1,  1421,  1422,  1423,    -1,    -1,    -1,    -1,
3027     -1,   767,   768,   769,    -1,    -1,    -1,    -1,    -1,    -1,
3028     -1,    -1,    -1,   779,    -1,     1,  1444,     3,     4,     5,
3029      6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
3030     -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3031     26,    27,    28,    29,    30,    31,    32,    33,    -1,    35,
3032     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3033     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3034     -1,    57,    58,    59,    -1,    61,    62,    -1,    -1,    -1,
3035     -1,    -1,    68,    -1,    -1,    71,   852,    -1,   854,    -1,
3036     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,   865,
3037     -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    -1,
3038     96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3039     -1,    -1,    -1,    -1,    -1,   111,   112,     1,    -1,     3,
3040      4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
3041     14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
3042     24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
3043     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3044     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3045     54,    55,    -1,    57,    58,    59,    -1,    61,    62,    -1,
3046     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3047     -1,    -1,    -1,    -1,    -1,    79,    80,    81,   974,    -1,
3048     -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,
3049     94,     1,    96,     3,     4,     5,     6,     7,     8,     9,
3050     10,    11,    12,    13,    14,  1001,    -1,    -1,   112,    -1,
3051     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
3052     30,    31,    32,    33,    -1,    35,    36,    37,    -1,    39,
3053     40,    41,    42,    43,    44,    -1,    46,    -1,    48,    -1,
3054     50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
3055     -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,  1055,
3056   1056,    71,  1058,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3057     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3058     -1,    91,    -1,    -1,    94,    95,    -1,     1,    98,     3,
3059      4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
3060     14,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3061     -1,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
3062   1116,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3063     44,    -1,    46,    -1,    48,    -1,    50,    51,    52,    53,
3064     54,    55,    -1,    57,    58,    59,    -1,    -1,    62,    -1,
3065     -1,    -1,  1148,    -1,    68,    -1,    -1,    71,    -1,    -1,
3066     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3067   1166,    -1,  1168,    87,    88,    89,    -1,    91,    -1,    -1,
3068     94,    95,    -1,     1,    98,     3,     4,     5,     6,     7,
3069      8,     9,    10,    11,    12,    13,    14,    -1,   112,    -1,
3070     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3071     -1,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
3072     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3073     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3074     58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
3075     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3076     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3077     88,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
3078     98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3079     -1,    -1,   110,     1,   112,     3,     4,     5,     6,     7,
3080      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3081     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3082     -1,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
3083     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3084     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3085     58,    59,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
3086     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3087     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3088     88,    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,
3089      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3090     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3091     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3092     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3093     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3094     -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,
3095     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3096     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3097     -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    95,
3098      1,    -1,     3,     4,     5,     6,    -1,     8,     9,    10,
3099     11,    -1,    13,    14,    -1,   111,   112,    -1,    -1,    -1,
3100     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
3101     31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
3102     41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
3103     51,    52,    53,    54,    55,    -1,    57,    58,    59,    -1,
3104     -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
3105     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
3106     81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,
3107     -1,    -1,    -1,    94,    95,     1,    -1,     3,     4,     5,
3108      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3109     -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3110     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3111     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3112     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3113     -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,
3114     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3115     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3116     -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,     3,
3117      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3118     14,    -1,    -1,    -1,    -1,   111,   112,    -1,    -1,    -1,
3119     -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
3120     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3121     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3122     54,    55,    -1,    57,    58,    59,    -1,    -1,    62,    -1,
3123     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3124     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3125     -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,     1,
3126     94,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3127     -1,    13,    14,    -1,    -1,    -1,    -1,   111,   112,    -1,
3128     -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
3129     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3130     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3131     52,    53,    54,    55,    -1,    57,    58,    59,    -1,    -1,
3132     62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3133     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3134     -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
3135     -1,    -1,    94,    -1,    -1,     1,    -1,     3,     4,     5,
3136      6,   103,     8,     9,    10,    11,    -1,    13,    14,    -1,
3137    112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3138     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3139     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3140     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3141     -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,
3142     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3143     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3144     -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,     3,
3145      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3146     14,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
3147     -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
3148     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3149     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3150     54,    55,    -1,    57,    58,    59,    -1,    -1,    62,    -1,
3151     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3152     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3153     -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,     1,
3154     94,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3155     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,   112,    -1,
3156     -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
3157     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3158     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3159     52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
3160     62,    63,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3161     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3162     -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
3163     -1,     1,    94,     3,     4,     5,     6,    -1,     8,     9,
3164     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3165    112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
3166     30,    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,
3167     40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
3168     50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
3169     -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3170     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3171     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3172     -1,    -1,    -1,     1,    94,     3,     4,     5,     6,    -1,
3173      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3174     -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3175     -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
3176     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3177     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3178     58,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
3179     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3180     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3181     88,    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,
3182      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3183     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3184     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3185     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3186     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3187     -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,
3188     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3189     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3190     -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,     3,
3191      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3192     14,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
3193     -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
3194     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3195     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3196     54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,
3197     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3198     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3199     -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,     1,
3200     94,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3201     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,   112,    -1,
3202     -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
3203     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3204     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3205     52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
3206     62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3207     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3208     -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
3209     -1,     1,    94,     3,     4,     5,     6,    -1,     8,     9,
3210     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3211    112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
3212     30,    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,
3213     40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
3214     50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
3215     -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3216     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3217     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3218      3,     4,     5,     6,    94,     8,     9,    10,    11,    -1,
3219     13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3220     -1,    -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,
3221     33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
3222     43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
3223     53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,
3224     -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
3225     -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
3226     -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,
3227     -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3228     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
3229    113,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3230     -1,    13,    14,    15,    -1,    17,    18,    19,    20,    21,
3231     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3232     32,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3233     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3234     52,    53,    54,    55,    -1,    57,    58,    59,    -1,    61,
3235     62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3236     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3237     -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
3238     -1,    -1,    94,    -1,    96,    -1,    -1,    -1,    -1,    -1,
3239     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
3240    112,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3241     -1,    13,    14,    15,    -1,    17,    18,    19,    20,    21,
3242     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3243     32,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3244     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3245     52,    53,    54,    55,    -1,    57,    58,    59,    -1,    61,
3246     62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3247     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3248     -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
3249     -1,    -1,    94,    -1,    96,    -1,    -1,     3,     4,     5,
3250      6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
3251    112,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3252     26,    27,    28,    29,    30,    31,    32,    33,    -1,    35,
3253     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3254     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3255     -1,    57,    58,    59,    -1,    61,    62,    -1,    -1,    -1,
3256     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3257     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3258     -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    -1,
3259     96,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
3260     10,    11,    -1,    13,    14,    15,   112,    17,    18,    19,
3261     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3262     30,    31,    32,    33,    -1,    35,    36,    37,    -1,    39,
3263     40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
3264     50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
3265     -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3266     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3267     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3268     -1,    -1,    -1,    -1,    94,    -1,    96,     3,     4,     5,
3269      6,     7,     8,     9,    10,    11,    12,    13,    14,    -1,
3270     -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3271     -1,    -1,    -1,    29,    30,    31,    32,    33,    -1,    35,
3272     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3273     46,    -1,    48,    -1,    50,    51,    52,    53,    54,    55,
3274     -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,
3275     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3276     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3277     -1,    87,    88,    89,    -1,    91,    -1,    -1,    94,    95,
3278     -1,    -1,    98,     3,     4,     5,     6,     7,     8,     9,
3279     10,    11,    12,    13,    14,    -1,   112,    -1,    -1,    -1,
3280     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
3281     30,    31,    32,    33,    -1,    35,    36,    37,    -1,    39,
3282     40,    41,    42,    43,    44,    -1,    46,    -1,    48,    -1,
3283     50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
3284     -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3285     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3286     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3287     -1,    91,    -1,    -1,    94,    95,    -1,    -1,    98,     3,
3288      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3289     14,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3290     -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
3291     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3292     44,    -1,    46,    -1,    48,    -1,    50,    51,    52,    53,
3293     54,    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,
3294     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3295     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3296     -1,    -1,    -1,    87,    88,    89,    -1,    91,    -1,    -1,
3297     94,    95,     3,     4,     5,     6,    -1,     8,     9,    10,
3298     11,    -1,    13,    14,    -1,    -1,    -1,    -1,   112,    -1,
3299     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
3300     31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
3301     41,    42,    43,    44,    -1,    46,    -1,    48,    -1,    50,
3302     51,    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,
3303     -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
3304     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
3305     81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,
3306     91,    -1,    -1,    94,    95,     3,     4,     5,     6,    -1,
3307      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3308     -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3309     -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
3310     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3311     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3312     58,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
3313     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3314     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3315     88,    89,    -1,    -1,    -1,    -1,    94,     3,     4,     5,
3316      6,     7,     8,     9,    10,    11,    -1,    13,    14,    -1,
3317     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3318     -1,    -1,    -1,    29,    30,    31,    32,    33,    -1,    35,
3319     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3320     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3321     -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3322     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3323     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3324     -1,    87,    88,    89,     3,     4,     5,     6,    94,     8,
3325      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3326     -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
3327     29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
3328     39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
3329     -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
3330     -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,
3331     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3332     79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
3333     89,     3,     4,     5,     6,    94,     8,     9,    10,    11,
3334     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3335     -1,    -1,    -1,   112,    -1,    -1,    -1,    29,    30,    31,
3336     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3337     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3338     52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
3339     62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3340     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3341     -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,
3342      5,     6,    94,     8,     9,    10,    11,    -1,    13,    14,
3343     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3344    112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
3345     35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
3346     -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
3347     55,    -1,    57,    58,    59,    -1,    -1,    -1,    -1,    -1,
3348     -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
3349     -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
3350     -1,    -1,    87,    88,    89,     3,     4,     5,     6,    94,
3351      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3352     -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
3353     -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
3354     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3355     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3356     58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3357     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3358     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3359     88,    89,    -1,    -1,    -1,    -1,    94,    95,     3,     4,
3360      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3361     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3362     -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
3363     35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
3364     -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
3365     55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,
3366     -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
3367     -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
3368     -1,    -1,    87,    88,    89,     3,     4,     5,     6,    94,
3369      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3370     -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
3371     -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
3372     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3373     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3374     58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
3375     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3376     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3377     88,    89,     3,     4,     5,     6,    94,     8,     9,    10,
3378     11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
3379     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    29,    30,
3380     31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
3381     41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
3382     51,    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,
3383     -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
3384     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
3385     81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,
3386      4,     5,     6,    94,     8,     9,    10,    11,    -1,    13,
3387     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3388     -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
3389     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3390     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3391     54,    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,
3392     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3393     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3394     -1,    -1,    -1,    87,    88,    89,     3,     4,     5,     6,
3395     94,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3396     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
3397     -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
3398     37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
3399     -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
3400     57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3401     -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
3402     -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
3403     87,    88,    89,     3,     4,     5,     6,    94,     8,     9,
3404     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3405     -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    29,
3406     30,    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,
3407     40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
3408     50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
3409     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3410     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3411     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3412      3,     4,     5,     6,    94,     8,     9,    10,    11,    -1,
3413     13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3414     -1,    -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,
3415     33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
3416     43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
3417     53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,    -1,
3418     -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
3419     -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
3420     -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,     5,
3421      6,    94,     8,     9,    10,    11,    -1,    13,    14,    -1,
3422     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
3423     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3424     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3425     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3426     -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3427     -1,    -1,    68,    -1,     1,    71,     3,     4,     5,     6,
3428      7,     8,     9,    79,    80,    81,    -1,    14,    -1,    -1,
3429     -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    -1,
3430     -1,    -1,    29,    -1,    31,    32,    -1,    -1,    -1,    -1,
3431     37,    -1,    -1,    -1,    -1,    42,   112,    -1,    -1,    46,
3432     -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    55,    -1,
3433     57,    58,    -1,    -1,    61,     3,     4,     5,     6,     7,
3434      8,     9,    -1,    -1,    71,    -1,    14,    -1,    -1,    -1,
3435     -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
3436     -1,    29,    89,    31,    32,    -1,    -1,    94,    -1,    37,
3437     -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    46,    -1,
3438     48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
3439     58,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
3440     -1,    -1,    14,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3441     -1,    -1,    -1,    81,    -1,    -1,    -1,    29,    -1,    31,
3442     32,    89,    -1,    91,    -1,    37,    94,    95,    -1,    -1,
3443     42,    -1,    -1,    -1,    46,    -1,     3,     4,     5,     6,
3444      7,     8,     9,    55,    -1,    57,    58,    14,    -1,    61,
3445     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
3446     -1,    -1,    29,    -1,    31,    32,    -1,    -1,    -1,    81,
3447     37,    -1,    -1,    -1,    -1,    42,    -1,    89,    -1,    46,
3448     -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    55,    -1,
3449     57,    58,    -1,    -1,    -1,    -1,    63,     3,     4,     5,
3450      6,     7,     8,     9,    71,    -1,    -1,    -1,    14,    -1,
3451     -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
3452     -1,    -1,    89,    29,    -1,    31,    32,    94,    -1,    -1,
3453     -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
3454     46,    -1,     3,     4,     5,     6,     7,     8,     9,    55,
3455     -1,    57,    58,    14,    -1,    61,    -1,    -1,    -1,    -1,
3456     -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    29,    -1,
3457     31,    32,    -1,    -1,    -1,    81,    37,    -1,    -1,    -1,
3458     -1,    42,    -1,    89,    -1,    46,    -1,    -1,    94,    -1,
3459     -1,    -1,    -1,    -1,    55,    -1,    57,    58,     3,     4,
3460      5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
3461     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3462     81,    -1,    -1,    -1,    29,    -1,    31,    32,    89,    -1,
3463     -1,    -1,    37,    94,    -1,    -1,    -1,    42,    -1,    -1,
3464     -1,    46,    -1,     3,     4,     5,     6,     7,     8,     9,
3465     55,    -1,    57,    58,    14,    -1,    -1,    -1,    -1,    -1,
3466     -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
3467     -1,    -1,    32,    -1,    -1,    -1,    81,    37,    -1,    -1,
3468     -1,    -1,    42,    -1,    89,    12,    46,    -1,    48,    94,
3469     -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    64,
3470     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3471     75,    71,    77,    78,    79,    80,    81,    82,    83,    84,
3472     85,    81,    -1,    -1,    -1,    -1,    -1,    32,    -1,    89,
3473     -1,    -1,    -1,    -1,    94,    -1,    63,    64,    65,    66,
3474     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3475     77,    78,    79,    80,    81,    82,    83,    84,    85,    64,
3476     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3477     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3478     85,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3479     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3480     83,    84,    85,    64,    65,    66,    67,    68,    69,    70,
3481     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3482     81,    82,    83,    84,    85,    -1,    -1,    -1,    -1,    -1,
3483    113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3484     -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,   109,    64,
3485     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3486     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3487     85,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3488     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3489     82,    83,    84,    85,    64,    65,    66,    67,    68,    69,
3490     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3491     80,    81,    82,    83,    84,    85
3492 };
3493 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
3494 #line 3 "/usr/cygnus/latest-940103/share/bison.simple"
3495
3496 /* Skeleton output parser for bison,
3497    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3498
3499    This program is free software; you can redistribute it and/or modify
3500    it under the terms of the GNU General Public License as published by
3501    the Free Software Foundation; either version 2, or (at your option)
3502    any later version.
3503
3504    This program is distributed in the hope that it will be useful,
3505    but WITHOUT ANY WARRANTY; without even the implied warranty of
3506    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3507    GNU General Public License for more details.
3508
3509    You should have received a copy of the GNU General Public License
3510    along with this program; if not, write to the Free Software
3511    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
3512
3513 /* As a special exception, when this file is copied by Bison into a
3514    Bison output file, you may use that output file without restriction.
3515    This special exception was added by the Free Software Foundation
3516    in version 1.24 of Bison.  */
3517
3518 #ifndef alloca
3519 #ifdef __GNUC__
3520 #define alloca __builtin_alloca
3521 #else /* not GNU C.  */
3522 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3523 #include <alloca.h>
3524 #else /* not sparc */
3525 #if defined (MSDOS) && !defined (__TURBOC__)
3526 #include <malloc.h>
3527 #else /* not MSDOS, or __TURBOC__ */
3528 #if defined(_AIX)
3529 #include <malloc.h>
3530  #pragma alloca
3531 #else /* not MSDOS, __TURBOC__, or _AIX */
3532 #ifdef __hpux
3533 #ifdef __cplusplus
3534 extern "C" {
3535 void *alloca (unsigned int);
3536 };
3537 #else /* not __cplusplus */
3538 void *alloca ();
3539 #endif /* not __cplusplus */
3540 #endif /* __hpux */
3541 #endif /* not _AIX */
3542 #endif /* not MSDOS, or __TURBOC__ */
3543 #endif /* not sparc.  */
3544 #endif /* not GNU C.  */
3545 #endif /* alloca not defined.  */
3546
3547 /* This is the parser code that is written into each bison parser
3548   when the %semantic_parser declaration is not specified in the grammar.
3549   It was written by Richard Stallman by simplifying the hairy parser
3550   used when %semantic_parser is specified.  */
3551
3552 /* Note: there must be only one dollar sign in this file.
3553    It is replaced by the list of actions, each action
3554    as one case of the switch.  */
3555
3556 #define yyerrok         (yyerrstatus = 0)
3557 #define yyclearin       (yychar = YYEMPTY)
3558 #define YYEMPTY         -2
3559 #define YYEOF           0
3560 #define YYACCEPT        return(0)
3561 #define YYABORT         return(1)
3562 #define YYERROR         goto yyerrlab1
3563 /* Like YYERROR except do call yyerror.
3564    This remains here temporarily to ease the
3565    transition to the new meaning of YYERROR, for GCC.
3566    Once GCC version 2 has supplanted version 1, this can go.  */
3567 #define YYFAIL          goto yyerrlab
3568 #define YYRECOVERING()  (!!yyerrstatus)
3569 #define YYBACKUP(token, value) \
3570 do                                                              \
3571   if (yychar == YYEMPTY && yylen == 1)                          \
3572     { yychar = (token), yylval = (value);                       \
3573       yychar1 = YYTRANSLATE (yychar);                           \
3574       YYPOPSTACK;                                               \
3575       goto yybackup;                                            \
3576     }                                                           \
3577   else                                                          \
3578     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
3579 while (0)
3580
3581 #define YYTERROR        1
3582 #define YYERRCODE       256
3583
3584 #ifndef YYPURE
3585 #define YYLEX           yylex()
3586 #endif
3587
3588 #ifdef YYPURE
3589 #ifdef YYLSP_NEEDED
3590 #ifdef YYLEX_PARAM
3591 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
3592 #else
3593 #define YYLEX           yylex(&yylval, &yylloc)
3594 #endif
3595 #else /* not YYLSP_NEEDED */
3596 #ifdef YYLEX_PARAM
3597 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
3598 #else
3599 #define YYLEX           yylex(&yylval)
3600 #endif
3601 #endif /* not YYLSP_NEEDED */
3602 #endif
3603
3604 /* If nonreentrant, generate the variables here */
3605
3606 #ifndef YYPURE
3607
3608 int     yychar;                 /*  the lookahead symbol                */
3609 YYSTYPE yylval;                 /*  the semantic value of the           */
3610                                 /*  lookahead symbol                    */
3611
3612 #ifdef YYLSP_NEEDED
3613 YYLTYPE yylloc;                 /*  location data for the lookahead     */
3614                                 /*  symbol                              */
3615 #endif
3616
3617 int yynerrs;                    /*  number of parse errors so far       */
3618 #endif  /* not YYPURE */
3619
3620 #if YYDEBUG != 0
3621 int yydebug;                    /*  nonzero means print parse trace     */
3622 /* Since this is uninitialized, it does not stop multiple parsers
3623    from coexisting.  */
3624 #endif
3625
3626 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
3627
3628 #ifndef YYINITDEPTH
3629 #define YYINITDEPTH 200
3630 #endif
3631
3632 /*  YYMAXDEPTH is the maximum size the stacks can grow to
3633     (effective only if the built-in stack extension method is used).  */
3634
3635 #if YYMAXDEPTH == 0
3636 #undef YYMAXDEPTH
3637 #endif
3638
3639 #ifndef YYMAXDEPTH
3640 #define YYMAXDEPTH 10000
3641 #endif
3642
3643 /* Prevent warning if -Wstrict-prototypes.  */
3644 #ifdef __GNUC__
3645 int yyparse (void);
3646 #endif
3647 \f
3648 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
3649 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
3650 #else                           /* not GNU C or C++ */
3651 #ifndef __cplusplus
3652
3653 /* This is the most reliable way to avoid incompatibilities
3654    in available built-in functions on various systems.  */
3655 static void
3656 __yy_memcpy (to, from, count)
3657      char *to;
3658      char *from;
3659      int count;
3660 {
3661   register char *f = from;
3662   register char *t = to;
3663   register int i = count;
3664
3665   while (i-- > 0)
3666     *t++ = *f++;
3667 }
3668
3669 #else /* __cplusplus */
3670
3671 /* This is the most reliable way to avoid incompatibilities
3672    in available built-in functions on various systems.  */
3673 static void
3674 __yy_memcpy (char *to, char *from, int count)
3675 {
3676   register char *f = from;
3677   register char *t = to;
3678   register int i = count;
3679
3680   while (i-- > 0)
3681     *t++ = *f++;
3682 }
3683
3684 #endif
3685 #endif
3686 \f
3687 #line 196 "/usr/cygnus/latest-940103/share/bison.simple"
3688
3689 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3690    into yyparse.  The argument should have type void *.
3691    It should actually point to an object.
3692    Grammar actions can access the variable by casting it
3693    to the proper pointer type.  */
3694
3695 #ifdef YYPARSE_PARAM
3696 #ifdef __cplusplus
3697 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3698 #define YYPARSE_PARAM_DECL
3699 #else /* not __cplusplus */
3700 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3701 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3702 #endif /* not __cplusplus */
3703 #else /* not YYPARSE_PARAM */
3704 #define YYPARSE_PARAM_ARG
3705 #define YYPARSE_PARAM_DECL
3706 #endif /* not YYPARSE_PARAM */
3707
3708 int
3709 yyparse(YYPARSE_PARAM_ARG)
3710      YYPARSE_PARAM_DECL
3711 {
3712   register int yystate;
3713   register int yyn;
3714   register short *yyssp;
3715   register YYSTYPE *yyvsp;
3716   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
3717   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
3718
3719   short yyssa[YYINITDEPTH];     /*  the state stack                     */
3720   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
3721
3722   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
3723   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
3724
3725 #ifdef YYLSP_NEEDED
3726   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
3727   YYLTYPE *yyls = yylsa;
3728   YYLTYPE *yylsp;
3729
3730 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
3731 #else
3732 #define YYPOPSTACK   (yyvsp--, yyssp--)
3733 #endif
3734
3735   int yystacksize = YYINITDEPTH;
3736
3737 #ifdef YYPURE
3738   int yychar;
3739   YYSTYPE yylval;
3740   int yynerrs;
3741 #ifdef YYLSP_NEEDED
3742   YYLTYPE yylloc;
3743 #endif
3744 #endif
3745
3746   YYSTYPE yyval;                /*  the variable used to return         */
3747                                 /*  semantic values from the action     */
3748                                 /*  routines                            */
3749
3750   int yylen;
3751
3752 #if YYDEBUG != 0
3753   if (yydebug)
3754     fprintf(stderr, "Starting parse\n");
3755 #endif
3756
3757   yystate = 0;
3758   yyerrstatus = 0;
3759   yynerrs = 0;
3760   yychar = YYEMPTY;             /* Cause a token to be read.  */
3761
3762   /* Initialize stack pointers.
3763      Waste one element of value and location stack
3764      so that they stay on the same level as the state stack.
3765      The wasted elements are never initialized.  */
3766
3767   yyssp = yyss - 1;
3768   yyvsp = yyvs;
3769 #ifdef YYLSP_NEEDED
3770   yylsp = yyls;
3771 #endif
3772
3773 /* Push a new state, which is found in  yystate  .  */
3774 /* In all cases, when you get here, the value and location stacks
3775    have just been pushed. so pushing a state here evens the stacks.  */
3776 yynewstate:
3777
3778   *++yyssp = yystate;
3779
3780   if (yyssp >= yyss + yystacksize - 1)
3781     {
3782       /* Give user a chance to reallocate the stack */
3783       /* Use copies of these so that the &'s don't force the real ones into memory. */
3784       YYSTYPE *yyvs1 = yyvs;
3785       short *yyss1 = yyss;
3786 #ifdef YYLSP_NEEDED
3787       YYLTYPE *yyls1 = yyls;
3788 #endif
3789
3790       /* Get the current used size of the three stacks, in elements.  */
3791       int size = yyssp - yyss + 1;
3792
3793 #ifdef yyoverflow
3794       /* Each stack pointer address is followed by the size of
3795          the data in use in that stack, in bytes.  */
3796 #ifdef YYLSP_NEEDED
3797       /* This used to be a conditional around just the two extra args,
3798          but that might be undefined if yyoverflow is a macro.  */
3799       yyoverflow("parser stack overflow",
3800                  &yyss1, size * sizeof (*yyssp),
3801                  &yyvs1, size * sizeof (*yyvsp),
3802                  &yyls1, size * sizeof (*yylsp),
3803                  &yystacksize);
3804 #else
3805       yyoverflow("parser stack overflow",
3806                  &yyss1, size * sizeof (*yyssp),
3807                  &yyvs1, size * sizeof (*yyvsp),
3808                  &yystacksize);
3809 #endif
3810
3811       yyss = yyss1; yyvs = yyvs1;
3812 #ifdef YYLSP_NEEDED
3813       yyls = yyls1;
3814 #endif
3815 #else /* no yyoverflow */
3816       /* Extend the stack our own way.  */
3817       if (yystacksize >= YYMAXDEPTH)
3818         {
3819           yyerror("parser stack overflow");
3820           return 2;
3821         }
3822       yystacksize *= 2;
3823       if (yystacksize > YYMAXDEPTH)
3824         yystacksize = YYMAXDEPTH;
3825       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3826       __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3827       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3828       __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3829 #ifdef YYLSP_NEEDED
3830       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3831       __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3832 #endif
3833 #endif /* no yyoverflow */
3834
3835       yyssp = yyss + size - 1;
3836       yyvsp = yyvs + size - 1;
3837 #ifdef YYLSP_NEEDED
3838       yylsp = yyls + size - 1;
3839 #endif
3840
3841 #if YYDEBUG != 0
3842       if (yydebug)
3843         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3844 #endif
3845
3846       if (yyssp >= yyss + yystacksize - 1)
3847         YYABORT;
3848     }
3849
3850 #if YYDEBUG != 0
3851   if (yydebug)
3852     fprintf(stderr, "Entering state %d\n", yystate);
3853 #endif
3854
3855   goto yybackup;
3856  yybackup:
3857
3858 /* Do appropriate processing given the current state.  */
3859 /* Read a lookahead token if we need one and don't already have one.  */
3860 /* yyresume: */
3861
3862   /* First try to decide what to do without reference to lookahead token.  */
3863
3864   yyn = yypact[yystate];
3865   if (yyn == YYFLAG)
3866     goto yydefault;
3867
3868   /* Not known => get a lookahead token if don't already have one.  */
3869
3870   /* yychar is either YYEMPTY or YYEOF
3871      or a valid token in external form.  */
3872
3873   if (yychar == YYEMPTY)
3874     {
3875 #if YYDEBUG != 0
3876       if (yydebug)
3877         fprintf(stderr, "Reading a token: ");
3878 #endif
3879       yychar = YYLEX;
3880     }
3881
3882   /* Convert token to internal form (in yychar1) for indexing tables with */
3883
3884   if (yychar <= 0)              /* This means end of input. */
3885     {
3886       yychar1 = 0;
3887       yychar = YYEOF;           /* Don't call YYLEX any more */
3888
3889 #if YYDEBUG != 0
3890       if (yydebug)
3891         fprintf(stderr, "Now at end of input.\n");
3892 #endif
3893     }
3894   else
3895     {
3896       yychar1 = YYTRANSLATE(yychar);
3897
3898 #if YYDEBUG != 0
3899       if (yydebug)
3900         {
3901           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3902           /* Give the individual parser a way to print the precise meaning
3903              of a token, for further debugging info.  */
3904 #ifdef YYPRINT
3905           YYPRINT (stderr, yychar, yylval);
3906 #endif
3907           fprintf (stderr, ")\n");
3908         }
3909 #endif
3910     }
3911
3912   yyn += yychar1;
3913   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3914     goto yydefault;
3915
3916   yyn = yytable[yyn];
3917
3918   /* yyn is what to do for this token type in this state.
3919      Negative => reduce, -yyn is rule number.
3920      Positive => shift, yyn is new state.
3921        New state is final state => don't bother to shift,
3922        just return success.
3923      0, or most negative number => error.  */
3924
3925   if (yyn < 0)
3926     {
3927       if (yyn == YYFLAG)
3928         goto yyerrlab;
3929       yyn = -yyn;
3930       goto yyreduce;
3931     }
3932   else if (yyn == 0)
3933     goto yyerrlab;
3934
3935   if (yyn == YYFINAL)
3936     YYACCEPT;
3937
3938   /* Shift the lookahead token.  */
3939
3940 #if YYDEBUG != 0
3941   if (yydebug)
3942     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3943 #endif
3944
3945   /* Discard the token being shifted unless it is eof.  */
3946   if (yychar != YYEOF)
3947     yychar = YYEMPTY;
3948
3949   *++yyvsp = yylval;
3950 #ifdef YYLSP_NEEDED
3951   *++yylsp = yylloc;
3952 #endif
3953
3954   /* count tokens shifted since error; after three, turn off error status.  */
3955   if (yyerrstatus) yyerrstatus--;
3956
3957   yystate = yyn;
3958   goto yynewstate;
3959
3960 /* Do the default action for the current state.  */
3961 yydefault:
3962
3963   yyn = yydefact[yystate];
3964   if (yyn == 0)
3965     goto yyerrlab;
3966
3967 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
3968 yyreduce:
3969   yylen = yyr2[yyn];
3970   if (yylen > 0)
3971     yyval = yyvsp[1-yylen]; /* implement default value of the action */
3972
3973 #if YYDEBUG != 0
3974   if (yydebug)
3975     {
3976       int i;
3977
3978       fprintf (stderr, "Reducing via rule %d (line %d), ",
3979                yyn, yyrline[yyn]);
3980
3981       /* Print the symbols being reduced, and their result.  */
3982       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3983         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3984       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3985     }
3986 #endif
3987
3988
3989   switch (yyn) {
3990
3991 case 2:
3992 #line 331 "parse.y"
3993 {
3994                   /* In case there were missing closebraces,
3995                      get us back to the global binding level.  */
3996                   while (! global_bindings_p ())
3997                     poplevel (0, 0, 0);
3998                   finish_file ();
3999                 ;
4000     break;}
4001 case 3:
4002 #line 345 "parse.y"
4003 { yyval.ttype = NULL_TREE; ;
4004     break;}
4005 case 4:
4006 #line 347 "parse.y"
4007 { yyval.ttype = NULL_TREE; ;
4008     break;}
4009 case 5:
4010 #line 349 "parse.y"
4011 { yyval.ttype = NULL_TREE; ;
4012     break;}
4013 case 8:
4014 #line 358 "parse.y"
4015 { have_extern_spec = 1;
4016                   used_extern_spec = 0;
4017                   yyval.ttype = NULL_TREE; ;
4018     break;}
4019 case 9:
4020 #line 363 "parse.y"
4021 { have_extern_spec = 0; ;
4022     break;}
4023 case 10:
4024 #line 368 "parse.y"
4025 { yyval.itype = pedantic;
4026                   pedantic = 0; ;
4027     break;}
4028 case 13:
4029 #line 378 "parse.y"
4030 { if (pending_lang_change) do_pending_lang_change(); ;
4031     break;}
4032 case 14:
4033 #line 380 "parse.y"
4034 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4035                   pop_everything (); ;
4036     break;}
4037 case 15:
4038 #line 386 "parse.y"
4039 { if (pending_inlines) do_pending_inlines (); ;
4040     break;}
4041 case 16:
4042 #line 388 "parse.y"
4043 { if (pending_inlines) do_pending_inlines (); ;
4044     break;}
4045 case 17:
4046 #line 390 "parse.y"
4047 { if (pending_inlines) do_pending_inlines (); ;
4048     break;}
4049 case 18:
4050 #line 392 "parse.y"
4051 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4052                   assemble_asm (yyvsp[-2].ttype); ;
4053     break;}
4054 case 19:
4055 #line 395 "parse.y"
4056 { pop_lang_context (); ;
4057     break;}
4058 case 20:
4059 #line 397 "parse.y"
4060 { if (pending_inlines) do_pending_inlines ();
4061                   pop_lang_context (); ;
4062     break;}
4063 case 21:
4064 #line 400 "parse.y"
4065 { if (pending_inlines) do_pending_inlines ();
4066                   pop_lang_context (); ;
4067     break;}
4068 case 22:
4069 #line 403 "parse.y"
4070 { push_namespace (yyvsp[-1].ttype); ;
4071     break;}
4072 case 23:
4073 #line 405 "parse.y"
4074 { pop_namespace (); ;
4075     break;}
4076 case 24:
4077 #line 407 "parse.y"
4078 { push_namespace (NULL_TREE); ;
4079     break;}
4080 case 25:
4081 #line 409 "parse.y"
4082 { pop_namespace (); ;
4083     break;}
4084 case 26:
4085 #line 411 "parse.y"
4086 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4087     break;}
4088 case 27:
4089 #line 413 "parse.y"
4090 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4091     break;}
4092 case 28:
4093 #line 415 "parse.y"
4094 {
4095                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
4096                     yyvsp[-1].ttype = lastiddecl;
4097                   do_using_directive (yyvsp[-1].ttype);
4098                 ;
4099     break;}
4100 case 29:
4101 #line 421 "parse.y"
4102 { pedantic = yyvsp[-1].itype; ;
4103     break;}
4104 case 30:
4105 #line 426 "parse.y"
4106 { yyval.ttype = yyvsp[0].ttype; ;
4107     break;}
4108 case 31:
4109 #line 428 "parse.y"
4110 { yyval.ttype = yyvsp[0].ttype; ;
4111     break;}
4112 case 32:
4113 #line 430 "parse.y"
4114 { yyval.ttype = yyvsp[0].ttype; ;
4115     break;}
4116 case 35:
4117 #line 437 "parse.y"
4118 { yyval.ttype = yyvsp[0].ttype; ;
4119     break;}
4120 case 36:
4121 #line 439 "parse.y"
4122 { yyval.ttype = yyvsp[0].ttype; ;
4123     break;}
4124 case 37:
4125 #line 444 "parse.y"
4126 { push_lang_context (yyvsp[0].ttype); ;
4127     break;}
4128 case 38:
4129 #line 446 "parse.y"
4130 { if (current_lang_name != yyvsp[0].ttype)
4131                     cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4132                   pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4133     break;}
4134 case 39:
4135 #line 453 "parse.y"
4136 { begin_template_parm_list (); ;
4137     break;}
4138 case 40:
4139 #line 455 "parse.y"
4140 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4141     break;}
4142 case 41:
4143 #line 457 "parse.y"
4144 { begin_specialization(); 
4145                   yyval.ttype = NULL_TREE; ;
4146     break;}
4147 case 42:
4148 #line 463 "parse.y"
4149 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4150     break;}
4151 case 43:
4152 #line 465 "parse.y"
4153 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4154     break;}
4155 case 44:
4156 #line 470 "parse.y"
4157 { yyval.ttype = yyvsp[0].ttype; ;
4158     break;}
4159 case 45:
4160 #line 472 "parse.y"
4161 { yyval.ttype = NULL_TREE; ;
4162     break;}
4163 case 46:
4164 #line 476 "parse.y"
4165 { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4166     break;}
4167 case 47:
4168 #line 478 "parse.y"
4169 { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
4170     break;}
4171 case 48:
4172 #line 483 "parse.y"
4173 { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4174     break;}
4175 case 49:
4176 #line 495 "parse.y"
4177 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4178     break;}
4179 case 50:
4180 #line 497 "parse.y"
4181 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4182     break;}
4183 case 51:
4184 #line 499 "parse.y"
4185 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4186     break;}
4187 case 52:
4188 #line 501 "parse.y"
4189 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4190     break;}
4191 case 53:
4192 #line 503 "parse.y"
4193 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4194     break;}
4195 case 54:
4196 #line 505 "parse.y"
4197 {
4198                   if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4199                       && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4200                       && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4201                     {
4202                       error ("invalid default template argument");
4203                       yyvsp[0].ttype = error_mark_node;
4204                     }
4205                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4206                 ;
4207     break;}
4208 case 55:
4209 #line 520 "parse.y"
4210
4211                   if (yyvsp[-1].ttype) 
4212                     end_template_decl (); 
4213                   else
4214                     end_specialization ();
4215                 ;
4216     break;}
4217 case 56:
4218 #line 528 "parse.y"
4219
4220                   if (yyvsp[-1].ttype) 
4221                     end_template_decl ();
4222                   else
4223                     end_specialization (); 
4224                 ;
4225     break;}
4226 case 58:
4227 #line 539 "parse.y"
4228 {;
4229     break;}
4230 case 59:
4231 #line 541 "parse.y"
4232 {
4233                   note_list_got_semicolon (yyvsp[-2].ftype.t);
4234                 ;
4235     break;}
4236 case 60:
4237 #line 545 "parse.y"
4238 { pedwarn ("empty declaration"); ;
4239     break;}
4240 case 62:
4241 #line 548 "parse.y"
4242 {
4243                   tree t, attrs;
4244                   split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4245                   shadow_tag (t);
4246                   note_list_got_semicolon (yyvsp[-1].ftype.t);
4247                 ;
4248     break;}
4249 case 66:
4250 #line 561 "parse.y"
4251 { yyval.itype = 0; ;
4252     break;}
4253 case 67:
4254 #line 563 "parse.y"
4255 { yyval.itype = 1; ;
4256     break;}
4257 case 73:
4258 #line 579 "parse.y"
4259 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4260     break;}
4261 case 74:
4262 #line 581 "parse.y"
4263 { ;
4264     break;}
4265 case 75:
4266 #line 583 "parse.y"
4267 { ;
4268     break;}
4269 case 76:
4270 #line 588 "parse.y"
4271 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4272     break;}
4273 case 77:
4274 #line 590 "parse.y"
4275 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4276     break;}
4277 case 78:
4278 #line 592 "parse.y"
4279 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4280                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4281                 ;
4282     break;}
4283 case 79:
4284 #line 596 "parse.y"
4285 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4286     break;}
4287 case 80:
4288 #line 598 "parse.y"
4289 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4290     break;}
4291 case 81:
4292 #line 600 "parse.y"
4293 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4294                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4295                 ;
4296     break;}
4297 case 82:
4298 #line 604 "parse.y"
4299 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4300     break;}
4301 case 83:
4302 #line 606 "parse.y"
4303 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4304     break;}
4305 case 84:
4306 #line 608 "parse.y"
4307 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4308                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4309                 ;
4310     break;}
4311 case 85:
4312 #line 612 "parse.y"
4313 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4314     break;}
4315 case 86:
4316 #line 614 "parse.y"
4317 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4318     break;}
4319 case 87:
4320 #line 616 "parse.y"
4321 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4322                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4323                 ;
4324     break;}
4325 case 88:
4326 #line 623 "parse.y"
4327 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
4328                     YYERROR1; ;
4329     break;}
4330 case 89:
4331 #line 626 "parse.y"
4332 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4333                     YYERROR1; ;
4334     break;}
4335 case 90:
4336 #line 629 "parse.y"
4337 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4338                     YYERROR1; ;
4339     break;}
4340 case 91:
4341 #line 632 "parse.y"
4342 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4343                     YYERROR1; ;
4344     break;}
4345 case 92:
4346 #line 635 "parse.y"
4347 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4348                     YYERROR1; ;
4349     break;}
4350 case 93:
4351 #line 641 "parse.y"
4352 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4353     break;}
4354 case 94:
4355 #line 643 "parse.y"
4356 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4357     break;}
4358 case 95:
4359 #line 645 "parse.y"
4360 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4361     break;}
4362 case 96:
4363 #line 647 "parse.y"
4364 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4365     break;}
4366 case 97:
4367 #line 654 "parse.y"
4368 { tree specs = strip_attrs (yyvsp[-1].ttype);
4369                   yyval.ttype = start_method (specs, yyvsp[0].ttype);
4370                  rest_of_mdef:
4371                   if (! yyval.ttype)
4372                     YYERROR1;
4373                   if (yychar == YYEMPTY)
4374                     yychar = YYLEX;
4375                   reinit_parse_for_method (yychar, yyval.ttype); ;
4376     break;}
4377 case 98:
4378 #line 663 "parse.y"
4379 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4380     break;}
4381 case 99:
4382 #line 665 "parse.y"
4383 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4384                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4385     break;}
4386 case 100:
4387 #line 668 "parse.y"
4388 { tree specs = strip_attrs (yyvsp[-1].ttype);
4389                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4390     break;}
4391 case 101:
4392 #line 671 "parse.y"
4393 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4394     break;}
4395 case 102:
4396 #line 673 "parse.y"
4397 { tree specs = strip_attrs (yyvsp[-1].ttype);
4398                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4399     break;}
4400 case 103:
4401 #line 676 "parse.y"
4402 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4403     break;}
4404 case 104:
4405 #line 681 "parse.y"
4406 {
4407                   if (! current_function_parms_stored)
4408                     store_parm_decls ();
4409                   yyval.ttype = yyvsp[0].ttype;
4410                 ;
4411     break;}
4412 case 105:
4413 #line 690 "parse.y"
4414 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4415     break;}
4416 case 106:
4417 #line 692 "parse.y"
4418 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4419     break;}
4420 case 107:
4421 #line 694 "parse.y"
4422 { store_return_init (yyval.ttype, NULL_TREE); ;
4423     break;}
4424 case 108:
4425 #line 699 "parse.y"
4426 {
4427                   if (yyvsp[0].itype == 0)
4428                     error ("no base initializers given following ':'");
4429                   setup_vtbl_ptr ();
4430                   /* Always keep the BLOCK node associated with the outermost
4431                      pair of curley braces of a function.  These are needed
4432                      for correct operation of dwarfout.c.  */
4433                   keep_next_level ();
4434                 ;
4435     break;}
4436 case 109:
4437 #line 712 "parse.y"
4438 {
4439                   if (! current_function_parms_stored)
4440                     store_parm_decls ();
4441
4442                   if (DECL_CONSTRUCTOR_P (current_function_decl))
4443                     {
4444                       /* Make a contour for the initializer list.  */
4445                       pushlevel (0);
4446                       clear_last_expr ();
4447                       expand_start_bindings (0);
4448                     }
4449                   else if (current_class_type == NULL_TREE)
4450                     error ("base initializers not allowed for non-member functions");
4451                   else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4452                     error ("only constructors take base initializers");
4453                 ;
4454     break;}
4455 case 110:
4456 #line 732 "parse.y"
4457 { yyval.itype = 0; ;
4458     break;}
4459 case 111:
4460 #line 734 "parse.y"
4461 { yyval.itype = 1; ;
4462     break;}
4463 case 114:
4464 #line 741 "parse.y"
4465 {
4466                   if (current_class_name)
4467                     pedwarn ("anachronistic old style base class initializer");
4468                   expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4469                 ;
4470     break;}
4471 case 115:
4472 #line 747 "parse.y"
4473 {
4474                   if (current_class_name)
4475                     pedwarn ("anachronistic old style base class initializer");
4476                   expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4477                 ;
4478     break;}
4479 case 116:
4480 #line 753 "parse.y"
4481 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4482     break;}
4483 case 117:
4484 #line 755 "parse.y"
4485 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4486     break;}
4487 case 118:
4488 #line 757 "parse.y"
4489 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4490     break;}
4491 case 119:
4492 #line 759 "parse.y"
4493 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4494     break;}
4495 case 120:
4496 #line 761 "parse.y"
4497 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4498                                       yyvsp[-1].ttype); ;
4499     break;}
4500 case 121:
4501 #line 764 "parse.y"
4502 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4503                                       void_type_node); ;
4504     break;}
4505 case 133:
4506 #line 790 "parse.y"
4507 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4508                   yyungetc (';', 1); ;
4509     break;}
4510 case 135:
4511 #line 794 "parse.y"
4512 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4513                   do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4514     break;}
4515 case 137:
4516 #line 798 "parse.y"
4517 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4518     break;}
4519 case 139:
4520 #line 801 "parse.y"
4521 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4522     break;}
4523 case 141:
4524 #line 804 "parse.y"
4525 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4526                   yyungetc (';', 1); ;
4527     break;}
4528 case 143:
4529 #line 809 "parse.y"
4530 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4531                   do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4532     break;}
4533 case 145:
4534 #line 813 "parse.y"
4535 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4536     break;}
4537 case 147:
4538 #line 816 "parse.y"
4539 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4540     break;}
4541 case 149:
4542 #line 821 "parse.y"
4543 { begin_explicit_instantiation(); ;
4544     break;}
4545 case 150:
4546 #line 824 "parse.y"
4547 { end_explicit_instantiation(); ;
4548     break;}
4549 case 151:
4550 #line 832 "parse.y"
4551 {
4552                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4553                   if (yyval.ttype != error_mark_node)
4554                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4555                 ;
4556     break;}
4557 case 152:
4558 #line 838 "parse.y"
4559 {
4560                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4561                   if (yyval.ttype != error_mark_node)
4562                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4563                 ;
4564     break;}
4565 case 154:
4566 #line 848 "parse.y"
4567 {
4568                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4569                   if (yyval.ttype != error_mark_node)
4570                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4571                 ;
4572     break;}
4573 case 156:
4574 #line 858 "parse.y"
4575 {
4576                   /* Handle `Class<Class<Type>>' without space in the `>>' */
4577                   pedwarn ("`>>' should be `> >' in template class name");
4578                   yyungetc ('>', 1);
4579                 ;
4580     break;}
4581 case 157:
4582 #line 867 "parse.y"
4583 { yyval.ttype = NULL_TREE; ;
4584     break;}
4585 case 159:
4586 #line 873 "parse.y"
4587 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4588     break;}
4589 case 160:
4590 #line 875 "parse.y"
4591 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4592     break;}
4593 case 161:
4594 #line 880 "parse.y"
4595 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4596     break;}
4597 case 163:
4598 #line 886 "parse.y"
4599 { yyval.code = NEGATE_EXPR; ;
4600     break;}
4601 case 164:
4602 #line 888 "parse.y"
4603 { yyval.code = CONVERT_EXPR; ;
4604     break;}
4605 case 165:
4606 #line 890 "parse.y"
4607 { yyval.code = PREINCREMENT_EXPR; ;
4608     break;}
4609 case 166:
4610 #line 892 "parse.y"
4611 { yyval.code = PREDECREMENT_EXPR; ;
4612     break;}
4613 case 167:
4614 #line 894 "parse.y"
4615 { yyval.code = TRUTH_NOT_EXPR; ;
4616     break;}
4617 case 168:
4618 #line 899 "parse.y"
4619 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4620     break;}
4621 case 170:
4622 #line 905 "parse.y"
4623 { error ("ANSI C++ forbids an empty condition for `%s'",
4624                          cond_stmt_keyword);
4625                   yyval.ttype = integer_zero_node; ;
4626     break;}
4627 case 171:
4628 #line 909 "parse.y"
4629 { yyval.ttype = yyvsp[-1].ttype; ;
4630     break;}
4631 case 172:
4632 #line 914 "parse.y"
4633 { error ("ANSI C++ forbids an empty condition for `%s'",
4634                          cond_stmt_keyword);
4635                   yyval.ttype = integer_zero_node; ;
4636     break;}
4637 case 173:
4638 #line 918 "parse.y"
4639 { yyval.ttype = yyvsp[-1].ttype; ;
4640     break;}
4641 case 174:
4642 #line 923 "parse.y"
4643 { yyval.ttype = NULL_TREE; ;
4644     break;}
4645 case 175:
4646 #line 925 "parse.y"
4647 { yyval.ttype = condition_conversion (yyval.ttype); ;
4648     break;}
4649 case 176:
4650 #line 927 "parse.y"
4651 { yyval.ttype = NULL_TREE; ;
4652     break;}
4653 case 177:
4654 #line 932 "parse.y"
4655 { {
4656                   tree d;
4657                   for (d = getdecls (); d; d = TREE_CHAIN (d))
4658                     if (TREE_CODE (d) == TYPE_DECL) {
4659                       tree s = TREE_TYPE (d);
4660                       if (TREE_CODE (s) == RECORD_TYPE)
4661                         cp_error ("definition of class `%T' in condition", s);
4662                       else if (TREE_CODE (s) == ENUMERAL_TYPE)
4663                         cp_error ("definition of enum `%T' in condition", s);
4664                     }
4665                   }
4666                   current_declspecs = yyvsp[-4].ftype.t;
4667                   yyvsp[0].itype = suspend_momentary ();
4668                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
4669                                           yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
4670                 ;
4671     break;}
4672 case 178:
4673 #line 949 "parse.y"
4674
4675                   cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4676                   resume_momentary (yyvsp[-2].itype);
4677                   yyval.ttype = yyvsp[-1].ttype; 
4678                   if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4679                     cp_error ("definition of array `%#D' in condition", yyval.ttype); 
4680                 ;
4681     break;}
4682 case 184:
4683 #line 968 "parse.y"
4684 { yyval.ttype = begin_compound_stmt (1); ;
4685     break;}
4686 case 185:
4687 #line 970 "parse.y"
4688 { finish_compound_stmt (1, yyvsp[-1].ttype); ;
4689     break;}
4690 case 187:
4691 #line 977 "parse.y"
4692 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4693                                   build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4694     break;}
4695 case 188:
4696 #line 980 "parse.y"
4697 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4698                                   build_expr_list (NULL_TREE, error_mark_node)); ;
4699     break;}
4700 case 189:
4701 #line 983 "parse.y"
4702 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4703     break;}
4704 case 190:
4705 #line 985 "parse.y"
4706 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4707     break;}
4708 case 191:
4709 #line 990 "parse.y"
4710 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4711     break;}
4712 case 193:
4713 #line 996 "parse.y"
4714 { yyval.ttype = yyvsp[0].ttype; ;
4715     break;}
4716 case 194:
4717 #line 999 "parse.y"
4718 { yyval.ttype = yyvsp[0].ttype;
4719                   pedantic = yyvsp[-1].itype; ;
4720     break;}
4721 case 195:
4722 #line 1002 "parse.y"
4723 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4724     break;}
4725 case 196:
4726 #line 1004 "parse.y"
4727 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4728     break;}
4729 case 197:
4730 #line 1006 "parse.y"
4731 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4732     break;}
4733 case 198:
4734 #line 1008 "parse.y"
4735 { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
4736                   if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
4737                     TREE_NEGATED_INT (yyval.ttype) = 1;
4738                   overflow_warning (yyval.ttype);
4739                 ;
4740     break;}
4741 case 199:
4742 #line 1015 "parse.y"
4743 { if (pedantic)
4744                     pedwarn ("ANSI C++ forbids `&&'");
4745                   yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
4746     break;}
4747 case 200:
4748 #line 1019 "parse.y"
4749 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4750     break;}
4751 case 201:
4752 #line 1021 "parse.y"
4753 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4754     break;}
4755 case 202:
4756 #line 1023 "parse.y"
4757 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4758     break;}
4759 case 203:
4760 #line 1025 "parse.y"
4761 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
4762                   check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4763     break;}
4764 case 204:
4765 #line 1031 "parse.y"
4766 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
4767                   check_for_new_type ("new", yyvsp[0].ftype); ;
4768     break;}
4769 case 205:
4770 #line 1034 "parse.y"
4771 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
4772                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4773     break;}
4774 case 206:
4775 #line 1037 "parse.y"
4776 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
4777                   check_for_new_type ("new", yyvsp[0].ftype); ;
4778     break;}
4779 case 207:
4780 #line 1040 "parse.y"
4781 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
4782                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4783     break;}
4784 case 208:
4785 #line 1043 "parse.y"
4786 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4787                                   NULL_TREE, yyvsp[-3].itype); 
4788                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4789     break;}
4790 case 209:
4791 #line 1047 "parse.y"
4792 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); 
4793                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4794     break;}
4795 case 210:
4796 #line 1050 "parse.y"
4797 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); 
4798                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4799     break;}
4800 case 211:
4801 #line 1053 "parse.y"
4802 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
4803                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4804     break;}
4805 case 212:
4806 #line 1057 "parse.y"
4807 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4808     break;}
4809 case 213:
4810 #line 1059 "parse.y"
4811 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4812                   if (yychar == YYEMPTY)
4813                     yychar = YYLEX; ;
4814     break;}
4815 case 214:
4816 #line 1063 "parse.y"
4817 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4818                   if (yychar == YYEMPTY)
4819                     yychar = YYLEX; ;
4820     break;}
4821 case 215:
4822 #line 1067 "parse.y"
4823 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4824     break;}
4825 case 216:
4826 #line 1069 "parse.y"
4827 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4828     break;}
4829 case 217:
4830 #line 1074 "parse.y"
4831 { yyval.ttype = yyvsp[-1].ttype; ;
4832     break;}
4833 case 218:
4834 #line 1076 "parse.y"
4835 {
4836                   yyval.ttype = yyvsp[-1].ttype; 
4837                   pedwarn ("old style placement syntax, use () instead");
4838                 ;
4839     break;}
4840 case 219:
4841 #line 1084 "parse.y"
4842 { yyval.ttype = yyvsp[-1].ttype; ;
4843     break;}
4844 case 220:
4845 #line 1086 "parse.y"
4846 { yyval.ttype = NULL_TREE; ;
4847     break;}
4848 case 221:
4849 #line 1088 "parse.y"
4850 {
4851                   cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4852                   yyval.ttype = error_mark_node;
4853                 ;
4854     break;}
4855 case 222:
4856 #line 1096 "parse.y"
4857 {
4858                   if (pedantic)
4859                     pedwarn ("ANSI C++ forbids initialization of new expression with `='");
4860                   if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
4861                       && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
4862                     yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
4863                   else
4864                     yyval.ttype = yyvsp[0].ttype;
4865                 ;
4866     break;}
4867 case 223:
4868 #line 1110 "parse.y"
4869 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4870                   TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4871                   yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4872                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
4873     break;}
4874 case 224:
4875 #line 1115 "parse.y"
4876 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4877                   TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4878                   yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4879                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
4880     break;}
4881 case 226:
4882 #line 1124 "parse.y"
4883 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
4884     break;}
4885 case 227:
4886 #line 1126 "parse.y"
4887
4888                   tree init = build_nt (CONSTRUCTOR, NULL_TREE,
4889                                         nreverse (yyvsp[-2].ttype)); 
4890                   if (pedantic)
4891                     pedwarn ("ANSI C++ forbids constructor-expressions");
4892                   /* Indicate that this was a GNU C constructor expression.  */
4893                   TREE_HAS_CONSTRUCTOR (init) = 1;
4894
4895                   yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
4896                 ;
4897     break;}
4898 case 229:
4899 #line 1142 "parse.y"
4900 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
4901     break;}
4902 case 230:
4903 #line 1144 "parse.y"
4904 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
4905     break;}
4906 case 231:
4907 #line 1146 "parse.y"
4908 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4909     break;}
4910 case 232:
4911 #line 1148 "parse.y"
4912 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4913     break;}
4914 case 233:
4915 #line 1150 "parse.y"
4916 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4917     break;}
4918 case 234:
4919 #line 1152 "parse.y"
4920 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4921     break;}
4922 case 235:
4923 #line 1154 "parse.y"
4924 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4925     break;}
4926 case 236:
4927 #line 1156 "parse.y"
4928 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4929     break;}
4930 case 237:
4931 #line 1158 "parse.y"
4932 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4933     break;}
4934 case 238:
4935 #line 1160 "parse.y"
4936 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4937     break;}
4938 case 239:
4939 #line 1162 "parse.y"
4940 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4941     break;}
4942 case 240:
4943 #line 1164 "parse.y"
4944 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4945     break;}
4946 case 241:
4947 #line 1166 "parse.y"
4948 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4949     break;}
4950 case 242:
4951 #line 1168 "parse.y"
4952 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4953     break;}
4954 case 243:
4955 #line 1170 "parse.y"
4956 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4957     break;}
4958 case 244:
4959 #line 1172 "parse.y"
4960 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4961     break;}
4962 case 245:
4963 #line 1174 "parse.y"
4964 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4965     break;}
4966 case 246:
4967 #line 1176 "parse.y"
4968 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4969     break;}
4970 case 247:
4971 #line 1178 "parse.y"
4972 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4973     break;}
4974 case 248:
4975 #line 1180 "parse.y"
4976 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
4977     break;}
4978 case 249:
4979 #line 1182 "parse.y"
4980 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
4981                   if (yyval.ttype != error_mark_node)
4982                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
4983     break;}
4984 case 250:
4985 #line 1186 "parse.y"
4986 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
4987     break;}
4988 case 251:
4989 #line 1188 "parse.y"
4990 { yyval.ttype = build_throw (NULL_TREE); ;
4991     break;}
4992 case 252:
4993 #line 1190 "parse.y"
4994 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
4995     break;}
4996 case 253:
4997 #line 1208 "parse.y"
4998 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4999     break;}
5000 case 259:
5001 #line 1217 "parse.y"
5002 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ;
5003     break;}
5004 case 260:
5005 #line 1221 "parse.y"
5006 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5007     break;}
5008 case 261:
5009 #line 1223 "parse.y"
5010 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5011     break;}
5012 case 262:
5013 #line 1228 "parse.y"
5014 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5015     break;}
5016 case 263:
5017 #line 1230 "parse.y"
5018 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5019     break;}
5020 case 264:
5021 #line 1233 "parse.y"
5022 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5023     break;}
5024 case 269:
5025 #line 1245 "parse.y"
5026 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5027     break;}
5028 case 270:
5029 #line 1247 "parse.y"
5030 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5031     break;}
5032 case 271:
5033 #line 1249 "parse.y"
5034 { yyval.ttype = yyvsp[-1].ttype; ;
5035     break;}
5036 case 272:
5037 #line 1254 "parse.y"
5038 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5039     break;}
5040 case 273:
5041 #line 1256 "parse.y"
5042 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5043     break;}
5044 case 277:
5045 #line 1264 "parse.y"
5046 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5047     break;}
5048 case 278:
5049 #line 1269 "parse.y"
5050 {
5051                   if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
5052                     yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
5053                   else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
5054                     yyval.ttype = do_identifier (yyval.ttype, 1);
5055                 ;
5056     break;}
5057 case 281:
5058 #line 1278 "parse.y"
5059 {
5060                   if (processing_template_decl)
5061                     push_obstacks (&permanent_obstack, &permanent_obstack);
5062                   yyval.ttype = combine_strings (yyval.ttype);
5063                   if (processing_template_decl)
5064                     pop_obstacks ();
5065                 ;
5066     break;}
5067 case 282:
5068 #line 1286 "parse.y"
5069 { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5070     break;}
5071 case 283:
5072 #line 1288 "parse.y"
5073 { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5074                   yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5075     break;}
5076 case 284:
5077 #line 1291 "parse.y"
5078 { yyval.ttype = error_mark_node; ;
5079     break;}
5080 case 285:
5081 #line 1293 "parse.y"
5082 { if (current_function_decl == 0)
5083                     {
5084                       error ("braced-group within expression allowed only inside a function");
5085                       YYERROR;
5086                     }
5087                   if (pedantic)
5088                     pedwarn ("ANSI C++ forbids braced-groups within expressions");  
5089                   yyval.ttype = begin_stmt_expr (); 
5090                 ;
5091     break;}
5092 case 286:
5093 #line 1303 "parse.y"
5094 { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5095     break;}
5096 case 287:
5097 #line 1305 "parse.y"
5098 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5099     break;}
5100 case 288:
5101 #line 1307 "parse.y"
5102 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5103     break;}
5104 case 289:
5105 #line 1309 "parse.y"
5106 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5107     break;}
5108 case 290:
5109 #line 1311 "parse.y"
5110 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
5111     break;}
5112 case 291:
5113 #line 1313 "parse.y"
5114 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
5115     break;}
5116 case 292:
5117 #line 1316 "parse.y"
5118 { yyval.ttype = finish_this_expr (); ;
5119     break;}
5120 case 293:
5121 #line 1318 "parse.y"
5122 {
5123                   tree type = NULL_TREE;
5124                   tree id = yyval.ttype;
5125
5126                   /* This is a C cast in C++'s `functional' notation.  */
5127                   if (yyvsp[-1].ttype == error_mark_node)
5128                     {
5129                       yyval.ttype = error_mark_node;
5130                       break;
5131                     }
5132 #if 0
5133                   if (yyvsp[-1].ttype == NULL_TREE)
5134                     {
5135                       error ("cannot cast null list to type `%s'",
5136                              IDENTIFIER_POINTER (TYPE_NAME (id)));
5137                       yyval.ttype = error_mark_node;
5138                       break;
5139                     }
5140 #endif
5141 #if 0
5142                   /* type is not set! (mrs) */
5143                   if (type == error_mark_node)
5144                     yyval.ttype = error_mark_node;
5145                   else
5146 #endif
5147                     {
5148                       if (id == ridpointers[(int) RID_CONST])
5149                         type = build_type_variant (integer_type_node, 1, 0);
5150                       else if (id == ridpointers[(int) RID_VOLATILE])
5151                         type = build_type_variant (integer_type_node, 0, 1);
5152 #if 0
5153                       /* should not be able to get here (mrs) */
5154                       else if (id == ridpointers[(int) RID_FRIEND])
5155                         {
5156                           error ("cannot cast expression to `friend' type");
5157                           yyval.ttype = error_mark_node;
5158                           break;
5159                         }
5160 #endif
5161                       else my_friendly_abort (79);
5162                       yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5163                     }
5164                 ;
5165     break;}
5166 case 295:
5167 #line 1363 "parse.y"
5168 { tree type = groktypename (yyvsp[-4].ftype.t);
5169                   check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5170                   yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5171     break;}
5172 case 296:
5173 #line 1367 "parse.y"
5174 { tree type = groktypename (yyvsp[-4].ftype.t);
5175                   check_for_new_type ("static_cast", yyvsp[-4].ftype);
5176                   yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5177     break;}
5178 case 297:
5179 #line 1371 "parse.y"
5180 { tree type = groktypename (yyvsp[-4].ftype.t);
5181                   check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5182                   yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5183     break;}
5184 case 298:
5185 #line 1375 "parse.y"
5186 { tree type = groktypename (yyvsp[-4].ftype.t);
5187                   check_for_new_type ("const_cast", yyvsp[-4].ftype);
5188                   yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5189     break;}
5190 case 299:
5191 #line 1379 "parse.y"
5192 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5193     break;}
5194 case 300:
5195 #line 1381 "parse.y"
5196 { tree type = groktypename (yyvsp[-1].ftype.t);
5197                   check_for_new_type ("typeid", yyvsp[-1].ftype);
5198                   yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5199     break;}
5200 case 301:
5201 #line 1385 "parse.y"
5202 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5203     break;}
5204 case 302:
5205 #line 1387 "parse.y"
5206 {
5207                   got_scope = NULL_TREE;
5208                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5209                     yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5210                   else
5211                     yyval.ttype = yyvsp[0].ttype;
5212                 ;
5213     break;}
5214 case 303:
5215 #line 1395 "parse.y"
5216 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5217     break;}
5218 case 304:
5219 #line 1397 "parse.y"
5220 { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5221     break;}
5222 case 305:
5223 #line 1399 "parse.y"
5224 { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5225     break;}
5226 case 306:
5227 #line 1401 "parse.y"
5228
5229                   yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
5230                 ;
5231     break;}
5232 case 307:
5233 #line 1405 "parse.y"
5234 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5235     break;}
5236 case 308:
5237 #line 1407 "parse.y"
5238 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5239     break;}
5240 case 309:
5241 #line 1409 "parse.y"
5242 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5243     break;}
5244 case 310:
5245 #line 1411 "parse.y"
5246 { if (processing_template_decl)
5247                     yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5248                   else
5249                     yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5250     break;}
5251 case 311:
5252 #line 1416 "parse.y"
5253 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5254     break;}
5255 case 312:
5256 #line 1418 "parse.y"
5257 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5258     break;}
5259 case 313:
5260 #line 1420 "parse.y"
5261 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5262     break;}
5263 case 314:
5264 #line 1422 "parse.y"
5265 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5266     break;}
5267 case 315:
5268 #line 1425 "parse.y"
5269 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5270     break;}
5271 case 316:
5272 #line 1427 "parse.y"
5273 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5274     break;}
5275 case 317:
5276 #line 1429 "parse.y"
5277 {
5278                   yyval.ttype = error_mark_node;
5279                 ;
5280     break;}
5281 case 318:
5282 #line 1474 "parse.y"
5283 { yyval.itype = 0; ;
5284     break;}
5285 case 319:
5286 #line 1476 "parse.y"
5287 { got_scope = NULL_TREE; yyval.itype = 1; ;
5288     break;}
5289 case 320:
5290 #line 1481 "parse.y"
5291 { yyval.itype = 0; ;
5292     break;}
5293 case 321:
5294 #line 1483 "parse.y"
5295 { got_scope = NULL_TREE; yyval.itype = 1; ;
5296     break;}
5297 case 322:
5298 #line 1488 "parse.y"
5299 { yyval.ttype = boolean_true_node; ;
5300     break;}
5301 case 323:
5302 #line 1490 "parse.y"
5303 { yyval.ttype = boolean_false_node; ;
5304     break;}
5305 case 325:
5306 #line 1497 "parse.y"
5307 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5308     break;}
5309 case 326:
5310 #line 1502 "parse.y"
5311 {
5312                   if (! current_function_parms_stored)
5313                     store_parm_decls ();
5314                   setup_vtbl_ptr ();
5315                   /* Always keep the BLOCK node associated with the outermost
5316                      pair of curley braces of a function.  These are needed
5317                      for correct operation of dwarfout.c.  */
5318                   keep_next_level ();
5319                 ;
5320     break;}
5321 case 327:
5322 #line 1515 "parse.y"
5323 { got_object = TREE_TYPE (yyval.ttype); ;
5324     break;}
5325 case 328:
5326 #line 1517 "parse.y"
5327 {
5328                   yyval.ttype = build_x_arrow (yyval.ttype); 
5329                   got_object = TREE_TYPE (yyval.ttype);
5330                 ;
5331     break;}
5332 case 329:
5333 #line 1525 "parse.y"
5334 {
5335                   resume_momentary (yyvsp[-1].itype);
5336                   if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5337                     note_got_semicolon (yyvsp[-2].ftype.t);
5338                 ;
5339     break;}
5340 case 330:
5341 #line 1531 "parse.y"
5342 {
5343                   resume_momentary (yyvsp[-1].itype);
5344                   note_list_got_semicolon (yyvsp[-2].ftype.t);
5345                 ;
5346     break;}
5347 case 331:
5348 #line 1536 "parse.y"
5349 { resume_momentary (yyvsp[-1].itype); ;
5350     break;}
5351 case 332:
5352 #line 1538 "parse.y"
5353 {
5354                   shadow_tag (yyvsp[-1].ftype.t);
5355                   note_list_got_semicolon (yyvsp[-1].ftype.t);
5356                 ;
5357     break;}
5358 case 333:
5359 #line 1543 "parse.y"
5360 { warning ("empty declaration"); ;
5361     break;}
5362 case 334:
5363 #line 1545 "parse.y"
5364 { pedantic = yyvsp[-1].itype; ;
5365     break;}
5366 case 337:
5367 #line 1559 "parse.y"
5368 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5369                                              NULL_TREE, NULL_TREE); ;
5370     break;}
5371 case 338:
5372 #line 1562 "parse.y"
5373 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5374                                              NULL_TREE); ;
5375     break;}
5376 case 339:
5377 #line 1569 "parse.y"
5378 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5379                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5380     break;}
5381 case 340:
5382 #line 1572 "parse.y"
5383 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5384                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5385     break;}
5386 case 341:
5387 #line 1575 "parse.y"
5388 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
5389                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5390     break;}
5391 case 342:
5392 #line 1578 "parse.y"
5393 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5394                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
5395     break;}
5396 case 343:
5397 #line 1581 "parse.y"
5398 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
5399                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5400     break;}
5401 case 346:
5402 #line 1597 "parse.y"
5403 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
5404                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5405     break;}
5406 case 347:
5407 #line 1600 "parse.y"
5408 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5409                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5410     break;}
5411 case 348:
5412 #line 1603 "parse.y"
5413 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
5414                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5415     break;}
5416 case 349:
5417 #line 1606 "parse.y"
5418 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5419                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5420     break;}
5421 case 350:
5422 #line 1609 "parse.y"
5423 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5424                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5425     break;}
5426 case 351:
5427 #line 1612 "parse.y"
5428 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5429                                          chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
5430                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5431     break;}
5432 case 352:
5433 #line 1619 "parse.y"
5434 { if (extra_warnings)
5435                     warning ("`%s' is not at beginning of declaration",
5436                              IDENTIFIER_POINTER (yyval.ttype));
5437                   yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5438     break;}
5439 case 353:
5440 #line 1624 "parse.y"
5441 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5442     break;}
5443 case 354:
5444 #line 1626 "parse.y"
5445 { if (extra_warnings)
5446                     warning ("`%s' is not at beginning of declaration",
5447                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5448                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5449     break;}
5450 case 355:
5451 #line 1631 "parse.y"
5452 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5453     break;}
5454 case 356:
5455 #line 1633 "parse.y"
5456 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5457     break;}
5458 case 357:
5459 #line 1643 "parse.y"
5460 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5461     break;}
5462 case 358:
5463 #line 1645 "parse.y"
5464 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5465     break;}
5466 case 359:
5467 #line 1647 "parse.y"
5468 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5469                   TREE_STATIC (yyval.ttype) = 1; ;
5470     break;}
5471 case 360:
5472 #line 1650 "parse.y"
5473 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5474                     warning ("`%s' is not at beginning of declaration",
5475                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5476                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5477                   TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5478     break;}
5479 case 361:
5480 #line 1656 "parse.y"
5481 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5482     break;}
5483 case 362:
5484 #line 1658 "parse.y"
5485 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5486     break;}
5487 case 363:
5488 #line 1669 "parse.y"
5489 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); 
5490                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5491     break;}
5492 case 364:
5493 #line 1672 "parse.y"
5494 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
5495                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5496     break;}
5497 case 365:
5498 #line 1675 "parse.y"
5499 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5500                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5501     break;}
5502 case 366:
5503 #line 1678 "parse.y"
5504 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
5505                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5506     break;}
5507 case 367:
5508 #line 1684 "parse.y"
5509 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5510     break;}
5511 case 368:
5512 #line 1686 "parse.y"
5513 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5514     break;}
5515 case 370:
5516 #line 1696 "parse.y"
5517 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5518     break;}
5519 case 371:
5520 #line 1698 "parse.y"
5521 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5522     break;}
5523 case 372:
5524 #line 1700 "parse.y"
5525 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5526                   yyval.ftype.new_type_flag = 0; ;
5527     break;}
5528 case 373:
5529 #line 1703 "parse.y"
5530 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5531                   yyval.ftype.new_type_flag = 0; ;
5532     break;}
5533 case 374:
5534 #line 1706 "parse.y"
5535 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5536
5537                   yyval.ftype.new_type_flag = 0;
5538                   if (IS_AGGR_TYPE (type))
5539                     {
5540                       sorry ("sigof type specifier");
5541                       yyval.ftype.t = type;
5542                     }
5543                   else
5544                     {
5545                       error ("`sigof' applied to non-aggregate expression");
5546                       yyval.ftype.t = error_mark_node;
5547                     }
5548                 ;
5549     break;}
5550 case 375:
5551 #line 1721 "parse.y"
5552 { tree type = groktypename (yyvsp[-1].ftype.t);
5553
5554                   yyval.ftype.new_type_flag = 0;
5555                   if (IS_AGGR_TYPE (type))
5556                     {
5557                       sorry ("sigof type specifier");
5558                       yyval.ftype.t = type;
5559                     }
5560                   else
5561                     {
5562                       error("`sigof' applied to non-aggregate type");
5563                       yyval.ftype.t = error_mark_node;
5564                     }
5565                 ;
5566     break;}
5567 case 376:
5568 #line 1741 "parse.y"
5569 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5570     break;}
5571 case 377:
5572 #line 1743 "parse.y"
5573 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5574     break;}
5575 case 385:
5576 #line 1764 "parse.y"
5577 { yyval.ttype = NULL_TREE; ;
5578     break;}
5579 case 386:
5580 #line 1766 "parse.y"
5581 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5582     break;}
5583 case 387:
5584 #line 1771 "parse.y"
5585 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
5586                                           yyvsp[-1].ttype, prefix_attributes); ;
5587     break;}
5588 case 388:
5589 #line 1775 "parse.y"
5590 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5591     break;}
5592 case 389:
5593 #line 1777 "parse.y"
5594 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
5595                                           yyvsp[0].ttype, prefix_attributes);
5596                   cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5597     break;}
5598 case 390:
5599 #line 1790 "parse.y"
5600 { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
5601                                            yyvsp[-1].ttype, 1, &yyval.ttype); ;
5602     break;}
5603 case 391:
5604 #line 1795 "parse.y"
5605 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
5606                                   LOOKUP_ONLYCONVERTING);
5607                   yyval.itype = yyvsp[-2].itype; ;
5608     break;}
5609 case 392:
5610 #line 1799 "parse.y"
5611 { tree d;
5612                   yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
5613                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5614     break;}
5615 case 393:
5616 #line 1806 "parse.y"
5617 { yyval.itype = yyvsp[0].itype; ;
5618     break;}
5619 case 394:
5620 #line 1810 "parse.y"
5621 { yyval.itype = yyvsp[0].itype; ;
5622     break;}
5623 case 395:
5624 #line 1815 "parse.y"
5625 { /* Set things up as initdcl0_innards expects.  */
5626               yyval.ttype = yyvsp[-1].ttype; 
5627               yyvsp[-1].ttype = NULL_TREE; ;
5628     break;}
5629 case 396:
5630 #line 1819 "parse.y"
5631 {;
5632     break;}
5633 case 397:
5634 #line 1821 "parse.y"
5635 { tree d;
5636                   parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
5637                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5638     break;}
5639 case 398:
5640 #line 1830 "parse.y"
5641 { yyval.ttype = NULL_TREE; ;
5642     break;}
5643 case 399:
5644 #line 1832 "parse.y"
5645 { yyval.ttype = yyvsp[0].ttype; ;
5646     break;}
5647 case 400:
5648 #line 1837 "parse.y"
5649 { yyval.ttype = yyvsp[0].ttype; ;
5650     break;}
5651 case 401:
5652 #line 1839 "parse.y"
5653 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5654     break;}
5655 case 402:
5656 #line 1844 "parse.y"
5657 { yyval.ttype = yyvsp[-2].ttype; ;
5658     break;}
5659 case 403:
5660 #line 1849 "parse.y"
5661 { yyval.ttype = yyvsp[0].ttype; ;
5662     break;}
5663 case 404:
5664 #line 1851 "parse.y"
5665 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5666     break;}
5667 case 405:
5668 #line 1856 "parse.y"
5669 { yyval.ttype = NULL_TREE; ;
5670     break;}
5671 case 406:
5672 #line 1858 "parse.y"
5673 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5674     break;}
5675 case 407:
5676 #line 1860 "parse.y"
5677 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5678     break;}
5679 case 408:
5680 #line 1862 "parse.y"
5681 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5682     break;}
5683 case 409:
5684 #line 1864 "parse.y"
5685 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5686     break;}
5687 case 414:
5688 #line 1880 "parse.y"
5689 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
5690     break;}
5691 case 415:
5692 #line 1882 "parse.y"
5693 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5694     break;}
5695 case 416:
5696 #line 1887 "parse.y"
5697 { yyval.ttype = NULL_TREE; ;
5698     break;}
5699 case 417:
5700 #line 1889 "parse.y"
5701 { yyval.ttype = yyvsp[0].ttype; ;
5702     break;}
5703 case 419:
5704 #line 1897 "parse.y"
5705 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
5706                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5707     break;}
5708 case 420:
5709 #line 1900 "parse.y"
5710 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
5711                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5712     break;}
5713 case 421:
5714 #line 1903 "parse.y"
5715 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
5716                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5717     break;}
5718 case 422:
5719 #line 1906 "parse.y"
5720 { yyval.ttype = NULL_TREE; ;
5721     break;}
5722 case 423:
5723 #line 1913 "parse.y"
5724 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5725     break;}
5726 case 424:
5727 #line 1915 "parse.y"
5728 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5729     break;}
5730 case 425:
5731 #line 1918 "parse.y"
5732 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5733     break;}
5734 case 426:
5735 #line 1920 "parse.y"
5736 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
5737     break;}
5738 case 427:
5739 #line 1922 "parse.y"
5740 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
5741     break;}
5742 case 428:
5743 #line 1927 "parse.y"
5744 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
5745                                   NULL_TREE, 1);
5746                   reinit_parse_for_function (); ;
5747     break;}
5748 case 429:
5749 #line 1933 "parse.y"
5750 {
5751                   int nested = (hack_decl_function_context
5752                                 (current_function_decl) != NULL_TREE);
5753                   finish_function (lineno, (int)yyvsp[-1].itype, nested);
5754                   process_next_inline (yyvsp[-3].ttype);
5755                 ;
5756     break;}
5757 case 430:
5758 #line 1940 "parse.y"
5759 { process_next_inline (yyvsp[-2].ttype); ;
5760     break;}
5761 case 431:
5762 #line 1942 "parse.y"
5763 { process_next_inline (yyvsp[-2].ttype); ;
5764     break;}
5765 case 434:
5766 #line 1954 "parse.y"
5767 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5768     break;}
5769 case 435:
5770 #line 1956 "parse.y"
5771 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
5772     break;}
5773 case 437:
5774 #line 1961 "parse.y"
5775 { do_pending_defargs (); ;
5776     break;}
5777 case 438:
5778 #line 1963 "parse.y"
5779 { do_pending_defargs (); ;
5780     break;}
5781 case 439:
5782 #line 1968 "parse.y"
5783 { yyvsp[0].itype = suspend_momentary ();
5784                   yyval.ttype = start_enum (yyvsp[-1].ttype); ;
5785     break;}
5786 case 440:
5787 #line 1971 "parse.y"
5788 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
5789                   yyval.ftype.new_type_flag = 1;
5790                   resume_momentary ((int) yyvsp[-4].itype);
5791                   check_for_missing_semicolon (yyvsp[-3].ttype); ;
5792     break;}
5793 case 441:
5794 #line 1976 "parse.y"
5795 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
5796                   yyval.ftype.new_type_flag = 1;
5797                   check_for_missing_semicolon (yyval.ftype.t); ;
5798     break;}
5799 case 442:
5800 #line 1980 "parse.y"
5801 { yyvsp[0].itype = suspend_momentary ();
5802                   yyval.ttype = start_enum (make_anon_name ()); ;
5803     break;}
5804 case 443:
5805 #line 1983 "parse.y"
5806 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
5807                   resume_momentary ((int) yyvsp[-5].itype);
5808                   check_for_missing_semicolon (yyvsp[-3].ttype);
5809                   yyval.ftype.new_type_flag = 1; ;
5810     break;}
5811 case 444:
5812 #line 1988 "parse.y"
5813 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
5814                   yyval.ftype.new_type_flag = 1;
5815                   check_for_missing_semicolon (yyval.ftype.t); ;
5816     break;}
5817 case 445:
5818 #line 1992 "parse.y"
5819 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
5820                   yyval.ftype.new_type_flag = 0; ;
5821     break;}
5822 case 446:
5823 #line 1995 "parse.y"
5824 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
5825                   yyval.ftype.new_type_flag = 0; ;
5826     break;}
5827 case 447:
5828 #line 1998 "parse.y"
5829 { yyval.ftype.t = yyvsp[0].ttype;
5830                   yyval.ftype.new_type_flag = 0; ;
5831     break;}
5832 case 448:
5833 #line 2003 "parse.y"
5834 {
5835                   int semi;
5836
5837                   yyval.ttype = yyvsp[-4].ttype;
5838 #if 0
5839                   /* Need to rework class nesting in the
5840                      presence of nested classes, etc.  */
5841                   shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-4].ttype)); */
5842 #endif
5843                   if (yychar == YYEMPTY)
5844                     yychar = YYLEX;
5845                   semi = yychar == ';';
5846                   /* finish_struct nukes this anyway; if
5847                      finish_exception does too, then it can go.  */
5848                   if (semi)
5849                     note_got_semicolon (yyvsp[-4].ttype);
5850
5851                   if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
5852                     ;
5853                   else
5854                     {
5855                       yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
5856                       if (semi) note_got_semicolon (yyval.ttype);
5857                     }
5858
5859                   pop_obstacks ();
5860
5861                   if (! semi)
5862                     check_for_missing_semicolon (yyvsp[-4].ttype); 
5863                   if (current_scope () == current_function_decl)
5864                     do_pending_defargs ();
5865                 ;
5866     break;}
5867 case 449:
5868 #line 2036 "parse.y"
5869 {
5870                   if (pending_inlines 
5871                       && current_scope () == current_function_decl)
5872                     do_pending_inlines ();
5873                 ;
5874     break;}
5875 case 450:
5876 #line 2042 "parse.y"
5877
5878                   yyval.ftype.t = yyvsp[-3].ttype;
5879                   yyval.ftype.new_type_flag = 1; 
5880                   if (current_class_type == NULL_TREE)
5881                     clear_inline_text_obstack (); 
5882
5883                   /* Undo the begin_tree in left_curly.  */
5884                   end_tree ();
5885                 ;
5886     break;}
5887 case 451:
5888 #line 2052 "parse.y"
5889 {
5890                   yyval.ftype.new_type_flag = 0;
5891                   if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
5892                     {
5893                       cp_error ("%T is not a class type", yyvsp[0].ttype);
5894                       yyval.ftype.t = error_mark_node;
5895                     } 
5896                   else
5897                     {
5898                       yyval.ftype.t = yyvsp[0].ttype;
5899                       /* struct B: public A; is not accepted by the WP grammar.  */
5900                       if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
5901                           && ! TYPE_BEING_DEFINED (yyval.ftype.t))
5902                         cp_error ("base clause without member specification for `%#T'",
5903                                   yyval.ftype.t);
5904                     }
5905                 ;
5906     break;}
5907 case 455:
5908 #line 2079 "parse.y"
5909 { if (pedantic && !in_system_header)
5910                     pedwarn ("comma at end of enumerator list"); ;
5911     break;}
5912 case 457:
5913 #line 2086 "parse.y"
5914 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5915     break;}
5916 case 458:
5917 #line 2088 "parse.y"
5918 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5919     break;}
5920 case 459:
5921 #line 2090 "parse.y"
5922 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5923     break;}
5924 case 460:
5925 #line 2092 "parse.y"
5926 { error ("no body nor ';' separates two class, struct or union declarations"); ;
5927     break;}
5928 case 461:
5929 #line 2097 "parse.y"
5930 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5931     break;}
5932 case 462:
5933 #line 2102 "parse.y"
5934 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5935     break;}
5936 case 463:
5937 #line 2107 "parse.y"
5938 {
5939                   current_aggr = yyvsp[-2].ttype;
5940                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
5941                 ;
5942     break;}
5943 case 464:
5944 #line 2112 "parse.y"
5945 {
5946                   current_aggr = yyvsp[-3].ttype;
5947                   yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
5948                 ;
5949     break;}
5950 case 465:
5951 #line 2117 "parse.y"
5952 {
5953                   current_aggr = yyvsp[-2].ttype;
5954                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
5955                 ;
5956     break;}
5957 case 466:
5958 #line 2122 "parse.y"
5959 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5960     break;}
5961 case 467:
5962 #line 2124 "parse.y"
5963 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5964     break;}
5965 case 468:
5966 #line 2129 "parse.y"
5967 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
5968     break;}
5969 case 469:
5970 #line 2134 "parse.y"
5971 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
5972     break;}
5973 case 470:
5974 #line 2137 "parse.y"
5975
5976                   yyval.ttype = yyvsp[-1].ttype;
5977                   if (yyvsp[0].ttype)
5978                     xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
5979                 ;
5980     break;}
5981 case 471:
5982 #line 2143 "parse.y"
5983
5984                   yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
5985                   if (TREE_INT_CST_LOW (current_aggr) == union_type 
5986                       && TREE_CODE (yyval.ttype) != UNION_TYPE)
5987                     cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
5988                   else if (TREE_CODE (yyval.ttype) == UNION_TYPE
5989                            && TREE_INT_CST_LOW (current_aggr) != union_type)
5990                     cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
5991                   if (yyvsp[0].ttype)
5992                     {
5993                       if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
5994                         {
5995                           if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
5996                               && TYPE_SIZE (yyval.ttype) == NULL_TREE)
5997                             {
5998                               SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
5999                               if (processing_template_decl)
6000                                 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6001                             }
6002                           else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6003                             cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6004                         }
6005                       xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); 
6006                     }
6007                 ;
6008     break;}
6009 case 472:
6010 #line 2172 "parse.y"
6011 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6012                   yyungetc ('{', 1); ;
6013     break;}
6014 case 475:
6015 #line 2183 "parse.y"
6016 { yyval.ttype = NULL_TREE; ;
6017     break;}
6018 case 476:
6019 #line 2185 "parse.y"
6020 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6021     break;}
6022 case 477:
6023 #line 2187 "parse.y"
6024 { yyval.ttype = yyvsp[0].ttype; ;
6025     break;}
6026 case 479:
6027 #line 2193 "parse.y"
6028 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6029     break;}
6030 case 480:
6031 #line 2198 "parse.y"
6032 {
6033                   tree type = TREE_TYPE (yyvsp[0].ttype);
6034                   if (! is_aggr_type (type, 1))
6035                     yyval.ttype = NULL_TREE;
6036                   else if (current_aggr == signature_type_node
6037                            && (! type) && (! IS_SIGNATURE (type)))
6038                     {
6039                       error ("class name not allowed as base signature");
6040                       yyval.ttype = NULL_TREE;
6041                     }
6042                   else if (current_aggr == signature_type_node)
6043                     {
6044                       sorry ("signature inheritance, base type `%s' ignored",
6045                              IDENTIFIER_POINTER (yyval.ttype));
6046                       yyval.ttype = build_tree_list (access_public_node, type);
6047                     }
6048                   else if (type && IS_SIGNATURE (type))
6049                     {
6050                       error ("signature name not allowed as base class");
6051                       yyval.ttype = NULL_TREE;
6052                     }
6053                   else
6054                     yyval.ttype = build_tree_list (access_default_node, type);
6055                 ;
6056     break;}
6057 case 481:
6058 #line 2223 "parse.y"
6059 {
6060                   tree type = TREE_TYPE (yyvsp[0].ttype);
6061                   if (current_aggr == signature_type_node)
6062                     error ("access and source specifiers not allowed in signature");
6063                   if (! IS_AGGR_TYPE (type))
6064                     yyval.ttype = NULL_TREE;
6065                   else if (current_aggr == signature_type_node
6066                            && (! type) && (! IS_SIGNATURE (type)))
6067                     {
6068                       error ("class name not allowed as base signature");
6069                       yyval.ttype = NULL_TREE;
6070                     }
6071                   else if (current_aggr == signature_type_node)
6072                     {
6073                       sorry ("signature inheritance, base type `%s' ignored",
6074                              IDENTIFIER_POINTER (yyval.ttype));
6075                       yyval.ttype = build_tree_list (access_public_node, type);
6076                     }
6077                   else if (type && IS_SIGNATURE (type))
6078                     {
6079                       error ("signature name not allowed as base class");
6080                       yyval.ttype = NULL_TREE;
6081                     }
6082                   else
6083                     yyval.ttype = build_tree_list (yyval.ttype, type);
6084                 ;
6085     break;}
6086 case 482:
6087 #line 2253 "parse.y"
6088 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6089     break;}
6090 case 484:
6091 #line 2256 "parse.y"
6092 {
6093                   if (current_aggr == signature_type_node)
6094                     {
6095                       if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6096                         {
6097                           sorry ("`sigof' as base signature specifier");
6098                           yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6099                         }
6100                       else
6101                         {
6102                           error ("`sigof' applied to non-aggregate expression");
6103                           yyval.ttype = error_mark_node;
6104                         }
6105                     }
6106                   else
6107                     {
6108                       error ("`sigof' in struct or class declaration");
6109                       yyval.ttype = error_mark_node;
6110                     }
6111                 ;
6112     break;}
6113 case 485:
6114 #line 2277 "parse.y"
6115 {
6116                   if (current_aggr == signature_type_node)
6117                     {
6118                       if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6119                         {
6120                           sorry ("`sigof' as base signature specifier");
6121                           yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6122                         }
6123                       else
6124                         {
6125                           error ("`sigof' applied to non-aggregate expression");
6126                           yyval.ttype = error_mark_node;
6127                         }
6128                     }
6129                   else
6130                     {
6131                       error ("`sigof' in struct or class declaration");
6132                       yyval.ttype = error_mark_node;
6133                     }
6134                 ;
6135     break;}
6136 case 487:
6137 #line 2302 "parse.y"
6138 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6139                     cp_error ("`%D' access", yyvsp[-1].ttype);
6140                   yyval.ttype = access_default_virtual_node; ;
6141     break;}
6142 case 488:
6143 #line 2306 "parse.y"
6144 {
6145                   if (yyvsp[-2].ttype != access_default_virtual_node)
6146                     error ("multiple access specifiers");
6147                   else if (yyvsp[-1].ttype == access_public_node)
6148                     yyval.ttype = access_public_virtual_node;
6149                   else if (yyvsp[-1].ttype == access_protected_node)
6150                     yyval.ttype = access_protected_virtual_node;
6151                   else /* $2 == access_private_node */
6152                     yyval.ttype = access_private_virtual_node;
6153                 ;
6154     break;}
6155 case 489:
6156 #line 2317 "parse.y"
6157 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6158                     cp_error ("`%D' access", yyvsp[-1].ttype);
6159                   else if (yyval.ttype == access_public_node)
6160                     yyval.ttype = access_public_virtual_node;
6161                   else if (yyval.ttype == access_protected_node)
6162                     yyval.ttype = access_protected_virtual_node;
6163                   else if (yyval.ttype == access_private_node)
6164                     yyval.ttype = access_private_virtual_node;
6165                   else
6166                     error ("multiple `virtual' specifiers");
6167                 ;
6168     break;}
6169 case 490:
6170 #line 2332 "parse.y"
6171 { tree t = yyvsp[-1].ttype;
6172                   push_obstacks_nochange ();
6173                   end_temporary_allocation ();
6174
6175                   if (t == error_mark_node
6176                       || ! IS_AGGR_TYPE (t))
6177                     {
6178                       t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
6179                       pushtag (make_anon_name (), t, 0);
6180                     }
6181                   if (TYPE_SIZE (t))
6182                     duplicate_tag_error (t);
6183                   if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
6184                     {
6185                       t = make_lang_type (TREE_CODE (t));
6186                       pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
6187                       yyvsp[-1].ttype = t;
6188                     }
6189                   if (processing_template_decl && TYPE_CONTEXT (t)
6190                       && ! current_class_type)
6191                     push_template_decl (TYPE_STUB_DECL (t));
6192                   pushclass (t, 0);
6193                   TYPE_BEING_DEFINED (t) = 1;
6194                   if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
6195                     {
6196                       if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
6197                           && TYPE_SIZE (t) == NULL_TREE)
6198                         {
6199                           SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
6200                           if (processing_template_decl)
6201                             push_template_decl (TYPE_MAIN_DECL (t));
6202                         }
6203                       else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
6204                         cp_error ("specialization after instantiation of `%T'", t);
6205                     }
6206                   /* Reset the interface data, at the earliest possible
6207                      moment, as it might have been set via a class foo;
6208                      before.  */
6209                   /* Don't change signatures.  */
6210                   if (! IS_SIGNATURE (t))
6211                     {
6212                       extern tree pending_vtables;
6213                       int needs_writing;
6214                       tree name = TYPE_IDENTIFIER (t);
6215
6216                       if (! ANON_AGGRNAME_P (name))
6217                         {
6218                           CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
6219                           SET_CLASSTYPE_INTERFACE_UNKNOWN_X
6220                             (t, interface_unknown);
6221                         }
6222
6223                       /* Record how to set the access of this class's
6224                          virtual functions.  If write_virtuals == 2 or 3, then
6225                          inline virtuals are ``extern inline''.  */
6226                       switch (write_virtuals)
6227                         {
6228                         case 0:
6229                         case 1:
6230                           needs_writing = 1;
6231                           break;
6232                         case 2:
6233                           needs_writing = !! value_member (name, pending_vtables);
6234                           break;
6235                         case 3:
6236                           needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
6237                             && CLASSTYPE_INTERFACE_KNOWN (t);
6238                           break;
6239                         default:
6240                           needs_writing = 0;
6241                         }
6242                       CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
6243                     }
6244 #if 0
6245                   t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
6246                   if (t && IDENTIFIER_TEMPLATE (t))
6247                     overload_template_name (t, 1);
6248 #endif
6249                   reset_specialization();
6250
6251                   /* In case this is a local class within a template
6252                      function, we save the current tree structure so
6253                      that we can get it back later.  */
6254                   begin_tree ();
6255                 ;
6256     break;}
6257 case 491:
6258 #line 2421 "parse.y"
6259 {
6260                     yyval.ttype = build_self_reference ();
6261                 ;
6262     break;}
6263 case 492:
6264 #line 2428 "parse.y"
6265 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6266     break;}
6267 case 493:
6268 #line 2430 "parse.y"
6269 {
6270                   if (current_aggr == signature_type_node)
6271                     yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6272                   else
6273                     yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6274                   if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6275                 ;
6276     break;}
6277 case 494:
6278 #line 2438 "parse.y"
6279 {
6280                   tree visspec = yyvsp[-2].ttype;
6281
6282                   if (current_aggr == signature_type_node)
6283                     {
6284                       error ("access specifier not allowed in signature");
6285                       visspec = access_public_node;
6286                     }
6287                   yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6288                 ;
6289     break;}
6290 case 495:
6291 #line 2449 "parse.y"
6292 {
6293                   if (current_aggr == signature_type_node)
6294                     error ("access specifier not allowed in signature");
6295                 ;
6296     break;}
6297 case 496:
6298 #line 2459 "parse.y"
6299 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
6300                 ;
6301     break;}
6302 case 497:
6303 #line 2462 "parse.y"
6304 { /* In pushdecl, we created a reverse list of names
6305                      in this binding level.  Make sure that the chain
6306                      of what we're trying to add isn't the item itself
6307                      (which can happen with what pushdecl's doing).  */
6308                   if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6309                     {
6310                       if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6311                         yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6312                       else
6313                         yyval.ttype = yyvsp[0].ttype;
6314                     }
6315                 ;
6316     break;}
6317 case 498:
6318 #line 2478 "parse.y"
6319 { ;
6320     break;}
6321 case 499:
6322 #line 2480 "parse.y"
6323 { error ("missing ';' before right brace");
6324                   yyungetc ('}', 0); ;
6325     break;}
6326 case 500:
6327 #line 2485 "parse.y"
6328 { yyval.ttype = finish_method (yyval.ttype); ;
6329     break;}
6330 case 501:
6331 #line 2487 "parse.y"
6332 { yyval.ttype = finish_method (yyval.ttype); ;
6333     break;}
6334 case 502:
6335 #line 2489 "parse.y"
6336 { yyval.ttype = finish_method (yyval.ttype); ;
6337     break;}
6338 case 503:
6339 #line 2491 "parse.y"
6340 { yyval.ttype = finish_method (yyval.ttype); ;
6341     break;}
6342 case 504:
6343 #line 2493 "parse.y"
6344 { yyval.ttype = NULL_TREE; ;
6345     break;}
6346 case 505:
6347 #line 2495 "parse.y"
6348 { yyval.ttype = yyvsp[0].ttype;
6349                   pedantic = yyvsp[-1].itype; ;
6350     break;}
6351 case 506:
6352 #line 2498 "parse.y"
6353 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6354     break;}
6355 case 507:
6356 #line 2500 "parse.y"
6357 {
6358                   shadow_tag (yyvsp[-1].ftype.t);
6359                   note_list_got_semicolon (yyvsp[-1].ftype.t);
6360                   yyval.ttype = finish_member_template_decl (yyvsp[-2].ttype, yyvsp[-1].ftype.t);
6361                 ;
6362     break;}
6363 case 508:
6364 #line 2512 "parse.y"
6365 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6366     break;}
6367 case 509:
6368 #line 2514 "parse.y"
6369 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6370     break;}
6371 case 510:
6372 #line 2516 "parse.y"
6373 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6374                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6375     break;}
6376 case 511:
6377 #line 2519 "parse.y"
6378 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6379                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6380     break;}
6381 case 512:
6382 #line 2522 "parse.y"
6383 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6384     break;}
6385 case 513:
6386 #line 2524 "parse.y"
6387 { yyval.ttype = NULL_TREE; ;
6388     break;}
6389 case 514:
6390 #line 2535 "parse.y"
6391 { tree specs, attrs;
6392                   split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6393                   yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6394                                   build_tree_list (yyvsp[-1].ttype, attrs)); ;
6395     break;}
6396 case 515:
6397 #line 2540 "parse.y"
6398 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6399                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6400     break;}
6401 case 516:
6402 #line 2543 "parse.y"
6403 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6404     break;}
6405 case 517:
6406 #line 2549 "parse.y"
6407 { yyval.ttype = NULL_TREE; ;
6408     break;}
6409 case 519:
6410 #line 2552 "parse.y"
6411 {
6412                   /* In this context, void_type_node encodes
6413                      friends.  They have been recorded elsewhere.  */
6414                   if (yyval.ttype == void_type_node)
6415                     yyval.ttype = yyvsp[0].ttype;
6416                   else
6417                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6418                 ;
6419     break;}
6420 case 520:
6421 #line 2564 "parse.y"
6422 { yyval.ttype = NULL_TREE; ;
6423     break;}
6424 case 522:
6425 #line 2567 "parse.y"
6426 {
6427                   /* In this context, void_type_node encodes
6428                      friends.  They have been recorded elsewhere.  */
6429                   if (yyval.ttype == void_type_node)
6430                     yyval.ttype = yyvsp[0].ttype;
6431                   else
6432                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6433                 ;
6434     break;}
6435 case 527:
6436 #line 2589 "parse.y"
6437 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6438                                      &prefix_attributes);
6439                   yyvsp[-4].ttype = current_declspecs;
6440                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6441                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6442     break;}
6443 case 528:
6444 #line 2595 "parse.y"
6445 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6446                                      &prefix_attributes);
6447                   yyvsp[-4].ttype = current_declspecs;
6448                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6449                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6450     break;}
6451 case 529:
6452 #line 2604 "parse.y"
6453 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6454                                      &prefix_attributes);
6455                   yyvsp[-4].ttype = current_declspecs;
6456                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6457                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6458     break;}
6459 case 530:
6460 #line 2610 "parse.y"
6461 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6462                                      &prefix_attributes);
6463                   yyvsp[-4].ttype = current_declspecs;
6464                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6465                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6466     break;}
6467 case 531:
6468 #line 2616 "parse.y"
6469 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6470                                      &prefix_attributes);
6471                   yyvsp[-4].ttype = current_declspecs;
6472                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6473                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6474     break;}
6475 case 532:
6476 #line 2622 "parse.y"
6477 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6478                                      &prefix_attributes);
6479                   yyvsp[-3].ttype = current_declspecs;
6480                   yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6481                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6482     break;}
6483 case 533:
6484 #line 2631 "parse.y"
6485 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6486                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6487     break;}
6488 case 534:
6489 #line 2634 "parse.y"
6490 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6491                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6492     break;}
6493 case 535:
6494 #line 2640 "parse.y"
6495 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6496                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6497     break;}
6498 case 536:
6499 #line 2643 "parse.y"
6500 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6501                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6502     break;}
6503 case 537:
6504 #line 2646 "parse.y"
6505 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6506                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6507     break;}
6508 case 539:
6509 #line 2657 "parse.y"
6510 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6511     break;}
6512 case 540:
6513 #line 2662 "parse.y"
6514 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6515     break;}
6516 case 541:
6517 #line 2664 "parse.y"
6518 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6519     break;}
6520 case 542:
6521 #line 2670 "parse.y"
6522 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
6523                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6524     break;}
6525 case 543:
6526 #line 2673 "parse.y"
6527 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
6528                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6529     break;}
6530 case 544:
6531 #line 2678 "parse.y"
6532 {
6533                   if (pedantic)
6534                     pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6535                   yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6536                   yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6537                   yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6538                 ;
6539     break;}
6540 case 545:
6541 #line 2689 "parse.y"
6542 { yyval.ttype = NULL_TREE; ;
6543     break;}
6544 case 546:
6545 #line 2691 "parse.y"
6546 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6547     break;}
6548 case 547:
6549 #line 2696 "parse.y"
6550 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); 
6551                   yyval.ftype.new_type_flag = 0; ;
6552     break;}
6553 case 548:
6554 #line 2699 "parse.y"
6555 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
6556                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6557     break;}
6558 case 549:
6559 #line 2708 "parse.y"
6560 { yyval.itype = suspend_momentary (); ;
6561     break;}
6562 case 550:
6563 #line 2713 "parse.y"
6564 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6565     break;}
6566 case 551:
6567 #line 2719 "parse.y"
6568 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6569     break;}
6570 case 552:
6571 #line 2721 "parse.y"
6572 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6573     break;}
6574 case 553:
6575 #line 2723 "parse.y"
6576 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6577     break;}
6578 case 554:
6579 #line 2725 "parse.y"
6580 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6581     break;}
6582 case 555:
6583 #line 2732 "parse.y"
6584 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6585     break;}
6586 case 556:
6587 #line 2734 "parse.y"
6588 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6589     break;}
6590 case 557:
6591 #line 2736 "parse.y"
6592 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6593     break;}
6594 case 558:
6595 #line 2738 "parse.y"
6596 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6597     break;}
6598 case 559:
6599 #line 2740 "parse.y"
6600 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6601                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6602                 ;
6603     break;}
6604 case 561:
6605 #line 2748 "parse.y"
6606 {
6607                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6608                     {
6609                       yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6610                       if (current_class_type
6611                           && TYPE_BEING_DEFINED (current_class_type)
6612                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6613                         {
6614                           /* Remember that this name has been used in the class
6615                              definition, as per [class.scope0] */
6616                           pushdecl_class_level (yyval.ttype);
6617                         }
6618                     }
6619                   else
6620                     yyval.ttype = yyvsp[0].ttype;
6621                 ;
6622     break;}
6623 case 562:
6624 #line 2765 "parse.y"
6625 {
6626                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6627                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6628                   else
6629                     yyval.ttype = yyvsp[0].ttype;
6630                   got_scope = NULL_TREE;
6631                 ;
6632     break;}
6633 case 565:
6634 #line 2778 "parse.y"
6635 { yyval.ttype = yyvsp[0].ttype; ;
6636     break;}
6637 case 566:
6638 #line 2783 "parse.y"
6639 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6640     break;}
6641 case 567:
6642 #line 2788 "parse.y"
6643 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6644     break;}
6645 case 568:
6646 #line 2790 "parse.y"
6647 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6648     break;}
6649 case 569:
6650 #line 2792 "parse.y"
6651 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6652     break;}
6653 case 570:
6654 #line 2794 "parse.y"
6655 { yyval.ttype = yyvsp[-1].ttype; ;
6656     break;}
6657 case 571:
6658 #line 2796 "parse.y"
6659 { push_nested_class (yyvsp[-1].ttype, 3);
6660                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6661                   TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6662     break;}
6663 case 573:
6664 #line 2807 "parse.y"
6665 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6666     break;}
6667 case 574:
6668 #line 2809 "parse.y"
6669 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6670     break;}
6671 case 575:
6672 #line 2811 "parse.y"
6673 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6674     break;}
6675 case 576:
6676 #line 2813 "parse.y"
6677 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6678     break;}
6679 case 577:
6680 #line 2815 "parse.y"
6681 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6682                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6683                 ;
6684     break;}
6685 case 579:
6686 #line 2823 "parse.y"
6687 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6688     break;}
6689 case 580:
6690 #line 2825 "parse.y"
6691 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6692     break;}
6693 case 581:
6694 #line 2827 "parse.y"
6695 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6696     break;}
6697 case 582:
6698 #line 2829 "parse.y"
6699 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6700     break;}
6701 case 583:
6702 #line 2831 "parse.y"
6703 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6704                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6705                 ;
6706     break;}
6707 case 585:
6708 #line 2839 "parse.y"
6709 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6710     break;}
6711 case 586:
6712 #line 2841 "parse.y"
6713 { yyval.ttype = yyvsp[-1].ttype; ;
6714     break;}
6715 case 587:
6716 #line 2843 "parse.y"
6717 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6718     break;}
6719 case 588:
6720 #line 2845 "parse.y"
6721 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6722     break;}
6723 case 589:
6724 #line 2847 "parse.y"
6725 { if (OP0 (yyval.ttype) != current_class_type)
6726                     {
6727                       push_nested_class (OP0 (yyval.ttype), 3);
6728                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
6729                     }
6730                 ;
6731     break;}
6732 case 590:
6733 #line 2854 "parse.y"
6734 { got_scope = NULL_TREE;
6735                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
6736                   if (yyvsp[-1].ttype != current_class_type)
6737                     {
6738                       push_nested_class (yyvsp[-1].ttype, 3);
6739                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
6740                     }
6741                 ;
6742     break;}
6743 case 591:
6744 #line 2866 "parse.y"
6745 { got_scope = NULL_TREE;
6746                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6747     break;}
6748 case 592:
6749 #line 2869 "parse.y"
6750 { got_scope = NULL_TREE;
6751                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6752     break;}
6753 case 593:
6754 #line 2875 "parse.y"
6755 { got_scope = NULL_TREE;
6756                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6757     break;}
6758 case 594:
6759 #line 2878 "parse.y"
6760 { got_scope = NULL_TREE;
6761                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6762     break;}
6763 case 596:
6764 #line 2885 "parse.y"
6765 { yyval.ttype = yyvsp[0].ttype; ;
6766     break;}
6767 case 597:
6768 #line 2890 "parse.y"
6769 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
6770     break;}
6771 case 598:
6772 #line 2892 "parse.y"
6773 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
6774     break;}
6775 case 599:
6776 #line 2894 "parse.y"
6777 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6778     break;}
6779 case 604:
6780 #line 2906 "parse.y"
6781 { yyval.ttype = yyvsp[0].ttype; ;
6782     break;}
6783 case 605:
6784 #line 2908 "parse.y"
6785 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6786     break;}
6787 case 606:
6788 #line 2915 "parse.y"
6789 {
6790                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
6791                     {
6792                       yyval.ttype = lastiddecl;
6793                       /* Remember that this name has been used in the class
6794                          definition, as per [class.scope0] */
6795                       if (current_class_type
6796                           && TYPE_BEING_DEFINED (current_class_type)
6797                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
6798                         pushdecl_class_level (yyval.ttype);
6799                     }
6800                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
6801                 ;
6802     break;}
6803 case 607:
6804 #line 2929 "parse.y"
6805 {
6806                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
6807                     yyval.ttype = lastiddecl;
6808                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
6809                 ;
6810     break;}
6811 case 608:
6812 #line 2935 "parse.y"
6813 {
6814                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
6815                     yyval.ttype = lastiddecl;
6816                   got_scope = yyval.ttype;
6817                 ;
6818     break;}
6819 case 609:
6820 #line 2941 "parse.y"
6821 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
6822     break;}
6823 case 611:
6824 #line 2957 "parse.y"
6825 { yyval.ttype = yyvsp[0].ttype; ;
6826     break;}
6827 case 612:
6828 #line 2962 "parse.y"
6829 {
6830                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
6831                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
6832                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6833                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6834                   else
6835                     {
6836                       yyval.ttype = yyvsp[0].ttype;
6837                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
6838                         yyval.ttype = TREE_TYPE (yyval.ttype);
6839                     }
6840                 ;
6841     break;}
6842 case 613:
6843 #line 2975 "parse.y"
6844 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
6845     break;}
6846 case 614:
6847 #line 2977 "parse.y"
6848 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6849     break;}
6850 case 615:
6851 #line 2979 "parse.y"
6852 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6853     break;}
6854 case 616:
6855 #line 2984 "parse.y"
6856 {
6857                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6858                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6859                 ;
6860     break;}
6861 case 617:
6862 #line 2989 "parse.y"
6863 {
6864                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
6865                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
6866                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6867                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6868                   else
6869                     {
6870                       yyval.ttype = yyvsp[0].ttype;
6871                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
6872                         yyval.ttype = TREE_TYPE (yyval.ttype);
6873                     }
6874                 ;
6875     break;}
6876 case 618:
6877 #line 3002 "parse.y"
6878 { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6879     break;}
6880 case 619:
6881 #line 3004 "parse.y"
6882 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6883     break;}
6884 case 620:
6885 #line 3009 "parse.y"
6886 {
6887                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
6888                     yyvsp[-1].ttype = lastiddecl;
6889
6890                   got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype));
6891
6892                   if (yyval.ttype == error_mark_node)
6893                     cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
6894                 ;
6895     break;}
6896 case 621:
6897 #line 3019 "parse.y"
6898 {
6899                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
6900                     yyval.ttype = lastiddecl;
6901                   got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
6902                 ;
6903     break;}
6904 case 622:
6905 #line 3025 "parse.y"
6906 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
6907     break;}
6908 case 625:
6909 #line 3029 "parse.y"
6910 {
6911                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
6912                     yyval.ttype = lastiddecl;
6913                   got_scope = yyval.ttype;
6914                 ;
6915     break;}
6916 case 626:
6917 #line 3038 "parse.y"
6918 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6919     break;}
6920 case 627:
6921 #line 3043 "parse.y"
6922 {
6923                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6924                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6925                   else
6926                     yyval.ttype = yyvsp[0].ttype;
6927                   got_scope = NULL_TREE;
6928                 ;
6929     break;}
6930 case 629:
6931 #line 3052 "parse.y"
6932 { yyval.ttype = yyvsp[0].ttype; ;
6933     break;}
6934 case 630:
6935 #line 3057 "parse.y"
6936 { got_scope = NULL_TREE; ;
6937     break;}
6938 case 631:
6939 #line 3059 "parse.y"
6940 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
6941     break;}
6942 case 632:
6943 #line 3066 "parse.y"
6944 { got_scope = void_type_node; ;
6945     break;}
6946 case 633:
6947 #line 3072 "parse.y"
6948 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6949     break;}
6950 case 634:
6951 #line 3074 "parse.y"
6952 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
6953     break;}
6954 case 635:
6955 #line 3076 "parse.y"
6956 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6957     break;}
6958 case 636:
6959 #line 3078 "parse.y"
6960 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
6961     break;}
6962 case 637:
6963 #line 3080 "parse.y"
6964 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
6965                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
6966                 ;
6967     break;}
6968 case 638:
6969 #line 3084 "parse.y"
6970 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6971                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6972                 ;
6973     break;}
6974 case 640:
6975 #line 3093 "parse.y"
6976 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
6977     break;}
6978 case 641:
6979 #line 3095 "parse.y"
6980 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6981     break;}
6982 case 642:
6983 #line 3101 "parse.y"
6984 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6985     break;}
6986 case 643:
6987 #line 3103 "parse.y"
6988 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6989     break;}
6990 case 644:
6991 #line 3105 "parse.y"
6992 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
6993     break;}
6994 case 645:
6995 #line 3107 "parse.y"
6996 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
6997     break;}
6998 case 646:
6999 #line 3109 "parse.y"
7000 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7001     break;}
7002 case 647:
7003 #line 3111 "parse.y"
7004 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7005     break;}
7006 case 648:
7007 #line 3113 "parse.y"
7008 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7009     break;}
7010 case 649:
7011 #line 3115 "parse.y"
7012 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7013     break;}
7014 case 650:
7015 #line 3117 "parse.y"
7016 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7017                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7018                 ;
7019     break;}
7020 case 651:
7021 #line 3121 "parse.y"
7022 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7023                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7024                 ;
7025     break;}
7026 case 653:
7027 #line 3130 "parse.y"
7028 { yyval.ttype = yyvsp[-1].ttype; ;
7029     break;}
7030 case 655:
7031 #line 3134 "parse.y"
7032 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7033     break;}
7034 case 656:
7035 #line 3136 "parse.y"
7036 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7037     break;}
7038 case 657:
7039 #line 3138 "parse.y"
7040 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7041     break;}
7042 case 658:
7043 #line 3140 "parse.y"
7044 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7045     break;}
7046 case 659:
7047 #line 3142 "parse.y"
7048 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7049     break;}
7050 case 660:
7051 #line 3144 "parse.y"
7052 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7053     break;}
7054 case 661:
7055 #line 3146 "parse.y"
7056 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7057     break;}
7058 case 662:
7059 #line 3148 "parse.y"
7060 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7061     break;}
7062 case 663:
7063 #line 3150 "parse.y"
7064 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7065     break;}
7066 case 670:
7067 #line 3173 "parse.y"
7068 { if (pedantic)
7069                     pedwarn ("ANSI C++ forbids label declarations"); ;
7070     break;}
7071 case 673:
7072 #line 3184 "parse.y"
7073 { tree link;
7074                   for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7075                     {
7076                       tree label = shadow_label (TREE_VALUE (link));
7077                       C_DECLARED_LABEL_FLAG (label) = 1;
7078                       declare_nonlocal_label (label);
7079                     }
7080                 ;
7081     break;}
7082 case 674:
7083 #line 3198 "parse.y"
7084 {;
7085     break;}
7086 case 676:
7087 #line 3204 "parse.y"
7088 { yyval.ttype = begin_compound_stmt (0); ;
7089     break;}
7090 case 677:
7091 #line 3206 "parse.y"
7092 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7093     break;}
7094 case 678:
7095 #line 3211 "parse.y"
7096 {
7097                   yyval.ttype = begin_if_stmt ();
7098                   cond_stmt_keyword = "if";
7099                 ;
7100     break;}
7101 case 679:
7102 #line 3216 "parse.y"
7103 { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7104     break;}
7105 case 680:
7106 #line 3218 "parse.y"
7107 { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
7108     break;}
7109 case 682:
7110 #line 3223 "parse.y"
7111 { yyval.ttype = begin_compound_stmt (0); ;
7112     break;}
7113 case 683:
7114 #line 3225 "parse.y"
7115 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7116     break;}
7117 case 684:
7118 #line 3230 "parse.y"
7119 {;
7120     break;}
7121 case 686:
7122 #line 3236 "parse.y"
7123 { finish_stmt (); ;
7124     break;}
7125 case 687:
7126 #line 3238 "parse.y"
7127 { finish_expr_stmt (yyvsp[-1].ttype); ;
7128     break;}
7129 case 688:
7130 #line 3240 "parse.y"
7131 { begin_else_clause (); ;
7132     break;}
7133 case 689:
7134 #line 3242 "parse.y"
7135
7136                   finish_else_clause (yyvsp[-3].ttype); 
7137                   finish_if_stmt ();
7138                 ;
7139     break;}
7140 case 690:
7141 #line 3247 "parse.y"
7142 { finish_if_stmt (); ;
7143     break;}
7144 case 691:
7145 #line 3249 "parse.y"
7146 {
7147                   yyval.ttype = begin_while_stmt ();
7148                   cond_stmt_keyword = "while";
7149                 ;
7150     break;}
7151 case 692:
7152 #line 3254 "parse.y"
7153 { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7154     break;}
7155 case 693:
7156 #line 3256 "parse.y"
7157 { finish_while_stmt (yyvsp[-3].ttype); ;
7158     break;}
7159 case 694:
7160 #line 3258 "parse.y"
7161 { yyval.ttype = begin_do_stmt (); ;
7162     break;}
7163 case 695:
7164 #line 3260 "parse.y"
7165 {
7166                   finish_do_body (yyvsp[-2].ttype);
7167                   cond_stmt_keyword = "do";
7168                 ;
7169     break;}
7170 case 696:
7171 #line 3265 "parse.y"
7172 { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7173     break;}
7174 case 697:
7175 #line 3267 "parse.y"
7176 { yyval.ttype = begin_for_stmt (); ;
7177     break;}
7178 case 698:
7179 #line 3269 "parse.y"
7180 { finish_for_init_stmt (yyvsp[-2].ttype); ;
7181     break;}
7182 case 699:
7183 #line 3271 "parse.y"
7184 { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7185     break;}
7186 case 700:
7187 #line 3273 "parse.y"
7188 { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
7189     break;}
7190 case 701:
7191 #line 3275 "parse.y"
7192 { finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
7193     break;}
7194 case 702:
7195 #line 3277 "parse.y"
7196 { begin_switch_stmt (); ;
7197     break;}
7198 case 703:
7199 #line 3279 "parse.y"
7200 { yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
7201     break;}
7202 case 704:
7203 #line 3281 "parse.y"
7204 { finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7205     break;}
7206 case 705:
7207 #line 3283 "parse.y"
7208 { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
7209     break;}
7210 case 707:
7211 #line 3286 "parse.y"
7212 { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7213     break;}
7214 case 709:
7215 #line 3289 "parse.y"
7216 { finish_case_label (NULL_TREE, NULL_TREE); ;
7217     break;}
7218 case 711:
7219 #line 3292 "parse.y"
7220 { finish_break_stmt (); ;
7221     break;}
7222 case 712:
7223 #line 3294 "parse.y"
7224 { finish_continue_stmt (); ;
7225     break;}
7226 case 713:
7227 #line 3296 "parse.y"
7228 { finish_return_stmt (NULL_TREE); ;
7229     break;}
7230 case 714:
7231 #line 3298 "parse.y"
7232 { finish_return_stmt (yyvsp[-1].ttype); ;
7233     break;}
7234 case 715:
7235 #line 3300 "parse.y"
7236
7237                   finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7238                                    NULL_TREE); 
7239                 ;
7240     break;}
7241 case 716:
7242 #line 3306 "parse.y"
7243
7244                   finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7245                                    NULL_TREE); 
7246                 ;
7247     break;}
7248 case 717:
7249 #line 3312 "parse.y"
7250 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
7251     break;}
7252 case 718:
7253 #line 3316 "parse.y"
7254 { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7255     break;}
7256 case 719:
7257 #line 3318 "parse.y"
7258
7259                   if (pedantic)
7260                     pedwarn ("ANSI C++ forbids computed gotos");
7261                   finish_goto_stmt (yyvsp[-1].ttype);
7262                 ;
7263     break;}
7264 case 720:
7265 #line 3324 "parse.y"
7266 { finish_goto_stmt (yyvsp[-1].ttype); ;
7267     break;}
7268 case 721:
7269 #line 3326 "parse.y"
7270 { finish_stmt (); ;
7271     break;}
7272 case 722:
7273 #line 3328 "parse.y"
7274 { error ("label must be followed by statement");
7275                   yyungetc ('}', 0);
7276                   finish_stmt (); ;
7277     break;}
7278 case 723:
7279 #line 3332 "parse.y"
7280 { finish_stmt (); ;
7281     break;}
7282 case 725:
7283 #line 3338 "parse.y"
7284 {
7285                   if (! current_function_parms_stored)
7286                     store_parm_decls ();
7287                   expand_start_early_try_stmts ();
7288                 ;
7289     break;}
7290 case 726:
7291 #line 3344 "parse.y"
7292 { expand_start_all_catch (); ;
7293     break;}
7294 case 727:
7295 #line 3346 "parse.y"
7296 {
7297                   int nested = (hack_decl_function_context
7298                                 (current_function_decl) != NULL_TREE);
7299                   expand_end_all_catch ();
7300                   finish_function (lineno, (int)yyvsp[-3].itype, nested);
7301                 ;
7302     break;}
7303 case 728:
7304 #line 3356 "parse.y"
7305 { yyval.ttype = begin_try_block (); ;
7306     break;}
7307 case 729:
7308 #line 3358 "parse.y"
7309 { finish_try_block (yyvsp[-1].ttype); ;
7310     break;}
7311 case 730:
7312 #line 3360 "parse.y"
7313 { finish_handler_sequence (yyvsp[-3].ttype); ;
7314     break;}
7315 case 733:
7316 #line 3370 "parse.y"
7317 { yyval.ttype = begin_handler(); ;
7318     break;}
7319 case 734:
7320 #line 3372 "parse.y"
7321 { finish_handler_parms (yyvsp[-1].ttype); ;
7322     break;}
7323 case 735:
7324 #line 3374 "parse.y"
7325 { finish_handler (yyvsp[-3].ttype); ;
7326     break;}
7327 case 738:
7328 #line 3384 "parse.y"
7329 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7330     break;}
7331 case 739:
7332 #line 3400 "parse.y"
7333 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7334                   expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7335                                             TREE_VALUE (yyvsp[-1].ftype.t)); ;
7336     break;}
7337 case 740:
7338 #line 3407 "parse.y"
7339 { tree label;
7340                 do_label:
7341                   label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7342                   if (label && ! minimal_parse_mode)
7343                     expand_label (label);
7344                 ;
7345     break;}
7346 case 741:
7347 #line 3414 "parse.y"
7348 { goto do_label; ;
7349     break;}
7350 case 742:
7351 #line 3416 "parse.y"
7352 { goto do_label; ;
7353     break;}
7354 case 743:
7355 #line 3418 "parse.y"
7356 { goto do_label; ;
7357     break;}
7358 case 744:
7359 #line 3423 "parse.y"
7360 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
7361     break;}
7362 case 746:
7363 #line 3426 "parse.y"
7364 { if (pedantic)
7365                     pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7366                 ;
7367     break;}
7368 case 747:
7369 #line 3435 "parse.y"
7370 { emit_line_note (input_filename, lineno);
7371                   yyval.ttype = NULL_TREE; ;
7372     break;}
7373 case 748:
7374 #line 3438 "parse.y"
7375 { emit_line_note (input_filename, lineno); ;
7376     break;}
7377 case 749:
7378 #line 3443 "parse.y"
7379 { yyval.ttype = NULL_TREE; ;
7380     break;}
7381 case 751:
7382 #line 3446 "parse.y"
7383 { yyval.ttype = NULL_TREE; ;
7384     break;}
7385 case 752:
7386 #line 3453 "parse.y"
7387 { yyval.ttype = NULL_TREE; ;
7388     break;}
7389 case 755:
7390 #line 3460 "parse.y"
7391 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
7392     break;}
7393 case 756:
7394 #line 3465 "parse.y"
7395 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
7396     break;}
7397 case 757:
7398 #line 3470 "parse.y"
7399 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
7400     break;}
7401 case 758:
7402 #line 3472 "parse.y"
7403 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7404     break;}
7405 case 759:
7406 #line 3483 "parse.y"
7407 {
7408                   yyval.ttype = empty_parms();
7409                 ;
7410     break;}
7411 case 761:
7412 #line 3488 "parse.y"
7413 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
7414                   TREE_PARMLIST (yyval.ttype) = 1; 
7415                   check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
7416     break;}
7417 case 762:
7418 #line 3497 "parse.y"
7419 {
7420                   yyval.ttype = chainon (yyval.ttype, void_list_node);
7421                   TREE_PARMLIST (yyval.ttype) = 1;
7422                 ;
7423     break;}
7424 case 763:
7425 #line 3502 "parse.y"
7426 {
7427                   TREE_PARMLIST (yyval.ttype) = 1;
7428                 ;
7429     break;}
7430 case 764:
7431 #line 3507 "parse.y"
7432 {
7433                   TREE_PARMLIST (yyval.ttype) = 1;
7434                 ;
7435     break;}
7436 case 765:
7437 #line 3511 "parse.y"
7438 {
7439                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); 
7440                   TREE_PARMLIST (yyval.ttype) = 1;
7441                 ;
7442     break;}
7443 case 766:
7444 #line 3516 "parse.y"
7445 {
7446                   yyval.ttype = NULL_TREE;
7447                 ;
7448     break;}
7449 case 767:
7450 #line 3520 "parse.y"
7451 {
7452                   TREE_PARMLIST (yyval.ttype) = 1;
7453                 ;
7454     break;}
7455 case 768:
7456 #line 3524 "parse.y"
7457 {
7458                   TREE_PARMLIST (yyval.ttype) = 1;
7459                 ;
7460     break;}
7461 case 769:
7462 #line 3528 "parse.y"
7463 {
7464                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
7465                   TREE_PARMLIST (yyval.ttype) = 1;
7466                 ;
7467     break;}
7468 case 770:
7469 #line 3533 "parse.y"
7470 {
7471                   /* This helps us recover from really nasty
7472                      parse errors, for example, a missing right
7473                      parenthesis.  */
7474                   yyerror ("possibly missing ')'");
7475                   yyval.ttype = chainon (yyval.ttype, void_list_node);
7476                   TREE_PARMLIST (yyval.ttype) = 1;
7477                   yyungetc (':', 0);
7478                   yychar = ')';
7479                 ;
7480     break;}
7481 case 771:
7482 #line 3544 "parse.y"
7483 {
7484                   /* This helps us recover from really nasty
7485                      parse errors, for example, a missing right
7486                      parenthesis.  */
7487                   yyerror ("possibly missing ')'");
7488                   yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
7489                   TREE_PARMLIST (yyval.ttype) = 1;
7490                   yyungetc (':', 0);
7491                   yychar = ')';
7492                 ;
7493     break;}
7494 case 772:
7495 #line 3559 "parse.y"
7496 { maybe_snarf_defarg (); ;
7497     break;}
7498 case 773:
7499 #line 3561 "parse.y"
7500 { yyval.ttype = yyvsp[0].ttype; ;
7501     break;}
7502 case 776:
7503 #line 3572 "parse.y"
7504 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7505                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
7506     break;}
7507 case 777:
7508 #line 3575 "parse.y"
7509 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7510                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
7511     break;}
7512 case 778:
7513 #line 3578 "parse.y"
7514 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7515                   yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
7516     break;}
7517 case 779:
7518 #line 3581 "parse.y"
7519 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
7520     break;}
7521 case 780:
7522 #line 3583 "parse.y"
7523 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
7524     break;}
7525 case 782:
7526 #line 3589 "parse.y"
7527 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7528                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
7529     break;}
7530 case 783:
7531 #line 3599 "parse.y"
7532 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7533                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
7534                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
7535     break;}
7536 case 784:
7537 #line 3603 "parse.y"
7538 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
7539                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7540     break;}
7541 case 785:
7542 #line 3606 "parse.y"
7543 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
7544                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7545     break;}
7546 case 786:
7547 #line 3609 "parse.y"
7548 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7549                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7550                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7551     break;}
7552 case 787:
7553 #line 3613 "parse.y"
7554 { tree specs = strip_attrs (yyvsp[0].ftype.t);
7555                   yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
7556                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7557     break;}
7558 case 788:
7559 #line 3617 "parse.y"
7560 { tree specs = strip_attrs (yyvsp[-1].ttype);
7561                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
7562                   yyval.ftype.new_type_flag = 0; ;
7563     break;}
7564 case 789:
7565 #line 3624 "parse.y"
7566 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
7567                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
7568     break;}
7569 case 790:
7570 #line 3627 "parse.y"
7571 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
7572                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
7573     break;}
7574 case 793:
7575 #line 3638 "parse.y"
7576 { see_typename (); ;
7577     break;}
7578 case 794:
7579 #line 3643 "parse.y"
7580 {
7581                   error ("type specifier omitted for parameter");
7582                   yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
7583                 ;
7584     break;}
7585 case 795:
7586 #line 3648 "parse.y"
7587 {
7588                   error ("type specifier omitted for parameter");
7589                   if (TREE_CODE (yyval.ttype) == SCOPE_REF
7590                       && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
7591                           || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
7592                     cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
7593                   yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
7594                 ;
7595     break;}
7596 case 796:
7597 #line 3660 "parse.y"
7598 { yyval.ttype = NULL_TREE; ;
7599     break;}
7600 case 797:
7601 #line 3662 "parse.y"
7602 { yyval.ttype = yyvsp[-1].ttype; ;
7603     break;}
7604 case 798:
7605 #line 3664 "parse.y"
7606 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
7607     break;}
7608 case 799:
7609 #line 3669 "parse.y"
7610 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
7611     break;}
7612 case 801:
7613 #line 3675 "parse.y"
7614 {
7615                   TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
7616                   yyval.ttype = yyvsp[0].ttype;
7617                 ;
7618     break;}
7619 case 802:
7620 #line 3683 "parse.y"
7621 { yyval.ttype = NULL_TREE; ;
7622     break;}
7623 case 803:
7624 #line 3685 "parse.y"
7625 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7626     break;}
7627 case 804:
7628 #line 3687 "parse.y"
7629 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7630     break;}
7631 case 805:
7632 #line 3689 "parse.y"
7633 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7634                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7635                 ;
7636     break;}
7637 case 806:
7638 #line 3696 "parse.y"
7639 { got_scope = NULL_TREE; ;
7640     break;}
7641 case 807:
7642 #line 3701 "parse.y"
7643 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
7644     break;}
7645 case 808:
7646 #line 3703 "parse.y"
7647 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
7648     break;}
7649 case 809:
7650 #line 3705 "parse.y"
7651 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
7652     break;}
7653 case 810:
7654 #line 3707 "parse.y"
7655 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
7656     break;}
7657 case 811:
7658 #line 3709 "parse.y"
7659 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
7660     break;}
7661 case 812:
7662 #line 3711 "parse.y"
7663 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
7664     break;}
7665 case 813:
7666 #line 3713 "parse.y"
7667 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
7668     break;}
7669 case 814:
7670 #line 3715 "parse.y"
7671 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
7672     break;}
7673 case 815:
7674 #line 3717 "parse.y"
7675 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
7676     break;}
7677 case 816:
7678 #line 3719 "parse.y"
7679 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
7680     break;}
7681 case 817:
7682 #line 3721 "parse.y"
7683 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7684     break;}
7685 case 818:
7686 #line 3723 "parse.y"
7687 { yyval.ttype = ansi_opname[LT_EXPR]; ;
7688     break;}
7689 case 819:
7690 #line 3725 "parse.y"
7691 { yyval.ttype = ansi_opname[GT_EXPR]; ;
7692     break;}
7693 case 820:
7694 #line 3727 "parse.y"
7695 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7696     break;}
7697 case 821:
7698 #line 3729 "parse.y"
7699 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
7700     break;}
7701 case 822:
7702 #line 3731 "parse.y"
7703 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
7704     break;}
7705 case 823:
7706 #line 3733 "parse.y"
7707 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7708     break;}
7709 case 824:
7710 #line 3735 "parse.y"
7711 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7712     break;}
7713 case 825:
7714 #line 3737 "parse.y"
7715 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
7716     break;}
7717 case 826:
7718 #line 3739 "parse.y"
7719 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
7720     break;}
7721 case 827:
7722 #line 3741 "parse.y"
7723 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
7724     break;}
7725 case 828:
7726 #line 3743 "parse.y"
7727 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
7728     break;}
7729 case 829:
7730 #line 3745 "parse.y"
7731 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
7732     break;}
7733 case 830:
7734 #line 3747 "parse.y"
7735 { yyval.ttype = ansi_opname[COND_EXPR]; ;
7736     break;}
7737 case 831:
7738 #line 3749 "parse.y"
7739 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7740     break;}
7741 case 832:
7742 #line 3751 "parse.y"
7743 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
7744     break;}
7745 case 833:
7746 #line 3753 "parse.y"
7747 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
7748     break;}
7749 case 834:
7750 #line 3755 "parse.y"
7751 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
7752     break;}
7753 case 835:
7754 #line 3757 "parse.y"
7755 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
7756     break;}
7757 case 836:
7758 #line 3759 "parse.y"
7759 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
7760     break;}
7761 case 837:
7762 #line 3761 "parse.y"
7763 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
7764     break;}
7765 case 838:
7766 #line 3763 "parse.y"
7767 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
7768     break;}
7769 case 839:
7770 #line 3765 "parse.y"
7771 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
7772     break;}
7773 case 840:
7774 #line 3768 "parse.y"
7775 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7776     break;}
7777 case 841:
7778 #line 3770 "parse.y"
7779 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
7780     break;}
7781 }
7782    /* the action file gets copied in in place of this dollarsign */
7783 #line 498 "/usr/cygnus/latest-940103/share/bison.simple"
7784 \f
7785   yyvsp -= yylen;
7786   yyssp -= yylen;
7787 #ifdef YYLSP_NEEDED
7788   yylsp -= yylen;
7789 #endif
7790
7791 #if YYDEBUG != 0
7792   if (yydebug)
7793     {
7794       short *ssp1 = yyss - 1;
7795       fprintf (stderr, "state stack now");
7796       while (ssp1 != yyssp)
7797         fprintf (stderr, " %d", *++ssp1);
7798       fprintf (stderr, "\n");
7799     }
7800 #endif
7801
7802   *++yyvsp = yyval;
7803
7804 #ifdef YYLSP_NEEDED
7805   yylsp++;
7806   if (yylen == 0)
7807     {
7808       yylsp->first_line = yylloc.first_line;
7809       yylsp->first_column = yylloc.first_column;
7810       yylsp->last_line = (yylsp-1)->last_line;
7811       yylsp->last_column = (yylsp-1)->last_column;
7812       yylsp->text = 0;
7813     }
7814   else
7815     {
7816       yylsp->last_line = (yylsp+yylen-1)->last_line;
7817       yylsp->last_column = (yylsp+yylen-1)->last_column;
7818     }
7819 #endif
7820
7821   /* Now "shift" the result of the reduction.
7822      Determine what state that goes to,
7823      based on the state we popped back to
7824      and the rule number reduced by.  */
7825
7826   yyn = yyr1[yyn];
7827
7828   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
7829   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7830     yystate = yytable[yystate];
7831   else
7832     yystate = yydefgoto[yyn - YYNTBASE];
7833
7834   goto yynewstate;
7835
7836 yyerrlab:   /* here on detecting error */
7837
7838   if (! yyerrstatus)
7839     /* If not already recovering from an error, report this error.  */
7840     {
7841       ++yynerrs;
7842
7843 #ifdef YYERROR_VERBOSE
7844       yyn = yypact[yystate];
7845
7846       if (yyn > YYFLAG && yyn < YYLAST)
7847         {
7848           int size = 0;
7849           char *msg;
7850           int x, count;
7851
7852           count = 0;
7853           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
7854           for (x = (yyn < 0 ? -yyn : 0);
7855                x < (sizeof(yytname) / sizeof(char *)); x++)
7856             if (yycheck[x + yyn] == x)
7857               size += strlen(yytname[x]) + 15, count++;
7858           msg = (char *) malloc(size + 15);
7859           if (msg != 0)
7860             {
7861               strcpy(msg, "parse error");
7862
7863               if (count < 5)
7864                 {
7865                   count = 0;
7866                   for (x = (yyn < 0 ? -yyn : 0);
7867                        x < (sizeof(yytname) / sizeof(char *)); x++)
7868                     if (yycheck[x + yyn] == x)
7869                       {
7870                         strcat(msg, count == 0 ? ", expecting `" : " or `");
7871                         strcat(msg, yytname[x]);
7872                         strcat(msg, "'");
7873                         count++;
7874                       }
7875                 }
7876               yyerror(msg);
7877               free(msg);
7878             }
7879           else
7880             yyerror ("parse error; also virtual memory exceeded");
7881         }
7882       else
7883 #endif /* YYERROR_VERBOSE */
7884         yyerror("parse error");
7885     }
7886
7887   goto yyerrlab1;
7888 yyerrlab1:   /* here on error raised explicitly by an action */
7889
7890   if (yyerrstatus == 3)
7891     {
7892       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
7893
7894       /* return failure if at end of input */
7895       if (yychar == YYEOF)
7896         YYABORT;
7897
7898 #if YYDEBUG != 0
7899       if (yydebug)
7900         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
7901 #endif
7902
7903       yychar = YYEMPTY;
7904     }
7905
7906   /* Else will try to reuse lookahead token
7907      after shifting the error token.  */
7908
7909   yyerrstatus = 3;              /* Each real token shifted decrements this */
7910
7911   goto yyerrhandle;
7912
7913 yyerrdefault:  /* current state does not do anything special for the error token. */
7914
7915 #if 0
7916   /* This is wrong; only states that explicitly want error tokens
7917      should shift them.  */
7918   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
7919   if (yyn) goto yydefault;
7920 #endif
7921
7922 yyerrpop:   /* pop the current state because it cannot handle the error token */
7923
7924   if (yyssp == yyss) YYABORT;
7925   yyvsp--;
7926   yystate = *--yyssp;
7927 #ifdef YYLSP_NEEDED
7928   yylsp--;
7929 #endif
7930
7931 #if YYDEBUG != 0
7932   if (yydebug)
7933     {
7934       short *ssp1 = yyss - 1;
7935       fprintf (stderr, "Error: state stack now");
7936       while (ssp1 != yyssp)
7937         fprintf (stderr, " %d", *++ssp1);
7938       fprintf (stderr, "\n");
7939     }
7940 #endif
7941
7942 yyerrhandle:
7943
7944   yyn = yypact[yystate];
7945   if (yyn == YYFLAG)
7946     goto yyerrdefault;
7947
7948   yyn += YYTERROR;
7949   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
7950     goto yyerrdefault;
7951
7952   yyn = yytable[yyn];
7953   if (yyn < 0)
7954     {
7955       if (yyn == YYFLAG)
7956         goto yyerrpop;
7957       yyn = -yyn;
7958       goto yyreduce;
7959     }
7960   else if (yyn == 0)
7961     goto yyerrpop;
7962
7963   if (yyn == YYFINAL)
7964     YYACCEPT;
7965
7966 #if YYDEBUG != 0
7967   if (yydebug)
7968     fprintf(stderr, "Shifting error token, ");
7969 #endif
7970
7971   *++yyvsp = yylval;
7972 #ifdef YYLSP_NEEDED
7973   *++yylsp = yylloc;
7974 #endif
7975
7976   yystate = yyn;
7977   goto yynewstate;
7978 }
7979 #line 3773 "parse.y"
7980
7981
7982 #ifdef SPEW_DEBUG
7983 const char *
7984 debug_yytranslate (value)
7985     int value;
7986 {
7987   return yytname[YYTRANSLATE (value)];
7988 }
7989
7990 #endif