]> andersk Git - splint.git/blob - src/cgrammar.tab.c
Added the code for setBufferSize and setStringLegnth annotations.
[splint.git] / src / cgrammar.tab.c
1
2 /*  A Bison parser, made from cgrammar.y
3  by  GNU Bison version 1.25
4   */
5
6 #define YYBISON 1  /* Identify Bison output.  */
7
8 #define BADTOK  258
9 #define SKIPTOK 259
10 #define CTOK_ELIPSIS    260
11 #define CASE    261
12 #define DEFAULT 262
13 #define CIF     263
14 #define CELSE   264
15 #define SWITCH  265
16 #define WHILE   266
17 #define DO      267
18 #define CFOR    268
19 #define GOTO    269
20 #define CONTINUE        270
21 #define BREAK   271
22 #define RETURN  272
23 #define TSEMI   273
24 #define TLBRACE 274
25 #define TRBRACE 275
26 #define TCOMMA  276
27 #define TCOLON  277
28 #define TASSIGN 278
29 #define TLPAREN 279
30 #define TRPAREN 280
31 #define TLSQBR  281
32 #define TRSQBR  282
33 #define TDOT    283
34 #define TAMPERSAND      284
35 #define TEXCL   285
36 #define TTILDE  286
37 #define TMINUS  287
38 #define TPLUS   288
39 #define TMULT   289
40 #define TDIV    290
41 #define TPERCENT        291
42 #define TLT     292
43 #define TGT     293
44 #define TCIRC   294
45 #define TBAR    295
46 #define TQUEST  296
47 #define CSIZEOF 297
48 #define CALIGNOF        298
49 #define ARROW_OP        299
50 #define CTYPEDEF        300
51 #define COFFSETOF       301
52 #define INC_OP  302
53 #define DEC_OP  303
54 #define LEFT_OP 304
55 #define RIGHT_OP        305
56 #define LE_OP   306
57 #define GE_OP   307
58 #define EQ_OP   308
59 #define NE_OP   309
60 #define AND_OP  310
61 #define OR_OP   311
62 #define MUL_ASSIGN      312
63 #define DIV_ASSIGN      313
64 #define MOD_ASSIGN      314
65 #define ADD_ASSIGN      315
66 #define SUB_ASSIGN      316
67 #define LEFT_ASSIGN     317
68 #define RIGHT_ASSIGN    318
69 #define AND_ASSIGN      319
70 #define XOR_ASSIGN      320
71 #define OR_ASSIGN       321
72 #define CSTRUCT 322
73 #define CUNION  323
74 #define CENUM   324
75 #define VA_ARG  325
76 #define VA_DCL  326
77 #define QGLOBALS        327
78 #define QMODIFIES       328
79 #define QNOMODS 329
80 #define QCONSTANT       330
81 #define QFUNCTION       331
82 #define QITER   332
83 #define QDEFINES        333
84 #define QUSES   334
85 #define QALLOCATES      335
86 #define QSETS   336
87 #define QRELEASES       337
88 #define QPRECLAUSE      338
89 #define QPOSTCLAUSE     339
90 #define QALT    340
91 #define QUNDEF  341
92 #define QKILLED 342
93 #define QENDMACRO       343
94 #define LLMACRO 344
95 #define LLMACROITER     345
96 #define LLMACROEND      346
97 #define TENDMACRO       347
98 #define QSWITCHBREAK    348
99 #define QLOOPBREAK      349
100 #define QINNERBREAK     350
101 #define QSAFEBREAK      351
102 #define QINNERCONTINUE  352
103 #define QFALLTHROUGH    353
104 #define QLINTNOTREACHED 354
105 #define QLINTFALLTHROUGH        355
106 #define QLINTFALLTHRU   356
107 #define QARGSUSED       357
108 #define QPRINTFLIKE     358
109 #define QLINTPRINTFLIKE 359
110 #define QSCANFLIKE      360
111 #define QMESSAGELIKE    361
112 #define QNOTREACHED     362
113 #define QCONST  363
114 #define QVOLATILE       364
115 #define QINLINE 365
116 #define QEXTENSION      366
117 #define QEXTERN 367
118 #define QSTATIC 368
119 #define QAUTO   369
120 #define QREGISTER       370
121 #define QOUT    371
122 #define QIN     372
123 #define QYIELD  373
124 #define QONLY   374
125 #define QTEMP   375
126 #define QSHARED 376
127 #define QREF    377
128 #define QUNIQUE 378
129 #define QCHECKED        379
130 #define QUNCHECKED      380
131 #define QCHECKEDSTRICT  381
132 #define QCHECKMOD       382
133 #define QKEEP   383
134 #define QKEPT   384
135 #define QPARTIAL        385
136 #define QSPECIAL        386
137 #define QOWNED  387
138 #define QDEPENDENT      388
139 #define QRETURNED       389
140 #define QEXPOSED        390
141 #define QNULL   391
142 #define QOBSERVER       392
143 #define QISNULL 393
144 #define QEXITS  394
145 #define QMAYEXIT        395
146 #define QNEVEREXIT      396
147 #define QTRUEEXIT       397
148 #define QFALSEEXIT      398
149 #define QLONG   399
150 #define QSIGNED 400
151 #define QUNSIGNED       401
152 #define QSHORT  402
153 #define QUNUSED 403
154 #define QSEF    404
155 #define QNOTNULL        405
156 #define QRELNULL        406
157 #define QABSTRACT       407
158 #define QCONCRETE       408
159 #define QMUTABLE        409
160 #define QIMMUTABLE      410
161 #define QTRUENULL       411
162 #define QFALSENULL      412
163 #define QEXTERNAL       413
164 #define QREFCOUNTED     414
165 #define QREFS   415
166 #define QNEWREF 416
167 #define QTEMPREF        417
168 #define QKILLREF        418
169 #define QRELDEF 419
170 #define CGCHAR  420
171 #define CBOOL   421
172 #define CINT    422
173 #define CGFLOAT 423
174 #define CDOUBLE 424
175 #define CVOID   425
176 #define QANYTYPE        426
177 #define QINTEGRALTYPE   427
178 #define QUNSIGNEDINTEGRALTYPE   428
179 #define QSIGNEDINTEGRALTYPE     429
180 #define QNULLTERMINATED 430
181 #define QSETBUFFERSIZE  431
182 #define QSETSTRINGLENGTH        432
183 #define IDENTIFIER      433
184 #define NEW_IDENTIFIER  434
185 #define TYPE_NAME_OR_ID 435
186 #define CCONSTANT       436
187 #define ITER_NAME       437
188 #define ITER_ENDNAME    438
189 #define TYPE_NAME       439
190
191
192 /*
193 **
194 ** cgrammar.y
195 **
196 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
197 **
198 ** original grammar by Nate Osgood ---
199 **    hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
200 **
201 ** changes for LCLint --- handle typedef names correctly
202 ** fix struct/union parsing bug (empty struct is accepted)
203 ** add productions to handle macros --- require
204 ** error correction --- main source of conflicts in grammar.
205 ** need to process initializations sequentially, L->R
206 **
207 ** production names are cryptic, so more productions fit on one line
208 **
209 ** conflicts:  87 shift/reduce, 18 reduce/reduce
210 ** most of these are due to handling macros
211 ** a few are due to handling type expressions
212 */
213
214 /*@=allmacros@*/
215
216 extern int yylex ();
217 extern void swallowMacro (void);
218
219 # include "lclintMacros.nf"
220 # include "basic.h"
221 # include "cgrammar.h"
222 # include "exprChecks.h"
223
224 /*@-allmacros@*/
225 /*@-matchfields@*/
226
227 # define SHOWCSYM FALSE
228 void yyerror (char *s);
229
230 /*
231 ** This is necessary, or else when the bison-generated code #include's malloc.h,
232 ** there will be a parse error.
233 **
234 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
235 ** in bison-generated files under Win32.
236 */
237
238 # ifdef WIN32
239 # undef malloc
240 # undef calloc
241 # undef realloc
242 # endif
243
244 void checkandsetBufState(idDecl id, exprNode is);
245
246 typedef union
247 {
248  lltok tok;
249  int count;
250  specialClauseKind sck;
251  qual typequal;
252  qualList tquallist;
253  ctype ctyp;
254  sRef sr;
255  /*@only@*/ qtype qtyp;
256  /*@only@*/ cstring cname;
257  /*@only@*/ idDecl ntyp;
258  /*@only@*/ idDeclList ntyplist;
259  /*@only@*/ uentryList flist;
260  /*@owned@*/ uentryList entrylist;
261  /*@observer@*/ /*@dependent@*/ uentry entry;
262  /*@only@*/ uentry oentry;
263  /*@only@*/ exprNode expr;
264  /*@only@*/ enumNameList enumnamelist;
265  /*@only@*/ exprNodeList alist;
266  /*@only@*/ sRefSet srset; 
267  /*@only@*/ cstringList cstringlist;
268 } YYSTYPE;
269 #ifndef YYDEBUG
270 #define YYDEBUG 1
271 #endif
272
273 #include <stdio.h>
274
275 #ifndef __cplusplus
276 #ifndef __STDC__
277 #define const
278 #endif
279 #endif
280
281
282
283 #define YYFINAL         1169
284 #define YYFLAG          -32768
285 #define YYNTBASE        185
286
287 #define YYTRANSLATE(x) ((unsigned)(x) <= 439 ? yytranslate[x] : 413)
288
289 static const short yytranslate[] = {     0,
290      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
291      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
292      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
293      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
294      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
295      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
296      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
297      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
298      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
299      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
300      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
301      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
302      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
303      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
304      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
305      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
306      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
307      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
308      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
309      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
310      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
311      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
312      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
313      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
314      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
315      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
316      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
317     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
318     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
319     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
320     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
321     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
322     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
323     76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
324     86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
325     96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
326    106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
327    116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
328    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
329    136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
330    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
331    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
332    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
333    176,   177,   178,   179,   180,   181,   182,   183,   184
334 };
335
336 #if YYDEBUG != 0
337 static const short yyprhs[] = {     0,
338      0,     1,     3,     5,     8,    11,    13,    15,    17,    19,
339     21,    23,    32,    44,    45,    51,    53,    57,    59,    62,
340     64,    71,    75,    82,    83,    90,    91,    99,   101,   108,
341    112,   119,   120,   127,   128,   136,   137,   138,   149,   153,
342    157,   161,   164,   166,   167,   170,   171,   174,   176,   179,
343    181,   184,   186,   189,   191,   195,   198,   200,   202,   204,
344    206,   208,   210,   212,   213,   216,   217,   224,   225,   232,
345    234,   236,   237,   238,   244,   245,   251,   253,   255,   256,
346    258,   259,   260,   264,   265,   269,   271,   273,   275,   277,
347    279,   281,   283,   285,   287,   289,   291,   293,   295,   297,
348    299,   301,   303,   304,   312,   313,   322,   324,   328,   329,
349    333,   334,   338,   341,   345,   348,   351,   353,   355,   357,
350    361,   366,   369,   373,   377,   381,   383,   385,   387,   391,
351    393,   395,   399,   404,   407,   411,   415,   419,   421,   425,
352    427,   429,   431,   435,   437,   439,   441,   446,   450,   455,
353    462,   468,   474,   477,   480,   482,   486,   488,   491,   494,
354    497,   500,   503,   506,   509,   512,   514,   516,   520,   522,
355    532,   533,   537,   542,   545,   550,   553,   555,   560,   562,
356    566,   570,   574,   576,   580,   584,   586,   590,   594,   596,
357    600,   604,   608,   612,   614,   618,   622,   624,   628,   630,
358    634,   636,   640,   642,   643,   648,   650,   651,   656,   658,
359    659,   660,   668,   670,   674,   678,   682,   686,   690,   694,
360    698,   702,   706,   710,   714,   716,   720,   721,   723,   725,
361    727,   729,   731,   735,   736,   746,   747,   759,   762,   763,
362    770,   771,   779,   784,   789,   790,   791,   794,   796,   801,
363    802,   807,   809,   813,   818,   820,   824,   826,   828,   830,
364    832,   834,   837,   840,   843,   846,   849,   852,   855,   858,
365    861,   864,   867,   870,   873,   876,   879,   882,   885,   888,
366    891,   894,   897,   900,   903,   906,   909,   912,   915,   918,
367    921,   924,   927,   930,   933,   936,   939,   942,   945,   948,
368    951,   954,   957,   960,   963,   966,   969,   972,   974,   976,
369    978,   980,   983,   986,   989,   992,   995,   998,  1001,  1004,
370   1007,  1010,  1013,  1016,  1019,  1022,  1026,  1028,  1033,  1035,
371   1039,  1042,  1045,  1048,  1049,  1051,  1052,  1053,  1065,  1066,
372   1067,  1079,  1086,  1093,  1094,  1095,  1106,  1107,  1108,  1119,
373   1125,  1131,  1136,  1141,  1142,  1144,  1146,  1149,  1155,  1159,
374   1162,  1167,  1169,  1173,  1178,  1185,  1186,  1195,  1200,  1202,
375   1206,  1209,  1211,  1216,  1218,  1220,  1223,  1226,  1228,  1231,
376   1233,  1236,  1238,  1240,  1242,  1245,  1247,  1250,  1253,  1257,
377   1259,  1263,  1265,  1269,  1271,  1273,  1277,  1278,  1281,  1282,
378   1287,  1292,  1294,  1296,  1299,  1301,  1303,  1306,  1307,  1309,
379   1315,  1318,  1322,  1326,  1331,  1335,  1340,  1345,  1351,  1353,
380   1355,  1357,  1359,  1361,  1363,  1365,  1367,  1369,  1371,  1376,
381   1381,  1384,  1386,  1388,  1390,  1393,  1396,  1404,  1411,  1414,
382   1415,  1416,  1427,  1428,  1435,  1437,  1439,  1441,  1443,  1446,
383   1448,  1450,  1452,  1454,  1456,  1458,  1460,  1464,  1466,  1469,
384   1472,  1475,  1477,  1479,  1481,  1483,  1485,  1487,  1489,  1491,
385   1493,  1495,  1499,  1501,  1503,  1506,  1509,  1510,  1515,  1516,
386   1522,  1523,  1527,  1528,  1533,  1537,  1540,  1544,  1545,  1546,
387   1547,  1548,  1549,  1551,  1554,  1557,  1561,  1564,  1568,  1572,
388   1577,  1580,  1583,  1587,  1591,  1596,  1598,  1601,  1603,  1606,
389   1608,  1611,  1613,  1616,  1618,  1621,  1623,  1628,  1631,  1632,
390   1638,  1639,  1646,  1651,  1656,  1657,  1658,  1669,  1671,  1672,
391   1677,  1679,  1681,  1683,  1685,  1687,  1691,  1693,  1698,  1702,
392   1707,  1714,  1720,  1726,  1729,  1732,  1734,  1737,  1740,  1743,
393   1746,  1749,  1752,  1755,  1758,  1760,  1762,  1767,  1769,  1773,
394   1777,  1781,  1783,  1787,  1791,  1793,  1797,  1801,  1803,  1807,
395   1811,  1815,  1819,  1821,  1825,  1829,  1831,  1835,  1837,  1841,
396   1843,  1847,  1849,  1853,  1855,  1859,  1861,  1862,  1863,  1871,
397   1873,  1877,  1881,  1885,  1889,  1893,  1897,  1901,  1905,  1909,
398   1913,  1917,  1919,  1920,  1922,  1925,  1933,  1936,  1939,  1947,
399   1954,  1957,  1961,  1964,  1968,  1971,  1975,  1979,  1983,  1987,
400   1990,  1994,  1995,  1997,  1999,  2001,  2003,  2005,  2007,  2009,
401   2011
402 };
403
404 static const short yyrhs[] = {    -1,
405    186,     0,   187,     0,   186,   187,     0,   239,   409,     0,
406    188,     0,   189,     0,   199,     0,   202,     0,   276,     0,
407      1,     0,    75,   296,   309,   319,   309,   409,   284,    88,
408      0,    75,   296,   309,   319,   309,    23,   284,   289,   288,
409    409,    88,     0,     0,    76,   190,   191,   409,    88,     0,
410    192,     0,   296,   309,   192,     0,   196,     0,   323,   196,
411      0,   411,     0,   284,    24,   309,   319,   284,    25,     0,
412    193,    26,    27,     0,   193,    26,   284,   275,    27,   309,
413      0,     0,   193,   285,    24,    25,   194,   204,     0,     0,
414    193,   285,    24,   320,    25,   195,   204,     0,   411,     0,
415    284,    24,   309,   192,   284,    25,     0,   196,    26,    27,
416      0,   196,    26,   284,   275,    27,   309,     0,     0,   196,
417    285,    24,    25,   197,   206,     0,     0,   196,   285,    24,
418    320,    25,   198,   206,     0,     0,     0,    77,   411,    24,
419    320,    25,   200,   206,   201,   409,    88,     0,    89,   350,
420     92,     0,    90,   337,    92,     0,    91,   338,    92,     0,
421     89,    92,     0,   235,     0,     0,   205,   208,     0,     0,
422    207,   209,     0,   216,     0,   210,   216,     0,   219,     0,
423    210,   219,     0,   232,     0,   232,   210,     0,   212,     0,
424    211,    21,   212,     0,   215,   213,     0,   410,     0,   179,
425      0,    86,     0,    87,     0,   116,     0,   117,     0,   130,
426      0,     0,   214,   215,     0,     0,    72,   217,   370,   409,
427     88,   222,     0,     0,    72,   218,   211,   409,    88,   222,
428      0,    74,     0,   223,     0,     0,     0,    72,   220,   370,
429    409,   222,     0,     0,    72,   221,   211,   409,   222,     0,
430     74,     0,   225,     0,     0,   223,     0,     0,     0,    73,
431    224,   240,     0,     0,    73,   226,   241,     0,    78,     0,
432     79,     0,    80,     0,    81,     0,    82,     0,    88,     0,
433     88,     0,    83,     0,    84,     0,   119,     0,   137,     0,
434    135,     0,   133,     0,   132,     0,   121,     0,   138,     0,
435    150,     0,     0,   227,   309,   233,   246,   409,   229,   284,
436      0,     0,   230,   309,   231,   234,   246,   409,   228,   284,
437      0,   319,     0,   296,   309,   319,     0,     0,    19,   237,
438    366,     0,     0,   370,   238,   359,     0,   203,   236,     0,
439    244,   409,    88,     0,   409,    88,     0,   244,   409,     0,
440    409,     0,   410,     0,   179,     0,   242,    26,    27,     0,
441    242,    26,   243,    27,     0,    34,   242,     0,    24,   242,
442     25,     0,   242,    28,   411,     0,   242,    44,   411,     0,
443    242,     0,   181,     0,   242,     0,   244,    21,   242,     0,
444    410,     0,   179,     0,   245,    26,    27,     0,   245,    26,
445    243,    27,     0,    34,   245,     0,    24,   245,    25,     0,
446    245,    28,   411,     0,   245,    44,   411,     0,   245,     0,
447    246,    21,   245,     0,   410,     0,   179,     0,   181,     0,
448     24,   273,    25,     0,   180,     0,   111,     0,   247,     0,
449    248,    26,   273,    27,     0,   248,    24,    25,     0,   248,
450     24,   249,    25,     0,    70,    24,   272,    21,   331,    25,
451      0,   248,   309,    28,   411,   284,     0,   248,   309,    44,
452    411,   284,     0,   248,    47,     0,   248,    48,     0,   272,
453      0,   249,    21,   272,     0,   248,     0,    47,   250,     0,
454     48,   250,     0,    29,   256,     0,    34,   256,     0,    33,
455    256,     0,    32,   256,     0,    31,   256,     0,    30,   256,
456      0,   253,     0,   252,     0,   251,    28,   411,     0,   411,
457      0,    46,   284,    24,   331,   309,    21,   251,    25,   284,
458      0,     0,   284,   254,   255,     0,    42,    24,   331,    25,
459      0,    42,   250,     0,    43,    24,   331,    25,     0,    43,
460    250,     0,   250,     0,    24,   331,    25,   256,     0,   256,
461      0,   257,    34,   256,     0,   257,    35,   256,     0,   257,
462     36,   256,     0,   257,     0,   258,    33,   257,     0,   258,
463     32,   257,     0,   258,     0,   259,    49,   258,     0,   259,
464     50,   258,     0,   259,     0,   260,    37,   259,     0,   260,
465     38,   259,     0,   260,    51,   259,     0,   260,    52,   259,
466      0,   260,     0,   261,    53,   260,     0,   261,    54,   260,
467      0,   261,     0,   262,    29,   261,     0,   262,     0,   263,
468     39,   262,     0,   263,     0,   264,    40,   263,     0,   264,
469      0,     0,   265,    55,   266,   264,     0,   265,     0,     0,
470    267,    56,   268,   265,     0,   267,     0,     0,     0,   267,
471     41,   270,   273,    22,   271,   269,     0,   269,     0,   250,
472     23,   272,     0,   250,    57,   272,     0,   250,    58,   272,
473      0,   250,    59,   272,     0,   250,    60,   272,     0,   250,
474     61,   272,     0,   250,    62,   272,     0,   250,    63,   272,
475      0,   250,    64,   272,     0,   250,    65,   272,     0,   250,
476     66,   272,     0,   272,     0,   273,    21,   272,     0,     0,
477    273,     0,   269,     0,   277,     0,    71,     0,   282,     0,
478    296,   284,    18,     0,     0,   296,   309,   319,   309,   278,
479    284,   288,    18,   284,     0,     0,   296,   309,   319,   309,
480     23,   279,   284,   289,   288,    18,   284,     0,   319,   309,
481      0,     0,   319,   309,    23,   281,   284,   289,     0,     0,
482     45,   296,   283,   309,   286,   284,    18,     0,    45,   296,
483    284,    18,     0,    45,   286,   284,    18,     0,     0,     0,
484    287,   284,     0,   280,     0,   286,    21,   309,   280,     0,
485      0,   288,    21,   309,   280,     0,   272,     0,    19,   290,
486     20,     0,    19,   290,    21,    20,     0,   289,     0,   290,
487     21,   289,     0,   112,     0,   110,     0,   113,     0,   114,
488      0,   115,     0,   108,   284,     0,   109,   284,     0,   116,
489    284,     0,   117,   284,     0,   130,   284,     0,   131,   284,
490      0,   132,   284,     0,   133,   284,     0,   118,   284,     0,
491    120,   284,     0,   119,   284,     0,   128,   284,     0,   129,
492    284,     0,   121,   284,     0,   123,   284,     0,   139,   284,
493      0,   140,   284,     0,   142,   284,     0,   143,   284,     0,
494    141,   284,     0,   136,   284,     0,   151,   284,     0,   134,
495    284,     0,   135,   284,     0,   137,   284,     0,   124,   284,
496      0,   127,   284,     0,   125,   284,     0,   126,   284,     0,
497    156,   284,     0,   157,   284,     0,   148,   284,     0,   158,
498    284,     0,   149,   284,     0,   152,   284,     0,   153,   284,
499      0,   154,   284,     0,   155,   284,     0,   150,   284,     0,
500    159,   284,     0,   160,   284,     0,   163,   284,     0,   164,
501    284,     0,   161,   284,     0,   162,   284,     0,   175,   284,
502      0,   147,     0,   144,     0,   145,     0,   146,     0,   165,
503    309,     0,   167,   309,     0,   166,   309,     0,   168,   309,
504      0,   169,   309,     0,   170,   309,     0,   171,   309,     0,
505    172,   309,     0,   173,   309,     0,   174,   309,     0,   412,
506    309,     0,   300,   309,     0,   314,   309,     0,   293,   309,
507      0,   284,   296,   284,     0,   298,     0,   298,    85,   297,
508     88,     0,   331,     0,   331,    21,   297,     0,   291,   299,
509      0,   292,   299,     0,   294,   299,     0,     0,   296,     0,
510      0,     0,   309,    67,   411,   284,    19,   301,   363,   310,
511    364,   302,    20,     0,     0,     0,   309,    68,   411,   284,
512     19,   303,   363,   310,   364,   304,    20,     0,   309,    67,
513    411,   284,    19,    20,     0,   309,    68,   411,   284,    19,
514     20,     0,     0,     0,   309,    67,   284,    19,   305,   363,
515    310,   364,   306,    20,     0,     0,     0,   309,    68,   284,
516     19,   307,   363,   310,   364,   308,    20,     0,   309,    67,
517    284,    19,    20,     0,   309,    68,   284,    19,    20,     0,
518    309,    67,   411,   309,     0,   309,    68,   411,   309,     0,
519      0,   311,     0,   202,     0,   310,   311,     0,   296,   309,
520    312,   284,    18,     0,   296,   284,    18,     0,   313,   309,
521      0,   312,    21,   313,   309,     0,   319,     0,    22,   284,
522    275,     0,   319,    22,   284,   275,     0,   309,    69,    19,
523    316,    20,   284,     0,     0,   309,    69,   411,    19,   315,
524    316,    20,   284,     0,   309,    69,   411,   284,     0,   317,
525      0,   316,    21,   317,     0,   316,    21,     0,   411,     0,
526    411,    23,   284,   275,     0,   193,     0,   333,     0,   323,
527    184,     0,   323,   318,     0,   193,     0,   323,   193,     0,
528    326,     0,   309,   324,     0,   108,     0,   109,     0,   321,
529      0,   322,   321,     0,    34,     0,    34,   322,     0,    34,
530    323,     0,    34,   322,   323,     0,   325,     0,   325,    21,
531      5,     0,   411,     0,   325,    21,   411,     0,     5,     0,
532    327,     0,   327,    21,     5,     0,     0,   328,   330,     0,
533      0,   327,    21,   329,   330,     0,   284,   296,   318,   284,
534      0,   411,     0,   295,     0,   295,   332,     0,   323,     0,
535    334,     0,   323,   334,     0,     0,   334,     0,   284,    24,
536    309,   332,    25,     0,    26,    27,     0,    26,   275,    27,
537      0,   334,    26,    27,     0,   334,    26,   275,    27,     0,
538    284,    24,    25,     0,   284,    24,   326,    25,     0,   334,
539    284,    24,    25,     0,   334,   284,    24,   326,    25,     0,
540    352,     0,   353,     0,   356,     0,   359,     0,   372,     0,
541    375,     0,   406,     0,   380,     0,   408,     0,   336,     0,
542    176,   410,   181,    88,     0,   177,   410,   181,    88,     0,
543     22,   411,     0,   339,     0,   337,     0,   346,     0,   339,
544    346,     0,   379,   339,     0,   405,   351,    11,    24,   273,
545     25,    18,     0,   405,   351,    11,    24,   273,    25,     0,
546    341,   346,     0,     0,     0,    13,    24,   274,    18,   274,
547     18,   342,   274,   343,    25,     0,     0,   182,   361,    24,
548    345,   383,    25,     0,   183,     0,   352,     0,   353,     0,
549    356,     0,   348,   370,     0,   348,     0,   349,     0,   372,
550      0,   347,     0,   340,     0,   344,     0,   408,     0,    24,
551    346,    25,     0,     1,     0,   374,   346,     0,   361,    19,
552      0,   365,    20,     0,   351,     0,   369,     0,   352,     0,
553    353,     0,   356,     0,   360,     0,   373,     0,   375,     0,
554    380,     0,   407,     0,    24,   351,    25,     0,   408,     0,
555      1,     0,   411,    22,     0,   107,   335,     0,     0,     6,
556    275,   354,    22,     0,     0,    98,     6,   275,   355,    22,
557      0,     0,     7,   357,    22,     0,     0,    98,     7,   358,
558     22,     0,    24,   359,    25,     0,   361,   367,     0,   361,
559    368,   362,     0,     0,     0,     0,     0,     0,    20,     0,
560    107,    20,     0,   371,    20,     0,   371,   107,    20,     0,
561    370,    20,     0,   370,   107,    20,     0,   370,   371,    20,
562      0,   370,   371,   107,    20,     0,    19,   366,     0,    19,
563     20,     0,    19,   369,    20,     0,    19,   370,    20,     0,
564     19,   370,   371,    20,     0,   351,     0,   369,   351,     0,
565    276,     0,   370,   276,     0,   335,     0,   371,   335,     0,
566     18,     0,   273,    18,     0,    18,     0,   273,    18,     0,
567    273,     0,     8,    24,   273,    25,     0,   374,   335,     0,
568      0,   374,   335,     9,   376,   335,     0,     0,    10,    24,
569    273,   377,    25,   335,     0,    11,    24,   273,    25,     0,
570     11,    24,   273,    25,     0,     0,     0,   182,   381,   361,
571     24,   382,   383,    25,   359,   404,   362,     0,   385,     0,
572      0,   383,   384,    21,   385,     0,   403,     0,   410,     0,
573    180,     0,   179,     0,   181,     0,    24,   273,    25,     0,
574    386,     0,   248,    26,   273,    27,     0,   248,    24,    25,
575      0,   248,    24,   249,    25,     0,    70,    24,   272,    21,
576    331,    25,     0,   248,   309,    28,   411,   284,     0,   248,
577    309,    44,   411,   284,     0,   248,    47,     0,   248,    48,
578      0,   387,     0,    47,   250,     0,    48,   250,     0,    29,
579    256,     0,    34,   256,     0,    33,   256,     0,    32,   256,
580      0,    31,   256,     0,    30,   256,     0,   253,     0,   388,
581      0,    24,   331,    25,   256,     0,   389,     0,   257,    34,
582    256,     0,   257,    35,   256,     0,   257,    36,   256,     0,
583    390,     0,   258,    33,   257,     0,   258,    32,   257,     0,
584    391,     0,   259,    49,   258,     0,   259,    50,   258,     0,
585    392,     0,   260,    37,   259,     0,   260,    38,   259,     0,
586    260,    51,   259,     0,   260,    52,   259,     0,   393,     0,
587    261,    53,   260,     0,   261,    54,   260,     0,   394,     0,
588    262,    29,   261,     0,   395,     0,   263,    39,   262,     0,
589    396,     0,   264,    40,   263,     0,   397,     0,   265,    55,
590    264,     0,   398,     0,   267,    56,   265,     0,   399,     0,
591      0,     0,   267,    41,   401,   273,    22,   402,   269,     0,
592    400,     0,   250,    23,   272,     0,   250,    57,   272,     0,
593    250,    58,   272,     0,   250,    59,   272,     0,   250,    60,
594    272,     0,   250,    61,   272,     0,   250,    62,   272,     0,
595    250,    63,   272,     0,   250,    64,   272,     0,   250,    65,
596    272,     0,   250,    66,   272,     0,   183,     0,     0,    12,
597      0,   378,   335,     0,   405,   335,    11,    24,   273,    25,
598     18,     0,   341,   335,     0,   378,   351,     0,   405,   351,
599     11,    24,   273,    25,    18,     0,   405,   351,    11,    24,
600    273,    25,     0,   341,   351,     0,    14,   411,    18,     0,
601     15,    18,     0,    97,    15,    18,     0,    16,    18,     0,
602     93,    16,    18,     0,    94,    16,    18,     0,    95,    16,
603     18,     0,    96,    16,    18,     0,    17,    18,     0,    17,
604    273,    18,     0,     0,    18,     0,   178,     0,   179,     0,
605    182,     0,   183,     0,   410,     0,   180,     0,   184,     0,
606    180,     0
607 };
608
609 #endif
610
611 #if YYDEBUG != 0
612 static const short yyrline[] = { 0,
613    240,   241,   244,   245,   248,   249,   250,   251,   252,   253,
614    254,   257,   259,   263,   263,   268,   274,   278,   279,   283,
615    284,   286,   288,   304,   308,   315,   319,   325,   326,   328,
616    330,   346,   350,   357,   361,   367,   369,   369,   373,   374,
617    375,   376,   379,   382,   383,   386,   387,   390,   391,   394,
618    395,   398,   399,   402,   403,   406,   409,   410,   413,   414,
619    415,   416,   417,   420,   421,   424,   424,   427,   427,   430,
620    434,   435,   438,   438,   441,   441,   444,   448,   449,   452,
621    453,   456,   462,   469,   475,   482,   483,   484,   485,   486,
622    489,   492,   495,   496,   499,   500,   501,   502,   503,   504,
623    505,   506,   509,   515,   522,   528,   537,   543,   547,   549,
624    553,   556,   563,   571,   572,   575,   576,   579,   580,   581,
625    582,   583,   584,   585,   586,   590,   591,   595,   596,   599,
626    601,   603,   604,   605,   606,   607,   609,   613,   617,   629,
627    630,   631,   632,   633,   634,   637,   638,   639,   640,   641,
628    642,   643,   644,   645,   648,   649,   652,   653,   654,   655,
629    656,   657,   658,   659,   660,   661,   662,   665,   666,   669,
630    673,   674,   677,   678,   679,   680,   683,   684,   688,   689,
631    690,   691,   694,   695,   696,   699,   700,   701,   704,   705,
632    706,   707,   708,   711,   712,   713,   716,   717,   720,   721,
633    725,   726,   729,   730,   735,   741,   742,   748,   754,   755,
634    755,   757,   760,   761,   762,   763,   764,   765,   766,   767,
635    768,   769,   770,   771,   774,   775,   778,   779,   782,   787,
636    788,   789,   792,   805,   809,   810,   813,   818,   819,   819,
637    824,   825,   826,   827,   830,   833,   836,   839,   840,   843,
638    844,   847,   848,   849,   853,   855,   864,   865,   866,   867,
639    868,   871,   872,   873,   874,   875,   876,   877,   878,   879,
640    880,   881,   882,   883,   884,   885,   886,   887,   888,   889,
641    890,   891,   892,   893,   894,   895,   896,   897,   898,   899,
642    900,   901,   902,   903,   904,   905,   906,   907,   908,   909,
643    910,   911,   912,   913,   914,   915,   916,   922,   923,   924,
644    925,   928,   929,   930,   931,   932,   933,   934,   935,   936,
645    937,   938,   939,   940,   941,   944,   948,   949,   953,   954,
646    958,   959,   960,   963,   964,   967,   969,   971,   972,   974,
647    976,   977,   979,   981,   983,   985,   986,   988,   990,   991,
648    993,   995,   996,   999,  1002,  1003,  1004,  1007,  1009,  1013,
649   1015,  1019,  1020,  1021,  1025,  1027,  1027,  1029,  1032,  1034,
650   1036,  1039,  1044,  1051,  1052,  1053,  1060,  1064,  1065,  1069,
651   1070,  1073,  1074,  1077,  1078,  1081,  1082,  1083,  1084,  1087,
652   1088,  1091,  1092,  1095,  1096,  1097,  1100,  1100,  1101,  1102,
653   1105,  1117,  1133,  1134,  1137,  1138,  1139,  1142,  1143,  1146,
654   1148,  1149,  1150,  1151,  1152,  1154,  1156,  1158,  1164,  1165,
655   1166,  1167,  1168,  1169,  1170,  1171,  1172,  1174,  1178,  1180,
656   1187,  1192,  1195,  1198,  1199,  1203,  1205,  1207,  1209,  1213,
657   1214,  1216,  1220,  1222,  1224,  1227,  1228,  1229,  1230,  1231,
658   1232,  1233,  1234,  1235,  1236,  1237,  1238,  1239,  1242,  1248,
659   1251,  1254,  1255,  1258,  1259,  1260,  1261,  1262,  1263,  1264,
660   1265,  1266,  1267,  1268,  1271,  1272,  1278,  1279,  1280,  1281,
661   1284,  1285,  1286,  1287,  1290,  1291,  1295,  1298,  1301,  1304,
662   1307,  1310,  1313,  1314,  1315,  1316,  1318,  1319,  1321,  1323,
663   1330,  1334,  1336,  1338,  1340,  1344,  1345,  1348,  1349,  1352,
664   1353,  1356,  1357,  1360,  1361,  1362,  1365,  1373,  1378,  1379,
665   1383,  1384,  1387,  1392,  1395,  1396,  1397,  1405,  1406,  1406,
666   1410,  1411,  1412,  1423,  1430,  1431,  1434,  1435,  1436,  1437,
667   1438,  1440,  1441,  1442,  1443,  1446,  1447,  1448,  1449,  1450,
668   1451,  1452,  1453,  1454,  1455,  1458,  1459,  1462,  1463,  1464,
669   1465,  1468,  1469,  1470,  1473,  1474,  1475,  1478,  1479,  1480,
670   1481,  1482,  1485,  1486,  1487,  1490,  1491,  1494,  1495,  1499,
671   1500,  1503,  1504,  1507,  1508,  1511,  1512,  1513,  1514,  1517,
672   1518,  1519,  1520,  1521,  1522,  1523,  1524,  1525,  1526,  1527,
673   1528,  1531,  1532,  1535,  1538,  1540,  1542,  1546,  1547,  1549,
674   1551,  1554,  1555,  1556,  1558,  1559,  1560,  1561,  1562,  1563,
675   1564,  1567,  1568,  1571,  1574,  1575,  1576,  1577,  1578,  1581,
676   1582
677 };
678 #endif
679
680
681 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
682
683 static const char * const yytname[] = {   "$","error","$undefined.","BADTOK",
684 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
685 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
686 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
687 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
688 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
689 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
690 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
691 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
692 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
693 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
694 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
695 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
696 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
697 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
698 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
699 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
700 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
701 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
702 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
703 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
704 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
705 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
706 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED",
707 "QSETBUFFERSIZE","QSETSTRINGLENGTH","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID",
708 "CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file","externalDefs","externalDef",
709 "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
710 "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
711 "optGlobMods","@8","optPlainGlobMods","@9","optGlobModsRest","optPlainGlobModsRest",
712 "specialClauses","globIdList","globIdListExpr","globId","globQual","optGlobQuals",
713 "optGlobModsAux","@10","@11","optPlainGlobModsAux","@12","@13","optMods","fcnMods",
714 "@14","fcnPlainMods","@15","specialTag","endStateTag","endSpecialTag","stateSpecialClause",
715 "specialClauseType","specialClause","@16","@17","fcnDefHdrAux","fcnBody","@18",
716 "@19","fcnDef","locModifies","locPlainModifies","modListExpr","mExpr","modList",
717 "specClauseListExpr","specClauseList","primaryExpr","postfixExpr","argumentExprList",
718 "unaryExpr","fieldDesignator","offsetofExpr","sizeofExpr","@20","sizeofExprAux",
719 "castExpr","timesExpr","plusExpr","shiftExpr","relationalExpr","equalityExpr",
720 "bitandExpr","xorExpr","bitorExpr","andExpr","@21","orExpr","@22","conditionalExpr",
721 "@23","@24","assignExpr","expr","optExpr","constantExpr","initializer","instanceDecl",
722 "@25","@26","namedInitializer","@27","typeDecl","@28","IsType","PushType","namedInitializerList",
723 "namedInitializerListAux","optDeclarators","init","initList","storageSpecifier",
724 "typeQualifier","typeModifier","typeSpecifier","completeType","completeTypeSpecifier",
725 "altType","completeTypeSpecifierAux","optCompleteType","suSpc","@29","@30","@31",
726 "@32","@33","@34","@35","@36","NotType","structDeclList","structDecl","structNamedDeclList",
727 "structNamedDecl","enumSpc","@37","enumeratorList","enumerator","optNamedDecl",
728 "namedDecl","genericParamList","innerMods","innerModsList","pointers","paramIdList",
729 "idList","paramTypeList","paramList","@38","@39","paramDecl","typeExpression",
730 "abstractDecl","optAbstractDeclBase","abstractDeclBase","stmt","lclintassertion",
731 "iterBody","endBody","iterDefStmtList","iterDefIterationStmt","forPred","@40",
732 "@41","partialIterStmt","@42","iterDefStmt","iterSelectionStmt","openScope",
733 "closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@43","@44","defaultStmt",
734 "@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope","DeleteInnerScope",
735 "CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe","compoundStmtRest",
736 "compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList","stmtList",
737 "expressionStmt","expressionStmtErr","ifPred","selectionStmt","@47","@48","whilePred",
738 "iterWhilePred","iterStmt","@49","@50","iterArgList","@51","iterArgExpr","primaryIterExpr",
739 "postfixIterExpr","unaryIterExpr","castIterExpr","timesIterExpr","plusIterExpr",
740 "shiftIterExpr","relationalIterExpr","equalityIterExpr","bitandIterExpr","xorIterExpr",
741 "bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr","@52","@53",
742 "assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr","jumpStmt",
743 "optSemi","id","newId","typeName", NULL
744 };
745 #endif
746
747 static const short yyr1[] = {     0,
748    185,   185,   186,   186,   187,   187,   187,   187,   187,   187,
749    187,   188,   188,   190,   189,   191,   191,   192,   192,   193,
750    193,   193,   193,   194,   193,   195,   193,   196,   196,   196,
751    196,   197,   196,   198,   196,   200,   201,   199,   202,   202,
752    202,   202,   203,   205,   204,   207,   206,   208,   208,   209,
753    209,   210,   210,   211,   211,   212,   213,   213,   214,   214,
754    214,   214,   214,   215,   215,   217,   216,   218,   216,   216,
755    216,   216,   220,   219,   221,   219,   219,   219,   219,   222,
756    222,   224,   223,   226,   225,   227,   227,   227,   227,   227,
757    228,   229,   230,   230,   231,   231,   231,   231,   231,   231,
758    231,   231,   233,   232,   234,   232,   235,   235,   237,   236,
759    238,   236,   239,   240,   240,   241,   241,   242,   242,   242,
760    242,   242,   242,   242,   242,   243,   243,   244,   244,   245,
761    245,   245,   245,   245,   245,   245,   245,   246,   246,   247,
762    247,   247,   247,   247,   247,   248,   248,   248,   248,   248,
763    248,   248,   248,   248,   249,   249,   250,   250,   250,   250,
764    250,   250,   250,   250,   250,   250,   250,   251,   251,   252,
765    254,   253,   255,   255,   255,   255,   256,   256,   257,   257,
766    257,   257,   258,   258,   258,   259,   259,   259,   260,   260,
767    260,   260,   260,   261,   261,   261,   262,   262,   263,   263,
768    264,   264,   265,   266,   265,   267,   268,   267,   269,   270,
769    271,   269,   272,   272,   272,   272,   272,   272,   272,   272,
770    272,   272,   272,   272,   273,   273,   274,   274,   275,   276,
771    276,   276,   277,   278,   277,   279,   277,   280,   281,   280,
772    283,   282,   282,   282,   284,   285,   286,   287,   287,   288,
773    288,   289,   289,   289,   290,   290,   291,   291,   291,   291,
774    291,   292,   292,   292,   292,   292,   292,   292,   292,   292,
775    292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
776    292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
777    292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
778    292,   292,   292,   292,   292,   292,   292,   293,   293,   293,
779    293,   294,   294,   294,   294,   294,   294,   294,   294,   294,
780    294,   294,   294,   294,   294,   295,   296,   296,   297,   297,
781    298,   298,   298,   299,   299,   301,   302,   300,   303,   304,
782    300,   300,   300,   305,   306,   300,   307,   308,   300,   300,
783    300,   300,   300,   309,   310,   310,   310,   311,   311,   312,
784    312,   313,   313,   313,   314,   315,   314,   314,   316,   316,
785    316,   317,   317,   318,   318,   318,   318,   319,   319,   320,
786    320,   321,   321,   322,   322,   323,   323,   323,   323,   324,
787    324,   325,   325,   326,   326,   326,   328,   327,   329,   327,
788    330,   330,   331,   331,   332,   332,   332,   333,   333,   334,
789    334,   334,   334,   334,   334,   334,   334,   334,   335,   335,
790    335,   335,   335,   335,   335,   335,   335,   335,   336,   336,
791     -1,   337,   338,   339,   339,   340,   340,   340,   340,   342,
792    343,   341,   345,   344,   344,   346,   346,   346,   346,   346,
793    346,   346,   346,   346,   346,   346,   346,   346,   347,   348,
794    349,   350,   350,   351,   351,   351,   351,   351,   351,   351,
795    351,   351,   351,   351,   352,   352,   354,   353,   355,   353,
796    357,   356,   358,   356,   359,   359,   360,   361,   362,   363,
797    364,   365,   366,   366,   366,   366,   366,   366,   366,   366,
798    367,   368,   368,   368,   368,   369,   369,   370,   370,   371,
799    371,   372,   372,   373,   373,   373,   374,   375,   376,   375,
800    377,   375,   378,   379,   381,   382,   380,   383,   384,   383,
801    385,   385,   385,   385,   386,   386,   387,   387,   387,   387,
802    387,   387,   387,   387,   387,   388,   388,   388,   388,   388,
803    388,   388,   388,   388,   388,   389,   389,   390,   390,   390,
804    390,   391,   391,   391,   392,   392,   392,   393,   393,   393,
805    393,   393,   394,   394,   394,   395,   395,   396,   396,   397,
806    397,   398,   398,   399,   399,   400,   401,   402,   400,   403,
807    403,   403,   403,   403,   403,   403,   403,   403,   403,   403,
808    403,   404,   404,   405,   406,   406,   406,   407,   407,   407,
809    407,   408,   408,   408,   408,   408,   408,   408,   408,   408,
810    408,   409,   409,   410,   411,   411,   411,   411,   411,   412,
811    412
812 };
813
814 static const short yyr2[] = {     0,
815      0,     1,     1,     2,     2,     1,     1,     1,     1,     1,
816      1,     8,    11,     0,     5,     1,     3,     1,     2,     1,
817      6,     3,     6,     0,     6,     0,     7,     1,     6,     3,
818      6,     0,     6,     0,     7,     0,     0,    10,     3,     3,
819      3,     2,     1,     0,     2,     0,     2,     1,     2,     1,
820      2,     1,     2,     1,     3,     2,     1,     1,     1,     1,
821      1,     1,     1,     0,     2,     0,     6,     0,     6,     1,
822      1,     0,     0,     5,     0,     5,     1,     1,     0,     1,
823      0,     0,     3,     0,     3,     1,     1,     1,     1,     1,
824      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
825      1,     1,     0,     7,     0,     8,     1,     3,     0,     3,
826      0,     3,     2,     3,     2,     2,     1,     1,     1,     3,
827      4,     2,     3,     3,     3,     1,     1,     1,     3,     1,
828      1,     3,     4,     2,     3,     3,     3,     1,     3,     1,
829      1,     1,     3,     1,     1,     1,     4,     3,     4,     6,
830      5,     5,     2,     2,     1,     3,     1,     2,     2,     2,
831      2,     2,     2,     2,     2,     1,     1,     3,     1,     9,
832      0,     3,     4,     2,     4,     2,     1,     4,     1,     3,
833      3,     3,     1,     3,     3,     1,     3,     3,     1,     3,
834      3,     3,     3,     1,     3,     3,     1,     3,     1,     3,
835      1,     3,     1,     0,     4,     1,     0,     4,     1,     0,
836      0,     7,     1,     3,     3,     3,     3,     3,     3,     3,
837      3,     3,     3,     3,     1,     3,     0,     1,     1,     1,
838      1,     1,     3,     0,     9,     0,    11,     2,     0,     6,
839      0,     7,     4,     4,     0,     0,     2,     1,     4,     0,
840      4,     1,     3,     4,     1,     3,     1,     1,     1,     1,
841      1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
842      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
843      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
844      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
845      2,     2,     2,     2,     2,     2,     2,     1,     1,     1,
846      1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
847      2,     2,     2,     2,     2,     3,     1,     4,     1,     3,
848      2,     2,     2,     0,     1,     0,     0,    11,     0,     0,
849     11,     6,     6,     0,     0,    10,     0,     0,    10,     5,
850      5,     4,     4,     0,     1,     1,     2,     5,     3,     2,
851      4,     1,     3,     4,     6,     0,     8,     4,     1,     3,
852      2,     1,     4,     1,     1,     2,     2,     1,     2,     1,
853      2,     1,     1,     1,     2,     1,     2,     2,     3,     1,
854      3,     1,     3,     1,     1,     3,     0,     2,     0,     4,
855      4,     1,     1,     2,     1,     1,     2,     0,     1,     5,
856      2,     3,     3,     4,     3,     4,     4,     5,     1,     1,
857      1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
858      2,     1,     1,     1,     2,     2,     7,     6,     2,     0,
859      0,    10,     0,     6,     1,     1,     1,     1,     2,     1,
860      1,     1,     1,     1,     1,     1,     3,     1,     2,     2,
861      2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
862      1,     3,     1,     1,     2,     2,     0,     4,     0,     5,
863      0,     3,     0,     4,     3,     2,     3,     0,     0,     0,
864      0,     0,     1,     2,     2,     3,     2,     3,     3,     4,
865      2,     2,     3,     3,     4,     1,     2,     1,     2,     1,
866      2,     1,     2,     1,     2,     1,     4,     2,     0,     5,
867      0,     6,     4,     4,     0,     0,    10,     1,     0,     4,
868      1,     1,     1,     1,     1,     3,     1,     4,     3,     4,
869      6,     5,     5,     2,     2,     1,     2,     2,     2,     2,
870      2,     2,     2,     2,     1,     1,     4,     1,     3,     3,
871      3,     1,     3,     3,     1,     3,     3,     1,     3,     3,
872      3,     3,     1,     3,     3,     1,     3,     1,     3,     1,
873      3,     1,     3,     1,     3,     1,     0,     0,     7,     1,
874      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
875      3,     1,     0,     1,     2,     7,     2,     2,     7,     6,
876      2,     3,     2,     3,     2,     3,     3,     3,     3,     2,
877      3,     0,     1,     1,     1,     1,     1,     1,     1,     1,
878      1
879 };
880
881 static const short yydefact[] = {     0,
882     11,   386,   354,   231,   354,    14,     0,     0,     0,     0,
883    245,   245,   258,   257,   259,   260,   261,   245,   245,   245,
884    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
885    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
886    245,   245,   245,   309,   310,   311,   308,   245,   245,   245,
887    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
888    245,   245,   245,   245,   354,   354,   354,   354,   354,   354,
889    354,   354,   354,   354,   245,   624,   625,   629,   626,   627,
890    630,     0,     3,     6,     7,   378,     8,     9,   354,    43,
891    622,    10,   230,   232,     0,   334,   334,   354,   334,   354,
892    327,   354,     0,   354,   107,   245,   628,    20,   354,   382,
893    383,   384,   387,   388,   248,   245,   245,   241,   354,   631,
894    354,   354,   629,     0,   474,   245,   481,     0,     0,     0,
895    604,     0,     0,     0,     0,   245,   514,     0,   245,   245,
896    245,   245,   245,   245,   245,   245,   245,     0,    42,     0,
897      0,     0,     0,     0,     0,   245,   145,   141,   144,   142,
898    525,   146,   157,   177,   167,   166,   179,   183,   186,   189,
899    194,   197,   199,   201,   203,   206,   209,   213,   225,   516,
900    171,     0,     0,   506,   464,   465,   466,   467,     0,     0,
901    468,   245,   469,     0,   470,     0,   471,   473,   140,     0,
902    458,     0,   512,     0,   488,   445,     0,     0,     0,   454,
903      0,   455,   434,   453,   450,   451,   446,   447,   448,     0,
904      0,   452,     0,     0,     0,   456,   433,     0,   262,   263,
905    264,   265,   270,   272,   271,   275,   276,   287,   289,   290,
906    288,   273,   274,   266,   267,   268,   269,   284,   285,   282,
907    286,   277,   278,   281,   279,   280,   293,   295,   300,   283,
908    296,   297,   298,   299,   291,   292,   294,   301,   302,   305,
909    306,   303,   304,   312,   314,   313,   315,   316,   317,   318,
910    319,   320,   321,   307,     4,   245,     0,   109,   113,   508,
911    354,   354,   623,     5,   354,   335,   331,   332,   325,   333,
912      0,   245,   245,   323,   245,   245,     0,   324,   379,   322,
913    385,   389,   354,     0,   247,   354,     0,   238,   245,   622,
914     16,    18,     0,   354,   245,    28,   397,   245,   141,   144,
915    177,   229,   477,   140,     0,   245,   245,   245,   245,     0,
916    613,   615,   620,     0,     0,   354,   403,     0,     0,   160,
917    165,   164,   163,   162,   161,     0,   245,   158,   159,   245,
918      0,     0,     0,     0,     0,   245,   483,   245,     0,     0,
919    476,   428,   245,   419,   420,   421,   422,     0,   423,   424,
920    245,   426,   245,   425,   427,   488,   245,   245,   153,   154,
921      0,   245,   245,   245,   245,   245,   245,   245,   245,   245,
922    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
923    245,   245,   245,   245,   245,   245,   245,   245,   204,   210,
924    207,   515,   245,     0,   611,    39,     0,   489,   507,   518,
925    608,     0,   475,   245,     0,     0,     0,   513,    40,   435,
926    439,   449,   460,   461,   459,     0,     0,    41,    22,   245,
927    397,   354,   245,   488,   509,   245,   233,   108,   354,     0,
928    329,     0,   354,     0,   354,     0,   245,   245,   244,   245,
929    243,   239,   354,     0,   245,     0,   354,   245,    19,   394,
930      0,     0,   380,   395,   245,     0,     0,   482,     0,   521,
931      0,   228,     0,   612,   621,   143,   245,   245,     0,   405,
932    404,   406,   245,   472,   245,     0,   616,   617,   618,   619,
933    614,   479,     0,     0,     0,     0,   607,   354,   486,   605,
934      0,     0,   148,     0,   155,     0,     0,     0,   214,   215,
935    216,   217,   218,   219,   220,   221,   222,   223,   224,   180,
936    181,   182,   185,   184,   187,   188,   190,   191,   192,   193,
937    195,   196,   198,   200,   202,   245,   245,   245,   226,   245,
938    245,   172,   502,   144,   506,     0,   354,   487,   519,     0,
939      0,   457,   443,     0,     0,    24,     0,   493,   245,   510,
940    110,   354,   245,   354,   488,   112,   245,   234,   328,   245,
941    344,     0,   352,   347,     0,   353,     0,   369,   372,   366,
942    368,   249,   245,   245,   622,    15,    30,   245,   397,   245,
943     17,   381,   390,   392,    36,   399,   354,   398,   402,   478,
944    517,     0,   523,   245,   326,   411,     0,   397,   407,   245,
945      0,   178,   354,   245,     0,   484,   485,     0,     0,   501,
946      0,   526,   245,   149,   147,   245,   245,   205,     0,   208,
947    245,   174,   245,   176,   503,   504,   245,   245,   245,   524,
948    245,   245,   354,    44,    26,   494,   497,   245,   245,   495,
949    245,   511,     0,   236,   245,   330,   350,   490,   336,   351,
950    490,   339,   245,   371,   245,     0,     0,   245,   245,   245,
951      0,    32,     0,   245,     0,    46,   396,   245,   408,   245,
952      0,   412,   415,   245,     0,   413,     0,   397,     0,     0,
953    480,   429,   430,   245,   245,   156,   151,   152,   211,     0,
954      0,   505,   520,     0,   245,   245,   245,   245,   245,   245,
955    245,   245,   245,     0,   141,   144,   142,   157,   177,   166,
956    183,   186,   189,   194,   197,   199,   201,   203,   206,     0,
957    529,   528,   537,   546,   556,   558,   562,   565,   568,   573,
958    576,   578,   580,   582,   584,   586,   590,   531,   140,     0,
959     23,    25,    72,    44,   498,   499,   245,   496,    21,   245,
960    250,   354,   342,   490,   354,   343,   490,   365,   370,   245,
961      0,   242,   245,   252,   240,   245,     0,   354,    46,    34,
962      0,   391,   393,    37,    79,   400,   374,     0,   245,   408,
963    375,   409,   522,   440,     0,   416,   414,   417,     0,     0,
964    150,     0,   529,   245,   173,   175,   610,     0,     0,   160,
965    165,   164,   163,   162,   161,   158,   159,   245,   245,   245,
966    153,   154,     0,   245,   245,   245,   245,   245,   245,   245,
967    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
968    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
969    204,   587,   207,   444,     0,   438,    66,    82,    70,    86,
970     87,    88,    89,    90,    93,    94,    45,    72,    48,    71,
971    354,   354,    52,    27,   500,   245,     0,   356,   354,   354,
972    355,   354,   354,   354,   373,   245,   255,     0,   250,    12,
973     31,    33,    46,    29,   622,    73,    84,    77,    47,    79,
974     50,    78,   397,   401,   376,   377,   245,   410,   418,     0,
975    169,     0,   488,   212,   609,   143,   245,     0,   148,     0,
976      0,     0,     0,   591,   592,   593,   594,   595,   596,   597,
977    598,   599,   600,   601,   180,   181,   182,   185,   184,   187,
978    188,   190,   191,   192,   193,   195,   196,   198,   200,   202,
979    583,   245,   585,   245,   437,   354,    64,   622,    49,   103,
980      0,    53,   250,   245,   354,     0,   245,   357,   345,   354,
981    348,   354,   367,   253,   245,   622,    35,     0,   354,    64,
982    622,    51,   245,   441,   245,     0,   606,   603,   178,   245,
983    149,   147,   245,   245,     0,   530,   354,    59,    60,    61,
984     62,    63,   622,    54,    64,     0,     0,     0,   119,    83,
985    128,   622,     0,   118,     0,    95,   100,    99,    98,    97,
986     96,   101,   102,   105,     0,   235,   245,   359,   245,   245,
987    354,   362,     0,   337,     0,   340,   254,   256,     0,    38,
988    622,   622,    85,   622,   117,   245,     0,   170,   168,   602,
989    489,     0,   151,   152,   588,     0,    64,     0,    65,    58,
990     56,    57,     0,   122,     0,     0,     0,     0,     0,   115,
991      0,     0,   131,   138,   622,   130,     0,   245,   251,   245,
992    245,     0,   360,   245,   346,     0,   349,     0,    13,    81,
993     81,   116,   442,   527,   150,   245,    81,    55,    81,   123,
994    120,   127,   126,     0,   124,   125,   129,   114,     0,   134,
995      0,     0,     0,     0,     0,   622,   237,   363,   354,   358,
996    245,   338,   341,    74,    80,    76,   589,    67,    69,   121,
997    135,   132,     0,   136,   137,   139,    92,   245,     0,   361,
998    364,   133,   104,    91,   245,   106,     0,     0,     0
999 };
1000
1001 static const short yydefgoto[] = {  1167,
1002     82,    83,    84,    85,   122,   320,   321,    86,   664,   774,
1003    322,   799,   913,    87,   696,   915,   898,    89,   772,   773,
1004    804,   805,   887,   919,   888,  1023,  1024,  1081,  1025,  1026,
1005    889,   976,   977,   921,   999,  1000,  1144,  1145,   978,   922,
1006   1001,   891,  1165,  1158,   892,  1044,   893,  1035,  1097,    90,
1007    289,   452,   454,    91,  1030,  1063,  1031,  1124,  1032,  1094,
1008   1095,   162,   163,   524,   164,   930,   165,   166,   424,   562,
1009    167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1010    556,   177,   558,   178,   557,   824,   179,   207,   493,   333,
1011    290,    93,   675,   780,   115,   604,    94,   316,   181,   287,
1012    116,   117,   897,   795,   908,    96,    97,    98,    99,   347,
1013    291,   460,   101,   297,   102,   784,  1106,   787,  1108,   678,
1014   1053,   681,  1055,   103,   900,   901,  1050,  1051,   104,   686,
1015    597,   598,   809,   119,   482,   112,   113,   106,   612,   613,
1016    483,   484,   485,   698,   618,   348,   815,   811,   502,   371,
1017    372,   208,   228,   209,   210,   373,   927,  1067,   212,   661,
1018    213,   214,   215,   216,   183,   429,   374,   375,   487,   635,
1019    376,   335,   513,   377,   188,   378,   568,   782,   989,   221,
1020    581,   519,   428,   190,   582,   583,   379,   191,   192,   380,
1021    658,   622,   381,   224,   382,   386,   715,   751,   875,   752,
1022    753,   754,   755,   756,   757,   758,   759,   760,   761,   762,
1023    763,   764,   765,   766,   767,   972,  1116,   768,  1071,   383,
1024    384,   197,   385,   294,   334,   200,   109
1025 };
1026
1027 static const short yypact[] = {  2055,
1028 -32768,   113,  5596,-32768,  6439,-32768,   684,  3006,  3376,  3376,
1029 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1030 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1031 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1032 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1033 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1034 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1035 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   618,-32768,-32768,
1036 -32768,  2231,-32768,-32768,-32768,   440,-32768,-32768,  5296,-32768,
1037     89,-32768,-32768,-32768,   111,  6279,  6279,-32768,  6279,   149,
1038     99,-32768,   420,-32768,-32768,   684,-32768,-32768,-32768,-32768,
1039 -32768,-32768,   113,-32768,-32768,   172,-32768,   149,-32768,-32768,
1040 -32768,  5596,-32768,   199,-32768,  5768,-32768,   217,   250,   257,
1041 -32768,   286,   684,   242,   308,  1173,-32768,  2595,  5768,  5768,
1042   5768,  5768,  5768,  5768,-32768,  5788,  5788,   324,-32768,   388,
1043    394,   404,   455,   486,   367,  4743,-32768,   487,   494,-32768,
1044    505,-32768,   632,  1028,-32768,-32768,-32768,   904,   413,   565,
1045    397,   596,   507,   512,   506,   518,   103,-32768,-32768,   283,
1046 -32768,  3518,   469,   515,-32768,-32768,-32768,-32768,   613,  3148,
1047 -32768,  4743,-32768,  3518,-32768,  3518,-32768,-32768,   678,   680,
1048 -32768,   688,-32768,  2779,   505,   700,   328,   648,  3191,-32768,
1049   3376,-32768,-32768,-32768,  6039,-32768,-32768,-32768,-32768,   733,
1050    738,-32768,  3376,  3376,  3518,-32768,-32768,   691,-32768,-32768,
1051 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1052 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1053 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1054 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1055 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1056 -32768,-32768,-32768,-32768,-32768,   768,   790,-32768,-32768,-32768,
1057    149,  5139,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1058    807,   609,-32768,-32768,   684,   684,    28,-32768,   440,-32768,
1059 -32768,-32768,-32768,   809,-32768,-32768,   823,   831,   609,    89,
1060 -32768,   645,   832,-32768,   684,-32768,   294,  5768,-32768,-32768,
1061 -32768,-32768,-32768,-32768,   839,  5768,  5768,  5768,  1841,   853,
1062 -32768,-32768,-32768,   561,   580,  5908,   132,   852,   865,-32768,
1063 -32768,-32768,-32768,-32768,-32768,   884,  5768,-32768,-32768,  5768,
1064    892,   905,   911,   919,   927,  5768,-32768,  1934,   774,   774,
1065 -32768,-32768,  4743,-32768,-32768,-32768,-32768,   941,-32768,-32768,
1066   4743,-32768,  4743,-32768,-32768,-32768,  1478,  5768,-32768,-32768,
1067    157,  5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,
1068   5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,
1069   5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,-32768,-32768,
1070 -32768,-32768,  5768,   620,-32768,-32768,  2411,-32768,-32768,   953,
1071 -32768,   956,-32768,  5768,   602,   945,   950,-32768,-32768,-32768,
1072 -32768,  6039,-32768,-32768,-32768,  2963,   967,-32768,-32768,  5768,
1073    370,  3620,   609,   972,-32768,   609,-32768,   461,  6439,   910,
1074    981,   985,   987,   992,   987,   684,   999,   609,-32768,   609,
1075 -32768,-32768,-32768,   958,  1006,  1011,-32768,   609,   645,-32768,
1076    684,  1023,-32768,  1031,   684,   312,  1032,-32768,   338,  1035,
1077    376,  1035,  1040,-32768,-32768,-32768,-32768,  1734,  1036,   669,
1078 -32768,   750,  5768,-32768,-32768,  1044,-32768,-32768,-32768,-32768,
1079 -32768,-32768,  1045,  1046,   888,   889,-32768,  3620,-32768,-32768,
1080   1061,  1051,-32768,   422,-32768,   128,   684,   684,-32768,-32768,
1081 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1082 -32768,-32768,   904,   904,   413,   413,   565,   565,   565,   565,
1083    397,   397,   596,   507,   512,  5768,  5768,  5768,-32768,  5799,
1084   5819,-32768,-32768,  5523,-32768,  3333,  3799,-32768,-32768,  1053,
1085    522,-32768,-32768,  1059,  1057,-32768,  1077,-32768,  4157,-32768,
1086 -32768,  3978,  4200,-32768,   972,-32768,-32768,  1080,-32768,-32768,
1087   1099,  1098,-32768,  1100,  1102,-32768,   962,-32768,  1110,-32768,
1088 -32768,-32768,   172,-32768,   439,-32768,-32768,  5768,   566,   609,
1089 -32768,-32768,  1101,-32768,-32768,  1118,  6439,-32768,-32768,-32768,
1090 -32768,  1116,-32768,  1841,-32768,-32768,  1132,   138,   750,  3429,
1091   1136,-32768,-32768,-32768,  1139,-32768,-32768,  1074,  1076,-32768,
1092   1142,-32768,  5768,-32768,-32768,-32768,-32768,   506,   964,   518,
1093   5768,-32768,  5768,-32768,-32768,-32768,  4338,  4743,  5768,-32768,
1094   5830,  5768,-32768,-32768,-32768,-32768,-32768,  4381,  4519,-32768,
1095   4562,-32768,  1144,-32768,-32768,-32768,-32768,-32768,  1152,-32768,
1096 -32768,  1153,-32768,   684,-32768,   684,  1156,  1955,-32768,-32768,
1097   1148,-32768,  1155,-32768,   362,-32768,-32768,   684,   917,  4743,
1098   1159,-32768,-32768,   287,  1163,-32768,  1151,   123,  1175,  1169,
1099 -32768,-32768,-32768,  5768,  5830,-32768,-32768,-32768,-32768,  1183,
1100   1184,-32768,-32768,   587,  5768,  5768,  5768,  5768,  5768,  5768,
1101   5768,  5788,  5788,  1174,   601,   623,   647,   804,  1050,   661,
1102    954,   968,   966,   529,   977,  1181,  1172,  1178,  1157,   178,
1103   1188,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1104 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   702,   708,
1105 -32768,-32768,  1056,-32768,-32768,-32768,  4700,-32768,-32768,-32768,
1106 -32768,  6366,-32768,-32768,  6366,-32768,-32768,-32768,-32768,  5768,
1107   1019,-32768,  1955,-32768,-32768,  1955,  1134,-32768,-32768,-32768,
1108   1198,-32768,-32768,-32768,  1229,-32768,   440,  1208,-32768,   797,
1109 -32768,   750,-32768,-32768,  1213,-32768,-32768,-32768,  1214,   684,
1110 -32768,   716,  1215,  5768,-32768,-32768,  1223,   717,  1219,   732,
1111    740,   748,   769,   786,   801,   808,   819,  5768,  5009,  5768,
1112    828,   834,   239,  5768,  5768,  5768,  5768,  5768,  5768,  5768,
1113   5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,
1114   5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,  5768,
1115   5768,-32768,  5768,-32768,  1226,  1230,    39,-32768,-32768,-32768,
1116 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   523,-32768,-32768,
1117 -32768,-32768,  1147,-32768,-32768,  1955,   612,-32768,   149,  5369,
1118 -32768,  6366,  5369,  6366,-32768,-32768,-32768,  1021,-32768,-32768,
1119 -32768,-32768,-32768,-32768,    89,    46,-32768,-32768,-32768,   921,
1120 -32768,-32768,   156,-32768,-32768,-32768,  5757,-32768,-32768,   659,
1121 -32768,  1231,   972,-32768,-32768,   849,  5768,  1232,   876,   877,
1122    232,   684,   684,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1123 -32768,-32768,-32768,-32768,   882,   890,   897,   685,   781,   567,
1124    676,   390,   405,   482,   485,   640,   875,   371,   501,   499,
1125    506,  5768,   518,  5830,-32768,  6170,   168,    97,-32768,-32768,
1126   1049,-32768,-32768,-32768,-32768,  1233,   584,-32768,-32768,  5369,
1127 -32768,  5369,-32768,-32768,   901,   729,-32768,  1164,  6170,   168,
1128     97,-32768,   552,-32768,-32768,   684,-32768,  1071,   903,-32768,
1129    925,   933,-32768,-32768,  1022,-32768,  4982,-32768,-32768,-32768,
1130 -32768,-32768,   763,-32768,   168,   883,    90,    90,-32768,-32768,
1131    326,   787,  1168,-32768,   118,-32768,-32768,-32768,-32768,-32768,
1132 -32768,-32768,-32768,-32768,   851,-32768,   609,-32768,-32768,  1236,
1133 -32768,  1237,  1238,-32768,  1240,-32768,-32768,-32768,  1177,-32768,
1134   4824,   763,-32768,   787,-32768,    60,  1241,-32768,-32768,-32768,
1135 -32768,  1242,   934,   947,-32768,  1182,   168,  1185,-32768,-32768,
1136 -32768,-32768,   125,   326,    85,   684,   684,    90,  1190,-32768,
1137    118,   118,-32768,   334,   874,-32768,   118,-32768,-32768,  5768,
1138    584,  1244,-32768,-32768,-32768,  1243,-32768,  1249,-32768,  1199,
1139   1199,-32768,-32768,-32768,   948,  5768,  1199,-32768,  1199,-32768,
1140 -32768,-32768,   326,  1256,-32768,-32768,   326,-32768,   150,   334,
1141    459,   684,   684,   118,  1197,   874,-32768,-32768,-32768,-32768,
1142   5768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1143 -32768,-32768,  1260,-32768,-32768,   334,-32768,-32768,  1200,-32768,
1144 -32768,-32768,-32768,-32768,-32768,-32768,  1289,  1291,-32768
1145 };
1146
1147 static const short yypgoto[] = {-32768,
1148 -32768,  1210,-32768,-32768,-32768,-32768,  -398,  -105,-32768,-32768,
1149    969,-32768,-32768,-32768,-32768,-32768,    83,-32768,   519,-32768,
1150   -718,-32768,-32768,-32768,  -714,   296,   221,-32768,-32768,   279,
1151    418,-32768,-32768,   395,-32768,-32768,  -829,  -683,-32768,-32768,
1152 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1153 -32768,-32768,-32768,-32768,-32768,-32768,  -917,   183,   315,  -951,
1154    222,-32768,  -617,   479,   739,-32768,-32768,  -592,-32768,-32768,
1155    108,  -399,  -343,  -308,  -338,  -349,  -346,  -372,  -541,  -470,
1156 -32768,  -569,-32768,  -109,-32768,-32768,  1097,   989,  -610,  -321,
1157      2,-32768,-32768,-32768,  -462,-32768,-32768,-32768,     0,  -250,
1158    859,-32768,  -796,  -723,-32768,-32768,-32768,-32768,-32768,-32768,
1159    134,   741,-32768,   116,-32768,-32768,-32768,-32768,-32768,-32768,
1160 -32768,-32768,-32768,   955,  -625,  -746,-32768,   229,-32768,-32768,
1161    646,   649,   524,     5,  -377,  1222,-32768,    14,-32768,-32768,
1162   -615,-32768,-32768,-32768,   638,  -235,   990,-32768,  -490,   236,
1163 -32768,  1328,-32768,  1115,-32768,  1225,-32768,-32768,-32768,-32768,
1164   -115,-32768,-32768,-32768,-32768,   162,  1362,  1473,-32768,-32768,
1165   1527,-32768,-32768,  -359,-32768,   227,   269,  -584,  -804,-32768,
1166    824,-32768,-32768,   914,   -85,  -253,    69,-32768,   218,   194,
1167 -32768,-32768,   212,-32768,   343,-32768,-32768,   628,-32768,   374,
1168 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1169 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1551,
1170 -32768,-32768,  1611,  -219,   189,   258,-32768
1171 };
1172
1173
1174 #define YYLAST          6623
1175
1176
1177 static const short yytable[] = {    95,
1178    309,    92,    95,   292,   105,   602,   543,   544,   514,   629,
1179    229,   230,   705,   701,   648,   114,   332,   231,   232,   233,
1180    234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1181    244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1182    254,   255,   256,   738,   512,   555,   466,   257,   258,   259,
1183    260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1184    270,   271,   272,   273,   545,   546,   553,   461,   740,   907,
1185    554,   476,   909,   577,   284,   551,   552,   222,   222,   611,
1186    912,    95,    88,    92,  -405,   498,   105,   650,   436,   890,
1187    920,   750,   819,   440,   586,   441,   785,   738,   991,   301,
1188    474,   547,   548,   549,   550,    95,   293,   445,  1027,  1083,
1189   1084,  1121,   996,  1027,   293,   314,   315,   317,  1028,   748,
1190   1027,   323,   740,  1028,   -68,   -68,   312,   480,   575,   442,
1191   1028,   -75,   -75,   100,   295,   325,   118,   346,   121,  1129,
1192   1130,  1091,   480,   420,   356,   750,     2,   818,   423,  1120,
1193   1085,  1092,  1086,   988,   645,  -245,   988,   498,   421,   903,
1194    480,  -354,   703,  -354,    88,     2,  -245,  1123,  1087,   184,
1195   1127,  -354,   983,   748,  1151,  1131,   627,  1132,   982,  -354,
1196    703,  -354,  1156,   303,   527,  1054,  1045,  1056,   107,  -354,
1197    749,   107,   313,  1133,   997,   107,   199,   199,   199,   902,
1198    528,   193,   904,   346,   890,    76,    77,   123,   812,    79,
1199     80,   694,   298,  1123,   300,   100,   -68,   -68,   872,   194,
1200    110,   111,   327,   -75,   -75,   514,   223,   223,   476,   296,
1201    296,   693,   296,   873,   189,   220,   220,    76,    77,   123,
1202    336,    79,    80,   988,   749,   988,   350,   351,   352,   353,
1203    354,   355,   423,  1018,  1019,   324,   332,   108,  1012,   341,
1204    108,   741,    76,  1029,   124,  1122,   942,    76,  1029,   633,
1205    107,  1058,   222,   337,    76,  1029,   990,   222,   992,   222,
1206    338,  1146,   943,  1020,  1021,   450,   691,  1148,   747,  1149,
1207    301,   222,   222,   455,   107,    76,  1093,  1022,   480,   349,
1208    422,    95,   459,   423,   462,   464,   458,   705,   707,   339,
1209    107,   745,   498,   657,   746,   741,  1004,   742,    95,   812,
1210      2,   107,   744,   473,   323,   342,   199,   346,   669,   971,
1211    440,   193,   423,  -354,  -354,  -354,   496,  -354,  -354,   108,
1212    332,   567,   747,   425,   199,   438,   499,   360,   423,   194,
1213    195,  1085,   743,  1086,   461,   431,   738,   432,   423,  1131,
1214    500,  1132,   621,   108,   189,   745,   802,   346,   746,  1087,
1215    199,   742,   366,   367,   480,   193,   744,  1133,   199,   326,
1216    199,   740,   199,   193,   199,   690,   447,   193,   332,   193,
1217    340,  -577,   199,   194,   576,  -577,   423,   199,   710,   199,
1218    623,   194,   973,   361,   750,   194,   743,   194,   189,   362,
1219   -569,   199,   199,   199,  -569,   720,   189,   721,   193,   363,
1220    189,   223,   189,   414,   415,  -570,   223,   430,   223,  -570,
1221    220,   437,   748,   410,   411,   220,   194,   220,   408,   409,
1222    223,   223,   643,   455,   406,   407,   644,   412,   413,   220,
1223    220,   189,    95,   408,   409,    95,   293,   584,   958,   959,
1224    587,   689,   592,  -246,   595,   286,   601,    95,   905,    95,
1225    364,  -354,  -354,  -354,   608,  -354,  -354,   323,  -354,   497,
1226    195,  -354,  1027,  -354,   617,  1152,   305,   306,   307,   829,
1227    107,   325,  1028,   107,   107,   107,   625,   970,   332,   499,
1228    365,   631,  -571,   749,   459,  -572,  -571,   107,  -625,  -572,
1229    540,   541,   542,   107,   222,  -629,   960,   961,   968,  -581,
1230    332,  -579,   969,  -581,   195,  -579,  -626,   966,   967,   416,
1231    408,   409,   195,   408,   409,   416,   195,   417,   195,    76,
1232     77,   123,   423,    79,    80,   418,   660,  -354,  -354,  -354,
1233    417,  -354,  -354,   962,   963,   964,   965,   515,   516,   108,
1234    426,   199,   463,   465,   467,   862,   863,   195,   455,   199,
1235    480,   199,   419,  1008,   741,   629,   108,   498,   495,   864,
1236    865,   423,   326,   455,  1099,     2,   673,  -566,   565,   459,
1237    692,  -566,   497,   807,   877,   878,   879,   422,   406,   407,
1238    423,   747,   687,   688,   496,  1049,  -462,   423,   517,   323,
1239    632,   827,   522,   408,   409,   199,   520,     2,   521,   438,
1240    193,  -534,   423,   325,   745,  -534,   496,   746,   631,   984,
1241    742,   427,   985,   459,   199,   744,    76,  1029,   194,  1122,
1242    199,   107,     2,  -533,   107,   717,   718,  -533,   414,   415,
1243    346,  -631,   346,   189,   107,   387,   107,   388,   107,  -354,
1244   -574,   560,   561,   223,  -574,   743,   107,  -535,  -246,   107,
1245    475,  -535,   220,   107,   781,  -354,   410,   411,   389,   390,
1246    332,  -555,   788,  1005,   790,  -555,  1006,   580,   796,   797,
1247    412,   413,  -245,   801,   498,   998,  -567,   617,   808,  -628,
1248   -567,   433,  -631,   499,   807,  -564,   199,   406,   407,  -564,
1249    108,   434,   810,   108,   934,   107,   107,   500,   403,   404,
1250    405,  -627,  -532,   599,   346,   108,  -532,   108,   423,    76,
1251     77,   123,   876,    79,    80,   326,   423,   423,   614,   439,
1252    932,   936,   619,  -354,  -354,  -354,   293,  -354,  -354,   985,
1253    699,   443,  -549,   580,   199,   199,  -549,   444,  1033,   193,
1254   -554,    76,    77,   123,  -554,    79,    80,   199,  -553,   195,
1255    199,   199,  -553,  -245,  1072,   630,  1059,   194,  1138,   896,
1256    293,  1065,   448,  1077,   646,   647,    76,    77,   123,  -552,
1257     79,    80,   189,  -552,   449,  -631,  -631,  1076,   107,  -631,
1258   -631,  -563,   580,  1078,   293,  -563,  -551,  1088,   924,   808,
1259   -551,   631,  1089,   451,   403,   404,   405,   580,   672,  1161,
1260   -245,  -550,   498,   810,   457,  -550,   469,   839,  -547,   840,
1261      2,  -354,  -547,   830,   831,   832,   833,   834,   835,  -548,
1262    471,  1110,  1111,  -548,  1112,   199,   199,  -354,  -544,   769,
1263    841,   842,  -544,   472,  -545,   477,   199,   199,  -545,   199,
1264    488,    76,    77,   123,   331,    79,    80,   326,  1098,  -536,
1265    494,   985,   107,  -536,   107,  1135,   503,   331,   331,   331,
1266    331,   331,   331,   107,   358,   359,   107,   107,   199,   504,
1267   1017,   293,   672,   723,  1134,  -575,  -539,   643,   986,  -575,
1268   -539,  1011,  -559,   769,   672,   993,  -559,   505,   195,   507,
1269   -560,   410,   411,  1061,  -560,   899,  1159,  -561,   899,   793,
1270   1057,  -561,   508,  -557,   328,   412,   413,  -557,   509,   139,
1271    140,   141,   142,   143,   144,   813,   510,   403,   404,   405,
1272   -245,   599,   498,   599,   511,  -540,   145,   146,   147,  -540,
1273      2,    76,   803,  -538,  -542,   619,   108,  -538,  -542,   518,
1274    309,   569,   955,   956,   957,   199,   570,  -543,  -541,   572,
1275    148,  -543,  -541,   573,    76,    77,   123,   574,    79,    80,
1276    925,   683,   684,  1046,   423,   719,    95,   855,   856,   857,
1277    332,  1052,   916,   917,   918,   585,   180,   589,   107,   858,
1278    859,   590,   808,   591,  1068,  -245,  1147,   587,   107,   459,
1279    594,   157,  1073,  1074,   860,   861,  1066,   600,   455,   274,
1280    275,   276,   277,   278,   279,   280,   281,   282,   283,   866,
1281    867,   332,   607,   899,   609,   899,   899,   899,   906,   684,
1282    994,   995,   423,  1075,  1009,   606,    95,   615,  1100,  1102,
1283    392,   616,   299,   620,   302,   423,   304,   624,   308,   628,
1284     76,  1080,   455,   310,   634,   808,   636,   108,   638,   639,
1285    637,   641,   844,   318,   642,   319,   659,   931,    76,   329,
1286    330,   160,   662,   663,   393,   394,   395,   396,   397,   398,
1287    399,   400,   401,   402,    76,    77,   123,  1137,    79,    80,
1288     95,   665,   674,  1141,   331,  1052,   845,   846,   847,   848,
1289    849,   850,   851,   852,   853,   854,   679,   391,   677,   680,
1290    682,   695,   697,   899,   344,   899,   345,   877,   878,   879,
1291    107,   107,   685,   880,   881,   882,   883,   884,   885,   886,
1292    700,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1293    331,   331,   331,   331,   331,   331,   331,  1163,   702,   708,
1294    711,   712,   769,   713,  1166,   714,  1034,  1036,   779,  1037,
1295    180,   783,   786,   792,   798,   107,   814,   817,   180,   800,
1296   1038,  1039,   180,  1040,   180,  1041,  1042,   816,   331,  1034,
1297    343,   107,   435,   821,   107,   820,   328,   838,  1043,  1013,
1298   1014,   139,   140,   141,   142,   143,   144,   825,   826,   868,
1299    869,   871,   874,   180,  1082,  1034,  1034,   870,   145,   146,
1300    147,   910,   914,  1096,   880,   881,   882,   883,   884,   885,
1301    886,   923,   182,   211,   211,   107,   331,   928,   929,   933,
1302    935,   331,   148,   937,   108,   453,   974,   975,  1007,   456,
1303   1048,  1060,  1010,  1070,   107,  1090,  1101,  1105,  1104,  1107,
1304    108,  1140,  1142,  1069,  1109,  1113,  1115,   468,  1143,  1117,
1305    470,   878,  1119,  1034,   107,   107,  1034,  1128,   478,  1096,
1306   1096,   481,  1150,   157,  1157,  1096,  1162,  1164,  1168,   107,
1307   1169,   285,   894,   479,   331,  1062,   331,  1118,   652,   654,
1308    916,   917,   918,  1079,   108,   979,   880,   881,   882,   883,
1309    884,   885,   886,  1153,  1002,  1064,   486,   940,  1136,  1034,
1310    107,   107,  1096,   108,   489,   490,   491,   492,   603,  1139,
1311    676,   791,   789,   926,   311,   806,   501,   227,   446,  1114,
1312    566,   640,   823,  1125,  1126,   486,   331,  1016,     0,     0,
1313     76,   329,   330,   160,     0,     0,   486,     0,   108,     0,
1314      0,     0,   182,     0,     0,     0,     0,     0,   331,   185,
1315    217,   217,     0,     0,     0,     0,   526,     0,     0,     0,
1316      0,     0,     0,     0,     0,     0,     0,     0,     0,  1154,
1317   1155,     0,     0,     0,     0,     0,     0,     0,     0,   739,
1318      0,     0,     0,     0,     0,   481,   182,     0,     0,     0,
1319      0,     0,   588,     0,   182,   180,     0,   593,   182,   596,
1320    182,     0,   571,     0,     0,     0,     0,   605,   211,     0,
1321      0,   610,     0,   211,     0,   211,     0,     0,     0,     0,
1322      0,     0,     0,     0,     0,     0,     0,   211,   211,   182,
1323      0,     0,     0,   739,     0,     0,   506,     0,     0,     0,
1324      0,     0,     0,     0,   331,   331,   331,   331,   331,   331,
1325    836,   837,     0,     0,     0,     0,     0,     0,     0,     0,
1326    186,   218,   218,   525,     0,     0,     0,     0,   529,   530,
1327    531,   532,   533,   534,   535,   536,   537,   538,   539,   185,
1328      0,   328,   523,     0,     0,     0,   139,   140,   141,   142,
1329    143,   144,     0,     0,     0,     0,     0,     0,     0,   559,
1330      0,     0,     0,   145,   146,   147,     0,     0,   331,     0,
1331      0,     0,     0,     0,   187,   219,   219,     0,   588,     0,
1332      0,     0,     0,   185,     0,   649,     0,   148,     0,     0,
1333      0,   185,     0,     0,   180,   185,     0,   185,   196,   225,
1334    225,     0,   331,   481,     0,   217,     0,     0,     0,     0,
1335    217,     0,   217,     0,     0,     0,     0,     0,     0,     0,
1336      0,     0,   704,     0,   217,   217,   185,   709,   157,     0,
1337      0,     0,     0,   331,   331,   331,   331,   331,   331,   331,
1338    331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1339    186,   331,   492,     0,     0,     0,     0,   771,   198,   226,
1340    226,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1341      0,     0,     0,     0,     0,     0,     0,     0,     0,   486,
1342      0,   486,     0,     0,     0,     0,     0,   724,     0,     0,
1343    770,   182,     0,     0,   186,    76,   329,   330,   160,     0,
1344      0,     0,   186,     0,   187,     0,   186,     0,   186,     0,
1345    211,     0,     0,     0,     0,   331,   218,     0,     0,     0,
1346      0,   218,     0,   218,     0,     0,     0,     0,   196,     0,
1347      0,     0,   843,     0,     0,   218,   218,   186,     0,     0,
1348      0,     0,   822,     0,     0,     0,     0,     0,   187,     0,
1349      0,     0,   739,   828,     0,     0,   187,     0,     0,     0,
1350    187,     0,   187,     0,     0,     0,     0,     0,     0,     0,
1351    219,     0,   196,     0,     0,   219,     0,   219,     0,   716,
1352    196,     0,     0,     0,   196,     0,   196,     0,   198,   219,
1353    219,   187,   911,     0,   225,     0,     0,   328,     0,   225,
1354    626,   225,   139,   140,   141,   142,   143,   144,     0,     0,
1355      0,     0,     0,   225,   225,   196,     0,     0,     0,   145,
1356    146,   147,     0,     0,   794,     0,     0,     0,   185,     0,
1357    182,     0,   198,     0,     0,     0,     0,     0,     0,     0,
1358    198,     0,     0,   148,   198,     0,   198,   217,     0,     0,
1359      0,     0,     0,     0,   226,     0,     0,     0,     0,   226,
1360      0,   226,     0,     0,     0,     0,     0,     0,   941,     0,
1361      0,     0,     0,   226,   226,   198,     0,     0,   331,     0,
1362      0,     0,     0,     0,   157,   980,   981,     0,     0,     0,
1363      0,     0,     0,   987,   331,     0,     0,     0,  -227,     0,
1364      0,     0,     0,     0,   328,     0,     0,     0,     0,   139,
1365    140,   141,   142,   143,   144,     0,     0,  1003,     0,   331,
1366      0,     0,     0,     0,     0,     0,   145,   146,   147,   794,
1367      0,     0,   794,     0,     0,     0,     0,     0,     0,   186,
1368      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1369    148,    76,   329,   330,   160,   492,     0,     0,   218,     0,
1370      0,     0,     0,     0,     0,     0,     0,   185,     0,     0,
1371      0,     0,     0,     0,   938,   525,     0,     0,     0,  1047,
1372    944,   945,   946,   947,   948,   949,   950,   951,   952,   953,
1373    954,   157,  -488,   187,     0,     0,     0,   368,     0,     0,
1374   1015,     0,   139,   140,   141,   142,   143,   144,     0,     0,
1375      0,     0,   219,   793,     0,     0,     0,   196,   328,   145,
1376    146,   147,     0,   139,   140,   141,   142,   143,   144,     0,
1377      0,     0,   794,     0,     0,     0,   225,     0,     0,     0,
1378    145,   146,   147,   148,     0,  1103,     0,     0,     0,     0,
1379      0,     0,     0,     0,     0,     0,     0,     0,    76,   329,
1380    330,   160,     0,     0,   148,     0,     0,     0,     0,     0,
1381      0,     0,     0,     0,     0,     0,     0,   198,   186,     0,
1382      0,     0,     0,     0,   157,     0,     0,     0,     0,     0,
1383      0,     0,     0,     0,    -1,     1,   226,     0,     0,     0,
1384      0,     0,     0,     0,     0,   157,     0,     0,     0,     0,
1385      0,     0,     0,     0,     0,     0,     0,     0,  -245,     0,
1386      0,     0,     0,     0,     0,     0,     0,     0,     2,     0,
1387      0,   794,   187,  1160,     0,     0,     0,     0,     0,     3,
1388      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1389      0,    76,   329,   330,   160,     0,   196,     0,     0,     0,
1390      0,  -354,  -354,  -354,     0,     4,     0,     0,     0,     5,
1391      6,     7,    76,   329,   330,   160,     0,     0,     0,     0,
1392      0,     0,     0,     8,     9,    10,     0,     0,     0,     0,
1393      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1394      0,     0,    11,    12,    13,     0,    14,    15,    16,    17,
1395     18,    19,    20,    21,    22,    23,   198,    24,    25,    26,
1396     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1397     37,    38,     0,    39,    40,    41,    42,    43,    44,    45,
1398     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1399     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1400     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1401     -2,     1,    76,    77,    78,     0,    79,    80,    81,     0,
1402      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1403      0,     0,     0,     0,  -245,     0,     0,     0,     0,     0,
1404      0,     0,     0,     0,     2,     0,     0,     0,     0,     0,
1405      0,     0,     0,     0,     0,     3,     0,     0,     0,     0,
1406      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1407      0,     0,     0,     0,     0,     0,     0,  -354,  -354,  -354,
1408      0,     4,     0,     0,     0,     5,     6,     7,     0,     0,
1409      0,     0,     0,     0,     0,     0,     0,     0,     0,     8,
1410      9,    10,     0,     0,     0,     0,     0,     0,     0,     0,
1411      0,     0,     0,     0,     0,     0,     0,     0,    11,    12,
1412     13,     0,    14,    15,    16,    17,    18,    19,    20,    21,
1413     22,    23,     0,    24,    25,    26,    27,    28,    29,    30,
1414     31,    32,    33,    34,    35,    36,    37,    38,     0,    39,
1415     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1416     50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1417     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1418     70,    71,    72,    73,    74,    75,     0,     0,    76,    77,
1419     78,   125,    79,    80,    81,     0,   126,   127,   128,     0,
1420    129,   130,   131,   132,   133,   134,   135,   136,   137,  -488,
1421    563,     0,     0,     0,   138,     0,     0,     0,     0,   139,
1422    140,   141,   142,   143,   144,     0,     0,     0,     0,     0,
1423      0,     0,  -245,  -245,     0,     3,   145,   146,   147,     0,
1424      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1425      0,     0,     0,     0,     0,     0,     0,  -354,  -354,  -354,
1426    148,     4,     0,     0,     0,     0,     0,     0,     0,     0,
1427      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1428      0,     0,     0,   150,   151,   152,   153,   154,   155,     0,
1429      0,     0,     0,     0,     0,     0,     0,   156,    11,    12,
1430     13,   157,    14,    15,    16,    17,    18,    19,    20,    21,
1431     22,    23,     0,    24,    25,    26,    27,    28,    29,    30,
1432     31,    32,    33,    34,    35,    36,    37,    38,     0,    39,
1433     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1434     50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1435     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1436     70,    71,    72,    73,    74,    75,     0,     0,    76,   158,
1437    564,   160,   161,    80,    81,   125,     0,     0,     0,     0,
1438    126,   127,   128,     0,   129,   130,   131,   132,   133,   134,
1439    135,   136,   137,  -488,     0,     0,     0,     0,   138,     0,
1440      0,     0,     0,   139,   140,   141,   142,   143,   144,     0,
1441      0,     0,     0,     0,     0,     0,  -245,  -245,     0,     0,
1442    145,   146,   147,     0,     0,     0,     0,     0,     0,     0,
1443      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444      0,  -245,  -245,  -245,   148,     0,     0,     0,     0,     0,
1445      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1446      0,     0,     0,     0,     0,     0,     0,   150,   151,   152,
1447    153,   154,   155,     0,     0,     0,     0,     0,     0,     0,
1448      0,   156,  -245,  -245,  -245,   157,  -245,  -245,  -245,  -245,
1449   -245,  -245,  -245,  -245,  -245,  -245,     0,  -245,  -245,  -245,
1450   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1451   -245,  -245,     0,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1452   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1453   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1454   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1455      0,     0,    76,   158,   159,   160,   161,    80,  -245,   201,
1456      0,     0,     0,     0,   126,   127,   128,     0,     0,   202,
1457    131,   132,   133,   134,   135,   136,   203,  -488,  -492,     0,
1458      0,     0,   204,     0,     0,     0,     0,   139,   140,   141,
1459    142,   143,   144,     0,     0,     0,     0,     0,     0,     0,
1460   -245,  -245,     0,     0,   145,   146,   147,     0,     0,     0,
1461      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1462      0,     0,     0,     0,     0,  -245,  -245,  -245,   148,     0,
1463      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1464      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465      0,   150,   151,   152,   153,   154,   155,     0,     0,     0,
1466      0,     0,     0,     0,     0,   156,  -245,  -245,  -245,   157,
1467   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1468      0,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1469   -245,  -245,  -245,  -245,  -245,  -245,     0,  -245,  -245,  -245,
1470   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1471   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1472   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
1473   -245,  -245,  -245,  -245,     0,     0,    76,   158,   159,   160,
1474    205,   206,  -245,   201,     0,     0,     0,     0,   126,   127,
1475    128,     0,     0,   202,   131,   132,   133,   134,   135,   136,
1476    203,  -436,  -436,     0,     0,     0,   204,  -436,     0,     0,
1477      0,   139,   140,   141,   142,   143,   144,     0,     0,     0,
1478      0,     0,     0,     0,  -245,  -245,   125,     0,   145,   146,
1479    147,   126,   127,   128,     0,   129,   130,   131,   132,   133,
1480    134,   135,   136,   137,  -488,     0,     0,     0,     0,   138,
1481      0,     0,   148,     0,   139,   140,   141,   142,   143,   144,
1482      0,     0,     0,     0,     0,     0,     0,  -245,  -245,     0,
1483      0,   145,   146,   147,  -436,   150,   151,   152,   153,   154,
1484    155,     0,     0,     0,     0,     0,     0,     0,     0,   156,
1485      0,     0,     0,   157,     0,   148,     0,     0,     0,     0,
1486      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487      0,     0,     0,     0,     0,     0,     0,   149,   150,   151,
1488    152,   153,   154,   155,     0,     0,     0,     0,     0,     0,
1489      0,     0,   156,     0,     0,     0,   157,     0,     0,     0,
1490      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1491      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1492     76,   158,   159,   160,   205,   206,     0,     0,   125,     0,
1493      0,     0,     0,   126,   127,   128,     0,   129,   130,   131,
1494    132,   133,   134,   135,   136,   137,  -488,     0,     0,     0,
1495      0,   138,     0,     0,     0,     0,   139,   140,   141,   142,
1496    143,   144,     0,    76,   158,   159,   160,   161,    80,  -245,
1497   -245,   201,     0,   145,   146,   147,   126,   127,   128,     0,
1498      0,   202,   131,   132,   133,   134,   135,   136,   203,  -488,
1499   -492,     0,     0,     0,   204,     0,     0,   148,     0,   139,
1500    140,   141,   142,   143,   144,     0,     0,     0,     0,     0,
1501      0,     0,  -245,  -245,     0,     0,   145,   146,   147,  -463,
1502    150,   151,   152,   153,   154,   155,     0,     0,     0,     0,
1503      0,     0,     0,     0,   156,     0,     0,     0,   157,     0,
1504    148,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506      0,     0,  -432,   150,   151,   152,   153,   154,   155,     0,
1507      0,     0,     0,     0,     0,     0,     0,   156,     0,     0,
1508      0,   157,     0,     0,     0,     0,     0,     0,     0,     0,
1509      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1510      0,     0,     0,     0,     0,    76,   158,   159,   160,   161,
1511     80,     0,     0,   125,     0,     0,     0,     0,   126,   127,
1512    128,     0,   129,   130,   131,   132,   133,   134,   135,   136,
1513    137,  -488,   655,     0,     0,     0,   138,     0,     0,     0,
1514      0,   139,   140,   141,   142,   143,   144,     0,    76,   158,
1515    159,   160,   205,   206,  -245,  -245,   201,     0,   145,   146,
1516    147,   126,   127,   128,     0,     0,   202,   131,   132,   133,
1517    134,   135,   136,   203,  -488,  -492,     0,     0,     0,   204,
1518      0,     0,   148,     0,   139,   140,   141,   142,   143,   144,
1519      0,     0,     0,     0,     0,     0,     0,  -245,  -245,     0,
1520      0,   145,   146,   147,     0,   150,   151,   152,   153,   154,
1521    155,     0,     0,     0,     0,     0,     0,     0,     0,   156,
1522      0,     0,     0,   157,     0,   148,     0,     0,     0,     0,
1523      0,     0,   328,     0,     0,   706,     0,   139,   140,   141,
1524    142,   143,   144,     0,     0,     0,     0,     0,   150,   151,
1525    152,   153,   154,   155,   145,   146,   147,     0,     0,     0,
1526      0,     0,   156,     0,     0,     0,   157,     0,     0,     0,
1527      0,     0,     0,     0,     0,     0,     0,     0,   148,     0,
1528      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1529     76,   158,   159,   160,   161,    80,     0,     0,   125,     0,
1530      0,     0,     0,   126,   127,   128,     0,   129,   130,   131,
1531    132,   133,   134,   135,   136,   137,  -488,     0,     0,   157,
1532      0,   138,     0,     0,     0,     0,   139,   140,   141,   142,
1533    143,   144,     0,    76,   158,   159,   160,   205,   206,  -245,
1534   -245,     0,     0,   145,   146,   147,     0,     0,     0,     0,
1535      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1536      0,     0,     0,     0,     0,     0,     0,   148,     0,     0,
1537      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1538      0,     0,     0,     0,     0,     0,    76,   329,   330,   160,
1539    150,   151,   152,   153,   154,   155,     0,     0,     0,     0,
1540      0,     0,     0,     0,   156,   126,   127,   128,   157,   129,
1541    130,   131,   132,   133,   134,   135,   136,   203,  -488,   578,
1542      0,     0,     0,   368,     0,     0,     0,     0,   139,   140,
1543    141,   142,   143,   144,     0,     0,     0,     0,     0,     0,
1544      0,  -245,  -245,     0,     3,   145,   146,   147,     0,     0,
1545      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1546      0,     0,     0,     0,     0,     0,     0,     0,     0,   148,
1547      4,     0,     0,     0,     0,    76,   158,   159,   160,   161,
1548     80,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1549      0,     0,   150,   151,   152,   153,   154,   155,     0,     0,
1550      0,     0,     0,     0,     0,     0,   579,    11,    12,    13,
1551    157,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1552     23,     0,    24,    25,    26,    27,    28,    29,    30,    31,
1553     32,    33,    34,    35,    36,    37,    38,     0,    39,    40,
1554     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1555     51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1556     61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1557     71,    72,    73,    74,    75,   369,   370,    76,   158,   564,
1558    160,   161,    80,    81,   126,   127,   128,     0,   129,   130,
1559    131,   132,   133,   134,   135,   136,   203,  -488,   656,     0,
1560      0,     0,   368,     0,     0,     0,     0,   139,   140,   141,
1561    142,   143,   144,     0,     0,     0,     0,     0,     0,     0,
1562   -245,  -245,     0,     3,   145,   146,   147,     0,     0,     0,
1563      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1564      0,     0,     0,     0,     0,     0,     0,     0,   148,     4,
1565      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1566      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1567      0,   150,   151,   152,   153,   154,   155,     0,     0,     0,
1568      0,     0,     0,     0,     0,   156,    11,    12,    13,   157,
1569     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1570      0,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1571     33,    34,    35,    36,    37,    38,     0,    39,    40,    41,
1572     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1573     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1574     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1575     72,    73,    74,    75,   369,   370,    76,   158,   564,   160,
1576    161,    80,    81,   126,   127,   128,     0,   129,   130,   131,
1577    132,   133,   134,   135,   136,   203,  -488,   667,     0,     0,
1578      0,   368,     0,     0,     0,     0,   139,   140,   141,   142,
1579    143,   144,     0,     0,     0,     0,     0,     0,     0,  -245,
1580   -245,     0,     3,   145,   146,   147,     0,     0,     0,     0,
1581      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1582      0,     0,     0,     0,     0,     0,     0,   148,     4,     0,
1583      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1584      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1585    150,   151,   152,   153,   154,   155,     0,     0,     0,     0,
1586      0,     0,     0,     0,   668,    11,    12,    13,   157,    14,
1587     15,    16,    17,    18,    19,    20,    21,    22,    23,     0,
1588     24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1589     34,    35,    36,    37,    38,     0,    39,    40,    41,    42,
1590     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1591     53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1592     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1593     73,    74,    75,   369,   370,    76,   158,   564,   160,   161,
1594     80,    81,   126,   127,   128,     0,   129,   130,   131,   132,
1595    133,   134,   135,   136,   203,  -488,   666,     0,     0,     0,
1596    368,     0,     0,     0,     0,   139,   140,   141,   142,   143,
1597    144,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1598      0,     0,   145,   146,   147,   126,   127,   128,     0,   129,
1599    130,   131,   132,   133,   134,   135,   136,   203,  -488,   670,
1600      0,     0,     0,   368,     0,     0,   148,     0,   139,   140,
1601    141,   142,   143,   144,     0,     0,     0,     0,     0,     0,
1602      0,     0,     0,     0,     0,   145,   146,   147,     0,   150,
1603    151,   152,   153,   154,   155,     0,     0,     0,     0,     0,
1604      0,     0,     0,   156,     0,     0,     0,   157,     0,   148,
1605      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1606      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1607      0,     0,   150,   151,   152,   153,   154,   155,     0,     0,
1608      0,     0,     0,     0,     0,     0,   671,     0,     0,     0,
1609    157,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1610      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1611      0,     0,   369,   370,    76,   158,   159,   160,   161,    80,
1612      0,     0,     0,   126,   127,   128,     0,   129,   130,   131,
1613    132,   133,   134,   135,   136,   203,  -488,   722,     0,     0,
1614      0,   368,     0,     0,     0,     0,   139,   140,   141,   142,
1615    143,   144,     0,     0,     0,   369,   370,    76,   158,   159,
1616    160,   161,    80,   145,   146,   147,   126,   127,   128,     0,
1617    129,   130,   131,   132,   133,   134,   135,   136,   203,  -488,
1618    775,     0,     0,     0,   368,     0,     0,   148,     0,   139,
1619    140,   141,   142,   143,   144,     0,     0,     0,     0,     0,
1620      0,     0,     0,     0,     0,     0,   145,   146,   147,     0,
1621    150,   151,   152,   153,   154,   155,     0,     0,     0,     0,
1622      0,     0,     0,     0,   156,     0,     0,     0,   157,     0,
1623    148,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1624      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1625      0,     0,     0,   150,   151,   152,   153,   154,   155,     0,
1626      0,     0,     0,     0,     0,     0,     0,   156,     0,     0,
1627      0,   157,     0,     0,     0,     0,     0,     0,     0,     0,
1628      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1629      0,     0,     0,   369,   370,    76,   158,   159,   160,   161,
1630     80,     0,     0,     0,   126,   127,   128,     0,   129,   130,
1631    131,   132,   133,   134,   135,   136,   203,  -488,   776,     0,
1632      0,     0,   368,     0,     0,     0,     0,   139,   140,   141,
1633    142,   143,   144,     0,     0,     0,   369,   370,    76,   158,
1634    159,   160,   161,    80,   145,   146,   147,   126,   127,   128,
1635      0,   129,   130,   131,   132,   133,   134,   135,   136,   203,
1636   -488,   778,     0,     0,     0,   368,     0,     0,   148,     0,
1637    139,   140,   141,   142,   143,   144,     0,     0,     0,     0,
1638      0,     0,     0,     0,     0,     0,     0,   145,   146,   147,
1639      0,   150,   151,   152,   153,   154,   155,     0,     0,     0,
1640      0,     0,     0,     0,     0,   777,     0,     0,     0,   157,
1641      0,   148,     0,     0,     0,     0,     0,     0,     0,     0,
1642      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1643      0,     0,     0,     0,   150,   151,   152,   153,   154,   155,
1644      0,     0,     0,     0,     0,     0,     0,     0,   156,     0,
1645      0,     0,   157,     0,     0,     0,     0,     0,     0,     0,
1646      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1647      0,     0,     0,     0,   369,   370,    76,   158,   159,   160,
1648    161,    80,     0,     0,     0,   126,   127,   128,     0,   129,
1649    130,   131,   132,   133,   134,   135,   136,   203,  -488,   895,
1650      0,     0,     0,   368,     0,     0,     0,     0,   139,   140,
1651    141,   142,   143,   144,     0,     0,     0,   369,   370,    76,
1652    158,   159,   160,   161,    80,   145,   146,   147,   126,   127,
1653    128,     0,   129,   130,   131,   132,   133,   134,   135,   136,
1654    203,  -488,     0,     0,     0,     0,   368,     0,     0,   148,
1655      0,   139,   140,   141,   142,   143,   144,     0,     0,     0,
1656      0,     0,     0,     0,     0,     0,     0,     0,   145,   146,
1657    147,     0,   150,   151,   152,   153,   154,   155,     0,     0,
1658      0,     0,     0,     0,     0,     0,   156,     0,     0,     0,
1659    157,     0,   148,     0,     0,     0,     0,     0,     0,     0,
1660      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661      0,     0,     0,     0,     0,   150,   151,   152,   153,   154,
1662    155,   293,     0,     0,     0,     0,     0,     0,     0,   156,
1663      0,     0,     0,   157,     0,     0,     0,     0,     0,     0,
1664      0,     0,     0,     0,     0,     0,     0,     0,     3,     0,
1665      0,     0,     0,     0,     0,   369,   370,    76,   158,   159,
1666    160,   161,    80,     0,     0,     0,     0,     0,     0,     0,
1667   -354,  -354,  -354,     0,     4,     0,     0,     0,     0,     0,
1668      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1669      0,     0,     0,     0,     0,     0,     0,     0,   369,   370,
1670     76,   158,   159,   160,   161,    80,     0,     0,     0,     0,
1671      0,    11,    12,    13,     0,    14,    15,    16,    17,    18,
1672     19,    20,    21,    22,    23,     0,    24,    25,    26,    27,
1673     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1674     38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
1675     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1676     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1677     67,    68,    69,    70,    71,    72,    73,    74,    75,   293,
1678      0,     0,     0,   120,     0,     0,     0,    81,     0,     0,
1679      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1680      0,     0,     0,     0,     0,     0,     3,     0,     0,     0,
1681      0,     0,   328,   939,     0,     0,     0,   139,   140,   141,
1682    142,   143,   144,     0,     0,     0,     0,     0,     0,     0,
1683      0,     0,     4,     0,   145,   146,   147,     0,     0,     0,
1684      0,     0,     0,     0,     0,     0,     0,     0,     0,  -622,
1685      0,     0,     0,     0,     0,     0,     0,     0,   148,     0,
1686      0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
1687     12,    13,     0,    14,    15,    16,    17,    18,    19,    20,
1688     21,    22,    23,     0,    24,    25,    26,    27,    28,    29,
1689     30,    31,    32,    33,    34,    35,    36,    37,    38,   157,
1690     39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1691     49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1692     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1693     69,    70,    71,    72,    73,    74,    75,  -111,     0,     0,
1694      0,   120,  -111,     0,     0,    81,     0,     0,     0,     0,
1695      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1696      0,     0,     0,     3,     0,     0,    76,   329,   330,   160,
1697      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1698      0,     0,     0,     0,     0,     0,     0,     0,     0,     4,
1699      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1700      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1701      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702      0,     0,     0,     0,     0,     0,    11,    12,    13,     0,
1703     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1704      0,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1705     33,    34,    35,    36,    37,    38,     0,    39,    40,    41,
1706     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1707     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1708     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1709     72,    73,    74,    75,   288,     0,     0,     0,   120,     0,
1710      0,     0,    81,     0,     0,     0,     0,     0,     0,     0,
1711      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712      3,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1713      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1714      0,     0,     0,     0,     0,     0,     4,     0,     0,     0,
1715      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1716      0,     0,     0,     0,     0,     0,     0,     0,  -491,     0,
1717      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1718      0,     0,     0,    11,    12,    13,     0,    14,    15,    16,
1719     17,    18,    19,    20,    21,    22,    23,     0,    24,    25,
1720     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1721     36,    37,    38,     0,    39,    40,    41,    42,    43,    44,
1722     45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1723     55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1724     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1725     75,     0,     0,     0,     0,   120,    11,    12,    13,    81,
1726     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1727      0,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1728     33,    34,    35,    36,    37,    38,     0,    39,    40,    41,
1729     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1730     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1731     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1732     72,    73,    74,    75,  -629,     0,     0,     0,   120,     0,
1733      0,     0,    81,     0,     0,     0,     0,     0,     0,     0,
1734      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1736      0,     0,     0,     0,     0,     0,     0,     0,     0,  -631,
1737   -631,  -631,     0,     0,     0,     0,     0,     0,     0,     0,
1738      0,     0,     0,     0,     0,     0,     0,  -631,     0,     0,
1739      0,     0,     0,     0,     0,     0,     0,     0,     0,  -245,
1740      0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
1741   -631,  -631,  -631,     0,  -631,  -631,  -631,  -631,  -631,  -631,
1742   -631,  -631,  -631,  -631,     0,  -631,  -631,  -631,  -631,  -631,
1743   -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,
1744      0,  -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,
1745   -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,
1746   -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,
1747   -631,  -631,  -631,  -631,  -631,  -631,  -631,  -631,     0,     0,
1748      0,     0,     0,    11,    12,    13,  -631,    14,    15,    16,
1749     17,    18,    19,    20,    21,    22,    23,     0,    24,    25,
1750     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1751     36,    37,    38,     0,    39,    40,    41,    42,    43,    44,
1752     45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1753     55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1754     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1755     75,     0,     0,    76,    77,    78,     0,    79,    80,    81,
1756    328,  -227,     0,     0,     0,   139,   140,   141,   142,   143,
1757    144,   328,     0,     0,     0,     0,   139,   140,   141,   142,
1758    143,   144,   145,   146,   147,     0,     0,     0,     0,     0,
1759      0,   357,     0,   145,   146,   147,   139,   140,   141,   142,
1760    143,   144,   651,     0,     0,     0,   148,   139,   140,   141,
1761    142,   143,   144,   145,   146,   147,     0,   148,     0,     0,
1762      0,     0,   653,     0,   145,   146,   147,   139,   140,   141,
1763    142,   143,   144,   725,     0,     0,     0,   148,   726,   727,
1764    728,   729,   730,   731,   145,   146,   147,   157,   148,     0,
1765      0,     0,     0,     0,     0,   145,   732,   733,   157,     0,
1766      0,     0,     0,     0,     0,     0,     0,     0,   148,     0,
1767      0,     0,     0,     0,     0,     0,     0,     0,   157,   734,
1768      0,     0,     0,     0,     0,     0,     0,     0,     0,   157,
1769      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1770      0,     0,     0,     0,     0,     0,     0,     0,     0,   157,
1771      0,     0,     0,     0,    76,   329,   330,   160,     0,     0,
1772    157,     0,     0,     0,     0,    76,   329,   330,   160,  -171,
1773   -171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774      0,     0,     0,     0,     0,    76,   329,   330,   160,     0,
1775      0,     0,     0,     0,     0,     0,    76,   329,   330,   160,
1776      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1777      0,     0,     0,     0,     0,     0,    76,   329,   330,   160,
1778      0,     0,     0,     0,     0,     0,     0,    76,   735,   736,
1779    737,     0,     0,     0,     0,    11,    12,    13,     0,    14,
1780     15,    16,    17,    18,    19,    20,    21,    22,    23,     0,
1781     24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1782     34,    35,    36,    37,    38,     0,    39,    40,    41,    42,
1783     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1784     53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1785     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1786     73,    74,    75,     3,     0,     0,     0,   120,     0,     0,
1787      0,    81,     0,     0,     0,     0,     0,     0,     0,     0,
1788      0,     0,     0,     0,     0,  -354,  -354,  -354,     0,     4,
1789      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1790      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1791      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1792      0,     0,     0,     0,     0,     0,    11,    12,    13,     0,
1793     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1794      0,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1795     33,    34,    35,    36,    37,    38,     0,    39,    40,    41,
1796     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1797     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1798     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1799     72,    73,    74,    75,     3,     0,     0,     0,   120,     0,
1800      0,     0,    81,     0,     0,     0,     0,     0,     0,     0,
1801      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1802      4,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1803      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1804      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1805      0,     0,     0,     0,     0,     0,     0,    11,    12,    13,
1806      0,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1807     23,     0,    24,    25,    26,    27,    28,    29,    30,    31,
1808     32,    33,    34,    35,    36,    37,    38,     0,    39,    40,
1809     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1810     51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1811     61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1812     71,    72,    73,    74,    75,  -354,  -354,  -354,     0,   120,
1813      0,     0,     0,    81,     0,     0,     0,     0,     0,     0,
1814      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1816      0,     0,     0,     0,     0,     0,    11,    12,    13,     0,
1817     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1818      0,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1819     33,    34,    35,    36,    37,    38,     0,    39,    40,    41,
1820     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1821     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1822     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1823     72,    73,    74,    75,     8,     9,    10,     0,   120,     0,
1824      0,     0,    81,     0,     0,     0,     0,     0,     0,     0,
1825      0,     0,     0,    11,    12,    13,     0,    14,    15,    16,
1826     17,    18,    19,    20,    21,    22,    23,     0,    24,    25,
1827     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1828     36,    37,    38,     0,    39,    40,    41,    42,    43,    44,
1829     45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1830     55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1831     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1832     75,     0,     0,     0,     0,   120,    11,    12,    13,    81,
1833     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1834      0,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1835     33,    34,    35,    36,    37,    38,     0,    39,    40,    41,
1836     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1837     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1838     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1839     72,    73,    74,    75,     0,     0,     0,     0,   120,     0,
1840      0,     0,    81
1841 };
1842
1843 static const short yycheck[] = {     0,
1844    106,     0,     3,    89,     0,   468,   406,   407,   368,   500,
1845     11,    12,   628,   624,   556,     2,   126,    18,    19,    20,
1846     21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1847     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1848     41,    42,    43,   661,   366,   418,    19,    48,    49,    50,
1849     51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1850     61,    62,    63,    64,   408,   409,   416,   303,   661,   793,
1851    417,   322,   796,   451,    75,   414,   415,     9,    10,   478,
1852    799,    82,     0,    82,    25,    26,    82,   558,   204,   773,
1853    805,   661,   708,   209,   454,   211,   681,   715,   903,   100,
1854    320,   410,   411,   412,   413,   106,    18,   223,    24,  1027,
1855   1028,    27,   909,    24,    18,   116,   117,   118,    34,   661,
1856     24,   122,   715,    34,    86,    87,   113,     5,   450,   215,
1857     34,    86,    87,     0,    24,   122,     3,   138,     5,  1091,
1858   1092,    24,     5,    41,   145,   715,    34,    25,    21,    25,
1859     26,    34,    28,   900,    27,    24,   903,    26,    56,   785,
1860      5,    24,    25,    26,    82,    34,    18,  1085,    44,     8,
1861   1088,    34,   896,   715,    25,    26,   498,    28,   893,    24,
1862     25,    26,  1134,    85,    28,   990,   983,   992,     0,    34,
1863    661,     3,    21,    44,   913,     7,     8,     9,    10,   784,
1864     44,     8,   787,   204,   888,   178,   179,   180,   699,   182,
1865    183,   610,    97,  1131,    99,    82,   178,   179,    41,     8,
1866    108,   109,    24,   178,   179,   585,     9,    10,   479,    96,
1867     97,   609,    99,    56,     8,     9,    10,   178,   179,   180,
1868     24,   182,   183,   990,   715,   992,   139,   140,   141,   142,
1869    143,   144,    21,    86,    87,   122,   366,     0,    27,    18,
1870      3,   661,   178,   179,     7,   181,    28,   178,   179,   505,
1871     82,   995,   204,    24,   178,   179,   902,   209,   904,   211,
1872     24,  1111,    44,   116,   117,   286,   608,  1117,   661,  1119,
1873    291,   223,   224,   292,   106,   178,   179,   130,     5,   138,
1874     18,   302,   303,    21,   305,   306,   302,   923,   630,    24,
1875    122,   661,    26,   567,   661,   715,   927,   661,   319,   810,
1876     34,   133,   661,   319,   325,    18,   138,   328,   582,   871,
1877    446,   138,    21,   178,   179,   180,    25,   182,   183,    82,
1878    450,   427,   715,   182,   156,    18,   347,    24,    21,   138,
1879      8,    26,   661,    28,   590,   194,   974,   196,    21,    26,
1880    347,    28,    25,   106,   138,   715,     5,   368,   715,    44,
1881    182,   715,     6,     7,     5,   182,   715,    44,   190,   122,
1882    192,   974,   194,   190,   196,   605,   225,   194,   498,   196,
1883    133,    21,   204,   182,    25,    25,    21,   209,   634,   211,
1884     25,   190,   873,    16,   974,   194,   715,   196,   182,    16,
1885     21,   223,   224,   225,    25,   651,   190,   653,   225,    16,
1886    194,   204,   196,    53,    54,    21,   209,   192,   211,    25,
1887    204,   205,   974,    37,    38,   209,   225,   211,    49,    50,
1888    223,   224,    21,   442,    32,    33,    25,    51,    52,   223,
1889    224,   225,   453,    49,    50,   456,    18,   453,   858,   859,
1890    456,    23,   463,    24,   465,    26,   467,   468,   790,   470,
1891     16,   178,   179,   180,   475,   182,   183,   478,    18,   346,
1892    138,    21,    24,    23,   485,    27,    67,    68,    69,   725,
1893    302,   478,    34,   305,   306,   307,   497,   870,   608,   500,
1894     15,   502,    21,   974,   505,    21,    25,   319,    22,    25,
1895    403,   404,   405,   325,   446,    22,   860,   861,   868,    21,
1896    630,    21,   869,    25,   182,    25,    22,   866,   867,    29,
1897     49,    50,   190,    49,    50,    29,   194,    39,   196,   178,
1898    179,   180,    21,   182,   183,    40,    25,   178,   179,   180,
1899     39,   182,   183,   862,   863,   864,   865,   369,   370,   302,
1900     92,   373,   305,   306,   307,    37,    38,   225,   567,   381,
1901      5,   383,    55,   933,   974,  1066,   319,    26,    18,    51,
1902     52,    21,   325,   582,  1047,    34,   587,    21,   427,   590,
1903     25,    25,   459,   699,    72,    73,    74,    18,    32,    33,
1904     21,   974,   603,   604,    25,    22,    92,    21,   373,   610,
1905    503,    25,   386,    49,    50,   427,   381,    34,   383,    18,
1906    427,    21,    21,   610,   974,    25,    25,   974,   629,    18,
1907    974,    19,    21,   634,   446,   974,   178,   179,   427,   181,
1908    452,   453,    34,    21,   456,   646,   647,    25,    53,    54,
1909    651,    34,   653,   427,   466,    24,   468,    26,   470,    28,
1910     21,    42,    43,   446,    25,   974,   478,    21,    24,   481,
1911     26,    25,   446,   485,   675,    44,    37,    38,    47,    48,
1912    790,    21,   683,    25,   685,    25,    28,   452,   689,   690,
1913     51,    52,    24,   694,    26,   915,    21,   698,   699,    22,
1914     25,    22,    85,   704,   810,    21,   518,    32,    33,    25,
1915    453,    24,   699,   456,   824,   527,   528,   704,    34,    35,
1916     36,    22,    21,   466,   725,   468,    25,   470,    21,   178,
1917    179,   180,    25,   182,   183,   478,    21,    21,   481,    92,
1918     25,    25,   485,   178,   179,   180,    18,   182,   183,    21,
1919    617,    19,    21,   518,   566,   567,    25,    20,   978,   566,
1920     21,   178,   179,   180,    25,   182,   183,   579,    21,   427,
1921    582,   583,    25,    24,  1010,    26,   996,   566,  1100,   780,
1922     18,  1001,    92,    21,   527,   528,   178,   179,   180,    21,
1923    182,   183,   566,    25,    27,   178,   179,  1017,   610,   182,
1924    183,    21,   567,  1023,    18,    25,    21,    21,   809,   810,
1925     25,   812,  1032,    24,    34,    35,    36,   582,   583,  1141,
1926     24,    21,    26,   810,    18,    25,    18,    24,    21,    26,
1927     34,    28,    25,   726,   727,   728,   729,   730,   731,    21,
1928     18,  1061,  1062,    25,  1064,   657,   658,    44,    21,   661,
1929     47,    48,    25,    23,    21,    24,   668,   669,    25,   671,
1930     22,   178,   179,   180,   126,   182,   183,   610,    18,    21,
1931     18,    21,   684,    25,   686,  1095,    25,   139,   140,   141,
1932    142,   143,   144,   695,   146,   147,   698,   699,   700,    25,
1933    976,    18,   657,   658,    21,    21,    21,    21,   899,    25,
1934     25,    25,    21,   715,   669,   906,    25,    24,   566,    18,
1935     21,    37,    38,   999,    25,   782,  1136,    21,   785,    19,
1936     20,    25,    18,    21,    24,    51,    52,    25,    18,    29,
1937     30,    31,    32,    33,    34,   700,    18,    34,    35,    36,
1938     24,   684,    26,   686,    18,    21,    46,    47,    48,    25,
1939     34,   178,   695,    21,    21,   698,   699,    25,    25,    19,
1940   1066,     9,   855,   856,   857,   777,    11,    21,    21,    25,
1941     70,    25,    25,    24,   178,   179,   180,    11,   182,   183,
1942    184,    20,    21,   984,    21,    22,   987,    34,    35,    36,
1943   1100,   987,    72,    73,    74,    24,     8,    88,   810,    32,
1944     33,    21,  1003,    19,  1005,    19,  1116,  1003,   820,  1010,
1945     19,   111,  1013,  1014,    49,    50,  1003,    19,  1017,    65,
1946     66,    67,    68,    69,    70,    71,    72,    73,    74,    53,
1947     54,  1141,    27,   900,    24,   902,   903,   904,    20,    21,
1948     20,    21,    21,    22,   937,    88,  1047,    25,  1049,  1050,
1949     23,    21,    98,    22,   100,    21,   102,    18,   104,    24,
1950    178,   179,  1061,   109,    21,  1066,    22,   810,   181,   181,
1951     25,    11,    23,   119,    24,   121,    24,   820,   178,   179,
1952    180,   181,    24,    27,    57,    58,    59,    60,    61,    62,
1953     63,    64,    65,    66,   178,   179,   180,  1098,   182,   183,
1954   1101,    25,    23,  1104,   366,  1101,    57,    58,    59,    60,
1955     61,    62,    63,    64,    65,    66,    19,   163,    20,    20,
1956     19,    21,     5,   990,   136,   992,   138,    72,    73,    74,
1957    942,   943,    23,    78,    79,    80,    81,    82,    83,    84,
1958     25,   403,   404,   405,   406,   407,   408,   409,   410,   411,
1959    412,   413,   414,   415,   416,   417,   418,  1158,    27,    24,
1960     22,    88,   974,    88,  1165,    24,   978,   119,    25,   121,
1961    182,    20,    20,    18,    27,   987,    18,    27,   190,    25,
1962    132,   133,   194,   135,   196,   137,   138,    25,   450,  1001,
1963     18,  1003,   204,    25,  1006,    21,    24,    24,   150,   942,
1964    943,    29,    30,    31,    32,    33,    34,    25,    25,    29,
1965     39,    55,    25,   225,  1026,  1027,  1028,    40,    46,    47,
1966     48,    88,    25,  1035,    78,    79,    80,    81,    82,    83,
1967     84,    24,     8,     9,    10,  1047,   498,    25,    25,    25,
1968     18,   503,    70,    25,   987,   291,    21,    18,    18,   295,
1969     18,    88,    21,   183,  1066,    88,    21,    20,    22,    20,
1970   1003,    18,    20,  1006,    88,    25,    25,   313,    20,    88,
1971    316,    73,    88,  1085,  1086,  1087,  1088,    88,   324,  1091,
1972   1092,   327,    27,   111,    88,  1097,    27,    88,     0,  1101,
1973      0,    82,   774,   325,   556,  1000,   558,  1077,   560,   561,
1974     72,    73,    74,  1025,  1047,   888,    78,    79,    80,    81,
1975     82,    83,    84,  1131,   920,  1001,   328,   839,  1097,  1131,
1976   1132,  1133,  1134,  1066,   336,   337,   338,   339,   470,  1101,
1977    590,   686,   684,   810,   113,   698,   347,    10,   224,  1071,
1978    427,   518,   715,  1086,  1087,   357,   608,   974,    -1,    -1,
1979    178,   179,   180,   181,    -1,    -1,   368,    -1,  1101,    -1,
1980     -1,    -1,   138,    -1,    -1,    -1,    -1,    -1,   630,     8,
1981      9,    10,    -1,    -1,    -1,    -1,   388,    -1,    -1,    -1,
1982     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1132,
1983   1133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   661,
1984     -1,    -1,    -1,    -1,    -1,   451,   182,    -1,    -1,    -1,
1985     -1,    -1,   458,    -1,   190,   427,    -1,   463,   194,   465,
1986    196,    -1,   434,    -1,    -1,    -1,    -1,   473,   204,    -1,
1987     -1,   477,    -1,   209,    -1,   211,    -1,    -1,    -1,    -1,
1988     -1,    -1,    -1,    -1,    -1,    -1,    -1,   223,   224,   225,
1989     -1,    -1,    -1,   715,    -1,    -1,   360,    -1,    -1,    -1,
1990     -1,    -1,    -1,    -1,   726,   727,   728,   729,   730,   731,
1991    732,   733,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1992      8,     9,    10,   387,    -1,    -1,    -1,    -1,   392,   393,
1993    394,   395,   396,   397,   398,   399,   400,   401,   402,   138,
1994     -1,    24,    25,    -1,    -1,    -1,    29,    30,    31,    32,
1995     33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
1996     -1,    -1,    -1,    46,    47,    48,    -1,    -1,   790,    -1,
1997     -1,    -1,    -1,    -1,     8,     9,    10,    -1,   584,    -1,
1998     -1,    -1,    -1,   182,    -1,   557,    -1,    70,    -1,    -1,
1999     -1,   190,    -1,    -1,   566,   194,    -1,   196,     8,     9,
2000     10,    -1,   824,   609,    -1,   204,    -1,    -1,    -1,    -1,
2001    209,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2002     -1,    -1,   628,    -1,   223,   224,   225,   633,   111,    -1,
2003     -1,    -1,    -1,   855,   856,   857,   858,   859,   860,   861,
2004    862,   863,   864,   865,   866,   867,   868,   869,   870,   871,
2005    138,   873,   624,    -1,    -1,    -1,    -1,   663,     8,     9,
2006     10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2007     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   651,
2008     -1,   653,    -1,    -1,    -1,    -1,    -1,   659,    -1,    -1,
2009    662,   427,    -1,    -1,   182,   178,   179,   180,   181,    -1,
2010     -1,    -1,   190,    -1,   138,    -1,   194,    -1,   196,    -1,
2011    446,    -1,    -1,    -1,    -1,   937,   204,    -1,    -1,    -1,
2012     -1,   209,    -1,   211,    -1,    -1,    -1,    -1,   138,    -1,
2013     -1,    -1,   738,    -1,    -1,   223,   224,   225,    -1,    -1,
2014     -1,    -1,   714,    -1,    -1,    -1,    -1,    -1,   182,    -1,
2015     -1,    -1,   974,   725,    -1,    -1,   190,    -1,    -1,    -1,
2016    194,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2017    204,    -1,   182,    -1,    -1,   209,    -1,   211,    -1,   643,
2018    190,    -1,    -1,    -1,   194,    -1,   196,    -1,   138,   223,
2019    224,   225,   798,    -1,   204,    -1,    -1,    24,    -1,   209,
2020     27,   211,    29,    30,    31,    32,    33,    34,    -1,    -1,
2021     -1,    -1,    -1,   223,   224,   225,    -1,    -1,    -1,    46,
2022     47,    48,    -1,    -1,   688,    -1,    -1,    -1,   427,    -1,
2023    566,    -1,   182,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2024    190,    -1,    -1,    70,   194,    -1,   196,   446,    -1,    -1,
2025     -1,    -1,    -1,    -1,   204,    -1,    -1,    -1,    -1,   209,
2026     -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,   840,    -1,
2027     -1,    -1,    -1,   223,   224,   225,    -1,    -1,  1100,    -1,
2028     -1,    -1,    -1,    -1,   111,   891,   892,    -1,    -1,    -1,
2029     -1,    -1,    -1,   899,  1116,    -1,    -1,    -1,    18,    -1,
2030     -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
2031     30,    31,    32,    33,    34,    -1,    -1,   923,    -1,  1141,
2032     -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,   793,
2033     -1,    -1,   796,    -1,    -1,    -1,    -1,    -1,    -1,   427,
2034     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2035     70,   178,   179,   180,   181,   927,    -1,    -1,   446,    -1,
2036     -1,    -1,    -1,    -1,    -1,    -1,    -1,   566,    -1,    -1,
2037     -1,    -1,    -1,    -1,   838,   839,    -1,    -1,    -1,   985,
2038    844,   845,   846,   847,   848,   849,   850,   851,   852,   853,
2039    854,   111,    19,   427,    -1,    -1,    -1,    24,    -1,    -1,
2040    972,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
2041     -1,    -1,   446,    19,    -1,    -1,    -1,   427,    24,    46,
2042     47,    48,    -1,    29,    30,    31,    32,    33,    34,    -1,
2043     -1,    -1,   896,    -1,    -1,    -1,   446,    -1,    -1,    -1,
2044     46,    47,    48,    70,    -1,  1051,    -1,    -1,    -1,    -1,
2045     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   178,   179,
2046    180,   181,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
2047     -1,    -1,    -1,    -1,    -1,    -1,    -1,   427,   566,    -1,
2048     -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
2049     -1,    -1,    -1,    -1,     0,     1,   446,    -1,    -1,    -1,
2050     -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
2051     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    -1,
2052     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,
2053     -1,   995,   566,  1139,    -1,    -1,    -1,    -1,    -1,    45,
2054     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2055     -1,   178,   179,   180,   181,    -1,   566,    -1,    -1,    -1,
2056     -1,    67,    68,    69,    -1,    71,    -1,    -1,    -1,    75,
2057     76,    77,   178,   179,   180,   181,    -1,    -1,    -1,    -1,
2058     -1,    -1,    -1,    89,    90,    91,    -1,    -1,    -1,    -1,
2059     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2060     -1,    -1,   108,   109,   110,    -1,   112,   113,   114,   115,
2061    116,   117,   118,   119,   120,   121,   566,   123,   124,   125,
2062    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2063    136,   137,    -1,   139,   140,   141,   142,   143,   144,   145,
2064    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2065    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2066    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2067      0,     1,   178,   179,   180,    -1,   182,   183,   184,    -1,
2068     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2069     -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    -1,
2070     -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,
2071     -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,
2072     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2073     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
2074     -1,    71,    -1,    -1,    -1,    75,    76,    77,    -1,    -1,
2075     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
2076     90,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2077     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,   109,
2078    110,    -1,   112,   113,   114,   115,   116,   117,   118,   119,
2079    120,   121,    -1,   123,   124,   125,   126,   127,   128,   129,
2080    130,   131,   132,   133,   134,   135,   136,   137,    -1,   139,
2081    140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2082    150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2083    160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2084    170,   171,   172,   173,   174,   175,    -1,    -1,   178,   179,
2085    180,     1,   182,   183,   184,    -1,     6,     7,     8,    -1,
2086     10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2087     20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
2088     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2089     -1,    -1,    42,    43,    -1,    45,    46,    47,    48,    -1,
2090     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2091     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
2092     70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2093     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2094     -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    -1,
2095     -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
2096    110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2097    120,   121,    -1,   123,   124,   125,   126,   127,   128,   129,
2098    130,   131,   132,   133,   134,   135,   136,   137,    -1,   139,
2099    140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2100    150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2101    160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2102    170,   171,   172,   173,   174,   175,    -1,    -1,   178,   179,
2103    180,   181,   182,   183,   184,     1,    -1,    -1,    -1,    -1,
2104      6,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
2105     16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,    -1,
2106     -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
2107     -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
2108     46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2109     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2110     -1,    67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
2111     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2112     -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95,
2113     96,    97,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2114     -1,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2115    116,   117,   118,   119,   120,   121,    -1,   123,   124,   125,
2116    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2117    136,   137,    -1,   139,   140,   141,   142,   143,   144,   145,
2118    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2119    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2120    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2121     -1,    -1,   178,   179,   180,   181,   182,   183,   184,     1,
2122     -1,    -1,    -1,    -1,     6,     7,     8,    -1,    -1,    11,
2123     12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2124     -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
2125     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2126     42,    43,    -1,    -1,    46,    47,    48,    -1,    -1,    -1,
2127     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2128     -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,    -1,
2129     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2130     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2131     -1,    93,    94,    95,    96,    97,    98,    -1,    -1,    -1,
2132     -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,   111,
2133    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2134     -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2135    132,   133,   134,   135,   136,   137,    -1,   139,   140,   141,
2136    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2137    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2138    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2139    172,   173,   174,   175,    -1,    -1,   178,   179,   180,   181,
2140    182,   183,   184,     1,    -1,    -1,    -1,    -1,     6,     7,
2141      8,    -1,    -1,    11,    12,    13,    14,    15,    16,    17,
2142     18,    19,    20,    -1,    -1,    -1,    24,    25,    -1,    -1,
2143     -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
2144     -1,    -1,    -1,    -1,    42,    43,     1,    -1,    46,    47,
2145     48,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
2146     15,    16,    17,    18,    19,    -1,    -1,    -1,    -1,    24,
2147     -1,    -1,    70,    -1,    29,    30,    31,    32,    33,    34,
2148     -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
2149     -1,    46,    47,    48,    92,    93,    94,    95,    96,    97,
2150     98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
2151     -1,    -1,    -1,   111,    -1,    70,    -1,    -1,    -1,    -1,
2152     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2153     -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    94,
2154     95,    96,    97,    98,    -1,    -1,    -1,    -1,    -1,    -1,
2155     -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
2156     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2157     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2158    178,   179,   180,   181,   182,   183,    -1,    -1,     1,    -1,
2159     -1,    -1,    -1,     6,     7,     8,    -1,    10,    11,    12,
2160     13,    14,    15,    16,    17,    18,    19,    -1,    -1,    -1,
2161     -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
2162     33,    34,    -1,   178,   179,   180,   181,   182,   183,    42,
2163     43,     1,    -1,    46,    47,    48,     6,     7,     8,    -1,
2164     -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2165     20,    -1,    -1,    -1,    24,    -1,    -1,    70,    -1,    29,
2166     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2167     -1,    -1,    42,    43,    -1,    -1,    46,    47,    48,    92,
2168     93,    94,    95,    96,    97,    98,    -1,    -1,    -1,    -1,
2169     -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,
2170     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2171     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2172     -1,    -1,    92,    93,    94,    95,    96,    97,    98,    -1,
2173     -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,
2174     -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2175     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2176     -1,    -1,    -1,    -1,    -1,   178,   179,   180,   181,   182,
2177    183,    -1,    -1,     1,    -1,    -1,    -1,    -1,     6,     7,
2178      8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
2179     18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,
2180     -1,    29,    30,    31,    32,    33,    34,    -1,   178,   179,
2181    180,   181,   182,   183,    42,    43,     1,    -1,    46,    47,
2182     48,     6,     7,     8,    -1,    -1,    11,    12,    13,    14,
2183     15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
2184     -1,    -1,    70,    -1,    29,    30,    31,    32,    33,    34,
2185     -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
2186     -1,    46,    47,    48,    -1,    93,    94,    95,    96,    97,
2187     98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
2188     -1,    -1,    -1,   111,    -1,    70,    -1,    -1,    -1,    -1,
2189     -1,    -1,    24,    -1,    -1,    27,    -1,    29,    30,    31,
2190     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    93,    94,
2191     95,    96,    97,    98,    46,    47,    48,    -1,    -1,    -1,
2192     -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
2193     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
2194     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2195    178,   179,   180,   181,   182,   183,    -1,    -1,     1,    -1,
2196     -1,    -1,    -1,     6,     7,     8,    -1,    10,    11,    12,
2197     13,    14,    15,    16,    17,    18,    19,    -1,    -1,   111,
2198     -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
2199     33,    34,    -1,   178,   179,   180,   181,   182,   183,    42,
2200     43,    -1,    -1,    46,    47,    48,    -1,    -1,    -1,    -1,
2201     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2202     -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
2203     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2204     -1,    -1,    -1,    -1,    -1,    -1,   178,   179,   180,   181,
2205     93,    94,    95,    96,    97,    98,    -1,    -1,    -1,    -1,
2206     -1,    -1,    -1,    -1,   107,     6,     7,     8,   111,    10,
2207     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2208     -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,
2209     31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
2210     -1,    42,    43,    -1,    45,    46,    47,    48,    -1,    -1,
2211     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2212     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
2213     71,    -1,    -1,    -1,    -1,   178,   179,   180,   181,   182,
2214    183,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2215     -1,    -1,    93,    94,    95,    96,    97,    98,    -1,    -1,
2216     -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,
2217    111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2218    121,    -1,   123,   124,   125,   126,   127,   128,   129,   130,
2219    131,   132,   133,   134,   135,   136,   137,    -1,   139,   140,
2220    141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2221    151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2222    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2223    171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2224    181,   182,   183,   184,     6,     7,     8,    -1,    10,    11,
2225     12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2226     -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
2227     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2228     42,    43,    -1,    45,    46,    47,    48,    -1,    -1,    -1,
2229     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2230     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,
2231     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2232     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2233     -1,    93,    94,    95,    96,    97,    98,    -1,    -1,    -1,
2234     -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,   111,
2235    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2236     -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2237    132,   133,   134,   135,   136,   137,    -1,   139,   140,   141,
2238    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2239    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2240    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2241    172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2242    182,   183,   184,     6,     7,     8,    -1,    10,    11,    12,
2243     13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
2244     -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
2245     33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
2246     43,    -1,    45,    46,    47,    48,    -1,    -1,    -1,    -1,
2247     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2248     -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    -1,
2249     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2250     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2251     93,    94,    95,    96,    97,    98,    -1,    -1,    -1,    -1,
2252     -1,    -1,    -1,    -1,   107,   108,   109,   110,   111,   112,
2253    113,   114,   115,   116,   117,   118,   119,   120,   121,    -1,
2254    123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2255    133,   134,   135,   136,   137,    -1,   139,   140,   141,   142,
2256    143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2257    153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2258    163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2259    173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2260    183,   184,     6,     7,     8,    -1,    10,    11,    12,    13,
2261     14,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
2262     24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
2263     34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2264     -1,    -1,    46,    47,    48,     6,     7,     8,    -1,    10,
2265     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2266     -1,    -1,    -1,    24,    -1,    -1,    70,    -1,    29,    30,
2267     31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
2268     -1,    -1,    -1,    -1,    -1,    46,    47,    48,    -1,    93,
2269     94,    95,    96,    97,    98,    -1,    -1,    -1,    -1,    -1,
2270     -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    70,
2271     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2272     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2273     -1,    -1,    93,    94,    95,    96,    97,    98,    -1,    -1,
2274     -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,
2275    111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2276     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2277     -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
2278     -1,    -1,    -1,     6,     7,     8,    -1,    10,    11,    12,
2279     13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
2280     -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
2281     33,    34,    -1,    -1,    -1,   176,   177,   178,   179,   180,
2282    181,   182,   183,    46,    47,    48,     6,     7,     8,    -1,
2283     10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2284     20,    -1,    -1,    -1,    24,    -1,    -1,    70,    -1,    29,
2285     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
2286     -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,    -1,
2287     93,    94,    95,    96,    97,    98,    -1,    -1,    -1,    -1,
2288     -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,
2289     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2290     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2291     -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    -1,
2292     -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,
2293     -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2294     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2295     -1,    -1,    -1,   176,   177,   178,   179,   180,   181,   182,
2296    183,    -1,    -1,    -1,     6,     7,     8,    -1,    10,    11,
2297     12,    13,    14,    15,    16,    17,    18,    19,    20,    -1,
2298     -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
2299     32,    33,    34,    -1,    -1,    -1,   176,   177,   178,   179,
2300    180,   181,   182,   183,    46,    47,    48,     6,     7,     8,
2301     -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2302     19,    20,    -1,    -1,    -1,    24,    -1,    -1,    70,    -1,
2303     29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
2304     -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
2305     -1,    93,    94,    95,    96,    97,    98,    -1,    -1,    -1,
2306     -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,
2307     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2308     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2309     -1,    -1,    -1,    -1,    93,    94,    95,    96,    97,    98,
2310     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,
2311     -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2312     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2313     -1,    -1,    -1,    -1,   176,   177,   178,   179,   180,   181,
2314    182,   183,    -1,    -1,    -1,     6,     7,     8,    -1,    10,
2315     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2316     -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,
2317     31,    32,    33,    34,    -1,    -1,    -1,   176,   177,   178,
2318    179,   180,   181,   182,   183,    46,    47,    48,     6,     7,
2319      8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
2320     18,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,    70,
2321     -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
2322     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,
2323     48,    -1,    93,    94,    95,    96,    97,    98,    -1,    -1,
2324     -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,
2325    111,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2326     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2327     -1,    -1,    -1,    -1,    -1,    93,    94,    95,    96,    97,
2328     98,    18,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
2329     -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
2330     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,
2331     -1,    -1,    -1,    -1,    -1,   176,   177,   178,   179,   180,
2332    181,   182,   183,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2333     67,    68,    69,    -1,    71,    -1,    -1,    -1,    -1,    -1,
2334     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2335     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   176,   177,
2336    178,   179,   180,   181,   182,   183,    -1,    -1,    -1,    -1,
2337     -1,   108,   109,   110,    -1,   112,   113,   114,   115,   116,
2338    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
2339    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2340    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
2341    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2342    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2343    167,   168,   169,   170,   171,   172,   173,   174,   175,    18,
2344     -1,    -1,    -1,   180,    -1,    -1,    -1,   184,    -1,    -1,
2345     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2346     -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,
2347     -1,    -1,    24,    25,    -1,    -1,    -1,    29,    30,    31,
2348     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2349     -1,    -1,    71,    -1,    46,    47,    48,    -1,    -1,    -1,
2350     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
2351     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
2352     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,
2353    109,   110,    -1,   112,   113,   114,   115,   116,   117,   118,
2354    119,   120,   121,    -1,   123,   124,   125,   126,   127,   128,
2355    129,   130,   131,   132,   133,   134,   135,   136,   137,   111,
2356    139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2357    149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2358    159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2359    169,   170,   171,   172,   173,   174,   175,    19,    -1,    -1,
2360     -1,   180,    24,    -1,    -1,   184,    -1,    -1,    -1,    -1,
2361     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2362     -1,    -1,    -1,    45,    -1,    -1,   178,   179,   180,   181,
2363     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2364     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
2365     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2366     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2367     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2368     -1,    -1,    -1,    -1,    -1,    -1,   108,   109,   110,    -1,
2369    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2370     -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2371    132,   133,   134,   135,   136,   137,    -1,   139,   140,   141,
2372    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2373    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2374    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2375    172,   173,   174,   175,    19,    -1,    -1,    -1,   180,    -1,
2376     -1,    -1,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2377     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2378     45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2379     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2380     -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
2381     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2382     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    -1,
2383     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2384     -1,    -1,    -1,   108,   109,   110,    -1,   112,   113,   114,
2385    115,   116,   117,   118,   119,   120,   121,    -1,   123,   124,
2386    125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2387    135,   136,   137,    -1,   139,   140,   141,   142,   143,   144,
2388    145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2389    155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2390    165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2391    175,    -1,    -1,    -1,    -1,   180,   108,   109,   110,   184,
2392    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2393     -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2394    132,   133,   134,   135,   136,   137,    -1,   139,   140,   141,
2395    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2396    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2397    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2398    172,   173,   174,   175,    22,    -1,    -1,    -1,   180,    -1,
2399     -1,    -1,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2400     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2401     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2402     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
2403     68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2404     -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    -1,    -1,
2405     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,
2406     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,
2407    108,   109,   110,    -1,   112,   113,   114,   115,   116,   117,
2408    118,   119,   120,   121,    -1,   123,   124,   125,   126,   127,
2409    128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2410     -1,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2411    148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2412    158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2413    168,   169,   170,   171,   172,   173,   174,   175,    -1,    -1,
2414     -1,    -1,    -1,   108,   109,   110,   184,   112,   113,   114,
2415    115,   116,   117,   118,   119,   120,   121,    -1,   123,   124,
2416    125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2417    135,   136,   137,    -1,   139,   140,   141,   142,   143,   144,
2418    145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2419    155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2420    165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2421    175,    -1,    -1,   178,   179,   180,    -1,   182,   183,   184,
2422     24,    25,    -1,    -1,    -1,    29,    30,    31,    32,    33,
2423     34,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
2424     33,    34,    46,    47,    48,    -1,    -1,    -1,    -1,    -1,
2425     -1,    24,    -1,    46,    47,    48,    29,    30,    31,    32,
2426     33,    34,    24,    -1,    -1,    -1,    70,    29,    30,    31,
2427     32,    33,    34,    46,    47,    48,    -1,    70,    -1,    -1,
2428     -1,    -1,    24,    -1,    46,    47,    48,    29,    30,    31,
2429     32,    33,    34,    24,    -1,    -1,    -1,    70,    29,    30,
2430     31,    32,    33,    34,    46,    47,    48,   111,    70,    -1,
2431     -1,    -1,    -1,    -1,    -1,    46,    47,    48,   111,    -1,
2432     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
2433     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    70,
2434     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
2435     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2436     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
2437     -1,    -1,    -1,    -1,   178,   179,   180,   181,    -1,    -1,
2438    111,    -1,    -1,    -1,    -1,   178,   179,   180,   181,    42,
2439     43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2440     -1,    -1,    -1,    -1,    -1,   178,   179,   180,   181,    -1,
2441     -1,    -1,    -1,    -1,    -1,    -1,   178,   179,   180,   181,
2442     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2443     -1,    -1,    -1,    -1,    -1,    -1,   178,   179,   180,   181,
2444     -1,    -1,    -1,    -1,    -1,    -1,    -1,   178,   179,   180,
2445    181,    -1,    -1,    -1,    -1,   108,   109,   110,    -1,   112,
2446    113,   114,   115,   116,   117,   118,   119,   120,   121,    -1,
2447    123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2448    133,   134,   135,   136,   137,    -1,   139,   140,   141,   142,
2449    143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2450    153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2451    163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2452    173,   174,   175,    45,    -1,    -1,    -1,   180,    -1,    -1,
2453     -1,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2454     -1,    -1,    -1,    -1,    -1,    67,    68,    69,    -1,    71,
2455     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2456     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2457     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2458     -1,    -1,    -1,    -1,    -1,    -1,   108,   109,   110,    -1,
2459    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2460     -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2461    132,   133,   134,   135,   136,   137,    -1,   139,   140,   141,
2462    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2463    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2464    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2465    172,   173,   174,   175,    45,    -1,    -1,    -1,   180,    -1,
2466     -1,    -1,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2467     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2468     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2469     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2470     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2471     -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,   109,   110,
2472     -1,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2473    121,    -1,   123,   124,   125,   126,   127,   128,   129,   130,
2474    131,   132,   133,   134,   135,   136,   137,    -1,   139,   140,
2475    141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2476    151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2477    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2478    171,   172,   173,   174,   175,    67,    68,    69,    -1,   180,
2479     -1,    -1,    -1,   184,    -1,    -1,    -1,    -1,    -1,    -1,
2480     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2481     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2482     -1,    -1,    -1,    -1,    -1,    -1,   108,   109,   110,    -1,
2483    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2484     -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2485    132,   133,   134,   135,   136,   137,    -1,   139,   140,   141,
2486    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2487    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2488    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2489    172,   173,   174,   175,    89,    90,    91,    -1,   180,    -1,
2490     -1,    -1,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2491     -1,    -1,    -1,   108,   109,   110,    -1,   112,   113,   114,
2492    115,   116,   117,   118,   119,   120,   121,    -1,   123,   124,
2493    125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2494    135,   136,   137,    -1,   139,   140,   141,   142,   143,   144,
2495    145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2496    155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2497    165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2498    175,    -1,    -1,    -1,    -1,   180,   108,   109,   110,   184,
2499    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2500     -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2501    132,   133,   134,   135,   136,   137,    -1,   139,   140,   141,
2502    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2503    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2504    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2505    172,   173,   174,   175,    -1,    -1,    -1,    -1,   180,    -1,
2506     -1,    -1,   184
2507 };
2508 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
2509
2510
2511 /* Skeleton output parser for bison,
2512    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2513
2514    This program is free software; you can redistribute it and/or modify
2515    it under the terms of the GNU General Public License as published by
2516    the Free Software Foundation; either version 2, or (at your option)
2517    any later version.
2518
2519    This program is distributed in the hope that it will be useful,
2520    but WITHOUT ANY WARRANTY; without even the implied warranty of
2521    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2522    GNU General Public License for more details.
2523
2524    You should have received a copy of the GNU General Public License
2525    along with this program; if not, write to the Free Software
2526    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
2527
2528 /* As a special exception, when this file is copied by Bison into a
2529    Bison output file, you may use that output file without restriction.
2530    This special exception was added by the Free Software Foundation
2531    in version 1.24 of Bison.  */
2532
2533 #ifndef alloca
2534 #ifdef __GNUC__
2535 #define alloca __builtin_alloca
2536 #else /* not GNU C.  */
2537 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
2538 #include <alloca.h>
2539 #else /* not sparc */
2540 #if defined (MSDOS) && !defined (__TURBOC__)
2541 #include <malloc.h>
2542 #else /* not MSDOS, or __TURBOC__ */
2543 #if defined(_AIX)
2544 #include <malloc.h>
2545  #pragma alloca
2546 #else /* not MSDOS, __TURBOC__, or _AIX */
2547 #ifdef __hpux
2548 #ifdef __cplusplus
2549 extern "C" {
2550 void *alloca (unsigned int);
2551 };
2552 #else /* not __cplusplus */
2553 void *alloca ();
2554 #endif /* not __cplusplus */
2555 #endif /* __hpux */
2556 #endif /* not _AIX */
2557 #endif /* not MSDOS, or __TURBOC__ */
2558 #endif /* not sparc.  */
2559 #endif /* not GNU C.  */
2560 #endif /* alloca not defined.  */
2561
2562 /* This is the parser code that is written into each bison parser
2563   when the %semantic_parser declaration is not specified in the grammar.
2564   It was written by Richard Stallman by simplifying the hairy parser
2565   used when %semantic_parser is specified.  */
2566
2567 /* Note: there must be only one dollar sign in this file.
2568    It is replaced by the list of actions, each action
2569    as one case of the switch.  */
2570
2571 #define yyerrok         (yyerrstatus = 0)
2572 #define yyclearin       (yychar = YYEMPTY)
2573 #define YYEMPTY         -2
2574 #define YYEOF           0
2575 #define YYACCEPT        return(0)
2576 #define YYABORT         return(1)
2577 #define YYERROR         goto yyerrlab1
2578 /* Like YYERROR except do call yyerror.
2579    This remains here temporarily to ease the
2580    transition to the new meaning of YYERROR, for GCC.
2581    Once GCC version 2 has supplanted version 1, this can go.  */
2582 #define YYFAIL          goto yyerrlab
2583 #define YYRECOVERING()  (!!yyerrstatus)
2584 #define YYBACKUP(token, value) \
2585 do                                                              \
2586   if (yychar == YYEMPTY && yylen == 1)                          \
2587     { yychar = (token), yylval = (value);                       \
2588       yychar1 = YYTRANSLATE (yychar);                           \
2589       YYPOPSTACK;                                               \
2590       goto yybackup;                                            \
2591     }                                                           \
2592   else                                                          \
2593     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
2594 while (0)
2595
2596 #define YYTERROR        1
2597 #define YYERRCODE       256
2598
2599 #ifndef YYPURE
2600 #define YYLEX           yylex()
2601 #endif
2602
2603 #ifdef YYPURE
2604 #ifdef YYLSP_NEEDED
2605 #ifdef YYLEX_PARAM
2606 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
2607 #else
2608 #define YYLEX           yylex(&yylval, &yylloc)
2609 #endif
2610 #else /* not YYLSP_NEEDED */
2611 #ifdef YYLEX_PARAM
2612 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
2613 #else
2614 #define YYLEX           yylex(&yylval)
2615 #endif
2616 #endif /* not YYLSP_NEEDED */
2617 #endif
2618
2619 /* If nonreentrant, generate the variables here */
2620
2621 #ifndef YYPURE
2622
2623 int     yychar;                 /*  the lookahead symbol                */
2624 YYSTYPE yylval;                 /*  the semantic value of the           */
2625                                 /*  lookahead symbol                    */
2626
2627 #ifdef YYLSP_NEEDED
2628 YYLTYPE yylloc;                 /*  location data for the lookahead     */
2629                                 /*  symbol                              */
2630 #endif
2631
2632 int yynerrs;                    /*  number of parse errors so far       */
2633 #endif  /* not YYPURE */
2634
2635 #if YYDEBUG != 0
2636 int yydebug;                    /*  nonzero means print parse trace     */
2637 /* Since this is uninitialized, it does not stop multiple parsers
2638    from coexisting.  */
2639 #endif
2640
2641 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
2642
2643 #ifndef YYINITDEPTH
2644 #define YYINITDEPTH 200
2645 #endif
2646
2647 /*  YYMAXDEPTH is the maximum size the stacks can grow to
2648     (effective only if the built-in stack extension method is used).  */
2649
2650 #if YYMAXDEPTH == 0
2651 #undef YYMAXDEPTH
2652 #endif
2653
2654 #ifndef YYMAXDEPTH
2655 #define YYMAXDEPTH 10000
2656 #endif
2657
2658 /* Prevent warning if -Wstrict-prototypes.  */
2659 #ifdef __GNUC__
2660 int yyparse (void);
2661 #endif
2662 \f
2663 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
2664 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
2665 #else                           /* not GNU C or C++ */
2666 #ifndef __cplusplus
2667
2668 /* This is the most reliable way to avoid incompatibilities
2669    in available built-in functions on various systems.  */
2670 static void
2671 __yy_memcpy (to, from, count)
2672      char *to;
2673      char *from;
2674      int count;
2675 {
2676   register char *f = from;
2677   register char *t = to;
2678   register int i = count;
2679
2680   while (i-- > 0)
2681     *t++ = *f++;
2682 }
2683
2684 #else /* __cplusplus */
2685
2686 /* This is the most reliable way to avoid incompatibilities
2687    in available built-in functions on various systems.  */
2688 static void
2689 __yy_memcpy (char *to, char *from, int count)
2690 {
2691   register char *f = from;
2692   register char *t = to;
2693   register int i = count;
2694
2695   while (i-- > 0)
2696     *t++ = *f++;
2697 }
2698
2699 #endif
2700 #endif
2701 \f
2702
2703
2704 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2705    into yyparse.  The argument should have type void *.
2706    It should actually point to an object.
2707    Grammar actions can access the variable by casting it
2708    to the proper pointer type.  */
2709
2710 #ifdef YYPARSE_PARAM
2711 #ifdef __cplusplus
2712 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2713 #define YYPARSE_PARAM_DECL
2714 #else /* not __cplusplus */
2715 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
2716 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2717 #endif /* not __cplusplus */
2718 #else /* not YYPARSE_PARAM */
2719 #define YYPARSE_PARAM_ARG
2720 #define YYPARSE_PARAM_DECL
2721 #endif /* not YYPARSE_PARAM */
2722
2723 int
2724 yyparse(YYPARSE_PARAM_ARG)
2725      YYPARSE_PARAM_DECL
2726 {
2727   register int yystate;
2728   register int yyn;
2729   register short *yyssp;
2730   register YYSTYPE *yyvsp;
2731   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
2732   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
2733
2734   short yyssa[YYINITDEPTH];     /*  the state stack                     */
2735   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
2736
2737   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
2738   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
2739
2740 #ifdef YYLSP_NEEDED
2741   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
2742   YYLTYPE *yyls = yylsa;
2743   YYLTYPE *yylsp;
2744
2745 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
2746 #else
2747 #define YYPOPSTACK   (yyvsp--, yyssp--)
2748 #endif
2749
2750   int yystacksize = YYINITDEPTH;
2751
2752 #ifdef YYPURE
2753   int yychar;
2754   YYSTYPE yylval;
2755   int yynerrs;
2756 #ifdef YYLSP_NEEDED
2757   YYLTYPE yylloc;
2758 #endif
2759 #endif
2760
2761   YYSTYPE yyval;                /*  the variable used to return         */
2762                                 /*  semantic values from the action     */
2763                                 /*  routines                            */
2764
2765   int yylen;
2766
2767 #if YYDEBUG != 0
2768   if (yydebug)
2769     fprintf(stderr, "Starting parse\n");
2770 #endif
2771
2772   yystate = 0;
2773   yyerrstatus = 0;
2774   yynerrs = 0;
2775   yychar = YYEMPTY;             /* Cause a token to be read.  */
2776
2777   /* Initialize stack pointers.
2778      Waste one element of value and location stack
2779      so that they stay on the same level as the state stack.
2780      The wasted elements are never initialized.  */
2781
2782   yyssp = yyss - 1;
2783   yyvsp = yyvs;
2784 #ifdef YYLSP_NEEDED
2785   yylsp = yyls;
2786 #endif
2787
2788 /* Push a new state, which is found in  yystate  .  */
2789 /* In all cases, when you get here, the value and location stacks
2790    have just been pushed. so pushing a state here evens the stacks.  */
2791 yynewstate:
2792
2793   *++yyssp = yystate;
2794
2795   if (yyssp >= yyss + yystacksize - 1)
2796     {
2797       /* Give user a chance to reallocate the stack */
2798       /* Use copies of these so that the &'s don't force the real ones into memory. */
2799       YYSTYPE *yyvs1 = yyvs;
2800       short *yyss1 = yyss;
2801 #ifdef YYLSP_NEEDED
2802       YYLTYPE *yyls1 = yyls;
2803 #endif
2804
2805       /* Get the current used size of the three stacks, in elements.  */
2806       int size = yyssp - yyss + 1;
2807
2808 #ifdef yyoverflow
2809       /* Each stack pointer address is followed by the size of
2810          the data in use in that stack, in bytes.  */
2811 #ifdef YYLSP_NEEDED
2812       /* This used to be a conditional around just the two extra args,
2813          but that might be undefined if yyoverflow is a macro.  */
2814       yyoverflow("parser stack overflow",
2815                  &yyss1, size * sizeof (*yyssp),
2816                  &yyvs1, size * sizeof (*yyvsp),
2817                  &yyls1, size * sizeof (*yylsp),
2818                  &yystacksize);
2819 #else
2820       yyoverflow("parser stack overflow",
2821                  &yyss1, size * sizeof (*yyssp),
2822                  &yyvs1, size * sizeof (*yyvsp),
2823                  &yystacksize);
2824 #endif
2825
2826       yyss = yyss1; yyvs = yyvs1;
2827 #ifdef YYLSP_NEEDED
2828       yyls = yyls1;
2829 #endif
2830 #else /* no yyoverflow */
2831       /* Extend the stack our own way.  */
2832       if (yystacksize >= YYMAXDEPTH)
2833         {
2834           yyerror("parser stack overflow");
2835           return 2;
2836         }
2837       yystacksize *= 2;
2838       if (yystacksize > YYMAXDEPTH)
2839         yystacksize = YYMAXDEPTH;
2840       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
2841       __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
2842       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
2843       __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
2844 #ifdef YYLSP_NEEDED
2845       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
2846       __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
2847 #endif
2848 #endif /* no yyoverflow */
2849
2850       yyssp = yyss + size - 1;
2851       yyvsp = yyvs + size - 1;
2852 #ifdef YYLSP_NEEDED
2853       yylsp = yyls + size - 1;
2854 #endif
2855
2856 #if YYDEBUG != 0
2857       if (yydebug)
2858         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2859 #endif
2860
2861       if (yyssp >= yyss + yystacksize - 1)
2862         YYABORT;
2863     }
2864
2865 #if YYDEBUG != 0
2866   if (yydebug)
2867     fprintf(stderr, "Entering state %d\n", yystate);
2868 #endif
2869
2870   goto yybackup;
2871  yybackup:
2872
2873 /* Do appropriate processing given the current state.  */
2874 /* Read a lookahead token if we need one and don't already have one.  */
2875 /* yyresume: */
2876
2877   /* First try to decide what to do without reference to lookahead token.  */
2878
2879   yyn = yypact[yystate];
2880   if (yyn == YYFLAG)
2881     goto yydefault;
2882
2883   /* Not known => get a lookahead token if don't already have one.  */
2884
2885   /* yychar is either YYEMPTY or YYEOF
2886      or a valid token in external form.  */
2887
2888   if (yychar == YYEMPTY)
2889     {
2890 #if YYDEBUG != 0
2891       if (yydebug)
2892         fprintf(stderr, "Reading a token: ");
2893 #endif
2894       yychar = YYLEX;
2895     }
2896
2897   /* Convert token to internal form (in yychar1) for indexing tables with */
2898
2899   if (yychar <= 0)              /* This means end of input. */
2900     {
2901       yychar1 = 0;
2902       yychar = YYEOF;           /* Don't call YYLEX any more */
2903
2904 #if YYDEBUG != 0
2905       if (yydebug)
2906         fprintf(stderr, "Now at end of input.\n");
2907 #endif
2908     }
2909   else
2910     {
2911       yychar1 = YYTRANSLATE(yychar);
2912
2913 #if YYDEBUG != 0
2914       if (yydebug)
2915         {
2916           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2917           /* Give the individual parser a way to print the precise meaning
2918              of a token, for further debugging info.  */
2919 #ifdef YYPRINT
2920           YYPRINT (stderr, yychar, yylval);
2921 #endif
2922           fprintf (stderr, ")\n");
2923         }
2924 #endif
2925     }
2926
2927   yyn += yychar1;
2928   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2929     goto yydefault;
2930
2931   yyn = yytable[yyn];
2932
2933   /* yyn is what to do for this token type in this state.
2934      Negative => reduce, -yyn is rule number.
2935      Positive => shift, yyn is new state.
2936        New state is final state => don't bother to shift,
2937        just return success.
2938      0, or most negative number => error.  */
2939
2940   if (yyn < 0)
2941     {
2942       if (yyn == YYFLAG)
2943         goto yyerrlab;
2944       yyn = -yyn;
2945       goto yyreduce;
2946     }
2947   else if (yyn == 0)
2948     goto yyerrlab;
2949
2950   if (yyn == YYFINAL)
2951     YYACCEPT;
2952
2953   /* Shift the lookahead token.  */
2954
2955 #if YYDEBUG != 0
2956   if (yydebug)
2957     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2958 #endif
2959
2960   /* Discard the token being shifted unless it is eof.  */
2961   if (yychar != YYEOF)
2962     yychar = YYEMPTY;
2963
2964   *++yyvsp = yylval;
2965 #ifdef YYLSP_NEEDED
2966   *++yylsp = yylloc;
2967 #endif
2968
2969   /* count tokens shifted since error; after three, turn off error status.  */
2970   if (yyerrstatus) yyerrstatus--;
2971
2972   yystate = yyn;
2973   goto yynewstate;
2974
2975 /* Do the default action for the current state.  */
2976 yydefault:
2977
2978   yyn = yydefact[yystate];
2979   if (yyn == 0)
2980     goto yyerrlab;
2981
2982 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
2983 yyreduce:
2984   yylen = yyr2[yyn];
2985   if (yylen > 0)
2986     yyval = yyvsp[1-yylen]; /* implement default value of the action */
2987
2988 #if YYDEBUG != 0
2989   if (yydebug)
2990     {
2991       int i;
2992
2993       fprintf (stderr, "Reducing via rule %d (line %d), ",
2994                yyn, yyrline[yyn]);
2995
2996       /* Print the symbols being reduced, and their result.  */
2997       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2998         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2999       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3000     }
3001 #endif
3002
3003
3004   switch (yyn) {
3005
3006 case 5:
3007 { uentry_clearDecl (); ;
3008     break;}
3009 case 6:
3010 { uentry_clearDecl (); ;
3011     break;}
3012 case 7:
3013 { uentry_clearDecl (); ;
3014     break;}
3015 case 8:
3016 { uentry_clearDecl (); ;
3017     break;}
3018 case 9:
3019 { uentry_clearDecl (); ;
3020     break;}
3021 case 10:
3022 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3023     break;}
3024 case 11:
3025 { uentry_clearDecl (); ;
3026     break;}
3027 case 12:
3028 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3029     break;}
3030 case 13:
3031 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3032     break;}
3033 case 14:
3034 { context_enterFunctionDecl (); ;
3035     break;}
3036 case 15:
3037 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); 
3038      context_exitFunctionDecl (); ;
3039     break;}
3040 case 16:
3041
3042      qtype qint = qtype_create (ctype_int);
3043      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3044      qtype_free (qint);
3045    ;
3046     break;}
3047 case 17:
3048 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3049     break;}
3050 case 19:
3051 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3052     break;}
3053 case 20:
3054 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3055     break;}
3056 case 21:
3057 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3058     break;}
3059 case 22:
3060 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3061     break;}
3062 case 23:
3063
3064      int value;
3065
3066      if (exprNode_hasValue (yyvsp[-2].expr) 
3067          && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3068        {
3069          value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3070        }
3071      else
3072        {
3073          value = 0;
3074        }
3075
3076      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3077    ;
3078     break;}
3079 case 24:
3080 { setCurrentParams (uentryList_missingParams); 
3081         ;
3082     break;}
3083 case 25:
3084 { /* need to support globals and modifies here! */
3085      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
3086                                     uentryList_makeMissingParams ());
3087
3088      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3089      context_popLoc (); 
3090    ;
3091     break;}
3092 case 26:
3093 { setCurrentParams (yyvsp[-1].entrylist); 
3094         ;
3095     break;}
3096 case 27:
3097 { clearCurrentParams ();
3098      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3099      context_popLoc (); 
3100    ;
3101     break;}
3102 case 28:
3103 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3104     break;}
3105 case 29:
3106 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3107     break;}
3108 case 30:
3109 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3110     break;}
3111 case 31:
3112
3113      int value;
3114
3115      if (exprNode_hasValue (yyvsp[-2].expr) 
3116          && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3117        {
3118          value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3119        }
3120      else
3121        {
3122          value = 0;
3123        }
3124
3125      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3126    ;
3127     break;}
3128 case 32:
3129 { setCurrentParams (uentryList_missingParams); 
3130         ;
3131     break;}
3132 case 33:
3133 { /* need to support globals and modifies here! */
3134      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
3135                                     uentryList_makeMissingParams ());
3136
3137      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3138      context_popLoc (); 
3139    ;
3140     break;}
3141 case 34:
3142 { setCurrentParams (yyvsp[-1].entrylist); 
3143         ;
3144     break;}
3145 case 35:
3146 { clearCurrentParams ();
3147      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3148      context_popLoc (); 
3149    ;
3150     break;}
3151 case 36:
3152 { setCurrentParams (yyvsp[-1].entrylist); ;
3153     break;}
3154 case 37:
3155 { clearCurrentParams (); ;
3156     break;}
3157 case 38:
3158 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3159     break;}
3160 case 39:
3161 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
3162     break;}
3163 case 40:
3164 { exprNode_checkIterBody (yyvsp[-1].expr); ;
3165     break;}
3166 case 41:
3167 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
3168     break;}
3169 case 42:
3170 { exprChecks_checkEmptyMacroBody (); ;
3171     break;}
3172 case 43:
3173 { declareFunction (yyvsp[0].ntyp); ;
3174     break;}
3175 case 44:
3176 { setProcessingGlobMods (); ;
3177     break;}
3178 case 45:
3179 { clearProcessingGlobMods (); ;
3180     break;}
3181 case 46:
3182 { setProcessingGlobMods (); ;
3183     break;}
3184 case 47:
3185 { clearProcessingGlobMods (); ;
3186     break;}
3187 case 54:
3188 { ; ;
3189     break;}
3190 case 55:
3191 { ; ;
3192     break;}
3193 case 56:
3194 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3195     break;}
3196 case 57:
3197 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3198     break;}
3199 case 58:
3200 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3201     break;}
3202 case 59:
3203 { yyval.typequal = qual_createUndef (); ;
3204     break;}
3205 case 60:
3206 { yyval.typequal = qual_createKilled (); ;
3207     break;}
3208 case 61:
3209 { yyval.typequal = qual_createOut (); ;
3210     break;}
3211 case 62:
3212 { yyval.typequal = qual_createIn (); ;
3213     break;}
3214 case 63:
3215 { yyval.typequal = qual_createPartial (); ;
3216     break;}
3217 case 64:
3218 { yyval.tquallist = qualList_undefined; ;
3219     break;}
3220 case 65:
3221 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3222     break;}
3223 case 66:
3224 { setProcessingGlobalsList (); ;
3225     break;}
3226 case 67:
3227 { unsetProcessingGlobals (); ;
3228     break;}
3229 case 68:
3230 { setProcessingGlobalsList (); ;
3231     break;}
3232 case 69:
3233 { unsetProcessingGlobals (); ;
3234     break;}
3235 case 70:
3236 { setFunctionNoGlobals ();
3237      setFunctionModifies (sRefSet_single (sRef_makeNothing ())); 
3238    ;
3239     break;}
3240 case 73:
3241 { setProcessingGlobalsList (); ;
3242     break;}
3243 case 74:
3244 { unsetProcessingGlobals (); ;
3245     break;}
3246 case 75:
3247 { setProcessingGlobalsList (); ;
3248     break;}
3249 case 76:
3250 { unsetProcessingGlobals (); ;
3251     break;}
3252 case 77:
3253 { setFunctionNoGlobals ();
3254      setFunctionModifies (sRefSet_single (sRef_makeNothing ())); 
3255    ;
3256     break;}
3257 case 82:
3258 {
3259      context_setProtectVars (); enterParamsTemp (); 
3260      sRef_setGlobalScopeSafe (); 
3261    ;
3262     break;}
3263 case 83:
3264
3265      setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3266      sRef_clearGlobalScopeSafe (); 
3267      context_releaseVars ();
3268    ;
3269     break;}
3270 case 84:
3271 {
3272      context_setProtectVars (); enterParamsTemp (); 
3273      sRef_setGlobalScopeSafe (); 
3274    ;
3275     break;}
3276 case 85:
3277
3278      setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3279      sRef_clearGlobalScopeSafe (); 
3280      context_releaseVars ();
3281    ;
3282     break;}
3283 case 95:
3284 { yyval.sck = SP_ISONLY; ;
3285     break;}
3286 case 96:
3287 { yyval.sck = SP_ISOBSERVER; ;
3288     break;}
3289 case 97:
3290 { yyval.sck = SP_ISEXPOSED; ;
3291     break;}
3292 case 98:
3293 { yyval.sck = SP_ISDEPENDENT; ;
3294     break;}
3295 case 99:
3296 { yyval.sck = SP_ISOWNED; ;
3297     break;}
3298 case 100:
3299 { yyval.sck = SP_ISSHARED; ;
3300     break;}
3301 case 101:
3302 { yyval.sck = SP_ISNULL; ;
3303     break;}
3304 case 102:
3305 { yyval.sck = SP_ISNOTNULL; ;
3306     break;}
3307 case 103:
3308 {
3309      context_setProtectVars (); 
3310      enterParamsTemp (); 
3311      sRef_setGlobalScopeSafe (); 
3312    ;
3313     break;}
3314 case 104:
3315
3316      setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok); 
3317      exitParamsTemp ();
3318      sRef_clearGlobalScopeSafe (); 
3319      context_releaseVars ();
3320    ;
3321     break;}
3322 case 105:
3323 {
3324       context_setProtectVars (); 
3325       enterParamsTemp (); 
3326       sRef_setGlobalScopeSafe (); 
3327     ;
3328     break;}
3329 case 106:
3330
3331       setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok); 
3332       exitParamsTemp ();
3333       sRef_clearGlobalScopeSafe (); 
3334       context_releaseVars ();
3335     ;
3336     break;}
3337 case 107:
3338
3339      qtype qint = qtype_create (ctype_int);
3340      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3341      qtype_free (qint);
3342    ;
3343     break;}
3344 case 108:
3345 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3346     break;}
3347 case 109:
3348 { checkDoneParams (); context_enterInnerContext (); ;
3349     break;}
3350 case 110:
3351 {  
3352      exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; 
3353      context_exitInner (yyvsp[0].expr); 
3354    ;
3355     break;}
3356 case 111:
3357 { doneParams (); context_enterInnerContext (); ;
3358     break;}
3359 case 112:
3360 {
3361      context_exitInner (yyvsp[0].expr);
3362      exprNode_checkFunctionBody (yyvsp[0].expr); 
3363      yyval.expr = yyvsp[0].expr; /* old style */ 
3364    ;
3365     break;}
3366 case 113:
3367
3368      context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); 
3369      exprNode_checkFunction (context_getHeader (), yyvsp[0].expr); 
3370      context_exitFunction ();
3371    ;
3372     break;}
3373 case 114:
3374 { yyval.srset = yyvsp[-2].srset; ;
3375     break;}
3376 case 115:
3377 { yyval.srset = sRefSet_new (); ;
3378     break;}
3379 case 116:
3380 { yyval.srset = yyvsp[-1].srset; ;
3381     break;}
3382 case 117:
3383 { yyval.srset = sRefSet_new (); ;
3384     break;}
3385 case 118:
3386 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3387     break;}
3388 case 119:
3389 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3390     break;}
3391 case 120:
3392 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3393     break;}
3394 case 121:
3395 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3396     break;}
3397 case 122:
3398 { yyval.sr = modListPointer (yyvsp[0].sr); ;
3399     break;}
3400 case 123:
3401 { yyval.sr = yyvsp[-1].sr; ;
3402     break;}
3403 case 124:
3404 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3405     break;}
3406 case 125:
3407 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3408     break;}
3409 case 126:
3410 { yyval.sr = yyvsp[0].sr; ;
3411     break;}
3412 case 127:
3413 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3414     break;}
3415 case 128:
3416 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3417     break;}
3418 case 129:
3419 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3420     break;}
3421 case 130:
3422 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3423     break;}
3424 case 131:
3425 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3426     break;}
3427 case 132:
3428 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3429     break;}
3430 case 133:
3431 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3432     break;}
3433 case 134:
3434 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3435     break;}
3436 case 135:
3437 { yyval.sr = yyvsp[-1].sr; ;
3438     break;}
3439 case 136:
3440 { cstring_markOwned (yyvsp[0].cname);
3441                                             yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3442     break;}
3443 case 137:
3444 { cstring_markOwned (yyvsp[0].cname);
3445                                             yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3446     break;}
3447 case 138:
3448 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } 
3449       else { yyval.srset = sRefSet_undefined; } 
3450     ;
3451     break;}
3452 case 139:
3453 { if (sRef_isValid (yyvsp[0].sr))
3454         {
3455           yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); 
3456         }
3457       else
3458         {
3459           yyval.srset = yyvsp[-2].srset;
3460         }
3461     ;
3462     break;}
3463 case 140:
3464 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3465     break;}
3466 case 141:
3467 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3468     break;}
3469 case 142:
3470 { yyval.expr = yyvsp[0].expr; ;
3471     break;}
3472 case 143:
3473 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3474     break;}
3475 case 144:
3476 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
3477     break;}
3478 case 145:
3479 { yyval.expr = exprNode_makeError (); ;
3480     break;}
3481 case 147:
3482 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3483     break;}
3484 case 148:
3485 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3486     break;}
3487 case 149:
3488 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3489     break;}
3490 case 150:
3491 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3492     break;}
3493 case 151:
3494 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3495     break;}
3496 case 152:
3497 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3498     break;}
3499 case 153:
3500 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3501     break;}
3502 case 154:
3503 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3504     break;}
3505 case 155:
3506 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3507     break;}
3508 case 156:
3509 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3510     break;}
3511 case 158:
3512 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3513     break;}
3514 case 159:
3515 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3516     break;}
3517 case 160:
3518 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3519     break;}
3520 case 161:
3521 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3522     break;}
3523 case 162:
3524 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3525     break;}
3526 case 163:
3527 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3528     break;}
3529 case 164:
3530 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3531     break;}
3532 case 165:
3533 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3534     break;}
3535 case 166:
3536 { yyval.expr = yyvsp[0].expr; ;
3537     break;}
3538 case 167:
3539 { yyval.expr = yyvsp[0].expr; ;
3540     break;}
3541 case 168:
3542 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
3543     break;}
3544 case 169:
3545 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
3546     break;}
3547 case 170:
3548 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
3549     break;}
3550 case 171:
3551 { context_setProtectVars (); ;
3552     break;}
3553 case 172:
3554 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3555     break;}
3556 case 173:
3557 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3558     break;}
3559 case 174:
3560 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3561     break;}
3562 case 175:
3563 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
3564     break;}
3565 case 176:
3566 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
3567     break;}
3568 case 178:
3569 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3570     break;}
3571 case 180:
3572 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3573     break;}
3574 case 181:
3575 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3576     break;}
3577 case 182:
3578 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3579     break;}
3580 case 184:
3581 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3582     break;}
3583 case 185:
3584 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3585     break;}
3586 case 187:
3587 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3588     break;}
3589 case 188:
3590 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3591     break;}
3592 case 190:
3593 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3594     break;}
3595 case 191:
3596 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3597     break;}
3598 case 192:
3599 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3600     break;}
3601 case 193:
3602 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3603     break;}
3604 case 195:
3605 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3606     break;}
3607 case 196:
3608 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3609     break;}
3610 case 198:
3611 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3612     break;}
3613 case 200:
3614 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3615     break;}
3616 case 202:
3617 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3618     break;}
3619 case 204:
3620 { exprNode_produceGuards (yyvsp[-1].expr); 
3621      context_enterAndClause (yyvsp[-1].expr); 
3622    ;
3623     break;}
3624 case 205:
3625
3626      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
3627      context_exitAndClause (yyval.expr, yyvsp[0].expr);
3628    ;
3629     break;}
3630 case 207:
3631
3632      exprNode_produceGuards (yyvsp[-1].expr);
3633      context_enterOrClause (yyvsp[-1].expr); 
3634    ;
3635     break;}
3636 case 208:
3637
3638      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
3639      context_exitOrClause (yyval.expr, yyvsp[0].expr);
3640    ;
3641     break;}
3642 case 210:
3643 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3644     break;}
3645 case 211:
3646 { context_enterFalseClause (yyvsp[-4].expr); ;
3647     break;}
3648 case 212:
3649 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3650     break;}
3651 case 214:
3652 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3653     break;}
3654 case 215:
3655 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3656     break;}
3657 case 216:
3658 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3659     break;}
3660 case 217:
3661 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3662     break;}
3663 case 218:
3664 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3665     break;}
3666 case 219:
3667 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3668     break;}
3669 case 220:
3670 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3671     break;}
3672 case 221:
3673 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3674     break;}
3675 case 222:
3676 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3677     break;}
3678 case 223:
3679 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3680     break;}
3681 case 224:
3682 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3683     break;}
3684 case 226:
3685 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3686     break;}
3687 case 227:
3688 { yyval.expr = exprNode_undefined; ;
3689     break;}
3690 case 230:
3691 { yyval.expr = yyvsp[0].expr; ;
3692     break;}
3693 case 231:
3694 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
3695     break;}
3696 case 232:
3697 { yyval.expr = exprNode_makeError (); ;
3698     break;}
3699 case 233:
3700 { yyval.expr = exprNode_makeError (); ;
3701     break;}
3702 case 234:
3703 {
3704                setProcessingVars (yyvsp[-3].qtyp); 
3705      processNamedDecl (yyvsp[-1].ntyp); ;
3706     break;}
3707 case 235:
3708 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
3709     break;}
3710 case 236:
3711 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); 
3712         ;
3713     break;}
3714 case 237:
3715 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); 
3716      unsetProcessingVars ();
3717    ;
3718     break;}
3719 case 238:
3720 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
3721     break;}
3722 case 239:
3723 { processNamedDecl (yyvsp[-2].ntyp); ;
3724     break;}
3725 case 240:
3726 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3727     break;}
3728 case 241:
3729 { setProcessingTypedef (yyvsp[0].qtyp); ;
3730     break;}
3731 case 242:
3732 { unsetProcessingTypedef (); ;
3733     break;}
3734 case 243:
3735 { /* in the ANSI grammar, semantics unclear */ ;
3736     break;}
3737 case 244:
3738 { /* in the ANSI grammar, semantics unclear */ ;
3739     break;}
3740 case 245:
3741 { g_expectingTypeName = TRUE; ;
3742     break;}
3743 case 246:
3744 { g_expectingTypeName = TRUE; context_pushLoc (); ;
3745     break;}
3746 case 247:
3747 { ; ;
3748     break;}
3749 case 248:
3750 { ; ;
3751     break;}
3752 case 249:
3753 { ; ;
3754     break;}
3755 case 250:
3756 { yyval.expr = exprNode_makeError (); ;
3757     break;}
3758 case 251:
3759 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3760     break;}
3761 case 252:
3762 { yyval.expr = yyvsp[0].expr; ;
3763     break;}
3764 case 253:
3765 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
3766     break;}
3767 case 254:
3768 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
3769     break;}
3770 case 255:
3771 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3772     break;}
3773 case 256:
3774 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3775     break;}
3776 case 257:
3777 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
3778     break;}
3779 case 258:
3780 { yyval.typequal = qual_createInline (); ;
3781     break;}
3782 case 259:
3783 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
3784     break;}
3785 case 260:
3786 { yyval.typequal = qual_createAuto (); ;
3787     break;}
3788 case 261:
3789 { yyval.typequal = qual_createRegister (); ;
3790     break;}
3791 case 262:
3792 { yyval.typequal = qual_createConst (); ;
3793     break;}
3794 case 263:
3795 { yyval.typequal = qual_createVolatile (); ;
3796     break;}
3797 case 264:
3798 { yyval.typequal = qual_createOut (); ;
3799     break;}
3800 case 265:
3801 { yyval.typequal = qual_createIn (); ;
3802     break;}
3803 case 266:
3804 { yyval.typequal = qual_createPartial (); ;
3805     break;}
3806 case 267:
3807 { yyval.typequal = qual_createSpecial (); ;
3808     break;}
3809 case 268:
3810 { yyval.typequal = qual_createOwned (); ;
3811     break;}
3812 case 269:
3813 { yyval.typequal = qual_createDependent (); ;
3814     break;}
3815 case 270:
3816 { yyval.typequal = qual_createYield (); ;
3817     break;}
3818 case 271:
3819 { yyval.typequal = qual_createTemp (); ;
3820     break;}
3821 case 272:
3822 { yyval.typequal = qual_createOnly (); ;
3823     break;}
3824 case 273:
3825 { yyval.typequal = qual_createKeep (); ;
3826     break;}
3827 case 274:
3828 { yyval.typequal = qual_createKept (); ;
3829     break;}
3830 case 275:
3831 { yyval.typequal = qual_createShared (); ;
3832     break;}
3833 case 276:
3834 { yyval.typequal = qual_createUnique (); ;
3835     break;}
3836 case 277:
3837 { yyval.typequal = qual_createExits (); ;
3838     break;}
3839 case 278:
3840 { yyval.typequal = qual_createMayExit (); ;
3841     break;}
3842 case 279:
3843 { yyval.typequal = qual_createTrueExit (); ;
3844     break;}
3845 case 280:
3846 { yyval.typequal = qual_createFalseExit (); ;
3847     break;}
3848 case 281:
3849 { yyval.typequal = qual_createNeverExit (); ;
3850     break;}
3851 case 282:
3852 { yyval.typequal = qual_createNull (); ;
3853     break;}
3854 case 283:
3855 { yyval.typequal = qual_createRelNull (); ;
3856     break;}
3857 case 284:
3858 { yyval.typequal = qual_createReturned (); ;
3859     break;}
3860 case 285:
3861 { yyval.typequal = qual_createExposed (); ;
3862     break;}
3863 case 286:
3864 { yyval.typequal = qual_createObserver (); ;
3865     break;}
3866 case 287:
3867 { yyval.typequal = qual_createChecked (); ;
3868     break;}
3869 case 288:
3870 { yyval.typequal = qual_createCheckMod (); ;
3871     break;}
3872 case 289:
3873 { yyval.typequal = qual_createUnchecked (); ;
3874     break;}
3875 case 290:
3876 { yyval.typequal = qual_createCheckedStrict (); ;
3877     break;}
3878 case 291:
3879 { yyval.typequal = qual_createTrueNull (); ;
3880     break;}
3881 case 292:
3882 { yyval.typequal = qual_createFalseNull (); ;
3883     break;}
3884 case 293:
3885 { yyval.typequal = qual_createUnused (); ;
3886     break;}
3887 case 294:
3888 { yyval.typequal = qual_createExternal (); ;
3889     break;}
3890 case 295:
3891 { yyval.typequal = qual_createSef (); ;
3892     break;}
3893 case 296:
3894 { yyval.typequal = qual_createAbstract (); ;
3895     break;}
3896 case 297:
3897 { yyval.typequal = qual_createConcrete (); ;
3898     break;}
3899 case 298:
3900 { yyval.typequal = qual_createMutable (); ;
3901     break;}
3902 case 299:
3903 { yyval.typequal = qual_createImmutable (); ;
3904     break;}
3905 case 300:
3906 { yyval.typequal = qual_createNotNull (); ;
3907     break;}
3908 case 301:
3909 { yyval.typequal = qual_createRefCounted (); ;
3910     break;}
3911 case 302:
3912 { yyval.typequal = qual_createRefs (); ;
3913     break;}
3914 case 303:
3915 { yyval.typequal = qual_createKillRef (); ;
3916     break;}
3917 case 304:
3918 { yyval.typequal = qual_createRelDef (); ;
3919     break;}
3920 case 305:
3921 { yyval.typequal = qual_createNewRef (); ;
3922     break;}
3923 case 306:
3924 { yyval.typequal = qual_createTempRef (); ;
3925     break;}
3926 case 307:
3927 { yyval.typequal = qual_createNullTerminated (); ;
3928     break;}
3929 case 308:
3930 { yyval.typequal = qual_createShort (); ;
3931     break;}
3932 case 309:
3933 { yyval.typequal = qual_createLong (); ;
3934     break;}
3935 case 310:
3936 { yyval.typequal = qual_createSigned (); ;
3937     break;}
3938 case 311:
3939 { yyval.typequal = qual_createUnsigned (); ;
3940     break;}
3941 case 318:
3942 { yyval.ctyp = ctype_unknown; ;
3943     break;}
3944 case 319:
3945 { yyval.ctyp = ctype_anyintegral; ;
3946     break;}
3947 case 320:
3948 { yyval.ctyp = ctype_unsignedintegral; ;
3949     break;}
3950 case 321:
3951 { yyval.ctyp = ctype_signedintegral; ;
3952     break;}
3953 case 325:
3954 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
3955     break;}
3956 case 326:
3957 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
3958     break;}
3959 case 327:
3960 { yyval.qtyp = yyvsp[0].qtyp; ;
3961     break;}
3962 case 328:
3963 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
3964     break;}
3965 case 330:
3966 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
3967     break;}
3968 case 331:
3969 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
3970     break;}
3971 case 332:
3972 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
3973     break;}
3974 case 333:
3975 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
3976     break;}
3977 case 334:
3978 { yyval.qtyp = qtype_unknown (); ;
3979     break;}
3980 case 335:
3981 { yyval.qtyp = yyvsp[0].qtyp; ;
3982     break;}
3983 case 336:
3984 { sRef_setGlobalScopeSafe (); ;
3985     break;}
3986 case 337:
3987 { sRef_clearGlobalScopeSafe (); ;
3988     break;}
3989 case 338:
3990 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
3991     break;}
3992 case 339:
3993 { sRef_setGlobalScopeSafe (); ;
3994     break;}
3995 case 340:
3996 { sRef_clearGlobalScopeSafe (); ;
3997     break;}
3998 case 341:
3999 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4000     break;}
4001 case 342:
4002 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4003     break;}
4004 case 343:
4005 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4006     break;}
4007 case 344:
4008 { sRef_setGlobalScopeSafe (); ;
4009     break;}
4010 case 345:
4011 { sRef_clearGlobalScopeSafe (); ;
4012     break;}
4013 case 346:
4014 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4015     break;}
4016 case 347:
4017 { sRef_setGlobalScopeSafe (); ;
4018     break;}
4019 case 348:
4020 { sRef_clearGlobalScopeSafe (); ;
4021     break;}
4022 case 349:
4023 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4024     break;}
4025 case 350:
4026 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4027     break;}
4028 case 351:
4029 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4030     break;}
4031 case 352:
4032 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4033     break;}
4034 case 353:
4035 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4036     break;}
4037 case 354:
4038 { g_expectingTypeName = FALSE; ;
4039     break;}
4040 case 356:
4041 { yyval.flist = uentryList_undefined; /* bogus! */ ;
4042     break;}
4043 case 357:
4044 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4045     break;}
4046 case 358:
4047 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4048     break;}
4049 case 359:
4050 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4051     break;}
4052 case 360:
4053 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4054     break;}
4055 case 361:
4056 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4057     break;}
4058 case 362:
4059 { yyval.ntyp = yyvsp[0].ntyp; ;
4060     break;}
4061 case 363:
4062 { yyval.ntyp = idDecl_undefined; ;
4063     break;}
4064 case 364:
4065 { yyval.ntyp = yyvsp[-3].ntyp; ;
4066     break;}
4067 case 365:
4068 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4069     break;}
4070 case 366:
4071 { context_pushLoc (); ;
4072     break;}
4073 case 367:
4074 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4075     break;}
4076 case 368:
4077 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4078     break;}
4079 case 369:
4080 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4081     break;}
4082 case 370:
4083 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4084     break;}
4085 case 372:
4086 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4087      usymtab_supGlobalEntry (ue);
4088      yyval.cname = yyvsp[0].cname;
4089    ;
4090     break;}
4091 case 373:
4092 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
4093      usymtab_supGlobalEntry (ue);
4094      yyval.cname = yyvsp[-3].cname; 
4095    ;
4096     break;}
4097 case 375:
4098 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4099     break;}
4100 case 376:
4101
4102      qtype qt = qtype_unknown ();
4103
4104      qtype_adjustPointers (yyvsp[-1].count, qt);
4105      yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4106    ;
4107     break;}
4108 case 377:
4109 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4110     break;}
4111 case 379:
4112 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4113     break;}
4114 case 380:
4115 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4116     break;}
4117 case 381:
4118 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4119     break;}
4120 case 382:
4121 { /* ignored for now */; ;
4122     break;}
4123 case 383:
4124 { ; ;
4125     break;}
4126 case 384:
4127 { ; ;
4128     break;}
4129 case 385:
4130 { ; ;
4131     break;}
4132 case 386:
4133 { yyval.count = 1; ;
4134     break;}
4135 case 387:
4136 { yyval.count = 1; ;
4137     break;}
4138 case 388:
4139 { yyval.count = 1 + yyvsp[0].count; ;
4140     break;}
4141 case 389:
4142 { yyval.count = 1 + yyvsp[0].count; ;
4143     break;}
4144 case 391:
4145 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4146     break;}
4147 case 392:
4148 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4149     break;}
4150 case 393:
4151 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4152     break;}
4153 case 394:
4154 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4155     break;}
4156 case 396:
4157 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4158     break;}
4159 case 397:
4160 { storeLoc (); ;
4161     break;}
4162 case 398:
4163 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4164     break;}
4165 case 399:
4166 { storeLoc (); ;
4167     break;}
4168 case 400:
4169 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4170     break;}
4171 case 401:
4172
4173      if (isFlipOldStyle ()) 
4174        { 
4175          llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)")); 
4176        }
4177      else 
4178        { 
4179          setNewStyle (); 
4180        }
4181      yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); 
4182    ;
4183     break;}
4184 case 402:
4185
4186      idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4187
4188      if (isNewStyle ()) 
4189        {
4190          llparseerror (message ("Inconsistent function parameter syntax: %q",
4191                                 idDecl_unparse (tparam))); 
4192        }
4193
4194      setFlipOldStyle ();
4195      yyval.oentry = makeCurrentParam (tparam);
4196      idDecl_free (tparam);
4197    ;
4198     break;}
4199 case 404:
4200 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4201     break;}
4202 case 405:
4203 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4204     break;}
4205 case 407:
4206 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4207     break;}
4208 case 408:
4209 { yyval.ctyp = ctype_unknown; ;
4210     break;}
4211 case 410:
4212 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4213     break;}
4214 case 411:
4215 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4216     break;}
4217 case 412:
4218 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4219     break;}
4220 case 413:
4221 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4222     break;}
4223 case 414:
4224 { yyval.ctyp = ctype_makeArray (yyvsp[-3].ctyp); ;
4225     break;}
4226 case 415:
4227 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4228     break;}
4229 case 416:
4230 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4231     break;}
4232 case 417:
4233 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4234     break;}
4235 case 418:
4236 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4237     break;}
4238 case 428:
4239 {yyval.expr = yyvsp[0].expr; printf ("Doing stmt lclintassertion\n"); ;
4240     break;}
4241 case 429:
4242 { printf(" QSETBUFFERSIZE id CCONSTANT HEllo World\n");  uentry_setBufferSize(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4243   ;
4244     break;}
4245 case 430:
4246 { printf(" QSETSTRINGLENGTH id CCONSTANT HEllo World\n");  uentry_setStringLength(yyvsp[-2].entry, yyvsp[-1].expr); yyval.expr = exprNode_createTok (yyvsp[0].tok);
4247   ;
4248     break;}
4249 case 431:
4250 { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ;
4251     break;}
4252 case 432:
4253 { yyval.expr = yyvsp[0].expr; ;
4254     break;}
4255 case 435:
4256 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4257     break;}
4258 case 436:
4259 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4260     break;}
4261 case 437:
4262 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4263     break;}
4264 case 438:
4265 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4266     break;}
4267 case 439:
4268 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4269     break;}
4270 case 440:
4271 { context_setProtectVars (); ;
4272     break;}
4273 case 441:
4274 { context_sizeofReleaseVars (); ;
4275     break;}
4276 case 442:
4277 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); 
4278      context_enterForClause (yyvsp[-5].expr); ;
4279     break;}
4280 case 443:
4281 { setProcessingIterVars (yyvsp[-2].entry); ;
4282     break;}
4283 case 444:
4284 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4285     break;}
4286 case 445:
4287 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4288     break;}
4289 case 449:
4290 { yyval.expr = yyvsp[0].expr; ;
4291     break;}
4292 case 457:
4293 { yyval.expr = yyvsp[-1].expr; ;
4294     break;}
4295 case 458:
4296 { yyval.expr = exprNode_makeError (); ;
4297     break;}
4298 case 459:
4299 { /* don't: context_exitTrueClause ($1, $2); */
4300      yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); 
4301    ;
4302     break;}
4303 case 460:
4304 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4305     break;}
4306 case 461:
4307 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4308     break;}
4309 case 472:
4310 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4311     break;}
4312 case 474:
4313 { yyval.expr = exprNode_makeError (); ;
4314     break;}
4315 case 475:
4316 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); printf("labeldStmt: newid TCOLON");;
4317     break;}
4318 case 476:
4319 { yyval.expr = exprNode_notReached (yyvsp[0].expr); printf("labeldStmt: QNOTREACHED stmt");;
4320     break;}
4321 case 477:
4322 { context_enterCaseClause (yyvsp[0].expr); ;
4323     break;}
4324 case 478:
4325 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
4326     break;}
4327 case 479:
4328 { context_enterCaseClause (yyvsp[0].expr); ;
4329     break;}
4330 case 480:
4331 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
4332     break;}
4333 case 481:
4334 { context_enterCaseClause (exprNode_undefined); ;
4335     break;}
4336 case 482:
4337 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
4338     break;}
4339 case 483:
4340 { context_enterCaseClause (exprNode_undefined); ;
4341     break;}
4342 case 484:
4343 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
4344     break;}
4345 case 485:
4346 { yyval.expr = yyvsp[-1].expr; ;
4347     break;}
4348 case 486:
4349 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4350     break;}
4351 case 487:
4352 { yyval.expr = yyvsp[-1].expr; ;
4353     break;}
4354 case 488:
4355 { context_enterInnerContext (); ;
4356     break;}
4357 case 489:
4358 { context_exitInnerPlain (); ;
4359     break;}
4360 case 490:
4361 { context_enterStructInnerContext (); ;
4362     break;}
4363 case 491:
4364 { context_exitStructInnerContext (); ;
4365     break;}
4366 case 492:
4367 { context_exitInnerSafe (); ;
4368     break;}
4369 case 493:
4370 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4371     break;}
4372 case 494:
4373 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4374     break;}
4375 case 495:
4376 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4377     break;}
4378 case 496:
4379 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4380     break;}
4381 case 497:
4382 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4383     break;}
4384 case 498:
4385 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4386     break;}
4387 case 499:
4388 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4389     break;}
4390 case 500:
4391 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), 
4392                                                         lltok_getLoc (yyvsp[-1].tok))); 
4393    ;
4394     break;}
4395 case 501:
4396 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4397     break;}
4398 case 502:
4399 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4400     break;}
4401 case 503:
4402 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4403     break;}
4404 case 504:
4405 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4406     break;}
4407 case 505:
4408 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4409     break;}
4410 case 507:
4411 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4412     break;}
4413 case 508:
4414 { yyval.expr = yyvsp[0].expr; ;
4415     break;}
4416 case 509:
4417 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4418     break;}
4419 case 510:
4420 { yyval.expr = yyvsp[0].expr; printf("stmt\n"); ;
4421     break;}
4422 case 511:
4423 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); printf("StmTList stmt\n"); ;
4424     break;}
4425 case 512:
4426 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4427     break;}
4428 case 513:
4429 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4430     break;}
4431 case 514:
4432 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4433     break;}
4434 case 515:
4435 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4436     break;}
4437 case 516:
4438 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4439     break;}
4440 case 517:
4441 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4442     break;}
4443 case 518:
4444
4445      context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4446      yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); 
4447    ;
4448     break;}
4449 case 519:
4450 { context_enterFalseClause (yyvsp[-2].expr); ;
4451     break;}
4452 case 520:
4453 {
4454      context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4455      yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); 
4456    ;
4457     break;}
4458 case 521:
4459 { context_enterSwitch (yyvsp[0].expr); ;
4460     break;}
4461 case 522:
4462 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4463     break;}
4464 case 523:
4465 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4466     break;}
4467 case 524:
4468 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4469     break;}
4470 case 525:
4471 { context_enterIterClause (); ;
4472     break;}
4473 case 526:
4474 { setProcessingIterVars (yyvsp[-3].entry); ;
4475     break;}
4476 case 527:
4477
4478      yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry); 
4479
4480    ;
4481     break;}
4482 case 528:
4483 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4484     break;}
4485 case 529:
4486 { nextIterParam (); ;
4487     break;}
4488 case 530:
4489 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
4490     break;}
4491 case 531:
4492 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4493     break;}
4494 case 532:
4495 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4496     break;}
4497 case 533:
4498 { uentry ue = coerceIterId (yyvsp[0].cname);
4499
4500                       if (uentry_isValid (ue)) 
4501                         {
4502                           yyval.expr = exprNode_iterId (ue);
4503                         }
4504                       else
4505                         {
4506                           yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4507                         }
4508                     ;
4509     break;}
4510 case 534:
4511 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4512     break;}
4513 case 536:
4514 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4515     break;}
4516 case 538:
4517 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4518     break;}
4519 case 539:
4520 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4521     break;}
4522 case 540:
4523 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
4524     break;}
4525 case 541:
4526 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4527     break;}
4528 case 542:
4529 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4530     break;}
4531 case 543:
4532 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4533     break;}
4534 case 544:
4535 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4536     break;}
4537 case 545:
4538 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4539     break;}
4540 case 547:
4541 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4542     break;}
4543 case 548:
4544 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4545     break;}
4546 case 549:
4547 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4548     break;}
4549 case 550:
4550 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4551     break;}
4552 case 551:
4553 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4554     break;}
4555 case 552:
4556 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4557     break;}
4558 case 553:
4559 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4560     break;}
4561 case 554:
4562 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4563     break;}
4564 case 555:
4565 { yyval.expr = yyvsp[0].expr; ;
4566     break;}
4567 case 557:
4568 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4569     break;}
4570 case 559:
4571 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4572     break;}
4573 case 560:
4574 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4575     break;}
4576 case 561:
4577 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4578     break;}
4579 case 563:
4580 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4581     break;}
4582 case 564:
4583 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4584     break;}
4585 case 566:
4586 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4587     break;}
4588 case 567:
4589 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4590     break;}
4591 case 569:
4592 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4593     break;}
4594 case 570:
4595 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4596     break;}
4597 case 571:
4598 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4599     break;}
4600 case 572:
4601 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4602     break;}
4603 case 574:
4604 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4605     break;}
4606 case 575:
4607 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4608     break;}
4609 case 577:
4610 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4611     break;}
4612 case 579:
4613 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4614     break;}
4615 case 581:
4616 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4617     break;}
4618 case 583:
4619 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4620     break;}
4621 case 585:
4622 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4623     break;}
4624 case 587:
4625 { context_enterTrueClause (yyvsp[-1].expr); ;
4626     break;}
4627 case 588:
4628 { context_enterFalseClause (yyvsp[-4].expr); ;
4629     break;}
4630 case 589:
4631 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
4632     break;}
4633 case 591:
4634 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4635     break;}
4636 case 592:
4637 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4638     break;}
4639 case 593:
4640 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4641     break;}
4642 case 594:
4643 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4644     break;}
4645 case 595:
4646 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4647     break;}
4648 case 596:
4649 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4650     break;}
4651 case 597:
4652 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4653     break;}
4654 case 598:
4655 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4656     break;}
4657 case 599:
4658 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4659     break;}
4660 case 600:
4661 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4662     break;}
4663 case 601:
4664 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4665     break;}
4666 case 602:
4667 { yyval.entry = yyvsp[0].entry; ;
4668     break;}
4669 case 603:
4670 { yyval.entry = uentry_undefined; ;
4671     break;}
4672 case 604:
4673 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
4674     break;}
4675 case 605:
4676 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
4677     break;}
4678 case 606:
4679 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
4680     break;}
4681 case 607:
4682 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
4683     break;}
4684 case 608:
4685 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
4686     break;}
4687 case 609:
4688 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
4689     break;}
4690 case 610:
4691 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4692     break;}
4693 case 611:
4694 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
4695     break;}
4696 case 612:
4697 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
4698     break;}
4699 case 613:
4700 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
4701     break;}
4702 case 614:
4703 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
4704     break;}
4705 case 615:
4706 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
4707     break;}
4708 case 616:
4709 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
4710     break;}
4711 case 617:
4712 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
4713     break;}
4714 case 618:
4715 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
4716     break;}
4717 case 619:
4718 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
4719     break;}
4720 case 620:
4721 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
4722     break;}
4723 case 621:
4724 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
4725     break;}
4726 case 623:
4727 { ; ;
4728     break;}
4729 case 626:
4730 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
4731     break;}
4732 case 627:
4733 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
4734     break;}
4735 case 628:
4736 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
4737     break;}
4738 case 629:
4739 { yyval.cname = yyvsp[0].cname; ;
4740     break;}
4741 case 631:
4742 { yyval.ctyp = ctype_unknown; ;
4743     break;}
4744 }
4745    /* the action file gets copied in in place of this dollarsign */
4746
4747 \f
4748   yyvsp -= yylen;
4749   yyssp -= yylen;
4750 #ifdef YYLSP_NEEDED
4751   yylsp -= yylen;
4752 #endif
4753
4754 #if YYDEBUG != 0
4755   if (yydebug)
4756     {
4757       short *ssp1 = yyss - 1;
4758       fprintf (stderr, "state stack now");
4759       while (ssp1 != yyssp)
4760         fprintf (stderr, " %d", *++ssp1);
4761       fprintf (stderr, "\n");
4762     }
4763 #endif
4764
4765   *++yyvsp = yyval;
4766
4767 #ifdef YYLSP_NEEDED
4768   yylsp++;
4769   if (yylen == 0)
4770     {
4771       yylsp->first_line = yylloc.first_line;
4772       yylsp->first_column = yylloc.first_column;
4773       yylsp->last_line = (yylsp-1)->last_line;
4774       yylsp->last_column = (yylsp-1)->last_column;
4775       yylsp->text = 0;
4776     }
4777   else
4778     {
4779       yylsp->last_line = (yylsp+yylen-1)->last_line;
4780       yylsp->last_column = (yylsp+yylen-1)->last_column;
4781     }
4782 #endif
4783
4784   /* Now "shift" the result of the reduction.
4785      Determine what state that goes to,
4786      based on the state we popped back to
4787      and the rule number reduced by.  */
4788
4789   yyn = yyr1[yyn];
4790
4791   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
4792   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4793     yystate = yytable[yystate];
4794   else
4795     yystate = yydefgoto[yyn - YYNTBASE];
4796
4797   goto yynewstate;
4798
4799 yyerrlab:   /* here on detecting error */
4800
4801   if (! yyerrstatus)
4802     /* If not already recovering from an error, report this error.  */
4803     {
4804       ++yynerrs;
4805
4806 #ifdef YYERROR_VERBOSE
4807       yyn = yypact[yystate];
4808
4809       if (yyn > YYFLAG && yyn < YYLAST)
4810         {
4811           int size = 0;
4812           char *msg;
4813           int x, count;
4814
4815           count = 0;
4816           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
4817           for (x = (yyn < 0 ? -yyn : 0);
4818                x < (sizeof(yytname) / sizeof(char *)); x++)
4819             if (yycheck[x + yyn] == x)
4820               size += strlen(yytname[x]) + 15, count++;
4821           msg = (char *) malloc(size + 15);
4822           if (msg != 0)
4823             {
4824               strcpy(msg, "parse error");
4825
4826               if (count < 5)
4827                 {
4828                   count = 0;
4829                   for (x = (yyn < 0 ? -yyn : 0);
4830                        x < (sizeof(yytname) / sizeof(char *)); x++)
4831                     if (yycheck[x + yyn] == x)
4832                       {
4833                         strcat(msg, count == 0 ? ", expecting `" : " or `");
4834                         strcat(msg, yytname[x]);
4835                         strcat(msg, "'");
4836                         count++;
4837                       }
4838                 }
4839               yyerror(msg);
4840               free(msg);
4841             }
4842           else
4843             yyerror ("parse error; also virtual memory exceeded");
4844         }
4845       else
4846 #endif /* YYERROR_VERBOSE */
4847         yyerror("parse error");
4848     }
4849
4850   goto yyerrlab1;
4851 yyerrlab1:   /* here on error raised explicitly by an action */
4852
4853   if (yyerrstatus == 3)
4854     {
4855       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
4856
4857       /* return failure if at end of input */
4858       if (yychar == YYEOF)
4859         YYABORT;
4860
4861 #if YYDEBUG != 0
4862       if (yydebug)
4863         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
4864 #endif
4865
4866       yychar = YYEMPTY;
4867     }
4868
4869   /* Else will try to reuse lookahead token
4870      after shifting the error token.  */
4871
4872   yyerrstatus = 3;              /* Each real token shifted decrements this */
4873
4874   goto yyerrhandle;
4875
4876 yyerrdefault:  /* current state does not do anything special for the error token. */
4877
4878 #if 0
4879   /* This is wrong; only states that explicitly want error tokens
4880      should shift them.  */
4881   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
4882   if (yyn) goto yydefault;
4883 #endif
4884
4885 yyerrpop:   /* pop the current state because it cannot handle the error token */
4886
4887   if (yyssp == yyss) YYABORT;
4888   yyvsp--;
4889   yystate = *--yyssp;
4890 #ifdef YYLSP_NEEDED
4891   yylsp--;
4892 #endif
4893
4894 #if YYDEBUG != 0
4895   if (yydebug)
4896     {
4897       short *ssp1 = yyss - 1;
4898       fprintf (stderr, "Error: state stack now");
4899       while (ssp1 != yyssp)
4900         fprintf (stderr, " %d", *++ssp1);
4901       fprintf (stderr, "\n");
4902     }
4903 #endif
4904
4905 yyerrhandle:
4906
4907   yyn = yypact[yystate];
4908   if (yyn == YYFLAG)
4909     goto yyerrdefault;
4910
4911   yyn += YYTERROR;
4912   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
4913     goto yyerrdefault;
4914
4915   yyn = yytable[yyn];
4916   if (yyn < 0)
4917     {
4918       if (yyn == YYFLAG)
4919         goto yyerrpop;
4920       yyn = -yyn;
4921       goto yyreduce;
4922     }
4923   else if (yyn == 0)
4924     goto yyerrpop;
4925
4926   if (yyn == YYFINAL)
4927     YYACCEPT;
4928
4929 #if YYDEBUG != 0
4930   if (yydebug)
4931     fprintf(stderr, "Shifting error token, ");
4932 #endif
4933
4934   *++yyvsp = yylval;
4935 #ifdef YYLSP_NEEDED
4936   *++yylsp = yylloc;
4937 #endif
4938
4939   yystate = yyn;
4940   goto yynewstate;
4941 }
4942
4943
4944 /*@-redecl@*/
4945 extern char *yytext;
4946 /*@=redecl@*/
4947
4948 # include "bison.reset"
4949
4950 void yyerror (/*@unused@*/ char *s) 
4951 {
4952   static bool givehint = FALSE;
4953
4954   if (context_inIterDef ())
4955     {
4956       llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s", 
4957                                     context_inFunctionName ()));
4958     }
4959   else if (context_inIterEnd ())
4960     {
4961       llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s", 
4962                                     context_inFunctionName ()));
4963     }
4964   else if (context_inMacro ())
4965     {
4966       llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s", 
4967                                     context_inFunctionName ()));
4968       
4969       if (context_inMacroUnknown ())
4970         {
4971           if (!givehint)
4972             {
4973               llhint (cstring_makeLiteral 
4974                      ("Precede macro definition with /*@notfunction@*/ "
4975                       "to suppress checking and force expansion"));
4976               givehint = TRUE;
4977             }
4978         }
4979
4980       swallowMacro ();
4981     }
4982   else
4983     {
4984       llparseerror (cstring_undefined);
4985     }
4986 }
4987
4988 void printState (idDecl t) {
4989  cstring id = idDecl_getName (t);
4990  uentry ue = usymtab_lookupSafe (id);
4991
4992  sRef s = uentry_getSref (ue);
4993  
4994  printf("State = %d\n", s->bufinfo.bufstate);
4995 }
4996
4997
4998 /*take this out soon */
4999 /* void testassert1 (cstring id, icstring cons ) { */
5000  /*   uentry ue =usymtab_lookupSafe (id); */
5001 /*   sRef s = uentry_getSref (ue); */
5002 /*   printf ("Doing testassert1 with setbuffersize\n"); */
5003 /*   printf("State = %d\n", s->bufinfo.bufstate); */
5004 /* } */
5005 /* void testassert2 (cstring id) { */
5006 /*    uentry ue =usymtab_lookupSafe (id); */
5007 /*   sRef s = uentry_getSref (ue); */
5008 /*   printf ("Doing testassert2 with setbuffersize\n"); */
5009 /*   printf("State = %d\n", s->bufinfo.bufstate); */
5010 /* } */
5011   
5012
5013
5014
5015
5016
This page took 0.600781 seconds and 5 git commands to generate.