Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r1b29996 r3b5e3aa  
    201201     ATTR_TYPEGENname = 333,
    202202     INTEGERconstant = 334,
    203      CHARACTERconstant = 335,
    204      STRINGliteral = 336,
    205      REALDECIMALconstant = 337,
    206      REALFRACTIONconstant = 338,
    207      FLOATINGconstant = 339,
    208      ZERO = 340,
    209      ONE = 341,
    210      ARROW = 342,
    211      ICR = 343,
    212      DECR = 344,
    213      LS = 345,
    214      RS = 346,
    215      LE = 347,
    216      GE = 348,
    217      EQ = 349,
    218      NE = 350,
    219      ANDAND = 351,
    220      OROR = 352,
    221      ELLIPSIS = 353,
    222      MULTassign = 354,
    223      DIVassign = 355,
    224      MODassign = 356,
    225      PLUSassign = 357,
    226      MINUSassign = 358,
    227      LSassign = 359,
    228      RSassign = 360,
    229      ANDassign = 361,
    230      ERassign = 362,
    231      ORassign = 363,
    232      ATassign = 364,
    233      THEN = 365
     203     FLOATINGconstant = 335,
     204     CHARACTERconstant = 336,
     205     STRINGliteral = 337,
     206     ZERO = 338,
     207     ONE = 339,
     208     ARROW = 340,
     209     ICR = 341,
     210     DECR = 342,
     211     LS = 343,
     212     RS = 344,
     213     LE = 345,
     214     GE = 346,
     215     EQ = 347,
     216     NE = 348,
     217     ANDAND = 349,
     218     OROR = 350,
     219     ELLIPSIS = 351,
     220     MULTassign = 352,
     221     DIVassign = 353,
     222     MODassign = 354,
     223     PLUSassign = 355,
     224     MINUSassign = 356,
     225     LSassign = 357,
     226     RSassign = 358,
     227     ANDassign = 359,
     228     ERassign = 360,
     229     ORassign = 361,
     230     ATassign = 362,
     231     THEN = 363
    234232   };
    235233#endif
     
    312310#define ATTR_TYPEGENname 333
    313311#define INTEGERconstant 334
    314 #define CHARACTERconstant 335
    315 #define STRINGliteral 336
    316 #define REALDECIMALconstant 337
    317 #define REALFRACTIONconstant 338
    318 #define FLOATINGconstant 339
    319 #define ZERO 340
    320 #define ONE 341
    321 #define ARROW 342
    322 #define ICR 343
    323 #define DECR 344
    324 #define LS 345
    325 #define RS 346
    326 #define LE 347
    327 #define GE 348
    328 #define EQ 349
    329 #define NE 350
    330 #define ANDAND 351
    331 #define OROR 352
    332 #define ELLIPSIS 353
    333 #define MULTassign 354
    334 #define DIVassign 355
    335 #define MODassign 356
    336 #define PLUSassign 357
    337 #define MINUSassign 358
    338 #define LSassign 359
    339 #define RSassign 360
    340 #define ANDassign 361
    341 #define ERassign 362
    342 #define ORassign 363
    343 #define ATassign 364
    344 #define THEN 365
     312#define FLOATINGconstant 335
     313#define CHARACTERconstant 336
     314#define STRINGliteral 337
     315#define ZERO 338
     316#define ONE 339
     317#define ARROW 340
     318#define ICR 341
     319#define DECR 342
     320#define LS 343
     321#define RS 344
     322#define LE 345
     323#define GE 346
     324#define EQ 347
     325#define NE 348
     326#define ANDAND 349
     327#define OROR 350
     328#define ELLIPSIS 351
     329#define MULTassign 352
     330#define DIVassign 353
     331#define MODassign 354
     332#define PLUSassign 355
     333#define MINUSassign 356
     334#define LSassign 357
     335#define RSassign 358
     336#define ANDassign 359
     337#define ERassign 360
     338#define ORassign 361
     339#define ATassign 362
     340#define THEN 363
    345341
    346342
     
    352348
    353349/* Line 293 of yacc.c  */
    354 #line 120 "parser.yy"
     350#line 116 "parser.yy"
    355351
    356352        Token tok;
     
    372368
    373369/* Line 293 of yacc.c  */
    374 #line 375 "Parser/parser.cc"
     370#line 371 "Parser/parser.cc"
    375371} YYSTYPE;
    376372# define YYSTYPE_IS_TRIVIAL 1
     
    384380
    385381/* Line 343 of yacc.c  */
    386 #line 387 "Parser/parser.cc"
     382#line 383 "Parser/parser.cc"
    387383
    388384#ifdef short
     
    601597
    602598/* YYFINAL -- State number of the termination state.  */
    603 #define YYFINAL  249
     599#define YYFINAL  250
    604600/* YYLAST -- Last index in YYTABLE.  */
    605 #define YYLAST   10266
     601#define YYLAST   10863
    606602
    607603/* YYNTOKENS -- Number of terminals.  */
    608 #define YYNTOKENS  135
     604#define YYNTOKENS  133
    609605/* YYNNTS -- Number of nonterminals.  */
    610 #define YYNNTS  243
     606#define YYNNTS  241
    611607/* YYNRULES -- Number of rules.  */
    612 #define YYNRULES  755
     608#define YYNRULES  751
    613609/* YYNRULES -- Number of states.  */
    614 #define YYNSTATES  1538
     610#define YYNSTATES  1555
    615611
    616612/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    617613#define YYUNDEFTOK  2
    618 #define YYMAXUTOK   365
     614#define YYMAXUTOK   363
    619615
    620616#define YYTRANSLATE(YYX)                                                \
     
    627623       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    628624       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    629        2,     2,     2,   123,     2,     2,     2,   126,   120,     2,
    630      111,   112,   119,   121,   118,   122,   115,   125,     2,     2,
    631        2,     2,     2,     2,     2,     2,     2,     2,   132,   134,
    632      127,   133,   128,   131,     2,     2,     2,     2,     2,     2,
     625       2,     2,     2,   121,     2,     2,     2,   124,   118,     2,
     626     109,   110,   117,   119,   116,   120,   113,   123,     2,     2,
     627       2,     2,     2,     2,     2,     2,     2,     2,   130,   132,
     628     125,   131,   126,   129,     2,     2,     2,     2,     2,     2,
    633629       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    634630       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    635        2,   113,     2,   114,   129,     2,     2,     2,     2,     2,
     631       2,   111,     2,   112,   127,     2,     2,     2,     2,     2,
    636632       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    637633       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    638        2,     2,     2,   116,   130,   117,   124,     2,     2,     2,
     634       2,     2,     2,   114,   128,   115,   122,     2,     2,     2,
    639635       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    640636       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    660656      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    661657      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    662      105,   106,   107,   108,   109,   110
     658     105,   106,   107,   108
    663659};
    664660
     
    669665{
    670666       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    671       17,    19,    21,    23,    25,    27,    29,    31,    33,    35,
    672       37,    40,    42,    44,    46,    50,    54,    56,    63,    68,
    673       72,    80,    83,    87,    95,    98,   101,   109,   114,   116,
    674      120,   121,   123,   125,   129,   131,   134,   141,   145,   153,
    675      157,   165,   168,   171,   174,   175,   178,   180,   182,   184,
    676      187,   190,   193,   196,   199,   202,   207,   210,   215,   222,
    677      224,   229,   234,   236,   238,   240,   242,   244,   246,   248,
    678      253,   255,   259,   263,   267,   269,   273,   277,   279,   283,
    679      287,   289,   293,   297,   301,   305,   307,   311,   315,   317,
    680      321,   323,   327,   329,   333,   335,   339,   341,   345,   347,
    681      353,   358,   360,   362,   366,   367,   369,   371,   373,   375,
    682      377,   379,   381,   383,   385,   387,   389,   391,   393,   400,
    683      408,   410,   414,   416,   420,   421,   423,   425,   427,   429,
    684      431,   433,   435,   437,   439,   446,   451,   454,   462,   464,
    685      468,   470,   473,   475,   478,   480,   483,   486,   492,   500,
    686      506,   516,   522,   532,   534,   538,   540,   542,   546,   550,
    687      553,   555,   558,   561,   562,   564,   567,   571,   572,   574,
    688      577,   581,   585,   590,   591,   593,   595,   598,   604,   612,
    689      619,   626,   631,   635,   640,   643,   647,   650,   654,   658,
    690      662,   666,   672,   676,   680,   685,   687,   693,   700,   706,
    691      713,   723,   734,   744,   755,   758,   760,   763,   766,   769,
    692      771,   778,   787,   798,   811,   826,   827,   829,   830,   832,
    693      834,   838,   843,   851,   852,   854,   858,   860,   864,   866,
    694      868,   870,   874,   876,   878,   880,   884,   885,   887,   891,
    695      896,   898,   902,   904,   906,   910,   914,   918,   922,   926,
    696      929,   933,   940,   944,   948,   953,   955,   958,   961,   965,
    697      971,   979,   987,   993,  1003,  1006,  1009,  1015,  1019,  1025,
    698     1030,  1034,  1039,  1044,  1052,  1056,  1060,  1064,  1068,  1073,
    699     1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,  1096,  1097,
    700     1099,  1101,  1104,  1106,  1108,  1110,  1112,  1114,  1116,  1118,
    701     1119,  1125,  1127,  1130,  1134,  1136,  1139,  1141,  1143,  1145,
    702     1147,  1149,  1151,  1153,  1155,  1157,  1159,  1161,  1163,  1165,
    703     1167,  1169,  1171,  1173,  1175,  1177,  1179,  1181,  1183,  1186,
    704     1189,  1193,  1197,  1199,  1203,  1205,  1208,  1211,  1214,  1219,
    705     1224,  1229,  1234,  1236,  1239,  1242,  1246,  1248,  1251,  1254,
    706     1256,  1259,  1262,  1266,  1268,  1271,  1274,  1276,  1278,  1283,
    707     1286,  1287,  1294,  1302,  1305,  1308,  1311,  1312,  1315,  1318,
    708     1322,  1325,  1329,  1331,  1334,  1338,  1341,  1344,  1349,  1350,
    709     1352,  1355,  1358,  1360,  1361,  1363,  1366,  1369,  1375,  1378,
    710     1379,  1387,  1390,  1395,  1396,  1399,  1400,  1402,  1404,  1406,
    711     1412,  1418,  1424,  1426,  1432,  1438,  1448,  1450,  1456,  1457,
    712     1459,  1461,  1467,  1469,  1471,  1477,  1483,  1485,  1489,  1493,
    713     1498,  1500,  1502,  1504,  1506,  1509,  1511,  1515,  1519,  1521,
    714     1524,  1526,  1530,  1532,  1534,  1536,  1538,  1540,  1542,  1544,
    715     1546,  1548,  1550,  1552,  1555,  1557,  1559,  1561,  1564,  1565,
    716     1568,  1571,  1573,  1578,  1579,  1581,  1584,  1588,  1593,  1596,
    717     1599,  1601,  1604,  1607,  1613,  1619,  1627,  1634,  1636,  1639,
    718     1642,  1646,  1648,  1651,  1654,  1659,  1662,  1667,  1668,  1673,
    719     1676,  1678,  1680,  1682,  1683,  1686,  1692,  1698,  1712,  1714,
    720     1716,  1720,  1724,  1727,  1731,  1735,  1738,  1743,  1745,  1752,
    721     1762,  1763,  1775,  1777,  1781,  1785,  1789,  1791,  1793,  1799,
    722     1802,  1808,  1809,  1811,  1813,  1817,  1818,  1820,  1822,  1824,
    723     1826,  1827,  1834,  1837,  1839,  1842,  1847,  1850,  1854,  1858,
    724     1862,  1867,  1873,  1879,  1885,  1892,  1894,  1896,  1898,  1902,
    725     1903,  1909,  1910,  1912,  1914,  1917,  1924,  1926,  1930,  1931,
    726     1933,  1938,  1940,  1942,  1944,  1946,  1949,  1951,  1954,  1957,
    727     1959,  1963,  1966,  1970,  1974,  1977,  1982,  1987,  1991,  2000,
    728     2004,  2007,  2009,  2012,  2019,  2028,  2032,  2035,  2039,  2043,
    729     2048,  2053,  2057,  2059,  2061,  2063,  2068,  2075,  2079,  2082,
    730     2086,  2090,  2095,  2100,  2104,  2107,  2109,  2112,  2115,  2117,
    731     2121,  2124,  2128,  2132,  2135,  2140,  2145,  2149,  2156,  2165,
    732     2169,  2172,  2174,  2177,  2180,  2183,  2187,  2191,  2194,  2199,
    733     2204,  2208,  2215,  2224,  2228,  2231,  2233,  2236,  2239,  2241,
    734     2243,  2246,  2250,  2254,  2257,  2262,  2269,  2278,  2280,  2283,
    735     2286,  2288,  2291,  2294,  2298,  2302,  2304,  2309,  2314,  2318,
    736     2324,  2333,  2337,  2340,  2344,  2346,  2352,  2358,  2365,  2372,
    737     2374,  2377,  2380,  2382,  2385,  2388,  2392,  2396,  2398,  2403,
    738     2408,  2412,  2418,  2427,  2431,  2433,  2436,  2438,  2441,  2448,
    739     2454,  2461,  2469,  2477,  2479,  2482,  2485,  2487,  2490,  2493,
    740     2497,  2501,  2503,  2508,  2513,  2517,  2526,  2530,  2532,  2534,
    741     2537,  2539,  2541,  2544,  2548,  2551,  2555,  2558,  2562,  2566,
    742     2569,  2574,  2578,  2581,  2585,  2588,  2593,  2597,  2600,  2607,
    743     2614,  2621,  2629,  2631,  2634,  2636,  2638,  2640,  2643,  2647,
    744     2650,  2654,  2657,  2661,  2665,  2670,  2673,  2677,  2682,  2685,
    745     2691,  2698,  2705,  2706,  2708,  2709
     667      17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
     668      38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
     669      86,    89,    92,   100,   105,   107,   111,   112,   114,   116,
     670     120,   122,   126,   134,   138,   146,   148,   150,   152,   155,
     671     158,   161,   164,   167,   170,   175,   178,   183,   190,   192,
     672     197,   202,   204,   206,   208,   210,   212,   214,   216,   221,
     673     226,   228,   232,   236,   240,   242,   246,   250,   252,   256,
     674     260,   262,   266,   270,   274,   278,   280,   284,   288,   290,
     675     294,   296,   300,   302,   306,   308,   312,   314,   318,   320,
     676     326,   331,   337,   339,   341,   345,   348,   349,   351,   353,
     677     355,   357,   359,   361,   363,   365,   367,   369,   371,   373,
     678     375,   378,   384,   391,   399,   401,   405,   407,   411,   412,
     679     414,   416,   418,   420,   422,   424,   426,   428,   430,   437,
     680     442,   445,   453,   455,   459,   461,   464,   466,   469,   471,
     681     474,   477,   483,   491,   497,   507,   513,   523,   525,   529,
     682     531,   533,   537,   541,   544,   546,   549,   552,   553,   555,
     683     558,   562,   563,   565,   568,   572,   576,   581,   582,   584,
     684     586,   589,   595,   603,   610,   617,   622,   626,   631,   634,
     685     638,   641,   645,   649,   653,   657,   663,   667,   671,   676,
     686     678,   684,   691,   697,   704,   714,   725,   735,   746,   749,
     687     751,   754,   757,   760,   762,   769,   778,   789,   802,   817,
     688     818,   820,   821,   823,   825,   829,   834,   842,   843,   845,
     689     849,   851,   855,   857,   859,   861,   865,   867,   869,   871,
     690     875,   876,   878,   882,   887,   889,   893,   895,   897,   901,
     691     905,   909,   913,   917,   920,   924,   931,   935,   939,   944,
     692     946,   949,   952,   956,   962,   971,   979,   987,   993,  1003,
     693    1006,  1009,  1015,  1019,  1025,  1030,  1034,  1039,  1044,  1052,
     694    1056,  1060,  1064,  1068,  1073,  1080,  1082,  1084,  1086,  1088,
     695    1090,  1092,  1094,  1096,  1097,  1099,  1101,  1104,  1106,  1108,
     696    1110,  1112,  1114,  1116,  1118,  1119,  1125,  1127,  1130,  1134,
     697    1136,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
     698    1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     699    1177,  1179,  1181,  1183,  1186,  1189,  1193,  1197,  1199,  1203,
     700    1205,  1208,  1211,  1214,  1219,  1224,  1229,  1234,  1236,  1239,
     701    1242,  1246,  1248,  1251,  1254,  1256,  1259,  1262,  1266,  1268,
     702    1271,  1274,  1276,  1278,  1283,  1286,  1287,  1294,  1302,  1305,
     703    1308,  1311,  1312,  1315,  1318,  1322,  1325,  1329,  1331,  1334,
     704    1338,  1341,  1344,  1349,  1350,  1352,  1355,  1358,  1360,  1361,
     705    1363,  1366,  1369,  1375,  1378,  1379,  1387,  1390,  1395,  1396,
     706    1399,  1400,  1402,  1404,  1406,  1412,  1418,  1424,  1426,  1432,
     707    1438,  1448,  1450,  1456,  1457,  1459,  1461,  1467,  1469,  1471,
     708    1477,  1483,  1485,  1489,  1493,  1498,  1500,  1502,  1504,  1506,
     709    1509,  1511,  1515,  1519,  1521,  1524,  1526,  1530,  1532,  1534,
     710    1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1555,
     711    1557,  1559,  1561,  1564,  1565,  1568,  1571,  1573,  1578,  1579,
     712    1581,  1584,  1588,  1593,  1596,  1599,  1601,  1604,  1607,  1613,
     713    1619,  1627,  1634,  1636,  1639,  1642,  1646,  1648,  1651,  1654,
     714    1659,  1662,  1667,  1668,  1673,  1676,  1678,  1680,  1682,  1683,
     715    1686,  1692,  1698,  1712,  1714,  1716,  1720,  1724,  1727,  1731,
     716    1735,  1738,  1743,  1745,  1752,  1762,  1763,  1775,  1777,  1781,
     717    1785,  1789,  1791,  1793,  1799,  1802,  1808,  1809,  1811,  1813,
     718    1817,  1818,  1820,  1822,  1824,  1826,  1827,  1834,  1837,  1839,
     719    1842,  1847,  1850,  1854,  1858,  1862,  1867,  1873,  1879,  1885,
     720    1892,  1894,  1896,  1898,  1902,  1903,  1909,  1910,  1912,  1914,
     721    1917,  1924,  1926,  1930,  1931,  1933,  1938,  1940,  1942,  1944,
     722    1946,  1949,  1951,  1954,  1957,  1959,  1963,  1966,  1970,  1974,
     723    1977,  1982,  1987,  1991,  2000,  2004,  2007,  2009,  2012,  2019,
     724    2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2059,  2061,
     725    2063,  2068,  2075,  2079,  2082,  2086,  2090,  2095,  2100,  2104,
     726    2107,  2109,  2112,  2115,  2117,  2121,  2124,  2128,  2132,  2135,
     727    2140,  2145,  2149,  2156,  2165,  2169,  2172,  2174,  2177,  2180,
     728    2183,  2187,  2191,  2194,  2199,  2204,  2208,  2215,  2224,  2228,
     729    2231,  2233,  2236,  2239,  2241,  2243,  2246,  2250,  2254,  2257,
     730    2262,  2269,  2278,  2280,  2283,  2286,  2288,  2291,  2294,  2298,
     731    2302,  2304,  2309,  2314,  2318,  2324,  2333,  2337,  2340,  2344,
     732    2346,  2352,  2358,  2365,  2372,  2374,  2377,  2380,  2382,  2385,
     733    2388,  2392,  2396,  2398,  2403,  2408,  2412,  2418,  2427,  2431,
     734    2433,  2436,  2438,  2441,  2448,  2454,  2461,  2469,  2477,  2479,
     735    2482,  2485,  2487,  2490,  2493,  2497,  2501,  2503,  2508,  2513,
     736    2517,  2526,  2530,  2532,  2534,  2537,  2539,  2541,  2544,  2548,
     737    2551,  2555,  2558,  2562,  2566,  2569,  2574,  2578,  2581,  2585,
     738    2588,  2593,  2597,  2600,  2607,  2614,  2621,  2629,  2631,  2634,
     739    2636,  2638,  2640,  2643,  2647,  2650,  2654,  2657,  2661,  2665,
     740    2670,  2673,  2677,  2682,  2685,  2691,  2697,  2704,  2711,  2712,
     741    2714,  2715
    746742};
    747743
     
    749745static const yytype_int16 yyrhs[] =
    750746{
    751      306,     0,    -1,    -1,    -1,    79,    -1,    82,    -1,    83,
    752       -1,    84,    -1,    80,    -1,    72,    -1,    76,    -1,   142,
    753       -1,    72,    -1,    76,    -1,    72,    -1,   142,    -1,    85,
    754       -1,    86,    -1,   144,    -1,    81,    -1,   144,    81,    -1,
    755       72,    -1,   142,    -1,   172,    -1,   111,   174,   112,    -1,
    756      111,   178,   112,    -1,   145,    -1,   146,   113,   136,   169,
    757      137,   114,    -1,   146,   111,   147,   112,    -1,   146,   115,
    758      141,    -1,   146,   115,   113,   136,   149,   137,   114,    -1,
    759      146,    83,    -1,   146,    87,   141,    -1,   146,    87,   113,
    760      136,   149,   137,   114,    -1,   146,    88,    -1,   146,    89,
    761       -1,   111,   279,   112,   116,   283,   376,   117,    -1,   146,
    762      116,   147,   117,    -1,   148,    -1,   147,   118,   148,    -1,
    763       -1,   169,    -1,   150,    -1,   149,   118,   150,    -1,   151,
    764       -1,    82,   150,    -1,    82,   113,   136,   149,   137,   114,
    765       -1,   151,   115,   150,    -1,   151,   115,   113,   136,   149,
    766      137,   114,    -1,   151,    87,   150,    -1,   151,    87,   113,
    767      136,   149,   137,   114,    -1,    79,   152,    -1,    84,   152,
    768       -1,   141,   152,    -1,    -1,   152,    83,    -1,   146,    -1,
    769      138,    -1,   143,    -1,    40,   156,    -1,   154,   156,    -1,
    770      155,   156,    -1,    88,   153,    -1,    89,   153,    -1,    37,
    771      153,    -1,    37,   111,   279,   112,    -1,    66,   153,    -1,
    772       66,   111,   279,   112,    -1,    38,   111,   279,   118,   141,
    773      112,    -1,    76,    -1,    76,   111,   148,   112,    -1,    76,
    774      111,   280,   112,    -1,   119,    -1,   120,    -1,   121,    -1,
    775      122,    -1,   123,    -1,   124,    -1,   153,    -1,   111,   279,
    776      112,   156,    -1,   156,    -1,   157,   119,   156,    -1,   157,
    777      125,   156,    -1,   157,   126,   156,    -1,   157,    -1,   158,
    778      121,   157,    -1,   158,   122,   157,    -1,   158,    -1,   159,
    779       90,   158,    -1,   159,    91,   158,    -1,   159,    -1,   160,
    780      127,   159,    -1,   160,   128,   159,    -1,   160,    92,   159,
    781       -1,   160,    93,   159,    -1,   160,    -1,   161,    94,   160,
    782       -1,   161,    95,   160,    -1,   161,    -1,   162,   120,   161,
    783       -1,   162,    -1,   163,   129,   162,    -1,   163,    -1,   164,
    784      130,   163,    -1,   164,    -1,   165,    96,   164,    -1,   165,
    785       -1,   166,    97,   165,    -1,   166,    -1,   166,   131,   174,
    786      132,   167,    -1,   166,   131,   132,   167,    -1,   167,    -1,
    787      167,    -1,   153,   171,   169,    -1,    -1,   169,    -1,   133,
    788       -1,   109,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
    789       -1,   103,    -1,   104,    -1,   105,    -1,   106,    -1,   107,
    790       -1,   108,    -1,   113,   136,   118,   173,   137,   114,    -1,
    791      113,   136,   169,   118,   173,   137,   114,    -1,   170,    -1,
    792      173,   118,   170,    -1,   169,    -1,   174,   118,   169,    -1,
    793       -1,   174,    -1,   177,    -1,   178,    -1,   182,    -1,   183,
    794       -1,   195,    -1,   197,    -1,   198,    -1,   203,    -1,   129,
    795      146,   116,   147,   117,   134,    -1,    72,   132,   316,   176,
    796       -1,   116,   117,    -1,   116,   136,   136,   214,   179,   137,
    797      117,    -1,   180,    -1,   179,   136,   180,    -1,   217,    -1,
    798       40,   217,    -1,   312,    -1,   176,   137,    -1,   176,    -1,
    799      181,   176,    -1,   175,   134,    -1,    41,   111,   174,   112,
    800      176,    -1,    41,   111,   174,   112,   176,    42,   176,    -1,
    801       43,   111,   174,   112,   188,    -1,    43,   111,   174,   112,
    802      116,   136,   210,   189,   117,    -1,    53,   111,   174,   112,
    803      188,    -1,    53,   111,   174,   112,   116,   136,   210,   191,
    804      117,    -1,   168,    -1,   168,    98,   168,    -1,   314,    -1,
    805      184,    -1,   185,   118,   184,    -1,    44,   185,   132,    -1,
    806       45,   132,    -1,   186,    -1,   187,   186,    -1,   187,   176,
    807       -1,    -1,   190,    -1,   187,   181,    -1,   190,   187,   181,
    808       -1,    -1,   192,    -1,   187,   194,    -1,   187,   181,   193,
    809       -1,   192,   187,   194,    -1,   192,   187,   181,   193,    -1,
    810       -1,   194,    -1,    56,    -1,    56,   134,    -1,    47,   111,
    811      174,   112,   176,    -1,    46,   176,    47,   111,   174,   112,
    812      134,    -1,    48,   111,   136,   196,   112,   176,    -1,   175,
    813      137,   134,   175,   134,   175,    -1,   217,   175,   134,   175,
    814       -1,    51,    72,   134,    -1,    51,   119,   174,   134,    -1,
    815       50,   134,    -1,    50,    72,   134,    -1,    49,   134,    -1,
    816       49,    72,   134,    -1,    52,   175,   134,    -1,    61,   170,
    817      134,    -1,    62,   170,   134,    -1,    62,   170,    63,   169,
    818      134,    -1,    57,   178,   199,    -1,    57,   178,   201,    -1,
    819       57,   178,   199,   201,    -1,   200,    -1,    58,   111,    98,
    820      112,   178,    -1,   200,    58,   111,    98,   112,   178,    -1,
    821       59,   111,    98,   112,   178,    -1,   200,    59,   111,    98,
    822      112,   178,    -1,    58,   111,   136,   136,   202,   137,   112,
    823      178,   137,    -1,   200,    58,   111,   136,   136,   202,   137,
    824      112,   178,   137,    -1,    59,   111,   136,   136,   202,   137,
    825      112,   178,   137,    -1,   200,    59,   111,   136,   136,   202,
    826      137,   112,   178,   137,    -1,    60,   178,    -1,   230,    -1,
    827      230,   313,    -1,   230,   361,    -1,   370,   141,    -1,   370,
    828       -1,    64,   204,   111,   143,   112,   134,    -1,    64,   204,
    829      111,   143,   132,   205,   112,   134,    -1,    64,   204,   111,
    830      143,   132,   205,   132,   205,   112,   134,    -1,    64,   204,
    831      111,   143,   132,   205,   132,   205,   132,   208,   112,   134,
    832       -1,    64,   204,    51,   111,   143,   132,   132,   205,   132,
    833      208,   132,   209,   112,   134,    -1,    -1,    11,    -1,    -1,
    834      206,    -1,   207,    -1,   206,   118,   207,    -1,   143,   111,
    835      168,   112,    -1,   113,   168,   114,   143,   111,   168,   112,
    836       -1,    -1,   143,    -1,   208,   118,   143,    -1,   141,    -1,
    837      209,   118,   141,    -1,   137,    -1,   211,    -1,   217,    -1,
    838      211,   136,   217,    -1,   137,    -1,   213,    -1,   227,    -1,
    839      213,   136,   227,    -1,    -1,   215,    -1,    29,   216,   134,
    840       -1,   215,    29,   216,   134,    -1,   278,    -1,   216,   118,
    841      278,    -1,   218,    -1,   227,    -1,   219,   137,   134,    -1,
    842      224,   137,   134,    -1,   221,   137,   134,    -1,   297,   137,
    843      134,    -1,   300,   137,   134,    -1,   220,   281,    -1,   236,
    844      220,   281,    -1,   219,   137,   118,   136,   276,   281,    -1,
    845      371,   276,   315,    -1,   374,   276,   315,    -1,   232,   374,
    846      276,   315,    -1,   222,    -1,   232,   222,    -1,   236,   222,
    847       -1,   236,   232,   222,    -1,   221,   137,   118,   136,   276,
    848       -1,   374,   276,   111,   136,   264,   137,   112,    -1,   223,
    849      276,   111,   136,   264,   137,   112,    -1,   113,   136,   266,
    850      137,   114,    -1,   113,   136,   266,   137,   118,   136,   267,
    851      137,   114,    -1,     3,   220,    -1,     3,   222,    -1,   224,
    852      137,   118,   136,   141,    -1,     3,   230,   313,    -1,   225,
    853      137,   118,   136,   313,    -1,   232,     3,   230,   313,    -1,
    854      230,     3,   313,    -1,   230,     3,   232,   313,    -1,     3,
    855      141,   133,   169,    -1,   226,   137,   118,   136,   141,   133,
    856      169,    -1,   228,   137,   134,    -1,   225,   137,   134,    -1,
    857      226,   137,   134,    -1,   244,   137,   134,    -1,   229,   313,
    858      315,   281,    -1,   228,   118,   316,   313,   315,   281,    -1,
    859      240,    -1,   244,    -1,   246,    -1,   287,    -1,   241,    -1,
    860      245,    -1,   247,    -1,   288,    -1,    -1,   232,    -1,   233,
    861       -1,   232,   233,    -1,   234,    -1,   318,    -1,    10,    -1,
     747     302,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     748      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
     749      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
     750      -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
     751     109,   170,   110,    -1,   109,   174,   110,    -1,   143,    -1,
     752     144,   111,   134,   165,   135,   112,    -1,   144,   109,   145,
     753     110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
     754     147,   135,   112,    -1,   144,    85,   139,    -1,   144,    85,
     755     111,   134,   147,   135,   112,    -1,   144,    86,    -1,   144,
     756      87,    -1,   109,   275,   110,   114,   279,   372,   115,    -1,
     757     144,   114,   145,   115,    -1,   146,    -1,   145,   116,   146,
     758      -1,    -1,   165,    -1,   148,    -1,   147,   116,   148,    -1,
     759     139,    -1,   139,   113,   148,    -1,   139,   113,   111,   134,
     760     147,   135,   112,    -1,   139,    85,   148,    -1,   139,    85,
     761     111,   134,   147,   135,   112,    -1,   144,    -1,   136,    -1,
     762     141,    -1,    40,   152,    -1,   150,   152,    -1,   151,   152,
     763      -1,    86,   149,    -1,    87,   149,    -1,    37,   149,    -1,
     764      37,   109,   275,   110,    -1,    66,   149,    -1,    66,   109,
     765     275,   110,    -1,    38,   109,   275,   116,   139,   110,    -1,
     766      76,    -1,    76,   109,   146,   110,    -1,    76,   109,   276,
     767     110,    -1,   117,    -1,   118,    -1,   119,    -1,   120,    -1,
     768     121,    -1,   122,    -1,   149,    -1,   109,   275,   110,   152,
     769      -1,   109,   275,   110,   168,    -1,   152,    -1,   153,   117,
     770     152,    -1,   153,   123,   152,    -1,   153,   124,   152,    -1,
     771     153,    -1,   154,   119,   153,    -1,   154,   120,   153,    -1,
     772     154,    -1,   155,    88,   154,    -1,   155,    89,   154,    -1,
     773     155,    -1,   156,   125,   155,    -1,   156,   126,   155,    -1,
     774     156,    90,   155,    -1,   156,    91,   155,    -1,   156,    -1,
     775     157,    92,   156,    -1,   157,    93,   156,    -1,   157,    -1,
     776     158,   118,   157,    -1,   158,    -1,   159,   127,   158,    -1,
     777     159,    -1,   160,   128,   159,    -1,   160,    -1,   161,    94,
     778     160,    -1,   161,    -1,   162,    95,   161,    -1,   162,    -1,
     779     162,   129,   170,   130,   163,    -1,   162,   129,   130,   163,
     780      -1,   162,   129,   170,   130,   168,    -1,   163,    -1,   163,
     781      -1,   149,   167,   165,    -1,   168,   373,    -1,    -1,   165,
     782      -1,   131,    -1,   107,    -1,    97,    -1,    98,    -1,    99,
     783      -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
     784      -1,   105,    -1,   106,    -1,   111,   112,    -1,   111,   134,
     785     165,   135,   112,    -1,   111,   134,   116,   169,   135,   112,
     786      -1,   111,   134,   165,   116,   169,   135,   112,    -1,   166,
     787      -1,   169,   116,   166,    -1,   165,    -1,   170,   116,   165,
     788      -1,    -1,   170,    -1,   173,    -1,   174,    -1,   178,    -1,
     789     179,    -1,   191,    -1,   193,    -1,   194,    -1,   199,    -1,
     790     127,   144,   114,   145,   115,   132,    -1,    72,   130,   312,
     791     172,    -1,   114,   115,    -1,   114,   134,   134,   210,   175,
     792     135,   115,    -1,   176,    -1,   175,   134,   176,    -1,   213,
     793      -1,    40,   213,    -1,   308,    -1,   172,   135,    -1,   172,
     794      -1,   177,   172,    -1,   171,   132,    -1,    41,   109,   170,
     795     110,   172,    -1,    41,   109,   170,   110,   172,    42,   172,
     796      -1,    43,   109,   170,   110,   184,    -1,    43,   109,   170,
     797     110,   114,   134,   206,   185,   115,    -1,    53,   109,   170,
     798     110,   184,    -1,    53,   109,   170,   110,   114,   134,   206,
     799     187,   115,    -1,   164,    -1,   164,    96,   164,    -1,   310,
     800      -1,   180,    -1,   181,   116,   180,    -1,    44,   181,   130,
     801      -1,    45,   130,    -1,   182,    -1,   183,   182,    -1,   183,
     802     172,    -1,    -1,   186,    -1,   183,   177,    -1,   186,   183,
     803     177,    -1,    -1,   188,    -1,   183,   190,    -1,   183,   177,
     804     189,    -1,   188,   183,   190,    -1,   188,   183,   177,   189,
     805      -1,    -1,   190,    -1,    56,    -1,    56,   132,    -1,    47,
     806     109,   170,   110,   172,    -1,    46,   172,    47,   109,   170,
     807     110,   132,    -1,    48,   109,   134,   192,   110,   172,    -1,
     808     171,   135,   132,   171,   132,   171,    -1,   213,   171,   132,
     809     171,    -1,    51,    72,   132,    -1,    51,   117,   170,   132,
     810      -1,    50,   132,    -1,    50,    72,   132,    -1,    49,   132,
     811      -1,    49,    72,   132,    -1,    52,   171,   132,    -1,    61,
     812     166,   132,    -1,    62,   166,   132,    -1,    62,   166,    63,
     813     165,   132,    -1,    57,   174,   195,    -1,    57,   174,   197,
     814      -1,    57,   174,   195,   197,    -1,   196,    -1,    58,   109,
     815      96,   110,   174,    -1,   196,    58,   109,    96,   110,   174,
     816      -1,    59,   109,    96,   110,   174,    -1,   196,    59,   109,
     817      96,   110,   174,    -1,    58,   109,   134,   134,   198,   135,
     818     110,   174,   135,    -1,   196,    58,   109,   134,   134,   198,
     819     135,   110,   174,   135,    -1,    59,   109,   134,   134,   198,
     820     135,   110,   174,   135,    -1,   196,    59,   109,   134,   134,
     821     198,   135,   110,   174,   135,    -1,    60,   174,    -1,   226,
     822      -1,   226,   309,    -1,   226,   357,    -1,   366,   139,    -1,
     823     366,    -1,    64,   200,   109,   141,   110,   132,    -1,    64,
     824     200,   109,   141,   130,   201,   110,   132,    -1,    64,   200,
     825     109,   141,   130,   201,   130,   201,   110,   132,    -1,    64,
     826     200,   109,   141,   130,   201,   130,   201,   130,   204,   110,
     827     132,    -1,    64,   200,    51,   109,   141,   130,   130,   201,
     828     130,   204,   130,   205,   110,   132,    -1,    -1,    11,    -1,
     829      -1,   202,    -1,   203,    -1,   202,   116,   203,    -1,   141,
     830     109,   164,   110,    -1,   111,   164,   112,   141,   109,   164,
     831     110,    -1,    -1,   141,    -1,   204,   116,   141,    -1,   139,
     832      -1,   205,   116,   139,    -1,   135,    -1,   207,    -1,   213,
     833      -1,   207,   134,   213,    -1,   135,    -1,   209,    -1,   223,
     834      -1,   209,   134,   223,    -1,    -1,   211,    -1,    29,   212,
     835     132,    -1,   211,    29,   212,   132,    -1,   274,    -1,   212,
     836     116,   274,    -1,   214,    -1,   223,    -1,   215,   135,   132,
     837      -1,   220,   135,   132,    -1,   217,   135,   132,    -1,   293,
     838     135,   132,    -1,   296,   135,   132,    -1,   216,   277,    -1,
     839     232,   216,   277,    -1,   215,   135,   116,   134,   272,   277,
     840      -1,   367,   272,   311,    -1,   370,   272,   311,    -1,   228,
     841     370,   272,   311,    -1,   218,    -1,   228,   218,    -1,   232,
     842     218,    -1,   232,   228,   218,    -1,   217,   135,   116,   134,
     843     272,    -1,   111,   112,   272,   109,   134,   260,   135,   110,
     844      -1,   370,   272,   109,   134,   260,   135,   110,    -1,   219,
     845     272,   109,   134,   260,   135,   110,    -1,   111,   134,   262,
     846     135,   112,    -1,   111,   134,   262,   135,   116,   134,   263,
     847     135,   112,    -1,     3,   216,    -1,     3,   218,    -1,   220,
     848     135,   116,   134,   139,    -1,     3,   226,   309,    -1,   221,
     849     135,   116,   134,   309,    -1,   228,     3,   226,   309,    -1,
     850     226,     3,   309,    -1,   226,     3,   228,   309,    -1,     3,
     851     139,   131,   165,    -1,   222,   135,   116,   134,   139,   131,
     852     165,    -1,   224,   135,   132,    -1,   221,   135,   132,    -1,
     853     222,   135,   132,    -1,   240,   135,   132,    -1,   225,   309,
     854     311,   277,    -1,   224,   116,   312,   309,   311,   277,    -1,
     855     236,    -1,   240,    -1,   242,    -1,   283,    -1,   237,    -1,
     856     241,    -1,   243,    -1,   284,    -1,    -1,   228,    -1,   229,
     857      -1,   228,   229,    -1,   230,    -1,   314,    -1,    10,    -1,
    862858      12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
    863      111,   235,   290,   112,    -1,   237,    -1,   232,   237,    -1,
    864      236,   232,   237,    -1,   238,    -1,   237,   238,    -1,     5,
     859     109,   231,   286,   110,    -1,   233,    -1,   228,   233,    -1,
     860     232,   228,   233,    -1,   234,    -1,   233,   234,    -1,     5,
    865861      -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
    866862      -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
    867863      -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
    868864      -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
    869       -1,   241,    -1,   236,   241,    -1,   240,   238,    -1,   240,
    870      238,   232,    -1,   240,   238,   241,    -1,   242,    -1,   231,
    871      243,   231,    -1,   239,    -1,   232,   239,    -1,   242,   233,
    872       -1,   242,   239,    -1,    28,   111,   280,   112,    -1,    28,
    873      111,   174,   112,    -1,    78,   111,   280,   112,    -1,    78,
    874      111,   174,   112,    -1,   245,    -1,   236,   245,    -1,   244,
    875      238,    -1,   244,   238,   232,    -1,   248,    -1,   232,   248,
    876       -1,   245,   233,    -1,   247,    -1,   236,   247,    -1,   246,
    877      238,    -1,   246,   238,   232,    -1,    74,    -1,   232,    74,
    878       -1,   247,   233,    -1,   249,    -1,   260,    -1,   251,   116,
    879      252,   117,    -1,   251,   278,    -1,    -1,   251,   278,   250,
    880      116,   252,   117,    -1,   251,   111,   296,   112,   116,   252,
    881      117,    -1,   251,   289,    -1,    31,   316,    -1,    32,   316,
    882       -1,    -1,   252,   253,    -1,   254,   134,    -1,    40,   254,
    883      134,    -1,   255,   134,    -1,    40,   255,   134,    -1,   370,
    884       -1,   370,   278,    -1,   254,   118,   278,    -1,   254,   118,
    885       -1,   230,   256,    -1,   255,   118,   316,   256,    -1,    -1,
    886      258,    -1,   322,   257,    -1,   335,   257,    -1,   361,    -1,
    887       -1,   258,    -1,   132,   168,    -1,    30,   316,    -1,   259,
    888      116,   262,   376,   117,    -1,   259,   278,    -1,    -1,   259,
    889      278,   261,   116,   262,   376,   117,    -1,   278,   263,    -1,
    890      262,   118,   278,   263,    -1,    -1,   133,   168,    -1,    -1,
    891      265,    -1,   267,    -1,   266,    -1,   266,   137,   118,   136,
    892      267,    -1,   267,   137,   118,   136,    98,    -1,   266,   137,
    893      118,   136,    98,    -1,   271,    -1,   267,   137,   118,   136,
    894      271,    -1,   266,   137,   118,   136,   271,    -1,   266,   137,
    895      118,   136,   267,   137,   118,   136,   271,    -1,   272,    -1,
    896      267,   137,   118,   136,   272,    -1,    -1,   269,    -1,   270,
    897       -1,   270,   137,   118,   136,    98,    -1,   274,    -1,   273,
    898       -1,   270,   137,   118,   136,   274,    -1,   270,   137,   118,
    899      136,   273,    -1,   273,    -1,   366,   276,   377,    -1,   374,
    900      276,   377,    -1,   232,   374,   276,   377,    -1,   222,    -1,
    901      274,    -1,   366,    -1,   374,    -1,   232,   374,    -1,   375,
    902       -1,   229,   340,   377,    -1,   229,   344,   377,    -1,   229,
    903       -1,   229,   355,    -1,   141,    -1,   275,   118,   141,    -1,
    904      139,    -1,    74,    -1,    75,    -1,   140,    -1,    74,    -1,
    905       75,    -1,   141,    -1,    74,    -1,    75,    -1,   370,    -1,
    906      230,    -1,   230,   361,    -1,   370,    -1,   375,    -1,   230,
    907       -1,   230,   349,    -1,    -1,   133,   282,    -1,   109,   282,
    908       -1,   169,    -1,   116,   283,   376,   117,    -1,    -1,   282,
    909       -1,   284,   282,    -1,   283,   118,   282,    -1,   283,   118,
    910      284,   282,    -1,   285,   132,    -1,   278,   132,    -1,   286,
    911       -1,   285,   286,    -1,   115,   278,    -1,   113,   136,   169,
    912      137,   114,    -1,   113,   136,   314,   137,   114,    -1,   113,
    913      136,   168,    98,   168,   137,   114,    -1,   115,   113,   136,
    914      149,   137,   114,    -1,   288,    -1,   236,   288,    -1,   287,
    915      238,    -1,   287,   238,   232,    -1,   289,    -1,   232,   289,
    916       -1,   288,   233,    -1,    75,   111,   296,   112,    -1,   291,
    917      377,    -1,   290,   118,   291,   377,    -1,    -1,   293,   278,
    918      292,   294,    -1,   230,   340,    -1,    33,    -1,    35,    -1,
    919       34,    -1,    -1,   294,   295,    -1,   130,   278,   111,   296,
    920      112,    -1,   130,   116,   136,   302,   117,    -1,   130,   111,
    921      136,   290,   137,   112,   116,   136,   302,   117,   111,   296,
    922      112,    -1,   280,    -1,   169,    -1,   296,   118,   280,    -1,
    923      296,   118,   169,    -1,    33,   298,    -1,   237,    33,   298,
    924       -1,   297,   118,   298,    -1,   299,   294,    -1,   299,   294,
    925      133,   280,    -1,   278,    -1,   277,   111,   136,   290,   137,
    926      112,    -1,    36,   278,   111,   136,   290,   137,   112,   116,
    927      117,    -1,    -1,    36,   278,   111,   136,   290,   137,   112,
    928      116,   301,   302,   117,    -1,   303,    -1,   302,   136,   303,
    929       -1,   304,   137,   134,    -1,   305,   137,   134,    -1,   220,
    930       -1,   222,    -1,   304,   137,   118,   136,   276,    -1,   230,
    931      313,    -1,   305,   137,   118,   136,   313,    -1,    -1,   307,
    932       -1,   309,    -1,   307,   136,   309,    -1,    -1,   307,    -1,
    933      217,    -1,   311,    -1,   203,    -1,    -1,     5,    81,   310,
    934      116,   308,   117,    -1,    40,   309,    -1,   312,    -1,   327,
    935      178,    -1,   331,   136,   212,   178,    -1,   221,   178,    -1,
    936      229,   327,   178,    -1,   232,   327,   178,    -1,   236,   327,
    937      178,    -1,   236,   232,   327,   178,    -1,   229,   331,   136,
    938      212,   178,    -1,   232,   331,   136,   212,   178,    -1,   236,
    939      331,   136,   212,   178,    -1,   236,   232,   331,   136,   212,
    940      178,    -1,   322,    -1,   335,    -1,   327,    -1,   168,   124,
    941      168,    -1,    -1,    64,   111,   144,   112,   316,    -1,    -1,
    942      317,    -1,   318,    -1,   317,   318,    -1,    39,   111,   111,
    943      319,   112,   112,    -1,   320,    -1,   319,   118,   320,    -1,
    944       -1,   321,    -1,   321,   111,   175,   112,    -1,   276,    -1,
    945      238,    -1,   239,    -1,   233,    -1,   323,   316,    -1,   324,
    946       -1,   325,   316,    -1,   326,   316,    -1,   139,    -1,   111,
    947      323,   112,    -1,   154,   322,    -1,   154,   232,   322,    -1,
    948      111,   324,   112,    -1,   323,   353,    -1,   111,   324,   112,
    949      353,    -1,   111,   325,   112,   354,    -1,   111,   325,   112,
    950       -1,   111,   324,   112,   111,   136,   268,   137,   112,    -1,
    951      111,   326,   112,    -1,   328,   316,    -1,   329,    -1,   330,
    952      316,    -1,   323,   111,   136,   268,   137,   112,    -1,   111,
    953      329,   112,   111,   136,   268,   137,   112,    -1,   111,   328,
    954      112,    -1,   154,   327,    -1,   154,   232,   327,    -1,   111,
    955      329,   112,    -1,   111,   329,   112,   353,    -1,   111,   330,
    956      112,   354,    -1,   111,   330,   112,    -1,   332,    -1,   333,
    957       -1,   334,    -1,   323,   111,   275,   112,    -1,   111,   333,
    958      112,   111,   275,   112,    -1,   111,   332,   112,    -1,   154,
    959      331,    -1,   154,   232,   331,    -1,   111,   333,   112,    -1,
    960      111,   333,   112,   353,    -1,   111,   334,   112,   354,    -1,
    961      111,   334,   112,    -1,   336,   316,    -1,   337,    -1,   338,
    962      316,    -1,   339,   316,    -1,   345,    -1,   111,   336,   112,
    963       -1,   154,   335,    -1,   154,   232,   335,    -1,   111,   337,
    964      112,    -1,   336,   353,    -1,   111,   337,   112,   353,    -1,
    965      111,   338,   112,   354,    -1,   111,   338,   112,    -1,   336,
    966      111,   136,   268,   137,   112,    -1,   111,   337,   112,   111,
    967      136,   268,   137,   112,    -1,   111,   339,   112,    -1,   323,
    968      316,    -1,   341,    -1,   342,   316,    -1,   343,   316,    -1,
    969      154,   340,    -1,   154,   232,   340,    -1,   111,   341,   112,
    970       -1,   323,   359,    -1,   111,   341,   112,   353,    -1,   111,
    971      342,   112,   354,    -1,   111,   342,   112,    -1,   323,   111,
    972      136,   268,   137,   112,    -1,   111,   341,   112,   111,   136,
    973      268,   137,   112,    -1,   111,   343,   112,    -1,   345,   316,
    974       -1,   346,    -1,   347,   316,    -1,   348,   316,    -1,    74,
    975       -1,    75,    -1,   154,   344,    -1,   154,   232,   344,    -1,
    976      111,   346,   112,    -1,   345,   359,    -1,   111,   346,   112,
    977      359,    -1,   345,   111,   136,   268,   137,   112,    -1,   111,
    978      346,   112,   111,   136,   268,   137,   112,    -1,   350,    -1,
    979      351,   316,    -1,   352,   316,    -1,   154,    -1,   154,   232,
    980       -1,   154,   349,    -1,   154,   232,   349,    -1,   111,   350,
    981      112,    -1,   353,    -1,   111,   350,   112,   353,    -1,   111,
    982      351,   112,   354,    -1,   111,   351,   112,    -1,   111,   136,
    983      268,   137,   112,    -1,   111,   350,   112,   111,   136,   268,
    984      137,   112,    -1,   111,   352,   112,    -1,   113,   114,    -1,
    985      113,   114,   354,    -1,   354,    -1,   113,   136,   169,   137,
    986      114,    -1,   113,   136,   119,   137,   114,    -1,   354,   113,
    987      136,   169,   137,   114,    -1,   354,   113,   136,   119,   137,
    988      114,    -1,   356,    -1,   357,   316,    -1,   358,   316,    -1,
    989      154,    -1,   154,   232,    -1,   154,   355,    -1,   154,   232,
    990      355,    -1,   111,   356,   112,    -1,   359,    -1,   111,   356,
    991      112,   359,    -1,   111,   357,   112,   354,    -1,   111,   357,
    992      112,    -1,   111,   136,   268,   137,   112,    -1,   111,   356,
    993      112,   111,   136,   268,   137,   112,    -1,   111,   358,   112,
    994       -1,   360,    -1,   360,   354,    -1,   354,    -1,   113,   114,
    995       -1,   113,   136,   232,   119,   137,   114,    -1,   113,   136,
    996      232,   137,   114,    -1,   113,   136,   232,   169,   137,   114,
    997       -1,   113,   136,     7,   231,   169,   137,   114,    -1,   113,
    998      136,   232,     7,   169,   137,   114,    -1,   362,    -1,   363,
    999      316,    -1,   364,   316,    -1,   154,    -1,   154,   232,    -1,
    1000      154,   361,    -1,   154,   232,   361,    -1,   111,   362,   112,
    1001       -1,   353,    -1,   111,   362,   112,   353,    -1,   111,   363,
    1002      112,   354,    -1,   111,   363,   112,    -1,   111,   362,   112,
    1003      111,   136,   268,   137,   112,    -1,   111,   364,   112,    -1,
    1004      366,    -1,   374,    -1,   232,   374,    -1,   367,    -1,   368,
    1005       -1,   154,   230,    -1,   232,   154,   230,    -1,   154,   375,
    1006       -1,   232,   154,   375,    -1,   154,   365,    -1,   232,   154,
    1007      365,    -1,   113,   114,   230,    -1,   369,   230,    -1,   113,
    1008      114,   354,   230,    -1,   369,   354,   230,    -1,   354,   230,
    1009       -1,   113,   114,   367,    -1,   369,   367,    -1,   113,   114,
    1010      354,   367,    -1,   369,   354,   367,    -1,   354,   367,    -1,
    1011      113,   136,   232,   119,   137,   114,    -1,   113,   136,   232,
    1012      169,   137,   114,    -1,   113,   136,   236,   169,   137,   114,
    1013       -1,   113,   136,   236,   232,   169,   137,   114,    -1,   374,
    1014       -1,   232,   374,    -1,   371,    -1,   372,    -1,   373,    -1,
    1015      154,   230,    -1,   232,   154,   230,    -1,   154,   375,    -1,
    1016      232,   154,   375,    -1,   154,   370,    -1,   232,   154,   370,
    1017       -1,   113,   114,   230,    -1,   113,   114,   354,   230,    -1,
    1018      354,   230,    -1,   113,   114,   372,    -1,   113,   114,   354,
    1019      372,    -1,   354,   372,    -1,   113,   136,   267,   137,   114,
    1020       -1,   374,   111,   136,   264,   137,   112,    -1,   223,   111,
    1021      136,   264,   137,   112,    -1,    -1,   118,    -1,    -1,   133,
    1022      169,    -1
     865      -1,   237,    -1,   232,   237,    -1,   236,   234,    -1,   236,
     866     234,   228,    -1,   236,   234,   237,    -1,   238,    -1,   227,
     867     239,   227,    -1,   235,    -1,   228,   235,    -1,   238,   229,
     868      -1,   238,   235,    -1,    28,   109,   276,   110,    -1,    28,
     869     109,   170,   110,    -1,    78,   109,   276,   110,    -1,    78,
     870     109,   170,   110,    -1,   241,    -1,   232,   241,    -1,   240,
     871     234,    -1,   240,   234,   228,    -1,   244,    -1,   228,   244,
     872      -1,   241,   229,    -1,   243,    -1,   232,   243,    -1,   242,
     873     234,    -1,   242,   234,   228,    -1,    74,    -1,   228,    74,
     874      -1,   243,   229,    -1,   245,    -1,   256,    -1,   247,   114,
     875     248,   115,    -1,   247,   274,    -1,    -1,   247,   274,   246,
     876     114,   248,   115,    -1,   247,   109,   292,   110,   114,   248,
     877     115,    -1,   247,   285,    -1,    31,   312,    -1,    32,   312,
     878      -1,    -1,   248,   249,    -1,   250,   132,    -1,    40,   250,
     879     132,    -1,   251,   132,    -1,    40,   251,   132,    -1,   366,
     880      -1,   366,   274,    -1,   250,   116,   274,    -1,   250,   116,
     881      -1,   226,   252,    -1,   251,   116,   312,   252,    -1,    -1,
     882     254,    -1,   318,   253,    -1,   331,   253,    -1,   357,    -1,
     883      -1,   254,    -1,   130,   164,    -1,    30,   312,    -1,   255,
     884     114,   258,   372,   115,    -1,   255,   274,    -1,    -1,   255,
     885     274,   257,   114,   258,   372,   115,    -1,   274,   259,    -1,
     886     258,   116,   274,   259,    -1,    -1,   131,   164,    -1,    -1,
     887     261,    -1,   263,    -1,   262,    -1,   262,   135,   116,   134,
     888     263,    -1,   263,   135,   116,   134,    96,    -1,   262,   135,
     889     116,   134,    96,    -1,   267,    -1,   263,   135,   116,   134,
     890     267,    -1,   262,   135,   116,   134,   267,    -1,   262,   135,
     891     116,   134,   263,   135,   116,   134,   267,    -1,   268,    -1,
     892     263,   135,   116,   134,   268,    -1,    -1,   265,    -1,   266,
     893      -1,   266,   135,   116,   134,    96,    -1,   270,    -1,   269,
     894      -1,   266,   135,   116,   134,   270,    -1,   266,   135,   116,
     895     134,   269,    -1,   269,    -1,   362,   272,   373,    -1,   370,
     896     272,   373,    -1,   228,   370,   272,   373,    -1,   218,    -1,
     897     270,    -1,   362,    -1,   370,    -1,   228,   370,    -1,   371,
     898      -1,   225,   336,   373,    -1,   225,   340,   373,    -1,   225,
     899      -1,   225,   351,    -1,   139,    -1,   271,   116,   139,    -1,
     900     137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,    -1,
     901      75,    -1,   139,    -1,    74,    -1,    75,    -1,   366,    -1,
     902     226,    -1,   226,   357,    -1,   366,    -1,   371,    -1,   226,
     903      -1,   226,   345,    -1,    -1,   131,   278,    -1,   107,   278,
     904      -1,   165,    -1,   114,   279,   372,   115,    -1,    -1,   278,
     905      -1,   280,   278,    -1,   279,   116,   278,    -1,   279,   116,
     906     280,   278,    -1,   281,   130,    -1,   274,   130,    -1,   282,
     907      -1,   281,   282,    -1,   113,   274,    -1,   111,   134,   165,
     908     135,   112,    -1,   111,   134,   310,   135,   112,    -1,   111,
     909     134,   164,    96,   164,   135,   112,    -1,   113,   111,   134,
     910     147,   135,   112,    -1,   284,    -1,   232,   284,    -1,   283,
     911     234,    -1,   283,   234,   228,    -1,   285,    -1,   228,   285,
     912      -1,   284,   229,    -1,    75,   109,   292,   110,    -1,   287,
     913     373,    -1,   286,   116,   287,   373,    -1,    -1,   289,   274,
     914     288,   290,    -1,   226,   336,    -1,    33,    -1,    35,    -1,
     915      34,    -1,    -1,   290,   291,    -1,   128,   274,   109,   292,
     916     110,    -1,   128,   114,   134,   298,   115,    -1,   128,   109,
     917     134,   286,   135,   110,   114,   134,   298,   115,   109,   292,
     918     110,    -1,   276,    -1,   165,    -1,   292,   116,   276,    -1,
     919     292,   116,   165,    -1,    33,   294,    -1,   233,    33,   294,
     920      -1,   293,   116,   294,    -1,   295,   290,    -1,   295,   290,
     921     131,   276,    -1,   274,    -1,   273,   109,   134,   286,   135,
     922     110,    -1,    36,   274,   109,   134,   286,   135,   110,   114,
     923     115,    -1,    -1,    36,   274,   109,   134,   286,   135,   110,
     924     114,   297,   298,   115,    -1,   299,    -1,   298,   134,   299,
     925      -1,   300,   135,   132,    -1,   301,   135,   132,    -1,   216,
     926      -1,   218,    -1,   300,   135,   116,   134,   272,    -1,   226,
     927     309,    -1,   301,   135,   116,   134,   309,    -1,    -1,   303,
     928      -1,   305,    -1,   303,   134,   305,    -1,    -1,   303,    -1,
     929     213,    -1,   307,    -1,   199,    -1,    -1,     5,    82,   306,
     930     114,   304,   115,    -1,    40,   305,    -1,   308,    -1,   323,
     931     174,    -1,   327,   134,   208,   174,    -1,   217,   174,    -1,
     932     225,   323,   174,    -1,   228,   323,   174,    -1,   232,   323,
     933     174,    -1,   232,   228,   323,   174,    -1,   225,   327,   134,
     934     208,   174,    -1,   228,   327,   134,   208,   174,    -1,   232,
     935     327,   134,   208,   174,    -1,   232,   228,   327,   134,   208,
     936     174,    -1,   318,    -1,   331,    -1,   323,    -1,   164,   122,
     937     164,    -1,    -1,    64,   109,   142,   110,   312,    -1,    -1,
     938     313,    -1,   314,    -1,   313,   314,    -1,    39,   109,   109,
     939     315,   110,   110,    -1,   316,    -1,   315,   116,   316,    -1,
     940      -1,   317,    -1,   317,   109,   171,   110,    -1,   272,    -1,
     941     234,    -1,   235,    -1,   229,    -1,   319,   312,    -1,   320,
     942      -1,   321,   312,    -1,   322,   312,    -1,   137,    -1,   109,
     943     319,   110,    -1,   150,   318,    -1,   150,   228,   318,    -1,
     944     109,   320,   110,    -1,   319,   349,    -1,   109,   320,   110,
     945     349,    -1,   109,   321,   110,   350,    -1,   109,   321,   110,
     946      -1,   109,   320,   110,   109,   134,   264,   135,   110,    -1,
     947     109,   322,   110,    -1,   324,   312,    -1,   325,    -1,   326,
     948     312,    -1,   319,   109,   134,   264,   135,   110,    -1,   109,
     949     325,   110,   109,   134,   264,   135,   110,    -1,   109,   324,
     950     110,    -1,   150,   323,    -1,   150,   228,   323,    -1,   109,
     951     325,   110,    -1,   109,   325,   110,   349,    -1,   109,   326,
     952     110,   350,    -1,   109,   326,   110,    -1,   328,    -1,   329,
     953      -1,   330,    -1,   319,   109,   271,   110,    -1,   109,   329,
     954     110,   109,   271,   110,    -1,   109,   328,   110,    -1,   150,
     955     327,    -1,   150,   228,   327,    -1,   109,   329,   110,    -1,
     956     109,   329,   110,   349,    -1,   109,   330,   110,   350,    -1,
     957     109,   330,   110,    -1,   332,   312,    -1,   333,    -1,   334,
     958     312,    -1,   335,   312,    -1,   341,    -1,   109,   332,   110,
     959      -1,   150,   331,    -1,   150,   228,   331,    -1,   109,   333,
     960     110,    -1,   332,   349,    -1,   109,   333,   110,   349,    -1,
     961     109,   334,   110,   350,    -1,   109,   334,   110,    -1,   332,
     962     109,   134,   264,   135,   110,    -1,   109,   333,   110,   109,
     963     134,   264,   135,   110,    -1,   109,   335,   110,    -1,   319,
     964     312,    -1,   337,    -1,   338,   312,    -1,   339,   312,    -1,
     965     150,   336,    -1,   150,   228,   336,    -1,   109,   337,   110,
     966      -1,   319,   355,    -1,   109,   337,   110,   349,    -1,   109,
     967     338,   110,   350,    -1,   109,   338,   110,    -1,   319,   109,
     968     134,   264,   135,   110,    -1,   109,   337,   110,   109,   134,
     969     264,   135,   110,    -1,   109,   339,   110,    -1,   341,   312,
     970      -1,   342,    -1,   343,   312,    -1,   344,   312,    -1,    74,
     971      -1,    75,    -1,   150,   340,    -1,   150,   228,   340,    -1,
     972     109,   342,   110,    -1,   341,   355,    -1,   109,   342,   110,
     973     355,    -1,   341,   109,   134,   264,   135,   110,    -1,   109,
     974     342,   110,   109,   134,   264,   135,   110,    -1,   346,    -1,
     975     347,   312,    -1,   348,   312,    -1,   150,    -1,   150,   228,
     976      -1,   150,   345,    -1,   150,   228,   345,    -1,   109,   346,
     977     110,    -1,   349,    -1,   109,   346,   110,   349,    -1,   109,
     978     347,   110,   350,    -1,   109,   347,   110,    -1,   109,   134,
     979     264,   135,   110,    -1,   109,   346,   110,   109,   134,   264,
     980     135,   110,    -1,   109,   348,   110,    -1,   111,   112,    -1,
     981     111,   112,   350,    -1,   350,    -1,   111,   134,   165,   135,
     982     112,    -1,   111,   134,   117,   135,   112,    -1,   350,   111,
     983     134,   165,   135,   112,    -1,   350,   111,   134,   117,   135,
     984     112,    -1,   352,    -1,   353,   312,    -1,   354,   312,    -1,
     985     150,    -1,   150,   228,    -1,   150,   351,    -1,   150,   228,
     986     351,    -1,   109,   352,   110,    -1,   355,    -1,   109,   352,
     987     110,   355,    -1,   109,   353,   110,   350,    -1,   109,   353,
     988     110,    -1,   109,   134,   264,   135,   110,    -1,   109,   352,
     989     110,   109,   134,   264,   135,   110,    -1,   109,   354,   110,
     990      -1,   356,    -1,   356,   350,    -1,   350,    -1,   111,   112,
     991      -1,   111,   134,   228,   117,   135,   112,    -1,   111,   134,
     992     228,   135,   112,    -1,   111,   134,   228,   165,   135,   112,
     993      -1,   111,   134,     7,   227,   165,   135,   112,    -1,   111,
     994     134,   228,     7,   165,   135,   112,    -1,   358,    -1,   359,
     995     312,    -1,   360,   312,    -1,   150,    -1,   150,   228,    -1,
     996     150,   357,    -1,   150,   228,   357,    -1,   109,   358,   110,
     997      -1,   349,    -1,   109,   358,   110,   349,    -1,   109,   359,
     998     110,   350,    -1,   109,   359,   110,    -1,   109,   358,   110,
     999     109,   134,   264,   135,   110,    -1,   109,   360,   110,    -1,
     1000     362,    -1,   370,    -1,   228,   370,    -1,   363,    -1,   364,
     1001      -1,   150,   226,    -1,   228,   150,   226,    -1,   150,   371,
     1002      -1,   228,   150,   371,    -1,   150,   361,    -1,   228,   150,
     1003     361,    -1,   111,   112,   226,    -1,   365,   226,    -1,   111,
     1004     112,   350,   226,    -1,   365,   350,   226,    -1,   350,   226,
     1005      -1,   111,   112,   363,    -1,   365,   363,    -1,   111,   112,
     1006     350,   363,    -1,   365,   350,   363,    -1,   350,   363,    -1,
     1007     111,   134,   228,   117,   135,   112,    -1,   111,   134,   228,
     1008     165,   135,   112,    -1,   111,   134,   232,   165,   135,   112,
     1009      -1,   111,   134,   232,   228,   165,   135,   112,    -1,   370,
     1010      -1,   228,   370,    -1,   367,    -1,   368,    -1,   369,    -1,
     1011     150,   226,    -1,   228,   150,   226,    -1,   150,   371,    -1,
     1012     228,   150,   371,    -1,   150,   366,    -1,   228,   150,   366,
     1013      -1,   111,   112,   226,    -1,   111,   112,   350,   226,    -1,
     1014     350,   226,    -1,   111,   112,   368,    -1,   111,   112,   350,
     1015     368,    -1,   350,   368,    -1,   111,   134,   263,   135,   112,
     1016      -1,   111,   112,   109,   260,   110,    -1,   370,   109,   134,
     1017     260,   135,   110,    -1,   219,   109,   134,   260,   135,   110,
     1018      -1,    -1,   116,    -1,    -1,   131,   165,    -1
    10231019};
    10241020
     
    10261022static const yytype_uint16 yyrline[] =
    10271023{
    1028        0,   306,   306,   310,   317,   318,   319,   320,   321,   325,
    1029      326,   327,   331,   332,   336,   337,   341,   342,   346,   350,
    1030      351,   362,   364,   366,   367,   369,   374,   375,   381,   383,
    1031      385,   386,   387,   389,   390,   392,   394,   396,   405,   406,
    1032      412,   413,   417,   418,   422,   424,   426,   428,   430,   432,
    1033      434,   439,   441,   443,   447,   449,   453,   456,   458,   460,
    1034      465,   478,   480,   482,   484,   486,   488,   490,   492,   494,
    1035      496,   498,   505,   506,   512,   513,   514,   515,   519,   520,
    1036      527,   528,   530,   532,   537,   538,   540,   545,   546,   548,
    1037      553,   554,   556,   558,   560,   565,   566,   568,   573,   574,
    1038      579,   580,   585,   586,   591,   592,   597,   598,   603,   604,
    1039      607,   614,   619,   620,   628,   629,   633,   634,   635,   636,
    1040      637,   638,   639,   640,   641,   642,   643,   644,   654,   656,
    1041      661,   662,   667,   668,   674,   675,   681,   682,   683,   684,
    1042      685,   686,   687,   688,   689,   699,   706,   708,   718,   719,
    1043      724,   726,   732,   734,   738,   739,   744,   749,   752,   754,
    1044      756,   766,   768,   779,   780,   782,   786,   788,   792,   793,
    1045      798,   799,   803,   808,   809,   813,   815,   821,   822,   826,
    1046      828,   830,   832,   838,   839,   843,   845,   850,   852,   854,
    1047      859,   861,   866,   868,   872,   875,   879,   882,   886,   888,
    1048      890,   892,   897,   899,   901,   906,   908,   910,   912,   914,
    1049      919,   921,   923,   925,   930,   942,   943,   948,   950,   955,
    1050      959,   961,   963,   965,   967,   973,   974,   980,   981,   985,
    1051      986,   991,   993,   999,  1000,  1002,  1007,  1012,  1022,  1024,
    1052     1028,  1029,  1034,  1036,  1040,  1041,  1045,  1047,  1051,  1052,
    1053     1056,  1057,  1061,  1062,  1077,  1078,  1079,  1080,  1081,  1085,
    1054     1090,  1097,  1107,  1112,  1117,  1125,  1130,  1135,  1140,  1145,
    1055     1175,  1180,  1187,  1189,  1196,  1201,  1206,  1217,  1222,  1227,
    1056     1232,  1237,  1246,  1251,  1259,  1260,  1261,  1262,  1268,  1273,
    1057     1281,  1282,  1283,  1284,  1288,  1289,  1290,  1291,  1296,  1297,
    1058     1306,  1307,  1312,  1313,  1318,  1320,  1322,  1324,  1326,  1329,
    1059     1328,  1340,  1341,  1343,  1353,  1354,  1359,  1361,  1363,  1365,
    1060     1367,  1370,  1372,  1375,  1380,  1382,  1384,  1386,  1388,  1390,
    1061     1392,  1394,  1396,  1398,  1400,  1402,  1404,  1410,  1411,  1413,
    1062     1415,  1417,  1422,  1423,  1429,  1430,  1432,  1434,  1439,  1441,
    1063     1443,  1445,  1450,  1451,  1453,  1455,  1460,  1461,  1463,  1468,
    1064     1469,  1471,  1473,  1478,  1480,  1482,  1487,  1488,  1492,  1494,
    1065     1500,  1499,  1503,  1505,  1510,  1512,  1518,  1519,  1524,  1525,
    1066     1527,  1528,  1537,  1538,  1540,  1542,  1547,  1549,  1555,  1556,
    1067     1558,  1561,  1564,  1569,  1570,  1575,  1580,  1584,  1586,  1592,
    1068     1591,  1598,  1600,  1606,  1607,  1615,  1616,  1620,  1621,  1622,
    1069     1624,  1626,  1633,  1634,  1636,  1638,  1643,  1644,  1650,  1651,
    1070     1655,  1656,  1661,  1662,  1663,  1665,  1673,  1674,  1676,  1679,
    1071     1681,  1685,  1686,  1687,  1689,  1691,  1695,  1700,  1708,  1709,
    1072     1718,  1720,  1725,  1726,  1727,  1731,  1732,  1733,  1737,  1738,
    1073     1739,  1743,  1744,  1745,  1750,  1751,  1752,  1753,  1759,  1760,
    1074     1762,  1767,  1768,  1773,  1774,  1775,  1776,  1777,  1792,  1793,
    1075     1798,  1799,  1805,  1807,  1810,  1812,  1814,  1837,  1838,  1840,
    1076     1842,  1847,  1848,  1850,  1855,  1860,  1861,  1867,  1866,  1870,
    1077     1874,  1876,  1878,  1884,  1885,  1890,  1895,  1897,  1902,  1904,
    1078     1905,  1907,  1912,  1914,  1916,  1921,  1923,  1928,  1933,  1941,
    1079     1947,  1946,  1960,  1961,  1966,  1967,  1971,  1976,  1981,  1989,
    1080     1994,  2005,  2006,  2011,  2012,  2018,  2019,  2023,  2024,  2025,
    1081     2028,  2027,  2038,  2047,  2053,  2059,  2068,  2074,  2080,  2086,
    1082     2092,  2100,  2106,  2114,  2120,  2129,  2130,  2131,  2135,  2139,
    1083     2141,  2146,  2147,  2151,  2152,  2157,  2163,  2164,  2167,  2169,
    1084     2170,  2174,  2175,  2176,  2177,  2211,  2213,  2214,  2216,  2221,
    1085     2226,  2231,  2233,  2235,  2240,  2242,  2244,  2246,  2251,  2253,
    1086     2262,  2264,  2265,  2270,  2272,  2274,  2279,  2281,  2283,  2288,
    1087     2290,  2292,  2301,  2302,  2303,  2307,  2309,  2311,  2316,  2318,
    1088     2320,  2325,  2327,  2329,  2344,  2346,  2347,  2349,  2354,  2355,
    1089     2360,  2362,  2364,  2369,  2371,  2373,  2375,  2380,  2382,  2384,
    1090     2394,  2396,  2397,  2399,  2404,  2406,  2408,  2413,  2415,  2417,
    1091     2419,  2424,  2426,  2428,  2459,  2461,  2462,  2464,  2469,  2474,
    1092     2482,  2484,  2486,  2491,  2493,  2498,  2500,  2514,  2515,  2517,
    1093     2522,  2524,  2526,  2528,  2530,  2535,  2536,  2538,  2540,  2545,
    1094     2547,  2549,  2555,  2557,  2559,  2563,  2565,  2567,  2569,  2583,
    1095     2584,  2586,  2591,  2593,  2595,  2597,  2599,  2604,  2605,  2607,
    1096     2609,  2614,  2616,  2618,  2624,  2625,  2627,  2636,  2639,  2641,
    1097     2644,  2646,  2648,  2661,  2662,  2664,  2669,  2671,  2673,  2675,
    1098     2677,  2682,  2683,  2685,  2687,  2692,  2694,  2702,  2703,  2704,
    1099     2709,  2710,  2714,  2716,  2718,  2720,  2722,  2724,  2731,  2733,
    1100     2735,  2737,  2739,  2742,  2744,  2746,  2748,  2750,  2755,  2757,
    1101     2759,  2764,  2790,  2791,  2793,  2797,  2798,  2802,  2804,  2806,
    1102     2808,  2810,  2812,  2819,  2821,  2823,  2825,  2827,  2829,  2834,
    1103     2841,  2843,  2861,  2863,  2868,  2869
     1024       0,   301,   301,   305,   312,   313,   314,   318,   319,   320,
     1025     324,   325,   329,   330,   334,   335,   339,   343,   344,   355,
     1026     357,   359,   361,   366,   367,   373,   377,   379,   380,   382,
     1027     383,   385,   387,   389,   398,   399,   405,   406,   410,   411,
     1028     415,   419,   421,   423,   425,   430,   433,   435,   437,   442,
     1029     455,   457,   459,   461,   463,   465,   467,   469,   471,   473,
     1030     475,   482,   483,   489,   490,   491,   492,   496,   497,   499,
     1031     504,   505,   507,   509,   514,   515,   517,   522,   523,   525,
     1032     530,   531,   533,   535,   537,   542,   543,   545,   550,   551,
     1033     556,   557,   562,   563,   568,   569,   574,   575,   580,   581,
     1034     584,   586,   591,   596,   597,   599,   605,   606,   610,   611,
     1035     612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
     1036     627,   629,   631,   633,   638,   639,   644,   645,   651,   652,
     1037     658,   659,   660,   661,   662,   663,   664,   665,   666,   676,
     1038     683,   685,   695,   696,   701,   703,   709,   711,   715,   716,
     1039     721,   726,   729,   731,   733,   743,   745,   756,   757,   759,
     1040     763,   765,   769,   770,   775,   776,   780,   785,   786,   790,
     1041     792,   798,   799,   803,   805,   807,   809,   815,   816,   820,
     1042     822,   827,   829,   831,   836,   838,   843,   845,   849,   852,
     1043     856,   859,   863,   865,   867,   869,   874,   876,   878,   883,
     1044     885,   887,   889,   891,   896,   898,   900,   902,   907,   919,
     1045     920,   925,   927,   932,   936,   938,   940,   942,   944,   950,
     1046     951,   957,   958,   962,   963,   968,   970,   976,   977,   979,
     1047     984,   989,   999,  1001,  1005,  1006,  1011,  1013,  1017,  1018,
     1048    1022,  1024,  1028,  1029,  1033,  1034,  1038,  1039,  1054,  1055,
     1049    1056,  1057,  1058,  1062,  1067,  1074,  1084,  1089,  1094,  1102,
     1050    1107,  1112,  1117,  1122,  1130,  1152,  1157,  1164,  1166,  1173,
     1051    1178,  1183,  1194,  1199,  1204,  1209,  1214,  1223,  1228,  1236,
     1052    1237,  1238,  1239,  1245,  1250,  1258,  1259,  1260,  1261,  1265,
     1053    1266,  1267,  1268,  1273,  1274,  1283,  1284,  1289,  1290,  1295,
     1054    1297,  1299,  1301,  1303,  1306,  1305,  1317,  1318,  1320,  1330,
     1055    1331,  1336,  1338,  1340,  1342,  1344,  1347,  1349,  1352,  1357,
     1056    1359,  1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,
     1057    1379,  1381,  1387,  1388,  1390,  1392,  1394,  1399,  1400,  1406,
     1058    1407,  1409,  1411,  1416,  1418,  1420,  1422,  1427,  1428,  1430,
     1059    1432,  1437,  1438,  1440,  1445,  1446,  1448,  1450,  1455,  1457,
     1060    1459,  1464,  1465,  1469,  1471,  1477,  1476,  1480,  1482,  1487,
     1061    1489,  1495,  1496,  1501,  1502,  1504,  1505,  1514,  1515,  1517,
     1062    1519,  1524,  1526,  1532,  1533,  1535,  1538,  1541,  1546,  1547,
     1063    1552,  1557,  1561,  1563,  1569,  1568,  1575,  1577,  1583,  1584,
     1064    1592,  1593,  1597,  1598,  1599,  1601,  1603,  1610,  1611,  1613,
     1065    1615,  1620,  1621,  1627,  1628,  1632,  1633,  1638,  1639,  1640,
     1066    1642,  1650,  1651,  1653,  1656,  1658,  1662,  1663,  1664,  1666,
     1067    1668,  1672,  1677,  1685,  1686,  1695,  1697,  1702,  1703,  1704,
     1068    1708,  1709,  1710,  1714,  1715,  1716,  1720,  1721,  1722,  1727,
     1069    1728,  1729,  1730,  1736,  1737,  1739,  1744,  1745,  1750,  1751,
     1070    1752,  1753,  1754,  1769,  1770,  1775,  1776,  1782,  1784,  1787,
     1071    1789,  1791,  1814,  1815,  1817,  1819,  1824,  1825,  1827,  1832,
     1072    1837,  1838,  1844,  1843,  1847,  1851,  1853,  1855,  1861,  1862,
     1073    1867,  1872,  1874,  1879,  1881,  1882,  1884,  1889,  1891,  1893,
     1074    1898,  1900,  1905,  1910,  1918,  1924,  1923,  1937,  1938,  1943,
     1075    1944,  1948,  1953,  1958,  1966,  1971,  1982,  1983,  1988,  1989,
     1076    1995,  1996,  2000,  2001,  2002,  2005,  2004,  2015,  2024,  2030,
     1077    2036,  2045,  2051,  2057,  2063,  2069,  2077,  2083,  2091,  2097,
     1078    2106,  2107,  2108,  2112,  2116,  2118,  2123,  2124,  2128,  2129,
     1079    2134,  2140,  2141,  2144,  2146,  2147,  2151,  2152,  2153,  2154,
     1080    2188,  2190,  2191,  2193,  2198,  2203,  2208,  2210,  2212,  2217,
     1081    2219,  2221,  2223,  2228,  2230,  2239,  2241,  2242,  2247,  2249,
     1082    2251,  2256,  2258,  2260,  2265,  2267,  2269,  2278,  2279,  2280,
     1083    2284,  2286,  2288,  2293,  2295,  2297,  2302,  2304,  2306,  2321,
     1084    2323,  2324,  2326,  2331,  2332,  2337,  2339,  2341,  2346,  2348,
     1085    2350,  2352,  2357,  2359,  2361,  2371,  2373,  2374,  2376,  2381,
     1086    2383,  2385,  2390,  2392,  2394,  2396,  2401,  2403,  2405,  2436,
     1087    2438,  2439,  2441,  2446,  2451,  2459,  2461,  2463,  2468,  2470,
     1088    2475,  2477,  2491,  2492,  2494,  2499,  2501,  2503,  2505,  2507,
     1089    2512,  2513,  2515,  2517,  2522,  2524,  2526,  2532,  2534,  2536,
     1090    2540,  2542,  2544,  2546,  2560,  2561,  2563,  2568,  2570,  2572,
     1091    2574,  2576,  2581,  2582,  2584,  2586,  2591,  2593,  2595,  2601,
     1092    2602,  2604,  2613,  2616,  2618,  2621,  2623,  2625,  2638,  2639,
     1093    2641,  2646,  2648,  2650,  2652,  2654,  2659,  2660,  2662,  2664,
     1094    2669,  2671,  2679,  2680,  2681,  2686,  2687,  2691,  2693,  2695,
     1095    2697,  2699,  2701,  2708,  2710,  2712,  2714,  2716,  2718,  2720,
     1096    2722,  2724,  2726,  2731,  2733,  2735,  2740,  2766,  2767,  2769,
     1097    2773,  2774,  2778,  2780,  2782,  2784,  2786,  2788,  2795,  2797,
     1098    2799,  2801,  2803,  2805,  2810,  2815,  2817,  2819,  2837,  2839,
     1099    2844,  2845
    11041100};
    11051101#endif
     
    11221118  "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname",
    11231119  "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
    1124   "INTEGERconstant", "CHARACTERconstant", "STRINGliteral",
    1125   "REALDECIMALconstant", "REALFRACTIONconstant", "FLOATINGconstant",
    1126   "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE", "GE", "EQ",
    1127   "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign", "DIVassign",
    1128   "MODassign", "PLUSassign", "MINUSassign", "LSassign", "RSassign",
    1129   "ANDassign", "ERassign", "ORassign", "ATassign", "THEN", "'('", "')'",
    1130   "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'", "'+'", "'-'",
    1131   "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "':'",
    1132   "'='", "';'", "$accept", "push", "pop", "constant", "identifier",
    1133   "no_01_identifier", "no_attr_identifier", "zero_one", "string_literal",
    1134   "string_literal_list", "primary_expression", "postfix_expression",
    1135   "argument_expression_list", "argument_expression", "field_list", "field",
    1136   "field_name", "fraction_constants", "unary_expression",
    1137   "ptrref_operator", "unary_operator", "cast_expression",
    1138   "multiplicative_expression", "additive_expression", "shift_expression",
    1139   "relational_expression", "equality_expression", "AND_expression",
    1140   "exclusive_OR_expression", "inclusive_OR_expression",
    1141   "logical_AND_expression", "logical_OR_expression",
    1142   "conditional_expression", "constant_expression", "assignment_expression",
    1143   "assignment_expression_opt", "assignment_operator", "tuple",
    1144   "tuple_expression_list", "comma_expression", "comma_expression_opt",
    1145   "statement", "labeled_statement", "compound_statement",
    1146   "block_item_list", "block_item", "statement_list",
    1147   "expression_statement", "selection_statement", "case_value",
    1148   "case_value_list", "case_label", "case_label_list", "case_clause",
    1149   "switch_clause_list_opt", "switch_clause_list", "choose_clause_list_opt",
    1150   "choose_clause_list", "fall_through_opt", "fall_through",
    1151   "iteration_statement", "for_control_expression", "jump_statement",
    1152   "exception_statement", "handler_list", "handler_clause",
    1153   "finally_clause", "exception_declaration", "asm_statement",
    1154   "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
    1155   "asm_operand", "asm_clobbers_list_opt", "label_list",
    1156   "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
    1157   "old_declaration_list", "local_label_declaration_opt",
    1158   "local_label_declaration_list", "local_label_list", "declaration",
    1159   "new_declaration", "new_variable_declaration", "new_variable_specifier",
     1120  "INTEGERconstant", "FLOATINGconstant", "CHARACTERconstant",
     1121  "STRINGliteral", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE",
     1122  "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
     1123  "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
     1124  "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
     1125  "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'",
     1126  "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'",
     1127  "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
     1128  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
     1129  "string_literal", "string_literal_list", "primary_expression",
     1130  "postfix_expression", "argument_expression_list", "argument_expression",
     1131  "field_list", "field", "unary_expression", "ptrref_operator",
     1132  "unary_operator", "cast_expression", "multiplicative_expression",
     1133  "additive_expression", "shift_expression", "relational_expression",
     1134  "equality_expression", "AND_expression", "exclusive_OR_expression",
     1135  "inclusive_OR_expression", "logical_AND_expression",
     1136  "logical_OR_expression", "conditional_expression", "constant_expression",
     1137  "assignment_expression", "assignment_expression_opt",
     1138  "assignment_operator", "tuple", "tuple_expression_list",
     1139  "comma_expression", "comma_expression_opt", "statement",
     1140  "labeled_statement", "compound_statement", "block_item_list",
     1141  "block_item", "statement_list", "expression_statement",
     1142  "selection_statement", "case_value", "case_value_list", "case_label",
     1143  "case_label_list", "case_clause", "switch_clause_list_opt",
     1144  "switch_clause_list", "choose_clause_list_opt", "choose_clause_list",
     1145  "fall_through_opt", "fall_through", "iteration_statement",
     1146  "for_control_expression", "jump_statement", "exception_statement",
     1147  "handler_list", "handler_clause", "finally_clause",
     1148  "exception_declaration", "asm_statement", "asm_volatile_opt",
     1149  "asm_operands_opt", "asm_operands_list", "asm_operand",
     1150  "asm_clobbers_list_opt", "label_list", "declaration_list_opt",
     1151  "declaration_list", "old_declaration_list_opt", "old_declaration_list",
     1152  "local_label_declaration_opt", "local_label_declaration_list",
     1153  "local_label_list", "declaration", "new_declaration",
     1154  "new_variable_declaration", "new_variable_specifier",
    11601155  "new_function_declaration", "new_function_specifier",
    11611156  "new_function_return", "new_typedef_declaration", "typedef_declaration",
     
    12341229     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12351230     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1236      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
    1237      365,    40,    41,    91,    93,    46,   123,   125,    44,    42,
    1238       38,    43,    45,    33,   126,    47,    37,    60,    62,    94,
    1239      124,    63,    58,    61,    59
     1231     355,   356,   357,   358,   359,   360,   361,   362,   363,    40,
     1232      41,    91,    93,    46,   123,   125,    44,    42,    38,    43,
     1233      45,    33,   126,    47,    37,    60,    62,    94,   124,    63,
     1234      58,    61,    59
    12401235};
    12411236# endif
     
    12441239static const yytype_uint16 yyr1[] =
    12451240{
    1246        0,   135,   136,   137,   138,   138,   138,   138,   138,   139,
    1247      139,   139,   140,   140,   141,   141,   142,   142,   143,   144,
    1248      144,   145,   145,   145,   145,   145,   146,   146,   146,   146,
    1249      146,   146,   146,   146,   146,   146,   146,   146,   147,   147,
    1250      148,   148,   149,   149,   150,   150,   150,   150,   150,   150,
    1251      150,   151,   151,   151,   152,   152,   153,   153,   153,   153,
    1252      153,   153,   153,   153,   153,   153,   153,   153,   153,   153,
    1253      153,   153,   154,   154,   155,   155,   155,   155,   156,   156,
    1254      157,   157,   157,   157,   158,   158,   158,   159,   159,   159,
    1255      160,   160,   160,   160,   160,   161,   161,   161,   162,   162,
    1256      163,   163,   164,   164,   165,   165,   166,   166,   167,   167,
    1257      167,   168,   169,   169,   170,   170,   171,   171,   171,   171,
    1258      171,   171,   171,   171,   171,   171,   171,   171,   172,   172,
    1259      173,   173,   174,   174,   175,   175,   176,   176,   176,   176,
    1260      176,   176,   176,   176,   176,   177,   178,   178,   179,   179,
    1261      180,   180,   180,   180,   181,   181,   182,   183,   183,   183,
    1262      183,   183,   183,   184,   184,   184,   185,   185,   186,   186,
    1263      187,   187,   188,   189,   189,   190,   190,   191,   191,   192,
    1264      192,   192,   192,   193,   193,   194,   194,   195,   195,   195,
    1265      196,   196,   197,   197,   197,   197,   197,   197,   197,   197,
    1266      197,   197,   198,   198,   198,   199,   199,   199,   199,   199,
    1267      200,   200,   200,   200,   201,   202,   202,   202,   202,   202,
    1268      203,   203,   203,   203,   203,   204,   204,   205,   205,   206,
    1269      206,   207,   207,   208,   208,   208,   209,   209,   210,   210,
    1270      211,   211,   212,   212,   213,   213,   214,   214,   215,   215,
    1271      216,   216,   217,   217,   218,   218,   218,   218,   218,   219,
    1272      219,   219,   220,   220,   220,   221,   221,   221,   221,   221,
    1273      222,   222,   223,   223,   224,   224,   224,   225,   225,   225,
    1274      225,   225,   226,   226,   227,   227,   227,   227,   228,   228,
    1275      229,   229,   229,   229,   230,   230,   230,   230,   231,   231,
    1276      232,   232,   233,   233,   234,   234,   234,   234,   234,   235,
    1277      234,   236,   236,   236,   237,   237,   238,   238,   238,   238,
    1278      238,   238,   238,   238,   239,   239,   239,   239,   239,   239,
    1279      239,   239,   239,   239,   239,   239,   239,   240,   240,   240,
    1280      240,   240,   241,   241,   242,   242,   242,   242,   243,   243,
    1281      243,   243,   244,   244,   244,   244,   245,   245,   245,   246,
    1282      246,   246,   246,   247,   247,   247,   248,   248,   249,   249,
    1283      250,   249,   249,   249,   251,   251,   252,   252,   253,   253,
    1284      253,   253,   254,   254,   254,   254,   255,   255,   256,   256,
    1285      256,   256,   256,   257,   257,   258,   259,   260,   260,   261,
    1286      260,   262,   262,   263,   263,   264,   264,   265,   265,   265,
    1287      265,   265,   266,   266,   266,   266,   267,   267,   268,   268,
    1288      269,   269,   270,   270,   270,   270,   271,   271,   271,   271,
    1289      271,   272,   272,   272,   272,   272,   273,   273,   274,   274,
    1290      275,   275,   276,   276,   276,   277,   277,   277,   278,   278,
    1291      278,   279,   279,   279,   280,   280,   280,   280,   281,   281,
    1292      281,   282,   282,   283,   283,   283,   283,   283,   284,   284,
    1293      285,   285,   286,   286,   286,   286,   286,   287,   287,   287,
    1294      287,   288,   288,   288,   289,   290,   290,   292,   291,   291,
    1295      293,   293,   293,   294,   294,   295,   295,   295,   296,   296,
    1296      296,   296,   297,   297,   297,   298,   298,   299,   299,   300,
    1297      301,   300,   302,   302,   303,   303,   304,   304,   304,   305,
    1298      305,   306,   306,   307,   307,   308,   308,   309,   309,   309,
    1299      310,   309,   309,   311,   311,   311,   312,   312,   312,   312,
    1300      312,   312,   312,   312,   312,   313,   313,   313,   314,   315,
    1301      315,   316,   316,   317,   317,   318,   319,   319,   320,   320,
    1302      320,   321,   321,   321,   321,   322,   322,   322,   322,   323,
    1303      323,   324,   324,   324,   325,   325,   325,   325,   326,   326,
    1304      327,   327,   327,   328,   328,   328,   329,   329,   329,   330,
    1305      330,   330,   331,   331,   331,   332,   332,   332,   333,   333,
    1306      333,   334,   334,   334,   335,   335,   335,   335,   336,   336,
    1307      337,   337,   337,   338,   338,   338,   338,   339,   339,   339,
    1308      340,   340,   340,   340,   341,   341,   341,   342,   342,   342,
    1309      342,   343,   343,   343,   344,   344,   344,   344,   345,   345,
    1310      346,   346,   346,   347,   347,   348,   348,   349,   349,   349,
    1311      350,   350,   350,   350,   350,   351,   351,   351,   351,   352,
    1312      352,   352,   353,   353,   353,   354,   354,   354,   354,   355,
    1313      355,   355,   356,   356,   356,   356,   356,   357,   357,   357,
    1314      357,   358,   358,   358,   359,   359,   359,   360,   360,   360,
    1315      360,   360,   360,   361,   361,   361,   362,   362,   362,   362,
    1316      362,   363,   363,   363,   363,   364,   364,   365,   365,   365,
    1317      366,   366,   367,   367,   367,   367,   367,   367,   368,   368,
    1318      368,   368,   368,   368,   368,   368,   368,   368,   369,   369,
    1319      369,   369,   370,   370,   370,   371,   371,   372,   372,   372,
    1320      372,   372,   372,   373,   373,   373,   373,   373,   373,   374,
    1321      375,   375,   376,   376,   377,   377
     1241       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     1242     138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
     1243     143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
     1244     144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
     1245     148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
     1246     149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
     1247     149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
     1248     153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
     1249     156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
     1250     159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
     1251     163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
     1252     167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
     1253     168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
     1254     172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
     1255     174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
     1256     178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
     1257     181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
     1258     186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
     1259     190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
     1260     193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
     1261     195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
     1262     198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
     1263     200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
     1264     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     1265     210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
     1266     214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
     1267     217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
     1268     220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
     1269     223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
     1270     226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
     1271     230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
     1272     233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
     1273     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
     1274     235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
     1275     238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
     1276     240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
     1277     243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
     1278     247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
     1279     250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
     1280     254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
     1281     260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
     1282     262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
     1283     266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
     1284     268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
     1285     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
     1286     276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
     1287     279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
     1288     282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
     1289     286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
     1290     291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
     1291     294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
     1292     299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
     1293     304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
     1294     307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
     1295     309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
     1296     314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
     1297     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     1298     321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
     1299     324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
     1300     328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
     1301     331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
     1302     334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
     1303     337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
     1304     340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
     1305     344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
     1306     347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
     1307     350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
     1308     352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
     1309     355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
     1310     357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
     1311     360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
     1312     363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
     1313     364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
     1314     367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
     1315     369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
     1316     373,   373
    13221317};
    13231318
     
    13261321{
    13271322       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1328        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1329        2,     1,     1,     1,     3,     3,     1,     6,     4,     3,
    1330        7,     2,     3,     7,     2,     2,     7,     4,     1,     3,
    1331        0,     1,     1,     3,     1,     2,     6,     3,     7,     3,
    1332        7,     2,     2,     2,     0,     2,     1,     1,     1,     2,
    1333        2,     2,     2,     2,     2,     4,     2,     4,     6,     1,
    1334        4,     4,     1,     1,     1,     1,     1,     1,     1,     4,
     1323       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1324       1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
     1325       2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
     1326       1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
     1327       2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
     1328       4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
    13351329       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
    13361330       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
    13371331       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    1338        4,     1,     1,     3,     0,     1,     1,     1,     1,     1,
    1339        1,     1,     1,     1,     1,     1,     1,     1,     6,     7,
    1340        1,     3,     1,     3,     0,     1,     1,     1,     1,     1,
    1341        1,     1,     1,     1,     6,     4,     2,     7,     1,     3,
    1342        1,     2,     1,     2,     1,     2,     2,     5,     7,     5,
    1343        9,     5,     9,     1,     3,     1,     1,     3,     3,     2,
    1344        1,     2,     2,     0,     1,     2,     3,     0,     1,     2,
    1345        3,     3,     4,     0,     1,     1,     2,     5,     7,     6,
    1346        6,     4,     3,     4,     2,     3,     2,     3,     3,     3,
    1347        3,     5,     3,     3,     4,     1,     5,     6,     5,     6,
    1348        9,    10,     9,    10,     2,     1,     2,     2,     2,     1,
    1349        6,     8,    10,    12,    14,     0,     1,     0,     1,     1,
    1350        3,     4,     7,     0,     1,     3,     1,     3,     1,     1,
    1351        1,     3,     1,     1,     1,     3,     0,     1,     3,     4,
    1352        1,     3,     1,     1,     3,     3,     3,     3,     3,     2,
    1353        3,     6,     3,     3,     4,     1,     2,     2,     3,     5,
    1354        7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
    1355        3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
    1356        1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
    1357        1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
    1358        5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
     1332       4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
    13591333       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1360        1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
    1361        3,     3,     1,     3,     1,     2,     2,     2,     4,     4,
    1362        4,     4,     1,     2,     2,     3,     1,     2,     2,     1,
    1363        2,     2,     3,     1,     2,     2,     1,     1,     4,     2,
    1364        0,     6,     7,     2,     2,     2,     0,     2,     2,     3,
    1365        2,     3,     1,     2,     3,     2,     2,     4,     0,     1,
    1366        2,     2,     1,     0,     1,     2,     2,     5,     2,     0,
    1367        7,     2,     4,     0,     2,     0,     1,     1,     1,     5,
    1368        5,     5,     1,     5,     5,     9,     1,     5,     0,     1,
    1369        1,     5,     1,     1,     5,     5,     1,     3,     3,     4,
    1370        1,     1,     1,     1,     2,     1,     3,     3,     1,     2,
    1371        1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
    1372        1,     1,     1,     2,     1,     1,     1,     2,     0,     2,
    1373        2,     1,     4,     0,     1,     2,     3,     4,     2,     2,
    1374        1,     2,     2,     5,     5,     7,     6,     1,     2,     2,
    1375        3,     1,     2,     2,     4,     2,     4,     0,     4,     2,
    1376        1,     1,     1,     0,     2,     5,     5,    13,     1,     1,
    1377        3,     3,     2,     3,     3,     2,     4,     1,     6,     9,
    1378        0,    11,     1,     3,     3,     3,     1,     1,     5,     2,
    1379        5,     0,     1,     1,     3,     0,     1,     1,     1,     1,
    1380        0,     6,     2,     1,     2,     4,     2,     3,     3,     3,
    1381        4,     5,     5,     5,     6,     1,     1,     1,     3,     0,
    1382        5,     0,     1,     1,     2,     6,     1,     3,     0,     1,
    1383        4,     1,     1,     1,     1,     2,     1,     2,     2,     1,
    1384        3,     2,     3,     3,     2,     4,     4,     3,     8,     3,
    1385        2,     1,     2,     6,     8,     3,     2,     3,     3,     4,
    1386        4,     3,     1,     1,     1,     4,     6,     3,     2,     3,
    1387        3,     4,     4,     3,     2,     1,     2,     2,     1,     3,
    1388        2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
    1389        2,     1,     2,     2,     2,     3,     3,     2,     4,     4,
    1390        3,     6,     8,     3,     2,     1,     2,     2,     1,     1,
    1391        2,     3,     3,     2,     4,     6,     8,     1,     2,     2,
    1392        1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
    1393        8,     3,     2,     3,     1,     5,     5,     6,     6,     1,
    1394        2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
    1395        3,     5,     8,     3,     1,     2,     1,     2,     6,     5,
    1396        6,     7,     7,     1,     2,     2,     1,     2,     2,     3,
    1397        3,     1,     4,     4,     3,     8,     3,     1,     1,     2,
    1398        1,     1,     2,     3,     2,     3,     2,     3,     3,     2,
    1399        4,     3,     2,     3,     2,     4,     3,     2,     6,     6,
    1400        6,     7,     1,     2,     1,     1,     1,     2,     3,     2,
    1401        3,     2,     3,     3,     4,     2,     3,     4,     2,     5,
    1402        6,     6,     0,     1,     0,     2
     1334       2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
     1335       1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
     1336       2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
     1337       2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
     1338       1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
     1339       3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
     1340       2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
     1341       2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
     1342       5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
     1343       2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
     1344       1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
     1345       1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
     1346       0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
     1347       3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
     1348       2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
     1349       2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
     1350       3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
     1351       1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
     1352       1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
     1353       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1354       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1355       1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
     1356       2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
     1357       3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
     1358       2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
     1359       2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
     1360       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     1361       2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
     1362       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
     1363       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
     1364       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
     1365       1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
     1366       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1367       1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
     1368       2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
     1369       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     1370       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     1371       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     1372       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     1373       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     1374       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     1375       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     1376       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     1377       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
     1378       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     1379       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     1380       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     1381       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
     1382       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     1383       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     1384       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     1385       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     1386       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     1387       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     1388       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     1389       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     1390       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     1391       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     1392       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     1393       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     1394       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     1395       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     1396       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     1397       0,     2
    14031398};
    14041399
     
    14081403static const yytype_uint16 yydefact[] =
    14091404{
    1410      298,   298,   318,   316,   319,   317,   320,   321,   304,   306,
    1411      305,     0,   307,   332,   324,   329,   327,   328,   326,   325,
    1412      330,   331,   336,   333,   334,   335,   551,   551,   551,     0,
    1413        0,     0,   298,   225,   308,   322,   323,     9,   363,     0,
    1414       10,    16,    17,     0,     2,    72,    73,   569,    11,   298,
    1415      529,   527,   252,     3,   458,     3,   265,     0,     3,     3,
    1416        3,   253,     3,     0,     0,     0,   299,   300,   302,   298,
    1417      311,   314,   344,   290,   337,   342,   291,   352,   292,   359,
    1418      356,   366,     0,     0,   367,   293,   477,   481,     3,     3,
    1419        0,     2,   523,   528,   533,   303,     0,     0,   551,   581,
    1420      551,     2,   592,   593,   594,   298,     0,   735,   736,     0,
    1421       14,     0,    15,   298,   274,   275,     0,   299,   294,   295,
    1422      296,   297,   530,   309,   396,   552,   553,   374,   375,    14,
    1423      449,   450,    13,   445,   448,     0,   507,   502,   493,   449,
    1424      450,     0,     0,   532,   226,     0,   298,     0,     0,     0,
    1425        0,     0,     0,     0,     0,   298,   298,     0,   737,   299,
    1426      586,   598,   741,   734,   732,   739,     0,     0,     0,   259,
    1427        2,     0,   536,   443,   444,   442,     0,     0,     0,     0,
    1428      551,     0,   638,   639,     0,     0,   549,   545,   551,   566,
    1429      551,   551,   547,     2,   546,   551,   605,   551,   551,   608,
    1430        0,     0,     0,   298,   298,   316,   364,     2,   298,   266,
    1431      301,   312,   345,   357,   482,     0,     2,     0,   458,   267,
    1432      299,   338,   353,   360,   478,     0,     2,     0,   315,   339,
    1433      346,   347,     0,   354,   358,   361,   365,   450,   298,   376,
    1434      369,   373,     0,   398,   479,   483,     0,     0,     0,     1,
    1435      298,     2,   534,   580,   582,   298,     2,   745,   299,   748,
    1436      549,   549,     0,   299,     0,     0,   277,   551,   547,     2,
    1437      298,     0,     0,   298,   554,     2,   505,     2,   558,     0,
    1438        0,     0,     0,     0,     0,    21,    69,     4,     8,    19,
    1439        5,     6,     7,     0,     0,   298,     2,    74,    75,    76,
    1440       77,    57,    22,    58,    18,    26,    56,    78,   298,     0,
    1441       80,    84,    87,    90,    95,    98,   100,   102,   104,   106,
    1442      108,   112,   499,    23,   456,   498,     0,   454,   455,     0,
    1443      570,   585,   588,   591,   597,   600,   603,     2,   743,   298,
    1444      746,     2,    72,   298,     3,   430,     0,   438,   299,   298,
    1445      311,   337,   291,   352,   359,     3,     3,   412,   416,   426,
    1446      431,   477,   298,   432,   710,   711,   298,   433,   435,     2,
    1447      587,   599,   733,     2,     2,   254,     2,   463,     0,   461,
    1448      460,   459,   146,     2,     2,   256,     2,     2,   255,     2,
    1449      285,     2,   286,     0,   284,     0,     0,     0,     0,     0,
    1450        0,     0,     0,     0,   571,   610,     0,   458,     2,   565,
    1451      574,   664,   567,   568,   537,   298,     2,   604,   613,   606,
    1452      607,     0,   280,   298,   298,   343,   299,     0,   299,   298,
    1453      738,   742,   740,   538,   298,   549,   260,   268,   313,     0,
    1454        2,   539,   298,   503,   340,   341,   287,   355,   362,     0,
    1455      298,     0,   752,   403,     0,   480,   504,   257,   258,   524,
    1456      298,   440,     0,   298,   242,     0,     2,   244,     0,   299,
    1457        0,   262,     2,   263,   282,     0,     0,     2,   298,   549,
    1458      298,   490,   492,   491,     0,     0,   754,     0,   298,     0,
    1459      298,   494,   298,   564,   562,   563,   561,     0,   556,   559,
    1460        0,     0,   298,    64,   298,    78,    59,   298,    66,   298,
    1461      298,    62,    63,     2,   132,     0,     0,   452,     0,   451,
    1462      732,   298,    20,    31,     0,    34,    35,    40,     2,     0,
    1463       40,   118,   119,   120,   121,   122,   123,   124,   125,   126,
    1464      127,   117,   116,     0,    60,    61,     0,     0,     0,     0,
     1405     293,   293,   313,   311,   314,   312,   315,   316,   299,   301,
     1406     300,     0,   302,   327,   319,   324,   322,   323,   321,   320,
     1407     325,   326,   331,   328,   329,   330,   546,   546,   546,     0,
     1408       0,     0,   293,   219,   303,   317,   318,     7,   358,     0,
     1409       8,    14,    15,     0,     2,    61,    62,   564,     9,   293,
     1410     524,   522,   246,     3,   453,     3,   259,     0,     3,     3,
     1411       3,   247,     3,     0,     0,     0,   294,   295,   297,   293,
     1412     306,   309,   339,   285,   332,   337,   286,   347,   287,   354,
     1413     351,   361,     0,     0,   362,   288,   472,   476,     3,     3,
     1414       0,     2,   518,   523,   528,   298,     0,     0,   546,   576,
     1415     546,     2,   587,   588,   589,   293,     0,   730,   731,     0,
     1416      12,     0,    13,   293,   269,   270,     0,   294,   289,   290,
     1417     291,   292,   525,   304,   391,   547,   548,   369,   370,    12,
     1418     444,   445,    11,   440,   443,     0,   502,   497,   488,   444,
     1419     445,     0,     0,   527,   220,     0,   293,     0,     0,     0,
     1420       0,     0,     0,     0,     0,   293,   293,     2,     0,   732,
     1421     294,   581,   593,   736,   729,   727,   734,     0,     0,     0,
     1422     253,     2,     0,   531,   438,   439,   437,     0,     0,     0,
     1423       0,   546,     0,   633,   634,     0,     0,   544,   540,   546,
     1424     561,   546,   546,   542,     2,   541,   546,   600,   546,   546,
     1425     603,     0,     0,     0,   293,   293,   311,   359,     2,   293,
     1426     260,   296,   307,   340,   352,   477,     0,     2,     0,   453,
     1427     261,   294,   333,   348,   355,   473,     0,     2,     0,   310,
     1428     334,   341,   342,     0,   349,   353,   356,   360,   445,   293,
     1429     371,   364,   368,     0,   393,   474,   478,     0,     0,     0,
     1430       1,   293,     2,   529,   575,   577,   293,     2,   740,   294,
     1431     743,   544,   544,     0,   294,     0,     0,   272,   546,   542,
     1432       2,   293,     0,     0,   293,   549,     2,   500,     2,   553,
     1433       0,     0,     0,     0,     0,     0,    19,    58,     4,     5,
     1434       6,    17,     0,     0,   293,     2,    63,    64,    65,    66,
     1435      46,    20,    47,    16,    23,    45,    67,   293,     0,    70,
     1436      74,    77,    80,    85,    88,    90,    92,    94,    96,    98,
     1437     103,   494,   750,   451,   493,     0,   449,   450,     0,   565,
     1438     580,   583,   586,   592,   595,   598,   358,     0,     2,   738,
     1439       0,   293,   741,     2,    61,   293,     3,   425,     0,   433,
     1440     294,   293,   306,   332,   286,   347,   354,     3,     3,   407,
     1441     411,   421,   426,   472,   293,   427,   705,   706,   293,   428,
     1442     430,   293,     2,   582,   594,   728,     2,     2,   248,     2,
     1443     458,     0,   456,   455,   454,   140,     2,     2,   250,     2,
     1444       2,   249,     2,   280,     2,   281,     0,   279,     0,     0,
     1445       0,     0,     0,     0,     0,     0,     0,   566,   605,     0,
     1446     453,     2,   560,   569,   659,   562,   563,   532,   293,     2,
     1447     599,   608,   601,   602,     0,   275,   293,   293,   338,   294,
     1448       0,   294,     0,   293,   733,   737,   735,   533,   293,   544,
     1449     254,   262,   308,     0,     2,   534,   293,   498,   335,   336,
     1450     282,   350,   357,     0,   293,     0,   748,   398,     0,   475,
     1451     499,   251,   252,   519,   293,   435,     0,   293,   236,     0,
     1452       2,   238,     0,   294,     0,   256,     2,   257,   277,     0,
     1453       0,     2,   293,   544,   293,   485,   487,   486,     0,     0,
     1454     750,     0,   293,     0,   293,   489,   293,   559,   557,   558,
     1455     556,     0,   551,   554,     0,     0,   293,    53,   293,    67,
     1456      48,   293,    55,   293,   293,    51,    52,     2,   126,     0,
     1457       0,   447,     0,   446,   727,   120,   293,    18,     0,    30,
     1458      31,    36,     2,     0,    36,   110,   111,   112,   113,   114,
     1459     115,   116,   117,   118,   119,   109,   108,     0,    49,    50,
    14651460       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1466        0,     0,     0,     0,     0,     2,   650,   457,   647,   551,
    1467      551,   655,   484,   298,     2,   589,   590,     0,   601,   602,
    1468        0,   744,   747,   298,   298,     0,   712,   299,   716,   707,
    1469      708,   714,     0,     2,     2,   672,   551,   754,   621,   551,
    1470      551,   754,   551,   635,   551,   551,   686,   439,   669,   551,
    1471      551,   677,   684,   298,   434,   299,     0,     0,   298,   722,
    1472      299,   727,   754,   719,   298,   724,   754,   298,   298,     0,
    1473        0,    21,     2,     0,    22,     0,   464,   752,     0,     0,
    1474      470,   246,     0,   298,     0,     0,     0,   549,   573,   577,
    1475      579,   609,   612,   616,   619,   572,   611,     0,   288,   662,
    1476        0,   298,   281,     0,     0,     0,     0,   279,     2,     0,
    1477      264,   540,   298,     0,     0,   298,     2,   368,   388,   377,
    1478        0,     0,   382,   376,   753,     0,     0,   401,     0,   299,
    1479        3,   419,     3,   423,   422,   595,     0,   535,   298,    72,
    1480        3,   298,   438,   299,     3,   432,   433,     2,     0,     0,
    1481        0,   489,   310,   298,     0,   485,   487,     3,     2,     2,
    1482        0,   506,     3,     0,   558,   134,     0,     0,   227,     0,
    1483        0,     0,     0,    41,     0,     0,   298,    24,     0,    25,
    1484        0,   696,   701,   453,   693,   551,   551,     0,   114,     3,
    1485        2,    32,     0,    38,     0,     2,    29,     0,   113,    81,
    1486       82,    83,    85,    86,    88,    89,    93,    94,    91,    92,
    1487       96,    97,    99,   101,   103,   105,   107,     0,     0,   298,
    1488        0,     0,     0,   651,   652,   648,   649,   501,   500,   298,
    1489        0,   718,   298,   723,   299,   298,   666,   709,   665,     2,
    1490      298,     0,     0,     0,     0,     0,     0,     0,     0,   687,
    1491        0,   673,   624,   640,   674,     2,   620,   627,   436,   622,
    1492      623,   437,     2,   634,   643,   636,   637,   670,   671,   685,
    1493      713,   717,   715,   754,   272,     2,   749,     2,   427,   721,
    1494      726,   428,     3,   406,     3,     3,     3,   458,     0,     0,
    1495        2,   472,   469,   753,     0,   465,     2,   468,   471,     0,
    1496      298,   247,   269,     3,   276,   278,     0,   458,     2,   575,
    1497      576,     2,   614,   615,     0,   663,   541,     3,   349,   348,
    1498      351,   350,   298,   542,     0,   543,   376,     0,     0,   298,
    1499        0,     0,   696,   386,   389,   393,   551,   393,   392,   385,
    1500      378,   551,   380,   383,   298,   403,   397,   111,   404,   752,
    1501        0,     0,   441,   245,     0,     0,     3,     2,   672,   434,
    1502        0,   531,     0,   754,   755,   493,     0,   298,   298,   298,
    1503        0,   555,   557,   135,     0,     0,   220,     0,     0,     0,
    1504      228,   229,    65,     0,    67,    70,    71,     0,   133,     0,
    1505        0,     0,   697,   698,   694,   695,   463,    79,   115,   130,
    1506        3,   114,     0,    28,    40,     3,     0,    37,   110,     0,
    1507        3,   654,   658,   661,   653,     3,   596,   720,   725,     2,
    1508       72,   298,     3,     3,   299,     0,     3,   626,   630,   633,
    1509      642,   676,   680,   683,   298,     3,   625,   641,   675,   298,
    1510      298,   429,   298,   298,     0,     0,     0,     0,   261,   111,
    1511        0,     3,     3,     0,   466,     0,   462,     0,     0,   250,
    1512      298,     0,     0,   134,     0,     0,     0,     0,     0,   134,
    1513        0,     0,   114,   114,    21,     0,     0,     3,   136,   137,
    1514        2,   148,   138,   139,   140,   141,   142,   143,   150,   152,
    1515        0,     0,     0,   289,   298,   298,   551,     0,   544,   298,
    1516      379,   381,     0,   395,   697,   390,   394,   391,   384,   388,
    1517      371,   402,     0,   583,     2,   668,   667,     0,   673,     2,
    1518      486,   488,   508,     3,   516,   517,     0,     2,   512,     3,
    1519        3,     0,     0,   560,   227,     0,     0,     0,   227,     0,
    1520        0,   700,   704,   706,   699,   752,   114,     0,     3,    54,
    1521        0,    54,    54,     3,    42,    44,    39,     0,     3,   109,
    1522        0,     2,   656,   657,     0,   298,     0,     0,     0,     3,
    1523      642,     0,     2,   628,   629,     2,   644,     2,   678,   679,
    1524        0,     0,    72,     0,     3,     3,     3,     3,   414,   413,
    1525      417,   751,     2,     2,   750,     0,     0,     0,     0,     3,
    1526      467,     3,     0,   248,   151,     3,   299,   298,     0,     0,
    1527        0,     0,     2,     0,   196,     0,   194,     0,     0,     0,
    1528        0,     0,     0,     0,   551,     0,   156,   153,   298,     0,
    1529        0,   271,   283,     3,     3,   550,   617,   372,   387,   400,
    1530      298,   270,   298,     0,   519,   496,   298,     0,     0,   495,
    1531      510,     0,     0,     0,   221,     0,   230,    68,     2,   702,
    1532      703,     0,   131,   128,     0,    51,     2,    45,    52,    53,
    1533        0,     0,     0,     0,    27,     0,   659,   298,   584,   728,
    1534      729,   730,     0,   681,   298,   298,   298,     3,     3,     0,
    1535      689,     0,     0,     0,     0,   298,   298,     3,   548,   473,
    1536      474,     0,   251,   299,     0,     0,     0,     0,   298,   197,
    1537      195,   192,     0,   198,     0,     0,     0,     0,   202,   205,
    1538      203,   199,     0,   200,   134,    40,   149,   147,   249,     0,
    1539        0,   421,   425,   424,     0,   513,     2,   514,     2,   515,
    1540      509,   298,   233,     0,   231,     0,   233,   298,    36,   129,
    1541       55,     0,    43,    33,     2,    49,     2,    47,    30,     3,
    1542      731,     3,     3,     3,     0,     0,   688,   690,   631,   645,
    1543      273,     2,   411,     3,   410,     0,   476,   134,     0,     0,
    1544      134,     3,     0,   134,   193,     0,     2,     2,   214,   204,
    1545        0,     0,     0,   145,     0,   578,   618,     2,     0,     0,
    1546        2,   234,     0,     0,   222,     0,     3,     3,     0,     0,
    1547        0,     0,     0,     0,   691,   692,   298,     0,   475,   157,
    1548        0,     0,     2,   170,   134,   159,     0,   187,     0,   134,
    1549        0,     2,   161,     0,     2,     0,     2,     2,     2,   201,
    1550       37,   298,   518,   520,   511,     0,     0,     0,     0,     0,
    1551        0,     3,     3,   660,   632,   646,   682,   415,   134,   163,
    1552      166,     0,   165,   169,     3,   172,   171,     0,   134,   189,
    1553      134,     3,     0,   298,     0,   298,     0,     2,     0,     2,
    1554      144,     2,   235,   236,     0,   232,   223,   705,    46,     0,
    1555        0,   158,     0,     0,   168,   238,   173,     2,   240,   188,
    1556        0,   191,   177,   206,     3,   215,   219,   208,     3,     0,
    1557      298,     0,   298,     0,     0,     0,    50,    48,   164,   167,
    1558      134,     0,   174,   298,   134,   134,     0,   178,     0,     0,
    1559      696,   216,   217,   218,     0,   207,     3,   209,     3,   298,
    1560      224,   237,   154,   175,   160,   134,   241,   190,   185,   183,
    1561      179,   162,   134,     0,   697,     0,     0,     0,     0,   155,
    1562      176,   186,   180,   184,   183,   181,     3,     3,     0,     0,
    1563      497,   182,   210,   212,     3,     3,   211,   213
     1461       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1462     105,     2,   645,   452,   642,   546,   546,   650,   479,   293,
     1463       2,   584,   585,     0,   596,   597,     0,     2,   739,   742,
     1464     120,   293,     0,     2,   707,   294,   711,   702,   703,   709,
     1465       0,     2,     2,   667,   546,   750,   616,   546,   546,   750,
     1466     546,   630,   546,   546,   681,   434,   664,   546,   546,   672,
     1467     679,   293,   429,   294,     0,     0,   293,   717,   294,   722,
     1468     750,   714,   293,   719,   750,   293,   293,   293,     0,   120,
     1469       0,    19,     2,     0,    20,     0,   459,   748,     0,     0,
     1470     465,   240,     0,   293,     0,     0,     0,   544,   568,   572,
     1471     574,   604,   607,   611,   614,   567,   606,     0,   283,   657,
     1472       0,   293,   276,     0,     0,     0,     0,   274,     2,     0,
     1473     258,   535,   293,     0,     0,   293,     2,   363,   383,   372,
     1474       0,     0,   377,   371,   749,     0,     0,   396,     0,   294,
     1475       3,   414,     3,   418,   417,   590,     0,   530,   293,    61,
     1476       3,   293,   433,   294,     3,   427,   428,     2,     0,     0,
     1477       0,   484,   305,   293,   480,   482,     3,     2,     2,     0,
     1478     501,     3,     0,   553,   128,     0,     0,   221,     0,     0,
     1479       0,     0,    37,     0,     0,   120,   293,    21,     0,    22,
     1480       0,   691,   696,   448,   688,   546,   546,     0,   106,     3,
     1481       2,    28,     0,    34,     0,     2,    26,     0,   104,    71,
     1482      72,    73,    75,    76,    78,    79,    83,    84,    81,    82,
     1483      86,    87,    89,    91,    93,    95,    97,     0,     0,   751,
     1484     293,     0,     0,     0,   646,   647,   643,   644,   496,   495,
     1485     293,     0,   293,   713,   293,   718,   294,   293,   661,   293,
     1486     293,   704,   660,     2,   293,     0,     0,     0,     0,     0,
     1487       0,     0,     0,   682,     0,   668,   619,   635,   669,     2,
     1488     615,   622,   431,   617,   618,   432,     2,   629,   638,   631,
     1489     632,   665,   666,   680,   708,   712,   710,   750,   267,     2,
     1490     744,     2,   422,   716,   721,   423,     0,   401,     3,     3,
     1491       3,     3,   453,     3,     0,     2,   467,   464,   749,     0,
     1492     460,     2,   463,   466,     0,   293,   241,   263,     3,   271,
     1493     273,     0,   453,     2,   570,   571,     2,   609,   610,     0,
     1494     658,   536,     3,   344,   343,   346,   345,   293,   537,     0,
     1495     538,   371,     0,     0,   293,   293,     0,     0,   691,   381,
     1496     384,   388,   546,   388,   387,   380,   373,   546,   375,   378,
     1497     293,   398,   392,   102,   399,   748,     0,     0,   436,   239,
     1498       0,     0,     3,     2,   667,   429,     0,   526,     0,   750,
     1499     488,     0,   293,   293,   293,     0,   550,   552,   129,     0,
     1500       0,   214,     0,     0,     0,   222,   223,    54,     0,    56,
     1501      59,    60,     0,     2,   127,     0,     0,     0,   692,   693,
     1502     689,   690,   458,    68,    69,   107,   124,     3,   106,     0,
     1503       0,    25,    36,     3,     0,    33,   100,     0,     3,   649,
     1504     653,   656,   648,     3,   591,     3,   715,   720,     2,    61,
     1505     293,     3,     3,   294,     0,     3,   621,   625,   628,   637,
     1506     671,   675,   678,   293,     3,   620,   636,   670,   293,   293,
     1507     424,   293,   293,   745,     0,     0,     0,     0,   255,     0,
     1508     102,     0,     3,     3,     0,   461,     0,   457,     0,     0,
     1509     244,   293,     0,     0,   128,     0,     0,     0,     0,     0,
     1510     128,     0,     0,   106,   106,    19,     2,     0,     0,     3,
     1511     130,   131,     2,   142,   132,   133,   134,   135,   136,   137,
     1512     144,   146,     0,     0,     0,   284,   293,   293,   546,     0,
     1513     539,   293,   374,   376,     0,   390,   692,   385,   389,   386,
     1514     379,   383,   366,   397,     0,   578,     2,   663,   662,     0,
     1515     668,     2,   481,   483,   503,     3,   511,   512,     0,     2,
     1516     507,     3,     3,     0,     0,   555,   221,     0,     0,     0,
     1517     221,     0,     0,   120,   695,   699,   701,   694,   748,   106,
     1518       0,     3,   660,    40,     3,    38,    35,     0,     3,    99,
     1519     101,     0,     2,   651,   652,     0,     0,   293,     0,     0,
     1520       0,     3,   637,     0,     2,   623,   624,     2,   639,     2,
     1521     673,   674,     0,     0,    61,     0,     3,     3,     3,     3,
     1522     409,   408,   412,     2,     2,   747,   746,   121,     0,     0,
     1523       0,     0,     3,   462,     3,     0,   242,   145,     3,   294,
     1524     293,     0,     0,     0,     0,     2,     0,   190,     0,   188,
     1525       0,     0,     0,     0,     0,     0,     0,   546,   120,     0,
     1526     150,   147,   293,     0,     0,   266,   278,     3,     3,   545,
     1527     612,   367,   382,   395,   293,   265,   293,     0,   514,   491,
     1528     293,     0,     0,   490,   505,     0,     0,     0,   215,     0,
     1529     224,    57,     2,   697,   698,     0,   125,   122,     0,     0,
     1530       0,     0,     0,    24,     0,   654,   293,   579,   264,   723,
     1531     724,   725,     0,   676,   293,   293,   293,     3,     3,     0,
     1532     684,     0,     0,     0,     0,   293,   293,     3,   543,   121,
     1533     469,     0,     0,   245,   294,     0,     0,     0,     0,   293,
     1534     191,   189,   186,     0,   192,     0,     0,     0,     0,   196,
     1535     199,   197,   193,     0,   194,   128,    36,   143,   141,   243,
     1536       0,     0,   416,   420,   419,     0,   508,     2,   509,     2,
     1537     510,   504,   293,   227,     0,   225,     0,   227,   293,    32,
     1538     123,     2,    43,     2,    41,    39,    29,    27,     3,   726,
     1539       3,     3,     3,     0,     0,   683,   685,   626,   640,   268,
     1540       2,   406,     3,   405,     0,   471,   468,   128,     0,     0,
     1541     128,     3,     0,   128,   187,     0,     2,     2,   208,   198,
     1542       0,     0,     0,   139,     0,   573,   613,     2,     0,     0,
     1543       2,   228,     0,     0,   216,     0,     3,     0,     0,     0,
     1544       0,     0,     0,   686,   687,   293,     0,   470,   151,     0,
     1545       0,     2,   164,   128,   153,     0,   181,     0,   128,     0,
     1546       2,   155,     0,     2,     0,     2,     2,     2,   195,    33,
     1547     293,   513,   515,   506,     0,     0,     0,     0,     0,     3,
     1548       3,   655,   627,   641,   677,   410,   128,   157,   160,     0,
     1549     159,   163,     3,   166,   165,     0,   128,   183,   128,     3,
     1550       0,   293,     0,   293,     0,     2,     0,     2,   138,     2,
     1551     229,   230,     0,   226,   217,   700,     0,     0,   152,     0,
     1552       0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
     1553     200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
     1554       0,     0,     0,    44,    42,   158,   161,   128,     0,   168,
     1555     293,   128,   128,     0,   172,     0,     0,   691,   210,   211,
     1556     212,     0,   201,     3,   203,     3,   293,   218,   231,   148,
     1557     169,   154,   128,   235,   184,   179,   177,   173,   156,   128,
     1558       0,   692,     0,     0,     0,     0,   149,   170,   180,   174,
     1559     178,   177,   175,     3,     3,     0,     0,   492,   176,   204,
     1560     206,     3,     3,   205,   207
    15641561};
    15651562
     
    15671564static const yytype_int16 yydefgoto[] =
    15681565{
    1569       -1,   800,   464,   301,    47,   133,   134,   302,   303,   304,
    1570      305,   306,   752,   753,  1113,  1114,  1115,  1225,   307,   378,
    1571      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
    1572      319,   320,   321,  1010,   514,   959,   543,   323,   960,   933,
    1573     1036,  1502,  1038,  1039,  1040,  1041,  1503,  1042,  1043,  1420,
    1574     1421,  1383,  1384,  1385,  1481,  1482,  1486,  1487,  1522,  1523,
    1575     1044,  1342,  1045,  1046,  1278,  1279,  1280,  1464,  1047,   145,
    1576      939,   940,   941,  1362,  1444,  1456,  1457,   465,   466,   860,
    1577      861,  1018,    51,    52,    53,    54,    55,   345,   157,    58,
    1578       59,    60,    61,    62,   347,    64,    65,   263,    67,    68,
    1579      273,   349,   350,    71,    72,    73,   118,    75,   203,   352,
    1580      119,    78,   120,    80,    81,   451,    82,   450,   679,   680,
    1581      681,   893,  1065,   894,    83,    84,   454,   452,   687,   842,
    1582      843,   355,   356,   690,   691,   692,   357,   358,   359,   360,
    1583      462,   176,   135,   136,   518,   325,   169,   636,   637,   638,
    1584      639,   640,    85,   121,    87,   485,   486,   925,   487,   276,
    1585      491,   326,    88,   137,   138,    89,  1301,  1087,  1088,  1089,
    1586     1090,    90,    91,   708,    92,   272,    93,    94,   186,  1012,
    1587      670,   409,   125,    95,   497,   498,   499,   187,   267,   189,
    1588      190,   191,   268,    98,    99,   100,   101,   102,   103,   104,
    1589      194,   195,   196,   197,   198,   812,   598,   599,   600,   601,
    1590      199,   603,   604,   605,   567,   568,   569,   570,   742,   105,
    1591      607,   608,   609,   610,   611,   612,   953,   744,   745,   746,
    1592      588,   363,   364,   365,   366,   327,   163,   107,   108,   109,
    1593      368,   685,   715
     1566      -1,   814,   468,   300,    47,   133,   134,   301,   302,   303,
     1567     304,   305,   762,   763,  1134,  1135,   306,   381,   308,   309,
     1568     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     1569     320,  1031,   518,   976,   547,   322,   977,   948,  1058,  1519,
     1570    1060,  1061,  1062,  1063,  1520,  1064,  1065,  1438,  1439,  1402,
     1571    1403,  1404,  1498,  1499,  1503,  1504,  1539,  1540,  1066,  1362,
     1572    1067,  1068,  1299,  1300,  1301,  1481,  1069,   145,   954,   955,
     1573     956,  1382,  1462,  1473,  1474,   469,   470,   875,   876,  1039,
     1574      51,    52,    53,    54,    55,   347,   158,    58,    59,    60,
     1575      61,    62,   349,    64,    65,   264,    67,    68,   274,   351,
     1576     352,    71,    72,    73,   118,    75,   204,   354,   119,    78,
     1577     120,    80,    81,   455,    82,   454,   689,   690,   691,   909,
     1578    1087,   910,    83,    84,   458,   456,   697,   856,   857,   858,
     1579     859,   700,   701,   702,   359,   360,   361,   362,   466,   340,
     1580     135,   136,   522,   324,   170,   646,   647,   648,   649,   650,
     1581      85,   121,    87,   489,   490,   940,   491,   277,   495,   325,
     1582      88,   137,   138,    89,  1322,  1109,  1110,  1111,  1112,    90,
     1583      91,   718,    92,   273,    93,    94,   187,  1033,   680,   412,
     1584     125,    95,   501,   502,   503,   188,   268,   190,   191,   192,
     1585     269,    98,    99,   100,   101,   102,   103,   104,   195,   196,
     1586     197,   198,   199,   826,   606,   607,   608,   609,   200,   611,
     1587     612,   613,   573,   574,   575,   576,   752,   105,   615,   616,
     1588     617,   618,   619,   620,   969,   754,   755,   756,   596,   365,
     1589     366,   367,   368,   326,   164,   107,   108,   109,   370,   695,
     1590     570
    15941591};
    15951592
    15961593/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15971594   STATE-NUM.  */
    1598 #define YYPACT_NINF -1333
     1595#define YYPACT_NINF -1323
    15991596static const yytype_int16 yypact[] =
    16001597{
    1601     6694,  7975, -1333,   -14, -1333, -1333, -1333, -1333, -1333, -1333,
    1602    -1333,    26, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1603    -1333, -1333, -1333, -1333, -1333, -1333,   109,   109,   109,   759,
    1604      860,    66,  6930,   241, -1333, -1333, -1333, -1333, -1333,   199,
    1605    -1333, -1333, -1333,  1264,   207, -1333, -1333, -1333, -1333,  8320,
    1606    -1333, -1333, -1333, -1333,     3,   216, -1333,  1096, -1333, -1333,
    1607    -1333, -1333,   265,  1996,   389,    54,  5394, -1333, -1333,  8320,
    1608      780, -1333, -1333,   554,   416,  3688,   749,   995,   554,  1130,
    1609    -1333, -1333,   768,   826, -1333,   554,  1144, -1333,   313, -1333,
    1610      443,   462, -1333, -1333, -1333, -1333,   358,   216,   109, -1333,
    1611      109, -1333, -1333, -1333, -1333,  8461,  1096, -1333, -1333,  1096,
    1612    -1333,   414, -1333,  8545, -1333, -1333,  2376,  8575, -1333,  1138,
    1613     1138,  1138, -1333, -1333, -1333,   109, -1333, -1333, -1333,   370,
    1614      444,   488, -1333, -1333, -1333,   518, -1333, -1333, -1333, -1333,
    1615    -1333,   525,   576, -1333, -1333,    50,  8059,  1902,   238,   538,
    1616      578,   604,   613,   618,   635,  8659,  6327,   649, -1333,  8431,
    1617    -1333, -1333, -1333, -1333,   661, -1333,   -10,  9338,  9338, -1333,
    1618      662,   181, -1333, -1333, -1333, -1333,   680,   348,   393,   400,
    1619      109,   685, -1333, -1333,  1996,  2098,   801, -1333,    51, -1333,
    1620      109,   109,   216, -1333, -1333,   180, -1333,   109,   109, -1333,
    1621     2242,   712,   751,  1138,  6116, -1333, -1333, -1333,  8320, -1333,
    1622    -1333,   554, -1333, -1333, -1333,   216, -1333,  1096,     3, -1333,
    1623     7196, -1333,  1138,  1138,  1138,   216, -1333,   759, -1333,  4572,
    1624    -1333, -1333,   739,  1138, -1333,  1138, -1333,   199,  8059, -1333,
    1625      775, -1333,   860,   777,  1138, -1333,   759,   771,   804, -1333,
    1626     6930,   594, -1333, -1333, -1333,  4461, -1333, -1333,  5315, -1333,
    1627      801,   101,  9515,  8575,  2376,  2242, -1333,   187, -1333, -1333,
    1628     8545,  1096,   786, 10191, -1333, -1333,   434, -1333,  9931,   803,
    1629      866,  9574,   842,  9515,  9633, -1333,   845, -1333, -1333, -1333,
    1630    -1333, -1333, -1333,  9692,  9692,  7829,   207, -1333, -1333, -1333,
    1631    -1333, -1333, -1333, -1333,   885, -1333,  1691,  2462,  8059,  9515,
    1632    -1333,   558,   367,   614,   669,   742,   852,   846,   858,   883,
    1633      -13, -1333, -1333, -1333,   737, -1333,   269, -1333, -1333,  1902,
    1634    -1333, -1333,   465,   880, -1333,   586,   880, -1333, -1333,  8461,
    1635    -1333,   890,   897,  8174, -1333, -1333,  1514,  1088,  7619,  6116,
    1636      554, -1333,   554,  1138,  1138, -1333, -1333, -1333, -1333, -1333,
    1637    -1333,  1138,  8461,  1096, -1333, -1333,  8659,  1872, -1333, -1333,
    1638    -1333, -1333, -1333, -1333, -1333, -1333, -1333,  9279,  9515, -1333,
    1639    -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1640    -1333, -1333, -1333,  2376, -1333,   105,   903,   926,   928,   796,
    1641      931,   941,   943,  2098, -1333, -1333,   952,     3,   954, -1333,
    1642    -1333,   961, -1333, -1333, -1333,  4461, -1333, -1333, -1333, -1333,
    1643    -1333,  2242, -1333,  8059,  8059, -1333,  1138,  2376,  6237,  7691,
    1644    -1333, -1333, -1333, -1333,  4461,   101, -1333, -1333,   554,   216,
    1645    -1333, -1333,  4461, -1333,  5995, -1333, -1333,  1138,  1138,   394,
    1646     7535,   966,   959,   955,   974,  1138, -1333, -1333, -1333, -1333,
    1647     5606, -1333,   424,  5852, -1333,   216,   977, -1333,  2376, 10015,
    1648     9751, -1333, -1333, -1333, -1333,   884,  2242, -1333,  7691,   801,
    1649     6812, -1333, -1333, -1333,  1296,   456,   986,   860, 10191,  1468,
    1650     8545, -1333, 10191, -1333, -1333, -1333, -1333,   473, -1333,   988,
    1651      866,   242,  7829, -1333,  8689, -1333, -1333,  7829, -1333,  7944,
    1652     7829, -1333, -1333,   207, -1333,   485,  1009,   881,  1014, -1333,
    1653    -1333,  6085, -1333, -1333,   360, -1333, -1333,  9515, -1333,   362,
    1654     9515, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1655    -1333, -1333, -1333,  9515, -1333, -1333,  9515,  9515,  9515,  9515,
    1656     9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,
    1657     9515,  9515,  9515,  9515,  3091,   737,  1207, -1333, -1333,   109,
    1658      109, -1333, -1333,  8059, -1333, -1333,   961,   594, -1333,   961,
    1659     9810, -1333, -1333,  8659,  6085,   993, -1333,  8575, -1333, -1333,
    1660      661, -1333,  1039,   587,  1045,  2359,   209,   986, -1333,   109,
    1661      109,   986,   212, -1333,   109,   109,   961, -1333, -1333,   109,
    1662      109, -1333,   880,  8773,  1096, 10160,   415,   496,  8773, -1333,
    1663     5315, -1333,   986, -1333,  8461, -1333,   126,  7313,  7313,  1096,
    1664     9397,  1029, -1333,  1354,  1033,  1043, -1333,  1060,  9338,   407,
    1665    -1333,  1151,  1096,  7313,   594,  2376,   594,   801,   631,   880,
    1666    -1333, -1333,   692,   880, -1333, -1333, -1333,   866, -1333,   880,
    1667      216,  5606, -1333,   494,  1073,   520,  1074, -1333,   890,   216,
    1668    -1333, -1333,  4461,   216,  1071,  8689,   207, -1333,   972, -1333,
    1669      401,   438,   860, -1333,   860,  1075,  9515, -1333,   860, 10160,
    1670    -1333, -1333,  1079, -1333, -1333, -1333,   594, -1333, 10088,   897,
    1671    -1333,  7313,   960,  7619, -1333, -1333,   661,  1076,  1081,  1296,
    1672     2130, -1333, -1333, 10191,  9515, -1333, -1333,  1085, -1333, -1333,
    1673     1093, -1333,  1085,  1098,  9931,  9515,  1097,  1094,    38,  1119,
    1674     1115,  1124,  1125, -1333,  1126,  1127,  6085, -1333,  9515, -1333,
    1675      881,  1631, -1333, -1333, -1333,   109,   109,  9456,  9515,  1132,
    1676    -1333, -1333,   577, -1333,  9515, -1333, -1333,   843, -1333, -1333,
    1677    -1333, -1333,   558,   558,   367,   367,   614,   614,   614,   614,
    1678      669,   669,   742,   852,   846,   858,   883,  9515,   296,  5606,
    1679     1131,  1133,  1136,  1207, -1333, -1333, -1333, -1333, -1333,  5606,
    1680      616, -1333,  8461, -1333,  6448,  8289, -1333, -1333, -1333,   587,
    1681     5606,   990,  1140,  1141,  1142,  1145,  1146,  1147,  1149, -1333,
    1682     2845,  2359, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1683    -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,   961,
    1684    -1333, -1333, -1333,   986, -1333, -1333, -1333, -1333, -1333, -1333,
    1685    -1333, -1333, -1333, -1333,  1150,  1152, -1333,     3,  1132,  9397,
    1686    -1333, -1333, -1333,  9279,  1154, -1333, -1333, -1333, -1333,   860,
    1687     5689,  1243, -1333, -1333, -1333, -1333,  1143,     3, -1333, -1333,
    1688      961, -1333, -1333,   961,    14,   961, -1333, -1333, -1333, -1333,
    1689    -1333, -1333,  6327, -1333,   216, -1333, -1333,   452,   487,  6327,
    1690     1790,  9515,  2983, -1333, -1333,  1153,    20,  1153, -1333,   860,
    1691    -1333,   109, -1333, -1333,  8090,   955, -1333, -1333, -1333,   959,
    1692     1161,  1157, -1333, -1333,  1163,  1164, -1333,   960,  1700, -1333,
    1693      539, -1333,  2130,   986, -1333, -1333,  1167, 10191,  8545,  8059,
    1694     1169, -1333, -1333,  1165,  1170,  1171, -1333,  9515,  1173,   310,
    1695     1177, -1333,  1180,   594,  1180, -1333, -1333,  1180, -1333,  1195,
    1696     1197,  1201,  1631, -1333, -1333, -1333,  9279, -1333, -1333, -1333,
    1697     1196,  9515,   730, -1333,  9515, -1333,   730, -1333, -1333,  9515,
    1698    -1333,   748,   880, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1699      897,  8174, -1333, -1333,  6569,  1203, -1333,   758,   880, -1333,
    1700      763,   830,   880, -1333,  1138,  4995, -1333, -1333, -1333,  5606,
    1701     5606, -1333,  7691,  7691,  1205,  1210,  1223,  1209, -1333,   551,
    1702      162,  1132, -1333,   730, -1333,  9338, -1333,  9515,   513, -1333,
    1703     5964,  1214,  1227,  9220,  1234,  1235,    42,   160,   163,  9515,
    1704     1237,   216,  9515,  9515,  1226,   304,  1229, -1333, -1333, -1333,
    1705     1244, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1706      860,  1248,  9515, -1333,  5606,  5606,   109,  1254, -1333,  8205,
    1707    -1333, -1333,   773, -1333,  2983, -1333, -1333, -1333, -1333,   972,
    1708    -1333, -1333,  1250, -1333, -1333, -1333, -1333,  1257,  1700, -1333,
    1709    -1333,  1241, -1333,  1085, -1333, -1333,  2376,  1256, -1333, -1333,
    1710    -1333,   617,  1258, -1333,    38,  1266,  9515,  1245,    38,    38,
    1711     1274,   878,   880, -1333, -1333,  1060,  9515,  1276,  1196, -1333,
    1712      841, -1333, -1333,  1270, -1333,   215, -1333,  1279,  1270, -1333,
    1713     1282, -1333, -1333,   961,  1283,  6206,  1284,  1285,  1286, -1333,
    1714    -1333,  1290, -1333, -1333,   961, -1333, -1333, -1333, -1333,   961,
    1715     9515,  9515,   897,  1291, -1333, -1333, -1333, -1333, -1333, -1333,
    1716    -1333, -1333, -1333, -1333, -1333,  9515,  9515,  1295,  1297,  1270,
    1717    -1333, -1333,   860, -1333, -1333, -1333,  7124,  8545,  9515,  9515,
    1718     1350,  9515, -1333,  1278, -1333,  1280, -1333,  1288,  9515,  1293,
    1719     9515,  1056,  1298,    72,   109,  2402, -1333, -1333,  5689,  1287,
    1720      521, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1721     9036, -1333,  7691,  1305, -1333, -1333,  8545,   522,   524, -1333,
    1722     1308,  1302,   866,  1318, -1333,   325, -1333, -1333, -1333, -1333,
    1723      961,  1324, -1333, -1333,  1328,  1363, -1333, -1333,  1363,  1363,
    1724      730,  1333,  1026,  1220, -1333,  1339, -1333,  5606, -1333, -1333,
    1725    -1333, -1333,  1340, -1333,  5606,  5606,  5606, -1333, -1333,  1341,
    1726    -1333,  1342,  1345,  1347,   600,  7385,  7502, -1333, -1333, -1333,
    1727    -1333,  1352, -1333,  7763,   633,   634,  1353,   658,  5821, -1333,
    1728    -1333, -1333,   528, -1333,   659,  1362,  1364,   216,  1401,   965,
    1729    -1333, -1333,  9515, -1333,  9220,  9515, -1333, -1333, -1333,  1365,
    1730     1367, -1333, -1333, -1333,  1358, -1333, -1333, -1333, -1333, -1333,
    1731    -1333,  8545,   866,  1373, -1333,  1368,   866,  5606, -1333, -1333,
    1732    -1333,   730, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
    1733    -1333, -1333, -1333, -1333,  1384,  1391, -1333, -1333, -1333, -1333,
    1734    -1333, -1333, -1333,  1404, -1333,  1408, -1333,  9220,   198,  9515,
    1735     9220, -1333,  1406,  9515, -1333,   323,  1378,  1427, -1333, -1333,
    1736     1416,  1417,  1395, -1333,   910, -1333, -1333, -1333,  1096,  2376,
    1737     1413, -1333,   326,  9515, -1333,   663, -1333,  1270,   730,   730,
    1738     1420,  1424,  1425,  1434, -1333, -1333,  7691,  1429, -1333,  1489,
    1739     9515,  1426, -1333, -1333,  9130, -1333,   689, -1333,  1414,  9220,
    1740     1418, -1333, -1333,  1445, -1333,  1449, -1333,  1467,  1469, -1333,
    1741     1435,  8545, -1333, -1333, -1333,   866,   594,  1456,  1436,  1460,
    1742     1466,  1270,  1270, -1333, -1333, -1333, -1333, -1333,  9220,   194,
    1743    -1333,   376, -1333, -1333,  7048, -1333, -1333,  1447,  9515, -1333,
    1744     9515,  7048,   216,  8689,   216,  8689,  1470, -1333,  1471, -1333,
    1745    -1333,  1477, -1333, -1333,   720, -1333, -1333, -1333, -1333,  1473,
    1746     1481, -1333,  9515,  9515, -1333, -1333,   991,    94, -1333, -1333,
    1747     1462, -1333,   991, -1333, -1333,  2158,   594, -1333, -1333,   216,
    1748     8689,   216,  8689,  1487,  1463,   594, -1333, -1333, -1333, -1333,
    1749     9130,  1484,   991,  5522,  9515,  9040,  1485,   991,  1493,  2158,
    1750     3005, -1333, -1333, -1333,  1494, -1333, -1333, -1333, -1333,  8059,
    1751    -1333, -1333, -1333,  8905, -1333,  9130, -1333, -1333,  1474,  8815,
    1752    -1333, -1333,  9040,   216,  3005,   216,  1498,  1500,   729, -1333,
    1753     8905, -1333, -1333, -1333,  8815, -1333, -1333, -1333,   216,   216,
    1754    -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333
     1598    7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
     1599   -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1600   -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
     1601     733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
     1602   -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
     1603   -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
     1604   -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
     1605    1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
     1606   -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
     1607     616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
     1608      85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
     1609   -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
     1610     844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
     1611     608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
     1612   -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
     1613     717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
     1614    5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
     1615   -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
     1616     534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
     1617   -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
     1618   -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
     1619   -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
     1620   -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
     1621    5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
     1622   -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
     1623   -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
     1624   -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
     1625   -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
     1626     922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
     1627   -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
     1628   -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
     1629     756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
     1630   -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
     1631   -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
     1632     990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
     1633    8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
     1634   -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
     1635   -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
     1636    5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1637   -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
     1638     992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
     1639     229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
     1640   -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
     1641    1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
     1642   -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
     1643   -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
     1644   -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
     1645    1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
     1646    4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
     1647     962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
     1648   -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
     1649   -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
     1650    1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
     1651   -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
     1652   -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
     1653   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
     1654   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
     1655   -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
     1656   -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
     1657    5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
     1658    1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
     1659     132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
     1660     985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
     1661     962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
     1662    5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
     1663   -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
     1664   -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
     1665     285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
     1666   -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
     1667     538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
     1668   -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
     1669   -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
     1670    5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
     1671   -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
     1672    1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
     1673     682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
     1674   -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
     1675   -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
     1676     411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
     1677    9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
     1678    9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
     1679    6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
     1680    1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
     1681   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1682   -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
     1683   -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
     1684   -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
     1685   -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
     1686   -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
     1687    1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
     1688   -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
     1689   -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
     1690    8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
     1691    1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
     1692   -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
     1693    1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
     1694   -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
     1695   -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
     1696     631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
     1697     985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
     1698    9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
     1699     861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
     1700   -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
     1701     685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
     1702   -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
     1703   10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
     1704   -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1705   -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
     1706   -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
     1707   -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
     1708    1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
     1709   -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
     1710      94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
     1711    1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
     1712   -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
     1713    1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
     1714   -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
     1715   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
     1716    1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
     1717    9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
     1718    1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
     1719   -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
     1720   -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
     1721    9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
     1722   -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
     1723     509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
     1724   -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
     1725   -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
     1726   -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
     1727   -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
     1728     834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
     1729    1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
     1730   -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
     1731   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1732   -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
     1733   -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
     1734   10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
     1735    1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
     1736    1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
     1737    1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
     1738    1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
     1739   -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
     1740    9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
     1741    1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
     1742   -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
     1743     285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
     1744   -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
     1745   10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
     1746   -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
     1747    1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
     1748    6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
     1749   -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
     1750    9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
     1751     285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
     1752   -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
     1753   -1323, -1323, -1323, -1323, -1323
    17551754};
    17561755
     
    17581757static const yytype_int16 yypgoto[] =
    17591758{
    1760    -1333,  3826,  2645, -1333,   849, -1333,   762,   867,  -112,   956,
    1761    -1333,   580,  -517,  -490,  -904,  -999, -1333,   -62,  4003,     0,
    1762    -1333,   676,   547,   572,   581,   571,  1057,  1058,  1059,  1055,
    1763     1061, -1333,   963,  -485,  4467,  -910, -1333, -1333,   665,   184,
    1764     -691,   319, -1333,   356, -1333,   440, -1283, -1333, -1333,   176,
    1765    -1333, -1072, -1062,   285, -1333, -1333, -1333, -1333,   107, -1332,
    1766    -1333, -1333, -1333, -1333, -1333, -1333,   359, -1109,    16, -1333,
    1767     -288, -1333,   535,   330, -1333,   208, -1333,  -237, -1333, -1333,
    1768    -1333,   596,  -693, -1333, -1333,     9,  -933,   372,  2238, -1333,
    1769    -1333, -1333,   -57, -1333,   110,    36,  -194,  1419,  3198, -1333,
    1770    -1333,    12,    61,  1486,  1572, -1333,  1265, -1333, -1333,    21,
    1771     1950, -1333,  2034,  1735, -1333, -1333, -1333,  -611, -1333,   975,
    1772      976,   584,   761,   136, -1333, -1333, -1333,   967,   755,  -456,
    1773    -1333,  -528,  -433,   832, -1333, -1333,  -922,  -915,  -420,  1560,
    1774     1084,    19, -1333,   388,   467,  -359,  -203,  -145,   706,   811,
    1775    -1333,  1028, -1333,  2348,   798,  -442,   958, -1333, -1333,   740,
    1776    -1333,  -233, -1333,   118, -1333, -1333, -1333, -1243,   466, -1333,
    1777    -1333, -1333,  1188, -1333,    -1, -1333, -1333,  -832,  -108, -1152,
    1778     -131,  3669, -1333,  4255, -1333,   951, -1333,  -125,   120,  -178,
    1779     -173,  -170,     7,   -41,   -40,   -39,   619,    -5,    25,    46,
    1780       -4,  -167,  -166,  -158,  -157,  -296,  -519,  -516,  -510,  -538,
    1781     -311,  -552, -1333, -1333,  -514,  1111,  1112,  1114,  1610,  4174,
    1782     -565,  -560,  -546,  -522,  -389, -1333,  -475,  -720,  -716,  -715,
    1783     -584,  -222,  -287, -1333, -1333,    47,   102,   -51, -1333,  3453,
    1784      108,  -602,  -196
     1759   -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
     1760   -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
     1761     423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
     1762    -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
     1763   -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
     1764   -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
     1765   -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
     1766     482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
     1767    -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
     1768     -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
     1769      54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
     1770    2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
     1771     699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
     1772      34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
     1773   -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
     1774   -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
     1775   -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
     1776    1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
     1777   -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
     1778       7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
     1779    -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
     1780   -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
     1781    -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
     1782    -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
     1783    -397
    17851784};
    17861785
     
    17881787   positive, shift that token.  If negative, reduce the rule which
    17891788   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1790 #define YYTABLE_NINF -527
     1789#define YYTABLE_NINF -522
    17911790static const yytype_int16 yytable[] =
    17921791{
    1793       49,   113,   149,   150,   151,   449,   396,    97,   266,   425,
    1794      114,   397,    69,   757,   398,   436,    50,   399,   400,   732,
    1795      949,    76,   380,   381,   950,   951,   401,   402,  1049,   831,
    1796      814,   143,    49,   806,   934,   854,   602,   116,   152,    97,
    1797      693,   805,   743,   147,    69,   704,   717,   807,    50,    49,
    1798      722,   597,   784,    76,   259,   407,   160,   813,  1360,    31,
    1799      404,    70,  1118,   185,   664,   666,   208,   122,   153,    49,
    1800      192,   808,   904,   215,   802,   621,   225,   803,   218,   625,
    1801     1148,  1149,   201,   804,   563,   158,   396,  1165,  1150,   154,
    1802       31,   397,   422,    70,   398,   522,   162,   399,   400,   844,
    1803      844,   279,   106,   106,   340,   113,   401,   402,   374,  1159,
    1804       63,  1227,   167,   113,  1173,   844,   265,   270,   564,   289,
    1805       96,   589,  1182,  1183,   375,   260,  1056,   211,   261,   471,
    1806      473,   721,   202,   408,   106,  1282,   168,   123,  -239,  -239,
    1807      404,   257,    63,   149,   150,   151,   308,   147,    31,   158,
    1808      734,   937,    96,  1510,   160,   113,   343,   165,  1441,   208,
    1809      162,   280,   251,   148,   408,   406,   370,  1048,   501,    96,
    1810      949,   106,   846,   844,   950,   951,  1174,   142,   660,   152,
    1811     1525,   405,   324,   188,   185,   185,    96,   863,   711,    96,
    1812      802,   338,   160,   803,   845,   845,  1222,   669,   467,   804,
    1813      265,   908,  1509,   898,   658,   673,  1283,   817,    49,   153,
    1814      845,  -239,   472,   824,   788,   160,   251,   330,   408,    31,
    1815      208,   165,  1520,   149,   150,   151,    31,   439,  1422,  1524,
    1816      154,  1312,  1175,  1315,  1317,  1177,   435,   472,   308,   806,
    1817      427,   693,  1380,  1381,   430,   916,   998,   985,    31,   459,
    1818       49,    31,   144,   807,   328,   431,   705,    97,   270,   714,
    1819     1155,   405,    69,   270,   265,   265,    50,    96,   845,   974,
    1820      113,    76,   160,   997,   324,  1059,    76,   808,   655,    96,
    1821      802,   438,  1178,   803,   602,   647,  1156,  1150,   582,   804,
    1822      479,   416,  1452,   408,  1176,   308,   793,   496,   477,   384,
    1823      408,  1422,  1232,   704,   395,   188,   430,  1072,   308,   484,
    1824      146,    70,  1426,   662,  1382,   385,   432,   431,  1156,   667,
    1825      815,   155,   594,   822,   566,   594,  1468,  1164,    96,   147,
    1826     1233,   517,   170,  1148,  1149,  1165,   370,   840,  1179,   113,
    1827       96,  1150,   519,   343,   158,   443,   328,   595,   613,   251,
    1828      330,   655,   106,   814,   727,   162,  1049,   806,   467,   693,
    1829       63,  1496,   618,  1498,   456,   468,   618,  1380,  1381,   693,
    1830       96,   807,    56,   115,   728,   581,   285,   467,   432,   586,
    1831      693,   572,   622,   180,   475,   467,   626,   573,   726,    41,
    1832       42,   589,   200,   265,  1480,   808,   589,   831,   619,   656,
    1833     1485,   818,   623,   185,    56,   821,  1063,  1367,  1426,   211,
    1834      370,   172,   817,  1426,   738,   510,   165,   376,   141,  -294,
    1835     1505,   265,  1097,   308,   308,  1512,   838,   265,   969,   618,
    1836      841,   246,   110,  1426,   110,   884,    76,  1305,   209,  1391,
    1837     1426,   219,  1098,   249,  1405,    41,    42,    41,    42,    96,
    1838      113,   591,  1095,   252,  1417,    76,   704,  1306,  1406,   324,
    1839      324,  1150,  -522,    76,  1411,  1412,   387,   596,   265,   251,
    1840      240,   243,   656,   750,  1116,   755,   265,  1104,   618,   515,
    1841       49,   -12,   388,   370,   710,  1083,   678,    97,   549,   550,
    1842      113,  1165,    69,   855,  1453,  1048,    50,   682,  1165,   116,
    1843      602,    76,   308,  1221,   113,   978,   674,   308,  1454,   308,
    1844      308,   389,   573,   998,   705,   996,   867,   741,   391,   899,
    1845      856,   343,   633,   188,   484,   468,   324,   390,   484,   834,
    1846      211,   328,   328,   835,   392,   900,   695,   865,   517,   857,
    1847      517,    70,   696,   517,   468,   324,   517,   262,   414,   519,
    1848     1165,   519,   468,   895,   519,  -446,   901,   519,     2,   205,
    1849        4,     5,     6,     7,   489,   566,   566,   490,   712,  1147,
    1850      899,   433,   902,   308,   713,  1343,   574,  1341,   408,   693,
    1851      693,   441,   106,   618,   343,   723,  1060,   613,   702,  1104,
    1852       63,   724,   437,   595,   898,   595,   795,   737,   328,  -447,
    1853       96,  1136,  1138,   738,   596,   901,   878,   663,   665,   324,
    1854      836,  1213,   738,   618,   837,   467,   938,   328,   618,   791,
    1855      613,  1061,    56,    35,   618,    36,   996,   618,   618,   275,
    1856      453,  1162,   880,   833,   693,   693,   277,  1001,   738,  1162,
    1857     1296,   913,  1298,   618,  1008,   265,   738,  1163,   847,   830,
    1858      331,   516,  1390,   836,   586,  1288,  1297,  1079,  1299,    37,
    1859      839,   862,  1344,    40,  1053,  -112,   110,   705,   161,  -112,
    1860     1257,  1258,    41,    42,   897,   113,   438,   546,   892,    41,
    1861       42,   328,   193,   547,   548,   216,   515,   278,   226,   963,
    1862      332,   515,   704,    76,   515,   964,  1091,   577,   799,   408,
    1863      594,   618,   918,   613,   551,   552,    45,    46,  1014,   710,
    1864      710,   678,   396,   801,  1330,   596,   333,   397,  1331,    76,
    1865      398,   832,   682,   399,   400,   334,   591,  1080,   976,  1209,
    1866      335,  1458,   401,   402,   696,   573,   343,  1460,  1458,  1461,
    1867      741,   741,   868,   496,   408,  1337,  1338,   336,   778,   484,
    1868      211,   738,   738,     2,   205,     4,     5,     6,     7,   589,
    1869      369,   553,   554,   111,   211,   635,   161,   404,  1354,   949,
    1870     1340,  1345,   373,   950,   951,  1408,   738,   738,   371,   382,
    1871     1292,  1405,   468,   566,     2,   205,     4,     5,     6,     7,
    1872     1506,   386,   618,  1507,   981,   671,   555,   556,   896,   595,
    1873     1140,  1427,   110,   871,   161,   408,  1211,   738,   468,  1109,
    1874     1215,   595,  1110,   227,  1111,    41,    42,   693,    35,   394,
    1875       36,   697,  1333,   423,   693,   693,   693,   161,   977,   801,
    1876      596,   129,  1474,   130,   131,   132,   557,   558,  1475,   440,
    1877      110,  1530,   139,   237,    41,    42,   702,   573,   565,    35,
    1878      408,    36,    56,    41,    42,   211,    45,    46,   516,  1121,
    1879      308,   408,   424,   516,   214,   406,   516,    48,   112,  1132,
    1880     1160,   408,    69,   446,  1135,   716,   594,   720,  1407,   238,
    1881      241,    76,   343,    -3,   239,   330,   408,   693,   405,   343,
    1882      892,  -370,   892,  -399,   795,  1419,   112,   112,   110,    48,
    1883      139,   140,   480,   705,   113,   457,   175,   416,   651,   408,
    1884       48,    41,    42,   110,   500,   214,    48,   918,   918,   801,
    1885     1109,    70,   710,  1110,    48,  1111,    41,    42,   113,   308,
    1886       48,   596,   110,    48,   139,   140,    48,  1084,   458,   655,
    1887      678,  1137,   242,   594,   895,    41,    42,   289,   371,   112,
    1888      112,   682,   741,   504,  1226,   175,   509,   214,   175,   506,
    1889      967,   964,   106,   484,  1086,   324,   522,  1478,  1419,   729,
    1890       63,   730,   559,    48,   731,   560,    48,   735,  1204,   562,
    1891      705,   343,   938,    48,   544,   545,   938,   938,   561,  1218,
    1892     1492,   408,   740,   337,   408,   477,   330,   408,  -295,   702,
    1893       45,    46,   618,   618,   583,     8,     9,    10,    11,    12,
    1894     1062,    -3,   896,   461,    48,   648,   876,   830,   214,   544,
    1895      308,   851,   371,  1350,  1351,   883,    48,  1400,   964,   885,
    1896      106,  1066,  1167,  1066,    31,  1380,  1381,   328,   649,  1104,
    1897      650,    76,   596,   652,    37,   438,   182,   183,    40,  1228,
    1898     1229,    48,    48,   653,   544,   654,   214,    41,    42,   113,
    1899      656,   214,    34,   657,   892,   897,   175,    48,   659,   892,
    1900      903,   917,   905,   594,   256,    48,   453,   684,   918,    45,
    1901       46,    70,   683,   890,    48,   408,   265,    48,   686,   832,
    1902      688,    45,    46,  -243,   112,   678,   762,   763,   110,   725,
    1903     1303,   815,   330,   594,   891,  1109,   682,   796,  1110,   112,
    1904     1111,    41,    42,   112,  1275,  1276,  1277,    48,   112,   714,
    1905      175,   739,   106,   764,   765,   343,   747,   175,   770,   771,
    1906      468,    48,    48,  -296,   766,   767,   768,   769,    48,  1314,
    1907        8,     9,    10,    11,    12,    48,   214,  -297,     8,     9,
    1908       10,    11,    12,   798,     8,     9,    10,    11,    12,   809,
    1909       37,   -14,   182,   183,    40,   -15,   270,   113,    37,    31,
    1910      173,   174,    40,    41,    42,   852,   218,    31,   853,  1037,
    1911      859,    41,    42,    31,   896,   879,   881,   886,   308,   896,
    1912     1361,  -420,   906,  -526,  1361,   175,    48,    34,   921,   593,
    1913       69,   594,   618,   713,   929,    34,   113,    45,    46,    76,
    1914      931,    34,   175,    48,    48,  1084,   175,     8,     9,    10,
    1915       11,    12,   759,   760,   761,   111,   214,   211,   936,   935,
    1916       48,   942,    56,   943,    48,   702,   944,   945,   946,   947,
    1917     1058,   635,  1086,   971,   634,   972,    31,  1019,   973,    70,
    1918      961,  1403,   987,   988,   989,   618,   618,   990,   991,   992,
    1919       48,   993,  -408,   270,  -407,    74,  1518,   214,   308,   106,
    1920       48,  1016,  1050,  1073,    34,  1074,  1052,  1075,  1076,  1082,
    1921     1167,  1092,  1093,   738,  1096,   891,   751,  1068,    48,    76,
    1922      106,   756,   110,  1442,    48,  1099,   956,    74,    63,  1109,
    1923     1085,   113,  1110,  1094,  1111,    41,    42,  1101,   106,  1102,
    1924     1084,   396,   702,  1103,  1106,  1130,   397,  1151,   565,   398,
    1925      408,  1154,   399,   400,   438,  1168,    45,    46,  1152,    70,
    1926      112,   401,   402,  1316,   221,    48,    37,  1086,  1169,   461,
    1927       40,  1153,  1170,    48,   635,  1171,  1172,    48,  1180,    41,
    1928       42,    48,  1264,  1265,   112,  1267,   112,  1491,  1184,   265,
    1929     1191,    -3,  1272,  1186,  1274,   404,  1196,  1199,    37,  1201,
    1930      106,   489,    40,  1205,  1210,    43,   618,  1402,   468,  1214,
    1931     1212,    41,    42,    45,    46,   214,  1217,  1181,  1230,   655,
    1932     1223,   112,    56,  1234,  1236,  1238,   112,  1266,  1239,  1240,
    1933     1241,   113,  1243,   106,  1287,  1250,   864,   709,   866,  1259,
    1934     1084,  1260,  1269,   214,  1270,    45,    46,  1294,   214,    66,
    1935      117,   351,  1271,   957,   113,  1300,   110,  1273,   139,   140,
    1936     1304,   113,  1281,   113,  1302,   113,  1167,  1086,  1019,    41,
    1937       42,  1308,  1309,  1167,   112,    76,  1310,  1313,   149,   150,
    1938      151,    66,    76,  1318,  1320,  1326,  1327,  1328,   912,  1329,
    1939       48,  1277,    48,   175,  1339,  1490,  1336,   850,   159,  1465,
    1940      113,  1465,   113,  1346,  1357,  1347,  1393,  1355,   175,  1356,
    1941     1466,    48,  1466,   113,  1363,    70,   405,   214,   220,  1490,
    1942     1490,   175,    70,   877,   445,  1167,    48,   160,  1374,   308,
    1943      112,   214,  1364,   106,    76,  1375,  1465,  1037,  1465,    48,
    1944      656,   112,    48,   112,  1490,    74,  -409,  1466,  1389,  1466,
    1945       74,   370,  1378,  1386,   258,  1395,   106,  1397,  1398,  1399,
    1946     1404,  1418,  1413,   106,   468,   324,  1414,  1415,   209,   219,
    1947      110,   468,   139,   140,    70,    48,  1416,  1331,  1428,   112,
    1948     1262,   112,  1430,    41,    42,   112,   228,  1432,  1423,   229,
    1949       56,  1434,   233,   112,   235,  1436,   329,  1438,  1445,  1440,
    1950     1446,   244,  1447,   175,   258,   348,    48,    48,  1085,   718,
    1951     1448,  1459,  1469,  1471,   719,   106,    37,  1476,   173,   174,
    1952       40,    48,   214,   468,  1473,  1477,  1484,  1500,  1499,    41,
    1953       42,  1504,  1511,  1353,   403,  1513,  1515,   328,  1521,   475,
    1954     1528,   970,  1529,   874,   221,  1185,   772,   775,   773,   421,
    1955      774,   975,   426,   428,   776,   369,  1108,   159,  1286,  1479,
    1956     1392,  1531,   986,  1348,  1216,   437,  1365,  1349,   212,  1462,
    1957       56,     8,     9,    10,    11,    12,  1190,   231,   444,   907,
    1958      887,   888,   447,  1198,   448,   909,  1379,   544,  1067,  1387,
    1959     1071,   790,  1105,   455,  1015,  1081,    48,   858,   707,    66,
    1960       31,   923,  1295,  1085,   469,   932,   780,   781,    48,   782,
    1961       74,     0,     0,     0,   476,     0,     0,     0,     0,   212,
    1962        0,     0,   428,     0,   351,     0,   506,   228,    34,    74,
    1963        0,     0,     0,  1425,     0,  1100,     0,    74,  1429,     0,
    1964        8,     9,    10,    11,    12,     0,     0,     0,     0,     0,
    1965      634,     0,     0,     0,  1112,   351,   112,     0,  1112,     0,
    1966        0,   212,     0,     0,     0,     0,     0,  1451,     0,    31,
    1967      968,     0,   740,   351,   408,    74,     0,     0,     0,     0,
    1968       45,    46,     0,     0,     0,     0,     0,    48,   258,    48,
    1969        0,     0,   587,     0,   494,     0,   112,    34,   615,     0,
    1970        0,     0,     0,  1085,   523,  1112,     0,     0,   524,   525,
    1971      526,   620,   214,     0,     0,   620,   351,     0,  1463,    48,
    1972     1467,     0,   212,     0,     0,     0,    56,     0,   410,     0,
    1973        0,   213,   527,    56,   528,   418,   529,   530,     0,     0,
    1974      112,   917,  1009,   594,     0,     0,     0,     0,     0,    45,
    1975       46,     0,  1519,   634,     0,  1495,     0,  1497,  1519,   112,
    1976      212,  1145,  1146,   112,   469,   212,   228,     0,   233,  1519,
    1977        0,     0,     0,  1519,     0,     0,     0,     0,   348,   351,
    1978      495,     0,   213,   469,   907,    56,     0,     0,     0,     0,
    1979        0,   469,    37,     0,   182,   183,    40,     0,     0,  1526,
    1980        0,  1527,  1112,     0,     0,    41,    42,   410,     0,   689,
    1981      112,     0,   428,     0,  1534,  1535,  1193,  1194,     0,     0,
    1982        0,     0,   351,   351,   213,     0,     0,   703,     0,    66,
    1983      907,   890,     0,   408,     0,     0,     0,   428,   351,    45,
    1984       46,   428,     8,     9,    10,    11,    12,   112,     0,     0,
    1985      212,     0,     0,     0,   228,     0,   351,     0,     0,     0,
    1986        0,    48,  1119,     0,   571,     0,    48,    74,     0,     0,
    1987      348,    31,   575,     0,    37,   578,   173,   174,    40,     0,
    1988       77,     0,     0,    48,     0,   213,     0,    41,    42,     0,
    1989        0,     0,     0,    74,   214,     0,   351,     0,     0,    34,
    1990        0,     0,     0,     0,    37,     0,     0,   112,    40,     0,
    1991     1009,     0,    77,   373,     0,   783,     0,    41,    42,     0,
    1992        0,     0,  1112,   213,  1112,  1112,     0,     0,   213,     0,
    1993      212,   351,   620,   794,     0,   410,     0,     0,     0,   418,
    1994        0,     0,     0,    43,   811,     0,   212,     0,     0,   222,
    1995      694,    45,    46,     0,     0,     0,     0,     0,     0,   112,
    1996        0,     0,   587,     0,    79,     0,     0,   587,     0,     0,
    1997        0,   212,     0,   620,   351,     0,   348,   348,     0,     0,
    1998        0,     0,     0,     0,   351,     0,     0,     0,     0,   907,
    1999      221,   214,   348,     0,     0,   351,    79,     0,    37,  1319,
    2000      182,   183,    40,  1112,     0,     0,  1321,  1322,  1323,     0,
    2001      689,    41,    42,   213,     0,   410,     0,     0,     0,     0,
    2002        0,   469,     0,     0,     0,     0,     0,   112,     0,   112,
    2003      112,     0,     0,   223,     0,     0,   353,   184,     8,     9,
    2004       10,    11,    12,     0,     0,    45,    46,   469,   907,   907,
    2005      348,     0,     0,     0,     0,    74,     0,     0,     0,   922,
    2006     1112,  1112,   428,     0,     0,     0,     0,    31,     0,  1366,
    2007        8,     9,    10,    11,    12,     0,     0,   351,     0,     0,
    2008        0,     0,     0,     0,   351,   703,     0,     0,     0,   212,
    2009      952,     0,     0,   213,     0,    34,     0,     0,  1443,    31,
    2010       37,     0,   182,   183,    40,   571,   571,     0,   112,     0,
    2011        0,     0,     0,    41,    42,     0,     0,   212,     0,     0,
    2012      354,     0,   212,     0,     0,     0,     0,    34,   689,     0,
    2013       77,     0,    37,     0,   213,    77,    40,   175,   689,   184,
    2014      494,   620,     0,     0,   984,    41,    42,    45,    46,   689,
    2015        0,   694,     0,     0,     0,    48,    48,     0,  1493,   995,
    2016       37,     0,   182,   183,    40,   112,   112,  1501,    57,    57,
    2017        0,   709,     0,    41,    42,     0,     0,     0,     0,    45,
    2018       46,     0,     8,     9,    10,    11,    12,     0,   869,     0,
    2019        0,   212,   872,     0,   351,   351,     0,   351,   351,  1489,
    2020       57,   408,     0,   112,     0,   212,     0,    45,    46,    66,
    2021        0,    31,     0,     0,    79,    74,     0,     0,     0,    79,
    2022        0,     0,     0,     0,     0,     0,   495,     0,     0,   222,
    2023        0,   794,     0,     0,    57,     0,     0,    57,   703,    34,
    2024        0,  1064,     0,     0,    37,     0,   182,   183,    40,   351,
    2025      351,     0,   213,     0,     0,     0,   907,    41,    42,     0,
    2026        0,     0,    48,   112,     0,     0,     0,  1078,     0,   694,
    2027        0,     0,   112,   907,     0,     0,   428,   117,    86,   694,
    2028      213,     0,     0,   264,     0,   213,    48,    48,     0,     0,
    2029      694,    45,    46,     0,     0,    77,   212,     0,     0,     8,
    2030        9,    10,    11,    12,     0,     0,     0,     0,     0,   353,
    2031       86,    48,     0,   223,    77,     0,     0,     0,     0,     0,
    2032      351,     0,    77,   571,   346,     0,     0,     0,    31,     0,
    2033      587,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2034      353,     0,     0,   426,     0,   907,   907,   224,   689,   689,
    2035        0,   348,   348,     0,   213,     0,    34,     0,   353,     0,
    2036       77,    37,   221,   182,   183,    40,     0,     0,   213,  1166,
    2037        0,     0,     0,     0,    41,    42,     0,     0,    37,    79,
    2038      182,   183,    40,    74,     0,     0,     0,     0,    57,     0,
    2039        0,    41,    42,   354,     0,   351,     0,   351,    79,     0,
    2040      593,   353,   594,   689,   689,     0,    79,     0,    45,    46,
    2041        0,     0,     0,     0,     0,   523,     0,   264,    57,   524,
    2042      525,   526,     0,     0,   354,    45,    46,     0,     0,     0,
    2043        0,     0,   351,     0,   361,     0,   410,     0,     0,   351,
    2044      351,   351,   354,   527,    79,   528,     0,   529,  1285,     0,
    2045      351,   351,     0,     0,     0,     0,     0,     0,     0,   213,
    2046        0,     0,     0,    74,   353,     0,     0,     0,     0,     0,
    2047        0,     0,     0,     0,   703,     0,     0,     0,     0,     0,
    2048        0,     0,     0,     0,     0,   354,   212,     0,     0,   694,
    2049      694,   531,   532,   533,   534,   535,   536,   537,   538,   539,
    2050      540,   541,   351,     0,     0,     0,     0,   353,   353,     0,
    2051        0,  1122,     0,     0,     0,     0,  1263,     0,     0,     0,
    2052        0,     0,     0,   353,     0,   542,     0,  1133,    86,     0,
    2053        0,     0,     0,    86,     0,     0,     0,    66,     0,     0,
    2054        0,   353,     0,     0,   694,   694,     0,     0,   354,   689,
    2055        0,   703,    77,     0,     0,   117,     0,     0,     0,     0,
     1792      49,   113,   407,   149,   453,   399,   428,    97,   150,   440,
     1793     151,   267,   400,   753,   767,   401,   114,  1071,   408,   106,
     1794     106,   402,   974,   280,   869,   828,   965,   403,    57,    57,
     1795     505,   845,    49,   966,  1188,    50,  1172,   152,   404,    97,
     1796     597,   405,   967,   147,   383,   384,   741,   610,  1070,    49,
     1797     357,   106,   827,   143,    70,   920,   161,   605,   410,    96,
     1798      57,   795,   177,   186,   819,  1380,   209,    50,   153,    49,
     1799     193,    56,   115,   216,   923,  1303,   226,  1440,   949,   726,
     1800      69,   281,   407,   731,   219,   399,    70,   820,   106,    31,
     1801      31,    96,   400,   724,    57,   401,   425,    57,   408,   821,
     1802      31,   402,   148,    56,   831,   113,   822,   403,    96,   162,
     1803     838,   261,    69,   113,   262,   670,   266,   271,   404,   122,
     1804     212,   405,   189,   194,    31,    96,   217,    31,    96,   227,
     1805     816,  1138,   475,   477,   510,   679,   154,   210,   202,   817,
     1806     220,   260,  1196,   683,  1304,   149,   307,   147,  1440,   818,
     1807     150,  1198,   151,   166,   161,   113,   345,   548,   549,   252,
     1808     209,   411,   411,  1459,    31,   986,   527,   373,  1200,   629,
     1809     419,    31,   411,   633,  1170,  1171,   291,   715,  1178,   152,
     1810     914,  1182,   965,  1235,   348,   186,   186,  1239,   203,   966,
     1811     358,   342,    76,   161,  1078,   548,   721,   481,   967,   411,
     1812     668,   266,  1197,  1469,  1179,   952,    96,   162,   832,    49,
     1813     153,  1199,   835,  1201,  1187,   409,   161,   166,   123,    96,
     1814     374,   209,   665,   439,    76,   149,   252,   329,   443,  1179,
     1815     150,   548,   151,   852,   829,   471,   602,   855,   666,   307,
     1816    1172,   836,  1030,   602,   398,   189,   162,  1017,   816,    57,
     1817     327,    49,  1140,   735,   176,  -233,  -233,   817,    97,   271,
     1818     476,   674,   676,  1081,   271,   266,   266,   818,    96,   162,
     1819     106,   113,   463,   161,  1016,   442,  1004,   483,   154,    57,
     1820      96,   444,  1188,   992,   500,   923,    50,   142,   924,  1249,
     1821    1172,   657,   441,  1527,   307,   163,   665,   860,   861,   820,
     1822     146,   610,  1094,   176,  1485,    70,   176,   307,  1205,  1206,
     1823      96,   821,   666,   436,   878,   831,   597,  1250,   822,   672,
     1824    1542,   597,    56,   572,   479,   677,  -233,   357,   147,   730,
     1825     923,    69,   567,  1399,  1400,   373,   168,   155,  1513,   377,
     1826    1515,   113,   816,   327,   580,   345,   411,   476,   743,   603,
     1827     621,   817,   176,   177,  1071,   378,   828,    63,   736,   163,
     1828     169,   818,  1399,  1400,   626,  1139,   568,  1497,   626,   569,
     1829     630,   113,   932,  1502,   634,   436,   748,   589,   737,   899,
     1830     110,   144,   139,   140,  1246,  1070,   447,    96,   374,    63,
     1831     987,    41,    42,  1522,  1202,   805,   266,   471,  1529,   171,
     1832     769,   770,   771,  1401,   212,   460,   186,   342,   604,  1172,
     1833     845,   166,   578,   373,   799,   176,  1030,   471,   579,   820,
     1834     357,   583,   243,   411,   266,   471,   307,   307,  1170,  1171,
     1835     266,   821,  1410,   626,   110,  1188,  1119,   854,   822,  1326,
     1836     110,   715,  1188,    76,  1526,    41,    42,   684,    76,   599,
     1837    1020,    41,    42,   579,   113,   435,  1120,   553,   554,  1327,
     1838    1127,   348,  1363,   995,  1537,   189,   374,   358,  -121,   176,
     1839    -121,  1541,   266,   760,  -121,   493,   176,   705,   494,   765,
     1840     266,   387,   626,   706,    49,   357,   953,   373,   720,  -121,
     1841    -121,    97,   229,  1188,   113,   230,   923,   388,   234,  1085,
     1842     236,   557,   558,   106,   911,  1245,   307,   245,   113,  1158,
     1843    1160,   307,    57,   307,   307,  1136,   714,   435,  1424,    50,
     1844     913,   751,  1017,   610,   870,   113,   345,   212,   882,  1105,
     1845     327,   327,  1425,  1015,  1429,  1430,   559,   560,    70,   883,
     1846     523,   411,  1102,    96,  1117,   176,   722,   604,  1435,  1470,
     1847     880,   181,   723,   163,   348,    56,   923,   923,   110,   390,
     1848     358,   342,   176,  1471,    69,   110,   176,   139,   140,    41,
     1849      42,   572,   572,   555,   556,   391,    41,    42,  1127,   307,
     1850    1444,   110,   201,   914,     2,   206,     4,     5,     6,     7,
     1851     626,   345,    41,    42,   286,   621,   392,  1331,   327,  -289,
     1852     715,   603,   111,   603,   865,    41,    42,   973,    63,   997,
     1853      76,   247,   393,   472,   805,  1475,   250,   327,   732,   348,
     1854    1333,   626,  1475,  -517,   733,   358,   626,   847,   621,   176,
     1855      76,   514,   626,  1361,   229,   626,   626,   626,    76,   871,
     1856    -468,   643,  -468,   862,   848,   886,  1015,   411,   849,    35,
     1857     394,    36,  1028,   626,   915,   266,   252,   877,   872,  -468,
     1858     815,   471,   604,   348,   348,   348,   395,  1142,   917,   411,
     1859     916,   807,  1075,  1523,  1444,   915,    76,   442,   917,  1444,
     1860    1185,   348,   263,   327,   918,   113,    37,   929,   908,  1185,
     1861      40,  1082,  1317,   -10,  1083,   597,  1186,    41,    42,  1444,
     1862     692,   498,   805,   110,   357,  1309,  1444,  1409,  1318,  1113,
     1863    1237,   626,   934,   621,    41,    42,   747,  -441,  1319,   720,
     1864     720,   748,   748,    43,   407,   846,   399,   561,   562,   893,
     1865     599,    45,    46,   400,  1320,   748,   401,  1364,   500,   348,
     1866     408,  -442,   402,   895,  1035,   113,   345,   912,   403,   748,
     1867     751,   751,   523,   212,   523,   276,   571,   523,   411,   404,
     1868     523,   923,   405,   981,    45,    46,   519,   212,   850,   982,
     1869    1277,  1278,   851,   278,   229,   472,   234,   923,   815,   604,
     1870     714,   342,   965,  1154,   850,   411,  1374,   176,  1101,   966,
     1871    1477,   750,  1478,   411,   572,   472,   279,  -103,   967,    45,
     1872      46,  -103,   626,   472,   626,   110,  1000,   139,   140,   626,
     1873     345,   330,   933,   603,   602,  1162,    41,    42,   994,   176,
     1874      45,    46,    37,  1233,   706,   603,    40,   331,  1349,   579,
     1875     348,  1357,  1350,    41,    42,   176,   332,   748,   348,   712,
     1876    1358,    63,   715,   371,   358,  1524,   748,   923,   923,   176,
     1877     548,   985,   982,   465,     8,     9,    10,    11,    12,   813,
     1878     212,   602,   329,   411,   229,   953,   372,    45,    46,   953,
     1879     953,  1360,   815,   550,    76,   307,  1365,   748,  -290,   551,
     1880     552,   333,   748,    31,   604,     8,     9,    10,    11,    12,
     1881     807,   510,  1370,  1371,   106,  1427,   334,   626,   673,   675,
     1882      76,  1424,   665,    57,   113,   345,   908,   911,   908,   335,
     1883    1445,    34,  1183,   376,    31,    37,   748,   385,   666,    40,
     1884     113,   715,  1157,   913,   602,   389,    41,    42,   805,    70,
     1885     176,   692,   409,   934,   934,  1491,  1419,   982,   720,   714,
     1886     342,  1492,    34,   113,   307,   129,    56,   130,   131,   132,
     1887      48,   112,   719,  1399,  1400,    69,    41,    42,  1106,   397,
     1888      45,    46,   106,  1547,   214,  1084,   426,   912,   751,   579,
     1889    1159,    57,   602,   427,  1509,  1426,   772,   773,   519,   112,
     1890     112,   432,    48,   519,   450,  1324,   519,   738,  1242,   739,
     1891     411,  1437,   740,    48,  1088,   744,  1088,   604,  -365,    48,
     1892     345,   774,   775,  1228,  -394,   484,    37,    48,   174,   175,
     1893      40,   780,   781,    48,  1107,   214,    48,    41,    42,    48,
     1894     461,   626,   626,  1127,   462,     2,   206,     4,     5,     6,
     1895       7,   504,   112,   112,   776,   777,   778,   779,   291,   472,
     1896     788,   307,     2,   206,     4,     5,     6,     7,   327,   348,
     1897     348,   528,   529,   530,   508,  1169,    48,   442,   214,    48,
     1898     106,  1495,  1437,   513,   525,   472,    48,    76,   111,    57,
     1899     527,   228,  1381,   563,   564,   531,  1381,   532,   566,   533,
     1900     534,   113,   252,   329,   411,   565,   908,   419,   661,   411,
     1901      35,   908,    36,   569,   176,    70,   338,    48,  -438,   587,
     1902     934,   658,   659,   712,   846,    48,  -291,    35,   266,    36,
     1903      48,   590,    56,     8,     9,    10,    11,    12,    -3,   214,
     1904     639,  1190,   660,   626,   481,   329,   411,   662,   663,   761,
     1905     664,   829,   329,   602,   766,    48,    48,    37,   667,   183,
     1906     184,    40,    31,   669,   257,   912,   693,   345,    41,    42,
     1907     912,    48,   694,    -3,   696,   498,   698,   214,  -237,    48,
     1908     734,   745,   214,  1296,  1297,  1298,   692,   749,    48,   757,
     1909      34,    48,   808,  1460,   906,   809,   411,   -12,   112,   812,
     1910     823,   714,    45,    46,   465,  1332,  1334,  1335,   -13,   271,
     1911     113,   867,   868,   112,   874,   907,   894,   112,   896,   897,
     1912     922,    48,   112,   901,   904,   219,  -415,   723,   113,   106,
     1913    -521,   944,   307,   937,   946,    48,    48,    57,    57,   957,
     1914     950,   959,    48,   958,   960,   951,   626,  -292,   961,    48,
     1915     113,   106,    63,    76,     8,     9,    10,    11,    12,   962,
     1916      57,   978,   989,   212,   342,  1106,   990,   991,   214,   106,
     1917    1006,  1007,  1008,  1009,   116,   879,  1010,   881,    57,  1011,
     1918     210,   220,   712,    31,  1012,  1023,    70,  -403,    37,  -402,
     1919     183,   184,    40,  1037,  1422,   626,   626,  1072,    48,    41,
     1920      42,  1535,  1074,    56,   271,  1095,   907,  1096,  1059,   307,
     1921    1097,    34,    69,  1098,  1104,  1114,   748,  1115,    48,    48,
     1922    1116,  1107,   159,   348,   348,   185,  1118,   928,   106,  1352,
     1923    1121,  1123,    57,    45,    46,    48,   972,    57,  1124,    48,
     1924    1125,  1126,   113,   407,  1132,  1129,   399,   692,  1152,   214,
     1925     644,  1173,  1174,   400,   173,  1175,   401,  1106,   442,   408,
     1926    1176,   106,   402,    70,  1177,  1191,    48,   665,   403,  1192,
     1927      57,  1194,  1195,  1203,  1210,   441,    48,  1207,   258,   404,
     1928      56,  1208,   405,   666,  1215,    -3,   159,  1220,  1225,  1190,
     1929    1223,   214,  1241,   493,    48,  1229,   253,  1508,  1234,   266,
     1930      48,  1236,    48,  1421,  1238,  1247,  1251,  1253,  1255,   110,
     1931    1257,   139,   238,  1107,  1258,   626,  1263,  1259,   472,   323,
     1932      41,    42,  1260,  1261,    76,   176,  1270,    37,   339,   174,
     1933     175,    40,  1279,   110,  1280,   139,   140,   112,    41,    42,
     1934     113,  1287,    48,   348,    41,    42,   239,  1290,  1291,  1292,
     1935      48,   240,  1330,  1294,    48,  1106,  1302,  1308,    48,   106,
     1936    1315,   112,   113,   112,   372,  1323,  1321,  1325,    57,   113,
     1937     727,   113,  1336,   113,  1329,   728,  1337,  1193,   430,  1339,
     1938    1345,   106,   434,  1346,  1347,  1348,   149,  1359,   106,  1355,
     1939      57,   150,   417,   151,  1356,  1366,  1367,    57,   112,  1298,
     1940    1375,    76,  1507,   112,  1384,  1376,  1377,   113,  1383,   113,
     1941    1393,  1107,   323,   214,  1394,   437,    70,  -404,  1397,  1408,
     1942     113,  1412,  1414,    70,   712,   445,  1507,  1507,  1416,  1417,
     1943     703,  1423,  1418,    56,   161,  1441,   307,  1431,  1432,   106,
     1944      56,   214,  1190,  1433,   434,  1434,   214,   488,    57,  1190,
     1945    1350,  1507,  1436,   112,  1446,  1448,  1450,  1452,   373,   213,
     1946      48,  1454,  1456,  1458,  1463,  1465,  1486,   521,   232,  1464,
     1947    1476,    48,  1488,    48,    70,  1490,  1493,  1501,  1521,  1122,
     1948     159,  1494,  1516,  1517,  1530,   479,   141,  1528,  1532,    63,
     1949    1538,    56,    48,   520,  1545,   176,  1546,   889,  1209,   782,
     1950    1190,  1133,  1131,   712,   784,  1133,  1307,  1411,    48,   783,
     1951     213,   704,   785,   112,   588,   786,  1496,   214,   594,  1548,
     1952    1369,  1385,    48,  1240,   112,    48,   112,  1214,  1479,   902,
     1953     903,   214,  1089,   925,   215,  1222,  1093,   627,   241,   244,
     1954     327,   631,   801,  1128,   339,  1059,  1036,   939,   873,  1103,
     1955     242,  1316,   717,   213,    76,  1133,    66,   117,    48,   947,
     1956     791,    76,   112,   792,   112,   793,   472,    37,   112,   174,
     1957     175,    40,     0,     0,     0,     0,   112,     0,    41,    42,
     1958       0,     0,     0,  1285,  1286,   215,  1288,     0,    66,    48,
     1959      48,     0,     0,  1293,     0,  1295,     0,     0,     0,   323,
     1960     323,     0,     0,    48,   376,   160,     0,     8,     9,    10,
     1961      11,    12,    76,     0,   213,     0,     0,  1483,     0,  1483,
     1962       0,     0,     0,     0,   214,   221,     0,   688,   215,     0,
     1963     528,   529,   530,     0,     0,     0,    31,   703,  1373,     0,
     1964     116,     0,   681,     0,     0,     0,     0,     8,     9,    10,
     1965      11,    12,   213,  1483,   531,  1483,   532,   213,   533,  1306,
     1966       0,   259,     0,     0,    34,   488,     0,   323,   707,   488,
     1967       0,     0,   499,     0,     0,     0,    31,     0,     0,   521,
     1968       0,   521,     0,    48,   521,     0,   323,   521,     0,   215,
     1969    1398,     0,     0,  1406,     0,    48,     0,     0,   339,   457,
     1970       0,     0,     0,   328,    34,   520,   571,     0,   411,     0,
     1971     520,   259,   350,   520,    45,    46,     0,     0,   704,   472,
     1972       0,     0,     0,     0,     0,     0,   472,   215,     0,     0,
     1973       0,     0,   215,     0,     0,     0,  1443,     0,   644,     0,
     1974       0,  1447,   406,   213,   112,     0,   750,     0,   411,     0,
     1975       0,  1405,   323,     0,    45,    46,   703,   424,     0,     0,
     1976     429,   431,     0,   803,     0,   160,   703,    48,     0,  1468,
     1977    1133,  1133,  1133,     0,     0,     0,    48,   472,    48,     0,
     1978     703,     0,     0,     0,     0,   112,   448,     0,     0,     0,
     1979     451,     0,   452,     0,   844,     0,     0,     0,     0,   594,
     1980       0,   459,     0,     0,     0,   853,    74,    66,    48,     0,
     1981       0,     0,   473,     0,     0,     0,     0,     0,   215,     0,
     1982       0,   214,   480,     0,   213,     0,     0,     0,   112,     0,
     1983     431,     8,     9,    10,    11,    12,   645,   704,    74,     0,
     1984       0,   213,   644,     0,     0,     0,     0,   704,     0,     0,
     1985     112,     0,     0,  1536,   112,     0,     0,     0,   688,  1536,
     1986      31,   704,     0,     0,     0,     0,   213,     0,     0,   891,
     1987    1536,     0,   892,     0,  1536,   222,     0,     0,   898,     0,
     1988       0,     0,   900,     0,     0,     0,     0,     0,    34,     0,
     1989       0,    37,     0,   183,   184,    40,   488,   259,     0,   215,
     1990       0,   595,    41,    42,   112,     0,     0,   623,  1133,  1133,
     1991       0,     0,     0,     0,     0,     0,     0,     0,   339,     0,
     1992     628,     0,     0,     0,   628,     0,     0,   259,   265,     0,
     1993     933,     0,   602,     0,     0,     0,    45,    46,    45,    46,
     1994       0,   215,   112,     0,     0,     0,  1461,   725,     0,   729,
     1995       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
     1996       0,    48,   353,   535,   536,   537,   538,   539,   540,   541,
     1997     542,   543,   544,   545,   473,     0,     0,   996,    48,     0,
     1998       0,     0,   803,     0,   703,   703,     0,     0,   213,   350,
     1999       0,   988,     0,     0,   473,     0,     0,   546,     0,     0,
     2000       0,   993,   473,     0,  1510,     0,     0,   214,     0,     0,
     2001       0,     0,     0,  1518,     0,  1005,   213,     0,     0,     0,
     2002     699,   213,    37,   431,   183,   184,    40,     0,     0,     0,
     2003       0,     0,     0,    41,    42,     0,   449,     0,   713,     0,
     2004      66,     0,   703,   703,     0,     0,     0,     0,   431,     0,
     2005       0,     0,   431,     0,     0,   112,     0,    74,     0,   601,
     2006       0,   602,    74,   215,     0,   704,   704,    45,    46,     0,
     2007     803,     0,     0,     0,     0,     0,     0,   339,    48,     0,
     2008       0,   259,   350,     0,     0,     0,     0,     0,     0,     0,
     2009       0,   215,   213,   688,     0,     0,   215,     0,  1080,   866,
     2010       0,     0,   214,    77,     0,     0,   213,     0,     0,     0,
     2011       0,     0,     0,     0,     0,   488,  1108,   323,     0,   112,
     2012     112,   112,     0,   704,   704,     0,   499,     0,   794,    37,
     2013       0,   183,   184,    40,     0,    77,     0,     0,     0,     0,
     2014      41,    42,     0,     0,     0,     0,   628,   806,   919,     0,
     2015     921,     0,     0,     0,   457,     0,     0,   222,    37,   825,
     2016     183,   184,    40,     0,     0,     0,   906,   215,   411,    41,
     2017      42,     0,   223,   844,    45,    46,     0,   595,     0,     0,
     2018       0,   215,   595,     0,     0,     0,     0,     0,   628,     0,
     2019    1313,   350,   350,   350,     0,  1506,     0,   411,     0,   213,
     2020       0,     0,     0,    45,    46,     0,     0,     0,     0,   350,
     2021       0,     0,     0,   124,   127,   128,     0,     0,     0,  1167,
     2022    1168,     0,   703,     0,    74,     0,     0,   699,     0,     0,
     2023     703,   703,   703,     0,     0,     0,     0,     0,   473,   353,
     2024       0,     0,     0,     0,    74,     0,     0,     0,    48,    48,
     2025       0,  1204,    74,     0,   688,     0,     0,   112,   112,   355,
     2026       0,     0,     0,     0,   473,     0,     0,   350,     0,     0,
     2027     353,  1314,     0,     0,   215,     0,   938,  1217,  1218,   431,
     2028       0,     0,     0,     0,     0,   254,     0,   255,   353,     0,
     2029      74,     0,     0,     0,   703,   112,   803,     0,     0,     0,
     2030       0,   259,   713,   704,     0,     0,     0,   968,     0,     0,
     2031       0,   704,   704,   704,     0,     0,     0,     0,     0,     0,
     2032       0,     0,     0,     0,   645,     0,     0,     0,     0,     0,
     2033    1040,     0,   353,     0,     0,     0,     0,   126,   126,   126,
     2034       0,     0,     0,     0,     0,     0,   699,     0,     0,     0,
     2035       0,     0,    48,   112,    77,     0,   699,     0,   350,    77,
     2036     628,     0,   112,  1003,     0,   628,   806,     0,   396,     0,
     2037     699,  1090,     0,     0,     0,   704,    48,    48,   415,   416,
     2038    1014,   339,     0,   420,     0,   422,   423,     0,     0,     0,
     2039       0,     0,     0,     0,     0,     0,   213,   353,     0,     0,
     2040       0,    48,     0,  1108,     0,     0,     0,     0,     0,   126,
     2041       0,   126,     0,     0,     0,    79,     0,     0,     0,     0,
     2042       0,     0,     0,     0,     0,     0,     0,     0,   645,     0,
     2043       0,    66,     0,     0,     0,     0,   275,     0,     0,     0,
     2044       0,   353,   353,   353,     0,     0,     0,    79,     0,     0,
     2045       0,     0,     0,   628,   223,     0,     0,  1338,     0,   353,
     2046     259,   713,     0,     0,  1086,  1340,  1341,  1342,     0,     0,
     2047       0,   215,     0,     0,     0,     0,     0,   353,     0,     0,
     2048       0,     0,     0,     0,   224,     0,     0,     0,    74,     0,
     2049    1100,     0,   126,     0,     0,  1108,     0,  1368,   431,   117,
     2050     126,     0,   126,   126,     0,     0,     0,   126,     0,   126,
     2051     126,     0,     0,     0,    74,     0,     0,   353,     0,     0,
     2052       0,    77,     0,     0,     0,     0,     0,     0,  1040,  1386,
     2053       0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
     2054       0,    77,     0,     0,     0,     0,     0,     0,     0,    77,
     2055       0,     0,   353,     0,     0,     0,   595,     8,     9,    10,
     2056      11,    12,     0,     0,     0,     0,     0,   355,     0,   429,
     2057       0,   356,     0,     0,   699,   699,     0,   350,   350,   126,
     2058       0,     0,   213,     0,     0,   355,    31,    77,     0,     0,
     2059       0,     0,     0,  1108,     0,     0,   353,  1189,     0,     0,
     2060       0,     0,     0,     0,     0,     0,   353,     0,   353,     0,
     2061       0,     0,     0,   222,    34,     0,   353,     0,     0,    37,
     2062     353,   183,   184,    40,  1482,     0,  1482,     0,     0,   355,
     2063      41,    42,   699,   699,     0,     0,     0,     0,     0,     0,
     2064       0,  1283,     0,     0,     0,     0,     0,     0,     0,  1480,
     2065       0,  1484,     0,     0,     0,     0,   601,   215,   602,     0,
     2066    1482,     0,  1482,     0,    45,    46,    79,     0,     0,     0,
     2067       0,    79,     0,     0,     0,     0,     0,   213,     0,   628,
     2068       0,    74,     0,     0,     0,  1512,     0,  1514,     0,   323,
     2069       0,     0,     0,     0,   355,     0,     0,     0,     0,     0,
     2070       0,     0,     0,   713,     0,     0,     0,     0,     0,    86,
     2071       0,   353,     0,     0,     0,     0,     0,   413,     0,     0,
     2072       0,     0,     0,     0,   421,     0,     0,     0,     0,  1543,
     2073       0,  1544,     0,     0,     0,     0,     0,     0,   355,   355,
     2074     355,    86,     0,     0,  1551,  1552,  1284,     0,     0,     0,
     2075       0,     0,   215,     0,     0,     0,   355,     0,     0,     0,
     2076       0,     0,   796,   797,   259,     0,   224,     0,    66,     0,
     2077       0,     0,     0,     0,   355,     0,     0,     0,   225,     0,
     2078     699,     0,   713,     0,     0,    77,   117,     0,     0,     0,
     2079       0,   830,     0,     0,   833,   834,   413,   837,     0,   839,
     2080     840,     0,     0,     0,   841,   842,     0,     0,     0,     0,
     2081       0,    77,   699,     0,   355,     0,     0,     0,     0,     0,
     2082     699,   699,   699,     0,   353,   353,     0,   353,   353,     0,
     2083       0,   350,   350,    79,     0,     0,     0,     0,     8,     9,
     2084      10,    11,    12,     0,     0,  1189,     0,    74,   356,   355,
     2085       0,   577,     0,    79,     0,     0,     0,     0,     0,   581,
     2086       0,    79,   584,     0,     0,   363,     0,    31,     0,     0,
     2087       0,     0,     0,     0,     0,     0,     0,     0,   117,   356,
     2088       0,     0,   353,   353,   699,     0,   126,   126,     0,     0,
     2089       0,     0,     0,   355,     0,    34,     0,   356,     0,    79,
     2090      37,     0,     0,   355,    40,   355,     0,     0,     0,     0,
     2091     223,    41,    42,   355,     0,   126,     0,   355,   126,   126,
     2092       0,   126,     0,   126,   126,     0,   413,     0,   126,   126,
     2093     421,     0,     0,     0,     0,     0,     0,    43,     0,     0,
     2094       0,   356,   970,   971,     0,    45,    46,     0,     0,     0,
     2095       0,   350,     0,   353,     0,     0,     0,     0,     0,     0,
     2096      86,     0,     0,     0,     0,    86,     0,     0,     0,     0,
     2097       0,     0,     0,     0,     0,     0,   117,     0,    77,     0,
    20562098       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2057        0,   351,     0,     0,     0,     0,     0,     0,    77,     0,
    2058        0,   353,     0,     0,     0,     0,   689,     0,     0,     0,
    2059        0,   354,   354,   689,   689,   689,     0,   346,     0,     0,
    2060        0,     0,   410,     0,   348,   348,     0,   354,     0,     0,
    2061        0,     0,     0,     0,     0,     0,   353,  1166,     0,    74,
    2062        0,     0,     0,     0,     0,   354,    74,   224,   166,     0,
    2063      171,     0,     0,   177,   178,   179,    79,   181,     0,     0,
    2064        0,  1219,     0,     0,     0,     0,     0,     0,    57,   213,
    2065      117,   232,     0,     0,     0,     0,   689,     0,     0,   353,
    2066        0,     0,    79,   247,   248,   354,     0,     0,   212,   353,
    2067        0,     0,     0,     0,     0,   222,     0,     0,    74,     0,
    2068      353,     0,     0,     0,     0,     0,     0,     0,     0,   346,
    2069     1293,     0,     0,    86,     0,     0,     0,     0,     0,     0,
    2070      354,     0,     0,     0,     0,     0,     0,   361,     0,     0,
    2071        0,     0,    86,     0,     0,     0,     0,     0,     0,     0,
    2072       86,     0,     0,     0,     0,   348,     0,   694,     0,     0,
    2073        0,     0,     0,     0,   694,   694,   694,     0,   361,     0,
    2074       77,     0,     0,   354,     0,     0,     0,     0,     0,     0,
    2075      117,     0,   346,   354,     0,     0,   361,     0,    86,   223,
    2076        0,     0,   353,     0,   354,   212,     0,     0,     0,   353,
    2077        0,     0,     0,  1166,     0,     0,     0,     0,     0,     0,
    2078     1166,     0,   994,     0,     0,     8,     9,    10,    11,    12,
    2079        0,     0,     0,     0,     0,   346,   346,   694,     0,   361,
     2099       0,     0,     0,     0,     0,     0,   222,     0,  1189,     0,
     2100       0,     0,     0,     0,     0,  1189,   356,   413,   355,     0,
     2101       0,     0,     0,     0,     0,     0,     0,     0,    74,     0,
    20802102       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2081        0,   346,   281,   282,    31,   283,     0,     0,     0,     0,
    2082        0,     0,     0,     0,    79,     0,     0,     0,     0,     0,
    2083        0,   213,  1166,     0,     0,     0,     0,     0,     0,  1514,
    2084        0,   284,    34,     0,     0,     0,   354,   285,     0,     0,
    2085        0,   286,     0,   354,   287,   288,   289,   290,   291,   292,
    2086       41,    42,   361,   293,   294,     0,     0,     0,     0,   346,
    2087        0,     0,     0,     0,     0,     0,     0,     0,     0,   353,
    2088      353,     0,   353,   353,     0,     0,   295,     0,   376,     0,
    2089        0,     0,     0,     0,   342,    46,   297,   298,   299,   300,
    2090       77,     0,     0,     0,     0,   361,   361,     0,     0,     0,
    2091        0,     0,     0,     0,     0,     0,     0,   585,     0,   592,
    2092        0,   361,     0,     8,     9,    10,    11,    12,   213,     0,
    2093      616,   617,     0,     0,   353,   353,     0,     0,     0,   361,
    2094        0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
    2095       86,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2096        0,     0,     0,   354,   354,     0,   354,   354,     0,     0,
    2097        0,     0,     0,     0,    31,     0,    86,     0,     0,   361,
    2098       34,     0,     0,     0,    79,    37,     0,   182,   183,    40,
    2099        0,     0,     0,     0,     0,     0,     0,     0,    41,    42,
    2100        0,     0,    34,     0,     0,   353,     0,    37,     0,   182,
    2101      183,    40,     0,     0,   361,     0,     0,     0,   354,   354,
    2102       41,    42,     0,     0,   890,     0,   408,     0,    57,     0,
    2103        0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    2104        0,     0,     0,     0,     0,     0,  1489,   222,   408,     0,
    2105      346,     0,     0,     0,    45,    46,     0,   361,   281,   282,
    2106        0,   283,     0,     0,     0,     0,     0,   361,    77,     0,
    2107        0,     0,     0,   224,     0,     0,     0,     0,   361,     0,
    2108      353,     0,   353,     0,     0,     0,     0,   284,     0,   354,
    2109        0,     0,     0,   285,     0,     0,    57,   286,     0,     0,
    2110      287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
    2111      294,     0,     0,     0,     0,     0,     0,   353,     0,     0,
    2112        0,     0,     0,     0,   353,   353,   353,     0,     0,     0,
    2113        0,   223,   295,     0,   376,   353,   353,     0,    86,     0,
    2114       45,    46,   297,   298,   299,   300,     0,     0,    77,     0,
    2115        0,     0,    79,   777,     0,     0,     0,     0,     0,     0,
    2116      361,     0,     0,     0,   354,     0,   354,   361,     0,     0,
    2117      346,   346,     0,     0,     0,     0,     0,     0,     0,     0,
    2118        0,     0,     0,     0,     0,     0,     0,   353,    57,     0,
    2119        0,     0,     0,     0,   210,     0,     0,     0,     0,     0,
    2120        0,   354,     0,   230,     0,   234,     0,   236,   354,   354,
    2121      354,     0,     0,     0,   245,     0,     0,     0,     0,   354,
    2122      354,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2123        0,     0,    79,     0,     0,     0,     0,     0,     0,     0,
    2124        0,     0,     0,     0,     0,   210,     0,   234,   236,   245,
    2125        0,     0,     0,     0,     0,     0,   353,     0,     0,     0,
    2126        0,     0,     0,     0,     0,   910,     0,   911,     0,     0,
    2127        0,   354,     0,     0,   914,   915,     0,   361,   361,   920,
    2128      361,   361,     0,     0,     0,     0,     0,   210,     0,     0,
    2129        0,     0,   926,     0,     0,     0,     0,   930,    86,     0,
    2130        0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
    2131        0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
    2132        0,     0,     0,     0,   592,     0,     0,     0,     0,     0,
    2133        0,     0,   361,   361,    57,    57,     0,     0,     0,     0,
    2134      354,     0,     0,     0,     0,     0,     0,     0,   210,     0,
    2135      234,   236,   245,     0,     0,     0,    57,     0,     0,     0,
    2136        0,     0,     0,    77,     0,     0,     0,     0,     0,     0,
    2137        0,     0,     0,     0,    57,     0,     0,     0,     0,     0,
    2138        0,     0,     0,     0,     0,     0,   210,     0,    79,     0,
    2139        0,   210,     0,     0,     0,    79,     0,     0,     0,     0,
    2140        0,     0,     0,   361,     0,     0,   493,     0,     0,     0,
    2141        0,     0,     0,     0,     0,     0,     0,  1004,     0,  1005,
    2142     1006,  1007,     0,   346,   346,     0,     0,     0,     0,     0,
    2143        0,    57,   164,     0,     0,     0,    57,     0,  1051,     0,
    2144        0,     0,     0,     0,     0,   224,     0,    79,     0,   217,
    2145        0,     0,  1057,     0,     0,     0,     0,   210,     0,     0,
    2146        0,     0,     0,     0,     0,     0,    86,     0,     0,    57,
    2147        0,     0,     0,     0,     0,     0,   210,     0,   361,     0,
    2148      361,   234,   236,     0,     0,     0,     0,     0,     0,   245,
    2149        0,  1077,     0,     0,     0,     0,   164,     0,     0,     0,
    2150      271,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2151        0,     0,     0,     0,     0,   361,     0,     0,     0,     0,
    2152        0,     0,   361,   361,   361,     0,     0,     0,     0,   164,
    2153        0,   210,     0,   361,   361,  1107,     0,     0,     0,   367,
    2154     1117,     0,   372,     0,   346,  1120,    86,     0,     0,   210,
    2155     1124,     0,     0,     0,   210,  1126,   210,  1127,  1128,     0,
    2156        0,  1131,     0,     0,     0,     0,     0,     0,     0,    57,
    2157     1143,     0,   210,     0,     0,   210,   210,     0,     0,     0,
    2158        0,     0,     0,   210,     0,   361,  1157,  1158,     0,     0,
    2159        0,   164,    57,     0,     0,     0,     0,   210,     0,    57,
    2160        0,     0,     0,   217,   210,     0,     0,     0,     0,     0,
    2161        0,     0,  1187,     0,     0,  1189,     0,     0,     0,     0,
    2162        0,   164,     0,     0,     0,   124,   127,   128,     8,     9,
     2103     353,     0,   353,     0,     0,     0,     0,     0,     0,     0,
     2104       0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
     2105     356,   356,   356,     0,     0,     0,  1189,     0,     0,     0,
     2106     225,     0,   353,  1531,     0,     0,   126,   126,   356,     0,
     2107     353,   353,   353,    31,     0,     0,     0,     0,     0,     0,
     2108       0,   353,   353,     0,     0,     0,   356,     0,     0,     0,
     2109       0,     0,     0,     0,     0,    74,     0,    79,     0,   577,
     2110     577,    34,     0,     0,  1091,     0,    37,     0,   183,   184,
     2111      40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
     2112       0,   355,   355,    79,   355,   355,   356,    86,     0,     0,
     2113       0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
     2114       0,     0,   363,   906,    77,   411,     0,    86,     0,     0,
     2115       0,    45,    46,     0,     0,    86,     0,     0,     0,     0,
     2116       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2117       0,     0,     0,   363,     0,     0,     0,     0,     0,   355,
     2118     355,     0,     0,     0,     0,     0,   884,     0,     0,     0,
     2119     887,   363,     0,    86,     0,     0,     0,     0,     0,     0,
     2120       0,   353,     0,     0,     0,   356,     0,     0,     0,     0,
     2121       0,     0,     0,     0,     0,   356,     0,   356,     0,     0,
     2122       0,     0,   224,   126,     0,   356,     0,     0,   126,   356,
     2123       0,     0,     0,     0,     0,   363,   167,     0,   172,     0,
     2124       0,   178,   179,   180,     0,   182,     0,     0,    74,     0,
     2125     355,     0,     0,     0,     0,    74,     0,     0,     0,   233,
     2126       0,     0,     0,     0,     0,  1219,     0,     0,     0,     0,
     2127       0,   248,   249,     0,     8,     9,    10,    11,    12,     0,
     2128       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2129      79,     0,     0,   223,     0,     0,     0,     0,     0,     0,
     2130     363,     0,     0,    31,     0,     0,    74,     0,     0,     0,
     2131       0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
     2132     356,     0,   577,     0,     0,     0,     0,   355,     0,   355,
     2133       0,    34,     0,     0,     0,     0,    37,     0,   183,   184,
     2134      40,     0,     0,     0,   363,   363,   363,    41,    42,     0,
     2135       0,     0,     0,     0,     0,     0,     0,     0,     0,   355,
     2136       0,     0,   363,     0,     0,     0,     0,   355,   355,   355,
     2137       0,     0,     0,  1506,     0,   411,     0,     0,   355,   355,
     2138     363,    45,    46,     0,     0,   507,     0,   509,   512,   126,
     2139       0,    86,    77,     0,  1305,   515,   516,     0,     0,     0,
     2140       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2141     509,   509,     0,     0,     0,     0,     0,    86,     0,     0,
     2142     363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2143       0,   355,     0,   356,   356,     0,   356,   356,     0,     0,
     2144     413,     0,     0,     0,     0,     0,     0,     0,   509,     0,
     2145       0,     0,     0,     0,     0,   363,    79,     8,     9,    10,
     2146      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2147      21,    22,    23,    24,    25,  -293,     0,    26,    27,    28,
     2148       0,     0,     0,     0,   509,     0,    31,     0,     0,     0,
     2149       0,   356,   356,     0,     0,     0,     0,     0,   355,   363,
     2150       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2151       0,   363,     0,     0,    34,     0,   225,  1143,   126,   363,
     2152       0,    38,    39,   363,     0,  -293,     0,   592,     0,   600,
     2153       0,     0,     0,     0,  1155,     0,     0,     0,     0,     0,
     2154     624,   625,     0,     0,     0,    77,     0,     0,     0,     0,
     2155     282,   283,    77,   284,     0,     0,   635,     0,   338,     0,
     2156       0,     0,   356,     0,    45,    46,     0,     0,     0,     0,
     2157       0,     0,     0,     0,     0,     0,     0,     0,     0,   285,
     2158       0,     0,     0,     0,    86,   286,     0,     0,     0,   287,
     2159       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2160     293,     0,     0,    77,     0,   224,     0,     0,     0,     0,
     2161       0,     0,   413,     0,   363,     0,     0,     0,     0,     0,
     2162       0,     0,   294,     0,   379,     0,     0,    79,     0,     0,
     2163      45,    46,   296,   297,   298,   299,     0,     0,     0,   356,
     2164       0,   356,  1013,   787,     0,     8,     9,    10,    11,    12,
     2165       0,     0,  1243,   509,   509,   509,   509,   509,   509,   509,
     2166     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
     2167     509,   356,   282,   283,    31,   284,     0,     0,     0,   356,
     2168     356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2169     356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2170       0,   285,    34,     0,    79,     0,     0,   286,     0,     0,
     2171       0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2172       0,   292,   293,     0,     0,     0,     0,   363,   363,     0,
     2173     363,   363,     0,     0,     0,     0,     0,     0,     0,     0,
     2174       0,     0,     0,   356,   294,     0,   379,     0,     0,     0,
     2175      86,     0,   344,    46,   296,   297,   298,   299,     0,     0,
     2176       1,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2177      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2178      21,    22,    23,    24,    25,   363,   363,    26,    27,    28,
     2179      29,     0,     0,    30,   282,   283,    31,   284,     0,   509,
     2180       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2181     356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2182       0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
     2183       0,    38,    39,   287,   165,     0,   288,   289,   290,   291,
     2184      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2185       0,   218,     0,     0,     0,     0,   363,    79,     0,     0,
     2186     509,     0,     0,     0,    79,     0,   294,     0,  1056,     0,
     2187       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
     2188       0,     0,     0,   926,     0,   927,     0,     0,     0,  -128,
     2189     509,     0,   930,   931,     0,     0,     0,   936,   165,   225,
     2190       0,     0,   272,     0,     0,     0,     0,     0,     0,   941,
     2191       0,     0,     0,     0,   945,    79,     0,     0,     0,     0,
     2192       0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
     2193       0,   165,     0,   363,     0,   363,     0,     0,     0,     0,
     2194       0,   369,   979,     0,     0,   375,     0,     0,     0,     0,
     2195       0,     0,     0,     0,     0,     0,  1163,     0,     0,     8,
     2196       9,    10,    11,    12,     0,   363,     0,     0,     0,     0,
     2197       0,     0,     0,   363,   363,   363,     0,     0,     0,     0,
     2198       0,     0,     0,     0,   363,   363,   282,   283,    31,   284,
     2199       0,     0,     0,     0,   165,     0,     0,     0,    86,     0,
     2200       0,     0,     0,     0,     0,     0,   218,     0,     0,     0,
     2201     509,     0,     0,     0,     0,   285,    34,     0,     0,     0,
     2202       0,   286,     0,     0,   165,   287,     0,     0,   288,   289,
     2203     290,   291,    41,    42,     0,   292,   293,   363,     0,     0,
     2204       0,  1024,  1025,  1026,  1027,     0,  1029,     0,     0,   375,
     2205       0,     0,     0,     0,     0,   509,   165,     0,   294,     0,
     2206     379,  1073,     0,     0,     0,     0,  1164,    46,   296,   297,
     2207     298,   299,     0,     0,     0,  1079,     0,     0,     0,   524,
     2208       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2209     509,     0,   165,     0,     0,     0,     0,     0,     0,   211,
     2210       0,     0,     0,   509,   363,     0,     0,     0,   231,     0,
     2211     235,     0,   237,     0,     0,  1099,     0,     0,     0,   246,
     2212       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2213     598,     0,     0,     0,     0,   622,     0,     0,     0,     0,
     2214       0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
     2215     211,    86,   235,   237,   246,     0,     0,     0,    86,     0,
     2216    1130,     0,     0,     0,     0,     0,  1137,     0,     0,     0,
     2217       0,  1141,     0,     0,     0,     0,  1145,     0,  1146,     0,
     2218       0,     0,  1148,     0,  1149,  1150,     0,     0,  1153,     0,
     2219       0,     0,     0,   211,     0,     0,     0,  1165,     0,     0,
     2220       0,     0,     0,     0,     0,     0,     0,     0,     0,    86,
     2221       0,   165,   165,     0,     0,  1180,  1181,     0,   369,     0,
     2222       0,   509,     0,     0,     0,     0,     0,     0,     0,     0,
     2223       0,     0,     0,     0,     0,     0,     0,     0,     0,   524,
     2224       0,     0,  1211,     0,     0,  1213,     0,     0,     0,     0,
     2225       0,     0,     0,     0,   211,     0,   235,   237,   246,     0,
     2226       0,     0,     0,     0,     0,     0,     0,   716,     0,     0,
     2227       0,     8,     9,    10,    11,    12,     0,     0,     0,   165,
     2228       0,   509,   509,     0,     0,     0,     0,     0,  1227,     0,
     2229       0,   524,   211,   524,  1231,  1232,   524,   211,   165,   524,
     2230      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2231       0,   369,   497,     0,  1248,     0,     0,  1252,     0,     0,
     2232       0,  1254,     0,     0,     0,     0,     0,     0,    34,     0,
     2233       0,     0,     0,    37,  1262,   183,   184,    40,     0,     0,
     2234       0,     0,     0,     0,    41,    42,     0,  1269,     0,  1271,
     2235    1272,  1273,  1274,     0,     0,     0,     0,     0,     0,     0,
     2236       0,   211,     0,     0,   165,  1281,     0,  1282,     0,     0,
     2237     185,   172,     0,     0,     0,     0,   369,     0,    45,    46,
     2238     811,     0,     0,   211,     0,     0,     0,     0,   235,   237,
     2239       0,     0,     0,     0,     0,     0,   246,     0,     0,     0,
     2240    1310,  1311,     0,     0,     0,     0,   598,     0,     0,     0,
     2241       0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
     2242     369,   369,   369,     0,     0,     0,     0,     0,     0,     0,
     2243       0,     0,     0,     0,     0,     0,     0,     0,   369,   211,
     2244       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2245    1343,  1344,     0,     0,     0,     0,     0,   211,     0,     0,
     2246    1354,     0,   211,     0,   211,     0,     0,     0,     0,     0,
     2247     524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2248       0,   211,     0,     0,   211,   211,   509,     0,     0,     0,
     2249       0,     0,   211,     0,     0,     0,   369,     0,   935,     0,
     2250       0,     0,   509,     0,     0,     0,   211,     0,     0,     0,
     2251       0,     0,     0,   211,     0,     0,     0,     0,     0,     0,
     2252       0,  1389,     0,  1390,  1391,  1392,     0,     0,     0,     0,
     2253       0,   716,     0,     0,     0,  1396,   156,     0,     0,     0,
     2254       0,     0,     0,     0,  1407,     8,     9,    10,    11,    12,
     2255      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2256      23,    24,    25,     0,     0,    26,    27,    28,     0,  1428,
     2257       0,     0,   509,   509,    31,     0,     0,     8,     9,    10,
     2258      11,    12,     0,   251,     0,     0,     0,   369,     0,     0,
     2259       0,   622,     0,   256,     0,   369,     0,     0,     0,     0,
     2260       0,     0,    34,     0,     0,     0,    31,    37,     0,    38,
     2261      39,    40,  1466,  1467,     0,     0,     0,     0,    41,    42,
     2262       0,     0,     0,     0,     0,  1472,     0,     0,   211,     0,
     2263       0,     0,  1472,     0,    34,     0,     0,     0,     0,    37,
     2264       0,   183,   184,    40,    43,     0,   157,     0,     0,   156,
     2265      41,    42,    45,    46,     0,     0,   211,     0,     0,     0,
     2266       0,   211,     0,   386,  1505,     0,     0,     0,  1511,     0,
     2267       0,     0,     0,     0,     0,     0,   265,     0,     0,     0,
     2268       0,     0,     0,     0,    45,    46,   418,     0,     0,     0,
     2269     716,     0,     0,     0,     0,     0,  1533,     0,  1534,     0,
     2270     433,     0,     0,     0,     0,   524,     0,     0,     0,   438,
     2271       0,     0,     0,     0,     0,     0,     0,     0,     0,   446,
     2272       0,     0,     0,     0,     0,     0,  1549,  1550,     0,   165,
     2273       0,     0,   211,     0,  1553,  1554,     0,     0,     0,     0,
     2274       0,     0,     0,     0,   464,     0,   211,     0,     0,   474,
     2275       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2276       0,     0,   482,     0,     0,     0,   497,     0,   492,     0,
     2277     496,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2278       0,     0,     0,     0,     0,   598,     0,   526,     8,     9,
    21632279      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2164       20,    21,    22,    23,    24,    25,   372,     0,     0,     0,
    2165        0,    57,     0,   164,   361,     0,     0,    31,  1203,     0,
    2166        0,     0,     0,     0,  1207,  1208,     0,     0,     0,     0,
    2167        0,     0,     0,     0,     0,     0,     0,     0,   520,     0,
    2168        0,     0,     0,  1224,     0,    34,     0,     0,  1231,     0,
    2169        0,   164,     0,  1235,     0,     0,     0,   253,     0,   254,
    2170        0,     0,    86,     0,  1242,     0,     0,     0,     0,    86,
    2171        0,     0,     0,     0,     0,   210,     0,  1249,     0,  1251,
    2172     1252,  1253,  1254,     0,     0,     0,   590,     0,     0,     0,
    2173        0,   614,     0,     0,  1261,     0,  1157,     0,     0,     0,
    2174      171,     0,     0,   210,     0,     0,     0,     0,   210,     0,
     2280      20,    21,    22,    23,    24,    25,   369,   369,    26,    27,
     2281      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     2282       0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
     2283     586,     0,     0,     0,     0,   591,     0,     0,     0,   211,
     2284       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2285      37,     0,    38,    39,    40,     0,     0,     0,   211,     0,
     2286       0,    41,    42,     0,   636,     0,   524,     0,   637,   638,
     2287       0,   640,     0,     0,     0,     0,     0,     0,   651,   652,
     2288       0,   653,   654,     0,   655,     0,   656,    43,     0,    44,
     2289       0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
     2290       0,     0,     0,   586,     0,     0,     0,     0,     0,     0,
     2291       0,   671,     0,     0,     0,     0,     0,     0,     0,   341,
     2292     364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2293       0,     0,   716,     0,     0,     0,   682,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2295      12,     0,     0,   414,     0,     0,     0,     0,     0,     0,
     2296     414,     0,   708,     0,     0,     0,     0,     0,   711,     0,
     2297       0,   211,     0,   464,   218,    31,     8,     9,    10,    11,
     2298      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2299      22,    23,    24,    25,  -293,     0,    26,    27,    28,     0,
     2300       0,   211,     0,    34,     0,    31,     0,     0,    37,   746,
     2301       0,   716,    40,     0,     0,     0,     0,     0,     0,    41,
     2302      42,     0,     0,     0,   764,     0,     0,     0,     0,     0,
     2303       0,     0,   414,    34,     0,     0,   211,     0,    37,     0,
     2304     336,   337,    40,     0,  -293,   719,     0,   211,     0,    41,
     2305      42,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2306     369,   369,     0,   790,     0,     0,     0,     0,     0,   218,
     2307       0,     0,   800,     0,     0,   635,     0,   338,   321,   802,
     2308       0,     0,     0,    45,    46,   810,     0,   414,   346,     0,
     2309       0,     0,     0,     0,   824,   414,   582,     0,   414,   585,
     2310     382,   382,     0,     0,     0,     0,     0,     0,     0,   364,
     2311       0,     0,     0,   614,     0,     0,     0,     0,     0,   211,
    21752312       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2176        0,    86,     0,     0,     0,     0,     0,     0,  1289,  1290,
    2177        0,     0,     0,     0,     0,     0,     0,     0,     0,   393,
    2178        0,     0,     0,     0,     0,     0,     0,     0,     0,   412,
    2179      413,     0,     0,     0,   417,     0,   419,   420,     0,     0,
    2180      156,     0,     0,     0,     0,     0,   164,   164,     0,     0,
    2181        0,     0,   367,     0,     0,     0,     0,   210,     0,     0,
    2182        0,     0,  1324,  1325,     0,     0,     0,     0,     0,     0,
    2183        0,   210,  1335,   520,     0,     0,     0,     0,     0,     0,
    2184        0,     0,     0,     0,     0,     0,     0,   250,     0,     0,
    2185        0,     0,   493,     0,     0,     0,     0,   255,     0,     0,
    2186        0,   706,     0,     0,     0,     0,     0,     0,     0,     0,
    2187        0,     0,     0,   164,     0,     0,     0,     0,     0,     0,
    2188        0,     0,     0,     0,     0,   520,     0,   520,     0,     0,
    2189      520,     0,   164,   520,  1370,     0,  1371,  1372,  1373,     0,
    2190        0,     0,     0,     0,   367,     0,     0,     0,  1377,     0,
    2191        0,   210,     0,     0,     0,     0,  1388,     0,     0,     0,
    2192        0,     0,   210,     0,     0,     0,   383,     0,     0,     0,
    2193        0,     0,     0,     0,     0,     0,     0,     0,     0,   210,
    2194        0,  1409,  1410,     0,     0,     0,     0,     0,     0,   415,
    2195        0,     0,     0,     0,     0,     0,   164,     0,     0,     0,
    2196        0,     0,     0,   429,     0,     0,     0,   367,     0,     0,
    2197      797,     0,   434,     0,     0,     0,     0,     0,     0,     0,
    2198        0,     0,   442,     0,     0,     0,  1449,  1450,     0,     0,
    2199        0,     0,     0,     0,     0,     0,   590,     0,     0,  1455,
    2200        0,   590,     0,     0,     0,     0,  1455,   460,     0,     0,
    2201      367,   367,   470,     0,     0,     0,     0,     0,     0,     0,
    2202        0,     0,     0,     0,     0,   478,   367,     0,     0,     0,
    2203        0,   488,     0,   492,     0,     0,     0,     0,     0,  1488,
    2204        0,     0,     0,  1494,     0,     0,     0,     0,     0,     0,
    2205      210,     0,   521,     0,     0,     0,     0,     0,   520,     0,
     2313       0,     0,   632,   211,   864,   341,   205,     2,   206,     4,
     2314       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2315      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2316      25,     0,   414,    26,    27,    28,   414,     0,     0,     0,
     2317     810,   321,    31,     0,     0,     0,     0,     0,   905,     0,
     2318     369,     0,   282,   283,     0,   284,     0,     0,     0,     0,
     2319       0,     0,     0,     0,     0,   478,     0,   364,     0,     0,
     2320      34,     0,    35,     0,    36,     0,     0,   207,    39,   251,
     2321       0,   285,     0,     0,     0,     0,     0,   286,     0,   942,
     2322     943,   287,   211,     0,   288,   289,   290,   291,    41,    42,
     2323       0,   292,   293,     0,     0,     0,   524,     0,   524,     0,
     2324       0,     0,     0,   414,   208,     0,   364,     0,     0,     0,
     2325      45,    46,   980,     0,   294,     0,   379,   984,     0,   380,
     2326       0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2327       0,     0,   524,     0,   524,     0,     0,     0,     0,     0,
     2328       0,     0,     0,     0,     0,   414,     0,     0,     0,   341,
     2329     364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2330       0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
     2331       0,     0,   382,     0,     0,     0,     0,   211,     0,     0,
     2332       0,  1018,     0,     0,     0,     0,     0,     0,  1019,     0,
     2333       0,     0,     0,     0,     0,   414,   414,     0,     0,     0,
     2334       0,  1021,     0,  1022,     0,     0,     0,     0,     0,     0,
     2335       0,     0,     0,     0,   804,   364,     0,  1034,     0,     0,
     2336       0,     0,     0,  1038,     0,   614,     0,   614,   614,     0,
     2337       0,     0,     0,     0,   614,  1076,     0,     0,  1077,     0,
     2338       0,     0,     0,     0,   843,   364,     0,     0,     0,     0,
     2339     364,     0,     0,     0,     0,     0,     0,     0,     0,   364,
     2340     364,   364,     0,     0,     0,     0,   710,     0,     0,     0,
     2341       0,     0,     0,     0,     0,     0,     0,   364,     0,     0,
     2342       0,     0,   414,   885,     0,     0,   414,   888,     0,     0,
     2343       0,     0,     0,   890,     0,     0,     0,     0,     0,     0,
     2344       0,     0,     0,     0,     0,   742,     0,     0,     0,     0,
     2345       0,     0,   414,     0,     0,   591,     0,     0,   759,     0,
     2346       0,     0,     0,   742,     0,     0,   742,     0,     0,     0,
     2347       0,     0,     0,     0,     0,   364,   614,     0,     0,   768,
    22062348       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2207        0,  1516,     0,  1517,     0,     0,     0,     0,     0,     0,
    2208      210,     0,     0,     0,   367,     0,   919,     0,     0,     0,
    2209        0,     0,     0,   580,     0,     0,     0,   584,     0,     0,
    2210        0,  1532,  1533,     0,     0,     0,     0,     0,     0,  1536,
    2211     1537,     0,   210,     0,     0,     0,     0,     0,     0,   706,
    2212        0,     0,     0,   210,     0,   627,     0,     0,     0,   628,
    2213      629,     0,   630,     0,     0,     0,     0,     0,     0,   641,
    2214      642,     0,   643,   644,     0,   645,     0,   646,     0,     0,
     2349    1147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2350       0,   789,     0,     0,     0,     0,     0,     0,     0,   341,
     2351     364,   798,     0,     0,   414,   414,     0,     0,   346,     0,
     2352       0,     0,     0,   759,     0,     0,     0,     0,     0,     0,
     2353       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2354      18,    19,    20,    21,    22,    23,    24,    25,   526,     0,
     2355      26,    27,    28,     0,  1212,     0,     0,     0,   414,    31,
     2356       0,     0,     0,     0,   211,     0,   364,     0,     0,     0,
     2357       0,     0,   863,   804,   364,     0,     0,   614,     0,   614,
     2358     382,     0,     0,     0,     0,     0,     0,    34,  1224,   614,
     2359       0,     0,    37,  1226,   207,    39,    40,     0,     0,     0,
     2360       0,  1230,     0,    41,    42,     0,     8,     9,    10,    11,
     2361      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2362      22,    23,    24,    25,  -293,     0,     0,     0,     0,    43,
     2363       0,   270,     0,     0,  1256,    31,     0,    45,    46,     0,
     2364       0,     0,     0,     0,     0,     0,  1264,     0,     0,  1265,
     2365       0,  1266,     0,     0,     0,     0,     0,     0,     0,     0,
     2366       0,   804,     0,    34,     0,  1275,  1276,     0,   341,   364,
     2367     414,     0,   414,     0,  -293,     0,   414,     0,   759,     0,
     2368     964,     0,     0,     0,     0,     0,     0,  1289,     0,     0,
     2369     975,     0,     0,     0,     0,     0,   983,   614,   614,     0,
     2370       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2371      18,    19,    20,    21,    22,    23,    24,    25,  -294,     0,
     2372       0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
     2373       0,     0,   414,     0,  1328,     0,     0,     0,  1001,  1002,
     2374       0,     0,   346,     0,     0,     0,     0,     0,   282,   283,
     2375       0,   284,     0,   414,  1144,     0,   346,    34,     0,     0,
     2376       0,     0,     0,     0,   364,     0,     0,     0,  -294,     0,
     2377     414,  1156,     0,   614,   614,  1161,     0,   285,     0,     0,
     2378       0,     0,     0,   286,     0,   364,   364,   287,     0,     0,
     2379     288,   289,   290,   291,    41,    42,  1032,   292,   293,     0,
     2380     382,     0,     0,     0,     0,     0,     0,     0,     0,  1378,
     2381       0,  1379,     0,     0,     0,     0,     0,     0,     0,     0,
     2382     294,     0,   379,  1387,     0,  1388,     0,   758,    45,    46,
     2383     296,   297,   298,   299,     0,     0,     0,   346,     0,     0,
     2384       0,     0,  1395,     0,     0,     0,     0,     0,   414,     0,
     2385     414,     0,     0,     0,     0,   414,     0,     0,  1413,  1415,
     2386       0,     0,     0,     0,   614,     0,     0,     0,     0,  1420,
     2387       0,     0,  1230,     0,     0,     0,   321,     0,     0,     0,
     2388       0,     0,     0,     0,     0,     0,     0,   804,   414,  1244,
     2389       0,     0,     0,  1442,     0,     0,     0,     0,     0,     0,
     2390       0,     0,  1449,     0,   382,  1451,     0,  1453,  1455,  1457,
     2391     975,   364,     0,     0,   742,   282,   283,     0,   284,     0,
    22152392       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2216        0,     0,     0,     0,   580,     0,     0,     0,   785,   786,
    2217        0,     0,   661,     0,     0,     0,     0,   614,     0,     0,
     2393       0,     0,     0,     0,     0,  1151,     0,     0,     0,     0,
     2394       0,     0,     0,     0,   285,     0,  1166,  1487,     0,  1489,
     2395     641,  1230,   139,   140,   287,     0,     0,   288,   289,   290,
     2396     291,    41,    42,     0,   292,   293,  1500,     0,   382,     0,
     2397    1184,     0,   341,     0,     0,     0,     0,     0,     0,     0,
     2398       0,     0,     0,     0,     0,   975,   975,   294,     0,   642,
     2399     364,   643,   380,     0,     0,    45,    46,   296,   297,   298,
     2400     299,     0,     0,     0,     0,     0,  1216,     0,     0,     0,
     2401       0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
     2402       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2403      17,    18,    19,    20,    21,    22,    23,    24,    25,   364,
     2404     364,    26,    27,    28,    29,     0,     0,    30,     0,     0,
     2405      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2406       0,   975,     0,     0,     0,     0,     0,     0,     0,     0,
     2407       0,     0,     0,     0,     0,     0,     0,     0,    34,   863,
     2408      35,     0,    36,     0,     0,    38,    39,     0,     0,     0,
     2409       0,     0,     0,     0,  1267,  1268,     0,     1,     2,   206,
     2410       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2411      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2412      24,    25,    44,     0,    26,    27,    28,    29,    45,    46,
     2413      30,   282,   283,    31,  1041,  1042,     0,  1043,     0,     0,
     2414    1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,
     2415       0,  1052,     0,     0,     0,  1053,  1054,     0,    33,   364,
     2416     285,    34,     0,    35,     0,    36,  1055,     0,    38,    39,
     2417     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2418     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    22182419       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2219        0,     0,   210,     0,     0,   816,   672,     0,   819,   820,
    2220        0,   823,     0,   825,   826,     0,   210,     0,   827,   828,
    2221        0,   126,   126,   126,   503,     0,   505,   508,     0,     0,
    2222        0,     0,   698,     0,     0,     0,   511,   512,   701,     0,
    2223        0,     0,     0,   460,     0,     0,     0,     0,     0,     0,
    2224        0,   505,   505,     0,     0,     0,     0,     0,     0,     0,
    2225        0,     0,     0,     0,     0,     0,     0,     0,     0,   339,
    2226      362,     0,     0,     0,     0,   367,     0,     0,     0,   736,
    2227        0,     0,   706,     0,     0,     0,   505,     0,     0,     0,
    2228        0,     0,     0,   126,   754,   126,     0,   520,     0,     0,
    2229        0,     0,   411,     0,   210,     0,     0,     0,     0,   411,
     2420       0,     0,     0,   294,     0,  1056,     0,     0,   171,     0,
     2421       0,    45,    46,   296,   297,   298,   299,     0,     0,     0,
     2422       0,  1057,     0,     0,     0,     0,  -128,     0,     0,     0,
     2423       0,     0,     0,     0,     0,  1372,     0,     0,   742,     0,
     2424       0,     0,     0,     0,     0,     0,   414,     0,     0,     0,
    22302425       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2231      274,   505,   164,     0,     0,     0,     0,     0,     0,     0,
    2232        0,   779,     0,     0,     0,     0,     0,     0,     0,     0,
    2233      789,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2234        0,     0,     0,     0,   954,   955,     0,     0,     0,     0,
    2235      810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2236        0,     0,     0,     0,   590,   126,     0,     0,     0,     0,
    2237        0,   411,     0,   126,     0,   126,   126,     0,     0,     0,
    2238      126,     0,   126,   126,     0,   367,   367,     0,   849,     0,
    2239        0,   210,     0,     0,   463,     2,   205,     4,     5,     6,
     2426       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2427     414,   414,     0,     0,     0,     0,     0,     0,     0,     0,
     2428       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2429       0,     0,     0,     0,     0,   414,     1,     2,   206,     4,
     2430       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2431      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2432      25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
     2433     282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
     2434      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2435      24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
     2436      34,     0,    35,    31,    36,   286,     0,    38,    39,   287,
     2437       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2438     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2439       0,    34,     0,     0,     0,     0,   110,     0,    38,    39,
     2440       0,     0,   294,     0,    44,     0,     0,    41,    42,     0,
     2441      45,    46,   296,   297,   298,   299,     2,   206,     4,     5,
     2442       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2443      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2444       0,     0,    26,    27,    28,     0,     0,     0,   321,   282,
     2445     283,    31,   284,     8,     9,    10,    11,    12,    13,    14,
     2446      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2447      25,     0,     0,    26,    27,    28,     0,     0,   285,    34,
     2448       0,    35,    31,    36,   286,     0,    38,    39,   287,     0,
     2449       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
     2450       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2451      34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
     2452       0,   294,     0,   343,     0,     0,     0,     0,   758,   344,
     2453      46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
    22402454       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    22412455      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2242        0,    26,    27,    28,   882,     0,     0,     0,   411,     0,
    2243       31,     0,   889,     0,     0,     0,   411,   576,     0,   411,
    2244      579,     0,   520,     0,     0,     0,     0,   362,     0,     0,
    2245        0,   606,   126,     0,     0,     0,     0,     0,    34,     0,
    2246       35,     0,    36,   250,     0,    38,    39,     0,     0,     0,
    2247      624,     0,     0,     0,   927,   928,     0,     0,     0,   505,
    2248      505,   505,   505,   505,   505,   505,   505,   505,   505,   505,
    2249      505,   505,   505,   505,   505,   505,   505,     0,     0,   411,
    2250     1069,     0,     0,   411,     0,     0,   962,    -3,   706,     0,
    2251        0,   966,     8,     9,    10,    11,    12,    13,    14,    15,
     2456       0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
     2457      31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
    22522458      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2253     -298,     0,     0,   362,     0,     0,     0,     0,     0,     0,
    2254        0,    31,     0,   322,     0,     0,     0,     0,     0,   217,
    2255        0,     0,     0,   344,     0,     0,     0,     0,     0,     0,
    2256        0,     0,     0,     0,   379,   379,     0,     0,     0,    34,
    2257        0,   999,     0,     0,     0,     0,     0,     0,  1000,   411,
    2258     -298,     0,   362,     0,     0,   706,     0,     0,     0,     0,
    2259        0,  1002,     0,  1003,     0,     0,     0,     0,     0,     0,
    2260        0,     0,     0,     0,     0,     0,  1013,     0,     0,     0,
    2261        0,     0,  1017,     0,     0,     0,     0,     0,     0,   505,
    2262        0,   411,     0,     0,  1054,   362,     0,  1055,     0,     0,
    2263        0,     0,     0,     0,     0,   322,     0,     0,   367,   367,
    2264        0,     0,   210,     0,     0,     0,   217,     0,     0,     0,
    2265        0,     0,     0,     0,     0,  1195,     0,     0,     0,   474,
    2266        0,     0,     0,     0,     0,     0,     0,     0,     0,   411,
    2267      411,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2268      505,     0,     0,     0,     0,     0,     0,   792,   362,     0,
    2269        0,     0,     0,     0,     0,     0,     0,   606,     0,   606,
    2270      606,     0,     0,     0,     0,     0,   606,     0,     0,     0,
    2271      505,     0,     0,     0,     0,     0,   829,   362,     0,     0,
    2272        0,     0,   362,     0,     0,     0,     0,     0,     0,     0,
    2273        0,   362,   362,     0,     0,  1125,     0,     0,     0,     0,
    2274        0,     0,     0,     0,     0,     0,     0,   362,     0,     0,
    2275        0,     0,   411,   870,   126,   126,   411,   873,     0,   367,
    2276        0,     0,     0,   875,     0,     0,     0,     0,     0,     0,
    2277        0,     0,     0,     0,   379,     0,     0,     0,     0,     0,
    2278        0,   126,   411,  1284,   126,   126,     0,   126,     0,   126,
    2279      126,     0,     0,     0,   126,   126,  1188,     0,     0,     0,
    2280        0,     0,     0,     0,     0,   362,   606,     0,     0,     0,
    2281        0,     0,     0,     0,     0,     0,   520,     0,   520,     0,
    2282        0,     0,     0,     0,   505,     0,     0,     0,     0,     0,
    2283     1200,     0,     0,     0,     0,  1202,     0,     0,     0,     0,
    2284      362,     0,     0,  1206,   411,   411,     0,     0,     0,     0,
    2285        0,     0,     0,   520,     0,   520,     0,     0,     0,     0,
    2286        0,     0,     0,     0,     0,     0,     0,   700,     0,     0,
    2287      505,     0,     0,     0,     0,     0,     0,  1237,     0,     0,
    2288        0,     0,   164,     0,     0,     0,     0,   411,  1244,     0,
    2289        0,  1245,     0,  1246,     0,     0,     0,     0,     0,     0,
    2290        0,     0,   505,   606,     0,   606,   733,     0,  1255,  1256,
    2291        0,     0,     0,     0,   505,   606,     0,     0,   749,     0,
    2292        0,     0,     0,     0,   733,     0,     0,   733,  1268,     0,
    2293      126,   126,  1141,     0,     0,     8,     9,    10,    11,    12,
    2294      758,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2295        0,     0,     0,   505,     0,     0,     0,     0,     0,     0,
    2296        0,     0,   281,   282,    31,   283,     0,     0,     0,     0,
    2297      787,     0,     0,     0,  1307,     0,     0,   344,     0,     0,
    2298        0,   749,  1311,     0,     0,     0,   362,     0,     0,     0,
    2299        0,   284,    34,   362,   411,     0,   411,   285,     0,     0,
    2300      411,   286,     0,     0,   287,   288,   289,   290,   291,   292,
    2301       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2302        0,   606,   606,     0,     0,     0,     0,   848,     0,   505,
    2303        0,     0,     0,     0,     0,   379,   295,     0,   376,     0,
    2304        0,     0,     0,     0,  1142,    46,   297,   298,   299,   300,
    2305        0,     0,  1358,     0,  1359,     0,   411,     0,     0,     0,
     2459       0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
     2460      35,    31,    36,   286,     0,    38,    39,   287,     0,     0,
     2461     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
     2462       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2463       0,     0,     0,     0,     0,     0,   207,    39,     0,     0,
     2464     294,     0,   963,     0,     0,     0,     0,   758,   344,    46,
     2465     296,   297,   298,   299,     2,   206,     4,     5,     6,     7,
     2466       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2467      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2468      26,    27,    28,     0,     0,     0,     0,   282,   283,    31,
     2469     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2470      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2471       0,     0,     0,     0,     0,     0,   285,    34,     0,    35,
     2472      31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
     2473     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2474       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2475       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
     2476       0,   963,     0,     0,     0,     0,   758,    45,    46,   296,
     2477     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
     2478       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2479      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2480      27,    28,     0,     0,     0,     0,   282,   283,    31,   284,
    23062481       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2307     1368,     0,  1369,     0,     0,   411,  1123,     0,     0,     0,
    2308        0,   126,     0,     0,     0,   362,   126,  1376,   505,   505,
    2309        0,   411,  1134,     0,   606,   606,  1139,     0,     0,     0,
    2310        0,     0,  1394,  1396,     0,     0,   362,   362,     0,     0,
    2311        0,   924,     0,  1401,     0,     0,  1206,     0,     0,     0,
    23122482       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2313        0,     0,     0,   749,     0,   948,     0,     0,  1424,     0,
    2314        0,     0,     0,     0,     0,   958,     0,  1431,     0,     0,
    2315     1433,   965,  1435,  1437,  1439,     0,     0,     0,     0,     0,
    2316        0,     0,     0,     0,     0,     0,   411,     0,   411,     0,
    2317        0,     0,     0,   411,     0,     0,     0,     0,     0,     0,
    2318        0,     0,   606,     0,     0,     0,     0,     0,     0,     0,
    2319        0,   982,   983,  1470,     0,  1472,     0,  1206,     0,     0,
    2320        0,     0,     0,     0,     0,   411,  1220,   344,     0,     0,
    2321        0,     0,     0,  1483,     0,     0,     0,     0,     0,     0,
    2322        0,     0,     0,     0,     0,     0,     0,     0,     0,   362,
     2483       0,     0,     0,     0,     0,   285,    34,     0,    35,     0,
     2484      36,   286,     0,    38,    39,   287,     0,     0,   288,   289,
     2485     290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
    23232486       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2324        0,   126,     0,     0,     0,     0,  1011,     0,     0,     0,
    2325      379,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2487       0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
     2488     343,     0,     0,     0,     0,     0,   344,    46,   296,   297,
     2489     298,   299,     2,   206,     4,     5,     6,     7,     8,     9,
     2490      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2491      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2492      28,     0,     0,     0,     0,   282,   283,    31,   284,     0,
     2493       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2494       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2495       0,     0,     0,     0,   285,    34,     0,    35,     0,    36,
     2496     286,     0,   207,    39,   287,     0,     0,   288,   289,   290,
     2497     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
     2498       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2499       0,     0,     0,     0,     0,     0,     0,   294,     0,   998,
     2500       0,     0,     0,     0,     0,   999,    46,   296,   297,   298,
     2501     299,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2502      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2503      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2504       0,     0,     0,     0,   282,   283,    31,   284,     0,     0,
     2505       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2506       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2507       0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
     2508       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
     2509      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2510       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2511       0,     0,     0,     0,     0,     0,   294,     0,   963,     0,
     2512       0,     0,     0,     0,   344,    46,   296,   297,   298,   299,
     2513       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2514      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2515      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2516       0,     0,     0,   282,   283,    31,   284,     0,     0,     0,
     2517       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2518       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2519       0,     0,   285,    34,     0,    35,     0,    36,   286,     0,
     2520     207,    39,   287,     0,     0,   288,   289,   290,   291,    41,
     2521      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
     2522       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2523       0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
     2524       0,     0,     0,    45,    46,   296,   297,   298,   299,  -516,
     2525       0,     0,     1,     2,     3,     4,     5,     6,     7,     8,
     2526       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2527      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2528      27,    28,    29,     0,     0,    30,     0,     0,    31,    32,
     2529       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2530       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2531       0,     0,     0,    33,     0,     0,    34,     0,    35,     0,
     2532      36,    37,     0,    38,    39,    40,     0,     0,     0,     0,
     2533       0,     0,    41,    42,     0,     0,     0,     0,     0,     0,
     2534       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2535       0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
     2536      44,     0,     0,     0,     0,     0,    45,    46,     1,     2,
     2537       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    23262538      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2327       23,    24,    25,     0,     0,    26,    27,    28,     0,   344,
    2328        0,     0,     0,     0,    31,     0,   344,     0,     0,     0,
    2329        0,     0,     0,     0,     0,     0,   505,     0,     0,     0,
    2330        0,     0,     0,     0,     0,     0,   362,     0,     0,     0,
    2331        0,     0,    34,   505,     0,     0,     0,     0,     0,   206,
    2332       39,     0,     0,     0,     0,     0,   322,   204,     2,   205,
    2333        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2539      23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
     2540       0,    30,     0,     0,    31,    32,     0,     0,     0,     0,
     2541       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2542       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2543       0,     0,    34,     0,    35,     0,    36,    37,     0,    38,
     2544      39,    40,     0,     0,     0,     0,     0,     0,    41,    42,
     2545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2546       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2547       0,     0,     0,     0,    43,     0,    44,     0,     0,     0,
     2548    -520,     0,    45,    46,     1,     2,     3,     4,     5,     6,
     2549       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2550      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2551       0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
     2552      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
     2553       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2554       0,     0,     0,     0,     0,    33,     0,     0,    34,     0,
     2555      35,     0,    36,    37,     0,    38,    39,    40,     0,     0,
     2556       0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
     2557       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2558       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2559      43,     0,    44,     0,     0,     0,     0,     0,    45,    46,
     2560     205,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2561      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2562      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2563       0,     0,     0,     0,     0,     0,    31,     0,     8,     9,
     2564      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2565      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2566      28,   485,   486,   487,    34,     0,    35,    31,    36,    37,
     2567       0,   207,    39,    40,     0,     0,     0,     0,     0,     0,
     2568      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2569       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2570       0,     0,    38,    39,     0,     0,    43,     0,   208,     0,
     2571       0,     0,     0,     0,    45,    46,     1,     2,   206,     4,
     2572       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2573      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2574      25,  -293,     0,    26,    27,    28,    29,     0,     0,    30,
     2575       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2576       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2577       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2578      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
     2579       0,  -293,     2,   206,     4,     5,     6,     7,     8,     9,
     2580      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2581      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2582      28,     0,     0,     0,    44,     0,     0,    31,     0,     0,
     2583      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2584       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2585       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
     2586      37,     0,   207,    39,    40,     0,     0,     0,     0,     0,
     2587       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
     2588       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2589       0,     0,     0,     0,     0,     0,     0,    43,     0,   208,
     2590       0,     0,     0,     0,     0,    45,    46,     2,   206,     4,
     2591       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2592      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2593      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2594       0,     0,    31,     0,     0,     0,     0,     8,     9,    10,
     2595      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2596      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2597      34,     0,    35,     0,    36,     0,    31,    38,    39,     0,
     2598       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2599      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2600      22,    23,    24,    25,    34,     0,    26,    27,    28,     0,
     2601       0,    38,    39,  -400,   678,    31,     0,     0,     0,     0,
     2602      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2603       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2604       0,     0,     0,    34,     0,    35,   635,    36,   338,     0,
     2605      38,    39,     0,     0,    45,    46,     0,     0,     0,     0,
     2606       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2607       0,     0,  1351,     0,     0,     0,     0,     0,     0,     0,
     2608       0,     0,     0,     0,     0,     0,     0,   678,     0,     0,
     2609       0,     0,     0,    45,    46,     2,   206,     4,     5,     6,
     2610       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2611      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2612       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2613      31,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    23342614      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2335       24,    25,     0,   379,    26,    27,    28,     0,   958,   362,
    2336      362,   733,     0,    31,    45,    46,     0,     0,     0,   126,
     2615      24,    25,     0,     0,    26,    27,    28,     0,    34,     0,
     2616      35,     0,    36,    31,   685,    38,    39,     0,     0,     0,
    23372617       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2338        0,  1129,     0,     0,     0,   505,   505,     0,     0,     0,
    2339        0,    34,  1144,    35,     0,    36,    37,     0,   206,    39,
    2340       40,     0,     0,     0,     0,     0,     0,     0,     0,    41,
    2341       42,     0,   379,     0,  1161,     0,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,     0,     0,     0,     0,   958,
    2343      958,     0,     0,     0,     0,    43,     0,   207,     0,     0,
    2344        0,     0,     0,    45,    46,     0,     0,     0,     0,  1192,
    2345        0,     0,     0,     0,     0,     1,     2,   205,     4,     5,
     2618       0,     0,     0,     0,     0,     0,     0,  1353,     0,     0,
     2619       0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
     2620       0,     0,   678,     0,     0,     0,     0,     0,    45,    46,
     2621       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2622      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2623      22,    23,    24,    25,     0,   686,    26,    27,    28,   687,
     2624       0,    45,    46,     0,     0,    31,     0,     0,     0,     0,
     2625       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2626       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2627       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2628     207,    39,     0,     2,   206,     4,     5,     6,     7,     8,
     2629       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2630      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2631      27,    28,     0,     0,     0,     0,     0,   270,    31,     0,
     2632       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2633       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2634       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2635      36,     0,     0,    38,    39,     0,     2,   206,     4,     5,
    23462636       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    23472637      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2348      362,     0,    26,    27,    28,    29,     0,     0,    30,     0,
    2349        0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
    2350        0,     0,     0,   958,     0,     0,     0,     0,     0,     0,
     2638       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2639     678,    31,     0,     0,     0,     0,    45,    46,     0,     0,
     2640       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23512641       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2352        0,    35,   848,    36,     0,     0,    38,    39,     0,     0,
    2353        0,     0,     0,     0,     0,     0,     0,  1247,  1248,     0,
    2354        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2355       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2356       22,    23,    24,    25,     0,    44,    26,    27,    28,   411,
    2357        0,    45,    46,     0,     0,    31,     0,     0,     0,     0,
     2642       0,    35,     0,    36,     0,     0,    38,    39,     0,     2,
     2643     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2644      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2645      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2646       0,     0,     0,   593,    31,     0,     0,     0,     0,    45,
     2647      46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23582648       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2359        0,     0,     0,   411,   411,     0,     0,     0,     0,     0,
    2360        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2361       38,    39,     0,     0,     0,     0,     0,     0,   411,     0,
    2362        0,     0,     1,     2,   205,     4,     5,     6,     7,     8,
    2363        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2364       19,    20,    21,    22,    23,    24,    25,     0,  -418,    26,
    2365       27,    28,    29,     0,     0,    30,   281,   282,    31,  1020,
    2366     1021,     0,  1022,     0,     0,  1023,  1024,  1025,  1026,  1027,
    2367     1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,  1352,
    2368     1032,  1033,   733,    33,     0,   284,    34,     0,    35,     0,
    2369       36,  1034,     0,    38,    39,   286,     0,     0,   287,   288,
    2370      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2649       0,     0,    34,     0,    35,     0,    36,     0,     0,   207,
     2650      39,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2651      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2652       0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
     2653      31,   284,     0,     0,     0,     0,   208,     0,     0,     0,
     2654       0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
     2655       0,     0,     0,     0,     0,     0,     0,   285,    34,     0,
     2656       0,     0,     0,   286,     0,    38,    39,   287,     0,     0,
     2657     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    23712658       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23722659       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2373      295,     0,   296,     0,     0,   170,     0,     0,    45,    46,
    2374      297,   298,   299,   300,     0,     0,     0,     0,  1035,     0,
    2375        0,     0,     0,  -134,     1,     2,   205,     4,     5,     6,
     2660     294,     0,   517,     0,     0,   171,     0,     0,    45,    46,
     2661     296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
     2662      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2663      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2664       0,   282,   283,    31,   284,     8,     9,    10,    11,    12,
     2665      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2666      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2667     285,    34,     0,     0,    31,     0,   286,     0,    38,    39,
     2668     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2669     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2670       0,     0,    34,     0,     0,     0,     0,    37,     0,   336,
     2671     337,    40,     0,   294,   -36,   295,     0,     0,    41,    42,
     2672       0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
     2673      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2674      21,    22,    23,    24,    25,     0,   338,    26,    27,    28,
     2675       0,     0,    45,    46,   282,   283,    31,   284,     8,     9,
     2676      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2677      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2678      28,     0,     0,   285,    34,     0,     0,    31,     0,   286,
     2679       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
     2680      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2681       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2682     110,     0,    38,    39,     0,     0,   294,     0,   295,     0,
     2683       0,    41,    42,     0,    45,    46,   296,   297,   298,   299,
     2684       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2685      18,    19,    20,    21,    22,    23,    24,    25,     0,    44,
     2686      26,    27,    28,     0,     0,    45,    46,   282,   283,    31,
     2687     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2688      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2689       0,    26,    27,    28,     0,     0,   285,    34,     0,     0,
     2690      31,   685,   286,     0,    38,    39,   287,     0,     0,   288,
     2691     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2692       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2693       0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
     2694       0,   157,     0,     0,     0,     0,     0,    45,    46,   296,
     2695     297,   298,   299,     8,     9,    10,    11,    12,    13,    14,
     2696      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2697      25,     0,   686,    26,    27,    28,  1092,     0,    45,    46,
     2698     282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
     2699      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2700      24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
     2701      34,     0,     0,    31,   685,   286,     0,    38,    39,   287,
     2702       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2703     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2704       0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
     2705       0,     0,   294,     0,   593,     0,     0,     0,     0,     0,
     2706      45,    46,   296,   297,   298,   299,     8,     9,    10,    11,
     2707      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2708      22,    23,    24,    25,     0,   686,    26,    27,    28,  1221,
     2709       0,    45,    46,   282,   283,    31,   284,     0,     0,     0,
     2710       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2711      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2712      24,    25,   285,    34,    26,    27,    28,     0,   286,     0,
     2713      38,    39,   287,    31,     0,   288,   289,   290,   291,    41,
     2714      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
     2715       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2716       0,    34,     0,     0,     0,   294,     0,   379,    38,    39,
     2717       0,     0,     0,    45,    46,   296,   297,   298,   299,   467,
     2718       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2719      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2720      22,    23,    24,    25,     0,   257,    26,    27,    28,     0,
     2721       0,    45,    46,     0,     0,    31,     0,     0,     0,     8,
     2722       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2723      19,    20,    21,    22,    23,    24,    25,  -293,     0,    26,
     2724      27,    28,     0,    34,     0,    35,     0,    36,    31,     0,
     2725      38,    39,     0,     0,     0,     0,     0,     8,     9,    10,
     2726      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2727      21,    22,    23,    24,    25,     0,    34,    26,    27,    28,
     2728       0,    37,     0,   336,   337,    40,    31,  -293,     0,     0,
     2729      -3,     0,    41,    42,     0,     8,     9,    10,    11,    12,
     2730      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2731      23,    24,    25,  -293,    34,    26,    27,    28,     0,    37,
     2732     338,   336,   337,    40,    31,     0,    45,    46,     0,     0,
     2733      41,    42,     0,     8,     9,    10,    11,    12,    13,    14,
     2734      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2735      25,     0,    34,    26,    27,    28,   635,     0,   338,    38,
     2736      39,     0,    31,  -293,    45,    46,     8,     9,    10,    11,
     2737      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2738      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2739      34,     0,     0,     0,     0,    31,   338,    38,    39,     0,
     2740       0,     0,    45,    46,     8,     9,    10,    11,    12,    13,
     2741      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2742      24,    25,     0,    34,    26,    27,    28,     0,     0,     0,
     2743     207,    39,     0,    31,   157,     0,     0,     0,     0,     0,
     2744      45,    46,     8,     9,    10,    11,    12,    13,    14,    15,
     2745      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2746       0,    34,    26,    27,    28,     0,     0,   270,    38,    39,
     2747       0,    31,     0,    45,    46,     8,     9,    10,    11,    12,
     2748      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2749      23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
     2750       0,     0,     0,     0,    31,   338,    38,    39,     0,     0,
     2751       0,    45,    46,     8,     9,    10,    11,    12,    13,    14,
     2752      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2753      25,     0,    34,    26,    27,    28,     0,     0,     0,    38,
     2754      39,     0,    31,   686,     0,     0,     0,     0,     0,    45,
     2755      46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2756      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2757      34,    26,    27,    28,     0,     0,   593,    38,    39,     0,
     2758      31,     0,    45,    46,     2,   206,     4,     5,     6,     7,
     2759       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2760      18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
     2761      26,    27,    28,     0,    44,   207,    39,     0,     0,    31,
     2762      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2763       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2764       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2765       0,    36,     0,     0,    38,    39,     0,     0,    45,    46,
     2766     282,   283,     0,   284,  1042,     0,  1043,     0,     0,  1044,
     2767    1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,  1525,
     2768    1052,     0,     0,     0,  1053,  1054,     0,    33,     0,   285,
     2769    -413,     0,     0,     0,     0,  1055,     0,     0,     0,   287,
     2770       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2771     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2772       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2773       0,     0,   294,     0,   379,     0,     0,   171,     0,     0,
     2774      45,    46,   296,   297,   298,   299,     0,     0,   282,   283,
     2775    1057,   284,  1042,     0,  1043,  -128,     0,  1044,  1045,  1046,
     2776    1047,  1048,  1049,  1050,  1051,     0,     0,     0,  1052,     0,
     2777       0,     0,  1053,  1054,     0,    33,     0,   285,     0,     0,
     2778       0,     0,     0,  1055,     0,     0,     0,   287,     0,     0,
     2779     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
     2780       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2781       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2782     294,     0,   379,     0,     0,   171,     0,     0,    45,    46,
     2783     296,   297,   298,   299,     0,     0,     0,     0,  1057,     0,
     2784       0,     0,     0,  -128,     2,   206,     4,     5,     6,     7,
     2785       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2786      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2787      26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
     2788       0,   282,   283,     0,   284,  1042,     0,  1043,  1399,  1400,
     2789    1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,
     2790    1525,  1052,     0,     0,     0,  1053,  1054,    34,    33,    35,
     2791     285,    36,     0,     0,    38,    39,  1055,     0,     0,     0,
     2792     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2793     292,   293,     0,     0,     0,     0,  1312,     0,     0,     0,
     2794       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2795       0,     0,     0,   294,     0,   379,     0,     0,   171,     0,
     2796       0,    45,    46,   296,   297,   298,   299,     0,     0,   282,
     2797     283,  1057,   284,  1042,     0,  1043,  1399,  1400,  1044,  1045,
     2798    1046,  1047,  1048,  1049,  1050,  1051,     0,     0,     0,  1052,
     2799       0,     0,     0,  1053,  1054,     0,    33,     0,   285,     0,
     2800       0,     0,     0,     0,  1055,     0,     0,     0,   287,     0,
     2801       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
     2802       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2803       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2804       0,   294,     0,   379,     0,     0,   171,     0,     0,    45,
     2805      46,   296,   297,   298,   299,     0,     0,   282,   283,  1057,
     2806     284,  1042,     0,  1043,     0,     0,  1044,  1045,  1046,  1047,
     2807    1048,  1049,  1050,  1051,     0,     0,     0,  1052,     0,     0,
     2808       0,  1053,  1054,     0,    33,     0,   285,     0,     0,     0,
     2809       0,     0,  1055,     0,     0,     0,   287,     0,     0,   288,
     2810     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2811       0,     0,     0,     0,   282,   283,     0,   284,     0,     0,
     2812       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
     2813       0,   379,     0,     0,   171,     0,     0,    45,    46,   296,
     2814     297,   298,   299,   285,     0,     0,     0,  1057,     0,   286,
     2815       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2816      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2817       0,   282,   283,     0,   284,     0,     0,     0,     0,     0,
     2818       0,     0,     0,     0,     0,     0,   294,     0,   379,     0,
     2819       0,   972,     0,     0,    45,    46,   296,   297,   298,   299,
     2820     285,     0,     0,     0,     0,     0,   286,     0,     0,     0,
     2821     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2822     292,   293,     0,     0,     0,     0,     0,     0,   282,   283,
     2823       0,   284,     0,     0,     0,     0,     0,     0,     0,     0,
     2824       0,     0,     0,   294,     0,   379,     0,   282,   283,     0,
     2825     284,    45,    46,   296,   297,   298,   299,   285,     0,     0,
     2826       0,     0,     0,   286,     0,     0,     0,   287,     0,     0,
     2827     288,   289,   290,   291,    41,    42,   285,   292,   293,     0,
     2828       0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
     2829     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2830     294,     0,   379,     0,   282,   283,     0,   284,   709,    46,
     2831     296,   297,   298,   299,     0,     0,     0,     0,     0,   294,
     2832       0,   379,     0,   282,   283,     0,   284,   344,    46,   296,
     2833     297,   298,   299,   285,     0,     0,     0,     0,     0,   286,
     2834       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2835      41,    42,   285,   292,   293,     0,     0,     0,   286,     0,
     2836       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2837      42,     0,   292,   293,     0,     0,   506,     0,     0,     0,
     2838     282,   283,     0,   284,    45,    46,   296,   297,   298,   299,
     2839       0,     0,     0,     0,     0,   294,     0,     0,     0,   282,
     2840     283,     0,   284,    45,    46,   296,   297,   298,   299,   285,
     2841       0,     0,     0,     0,     0,   286,     0,     0,     0,   287,
     2842       0,     0,   288,   289,   290,   291,    41,    42,   285,   292,
     2843     293,     0,     0,     0,   286,     0,     0,     0,   287,     0,
     2844       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
     2845       0,     0,   511,     0,     0,     0,     0,     0,     0,     0,
     2846      45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
     2847       0,   514,     0,     0,     0,     0,     0,     0,     0,    45,
     2848      46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
    23762849       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    23772850      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2378        0,    26,    27,    28,    29,     0,     0,    30,   281,   282,
    2379       31,   283,     8,     9,    10,    11,    12,    13,    14,    15,
    2380       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2381        0,     0,    26,    27,    28,     0,     0,   284,    34,     0,
    2382       35,    31,    36,   285,     0,    38,    39,   286,     0,     0,
    2383      287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
    2384      294,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2385        0,     0,     0,     0,   110,     0,    38,    39,     0,     0,
    2386        0,     0,   295,     0,   296,     0,     0,    41,    42,     0,
    2387       45,    46,   297,   298,   299,   300,     0,     0,     0,     0,
    2388        0,     0,     0,     0,     0,  -134,     0,     0,     0,     0,
    2389        0,     0,     0,     0,     0,     0,   322,     1,     2,   205,
    2390        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2391       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2392       24,    25,     0,     0,    26,    27,    28,    29,     0,     0,
    2393       30,   281,   282,    31,   283,     8,     9,    10,    11,    12,
    2394       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2395       23,    24,    25,  -299,     0,     0,     0,     0,     0,     0,
    2396      284,    34,     0,    35,    31,    36,   285,     0,    38,    39,
    2397      286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
    2398       42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2399        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
    2400        0,     0,     0,  -299,     0,   295,     0,   296,     0,     0,
    2401        0,     0,     0,    45,    46,   297,   298,   299,   300,     2,
    2402      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2403       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2404       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2405        0,     0,   281,   282,    31,   283,     8,     9,    10,    11,
    2406       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2407       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2408        0,   284,    34,     0,    35,    31,    36,   285,     0,    38,
    2409       39,   286,     0,     0,   287,   288,   289,   290,   291,   292,
    2410       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2411        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
    2412       38,    39,     0,     0,     0,     0,   295,     0,   341,     0,
    2413        0,     0,     0,   748,   342,    46,   297,   298,   299,   300,
    2414        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2415       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2416       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2417        0,     0,     0,   281,   282,    31,   283,     8,     9,    10,
    2418       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2419       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2420        0,     0,   284,    34,     0,    35,    31,    36,   285,     0,
    2421       38,    39,   286,     0,     0,   287,   288,   289,   290,   291,
    2422      292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
    2423        0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
    2424        0,   206,    39,     0,     0,     0,     0,   295,     0,   341,
    2425        0,     0,     0,     0,   748,    45,    46,   297,   298,   299,
    2426      300,     2,   205,     4,     5,     6,     7,     8,     9,    10,
    2427       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2428       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2429        0,     0,     0,     0,   281,   282,    31,   283,     0,     0,
    24302851       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2852      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24312853       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2432        0,     0,     0,   284,    34,     0,    35,     0,    36,   285,
    2433        0,    38,    39,   286,     0,     0,   287,   288,   289,   290,
    2434      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2436        0,     0,     0,     0,     0,     0,     0,     0,   295,     0,
    2437      341,     0,     0,     0,     0,     0,   342,    46,   297,   298,
    2438      299,   300,     2,   205,     4,     5,     6,     7,     8,     9,
    2439       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2440       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2441       28,     0,     0,     0,     0,   281,   282,    31,   283,     0,
    2442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2443        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2444        0,     0,     0,     0,   284,    34,     0,    35,     0,    36,
    2445      285,     0,   206,    39,   286,     0,     0,   287,   288,   289,
    2446      290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
    2447        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2448        0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
    2449        0,   979,     0,     0,     0,     0,     0,   980,    46,   297,
    2450      298,   299,   300,     2,   205,     4,     5,     6,     7,     8,
    2451        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2452       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2453       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2454        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2455        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2456        0,     0,     0,     0,     0,   284,    34,     0,    35,     0,
    2457       36,   285,     0,   206,    39,   286,     0,     0,   287,   288,
    2458      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2459        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2460        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2461      295,     0,   376,     0,     0,     0,     0,     0,    45,    46,
    2462      297,   298,   299,   300,  -521,     0,     0,     1,     2,     3,
    2463        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2464       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2465       24,    25,     0,     0,    26,    27,    28,    29,     0,     0,
    2466       30,     0,     0,    31,    32,     0,     0,     0,     0,     0,
    2467        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2468        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2469        0,    34,     0,    35,     0,    36,    37,     0,    38,    39,
    2470       40,     0,     0,     0,     0,     0,     0,     0,     0,    41,
    2471       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2472        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2473        0,     0,     0,     0,     0,    43,     0,    44,     0,     0,
    2474        0,     0,     0,    45,    46,     1,     2,     3,     4,     5,
    2475        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2476       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2477        0,     0,    26,    27,    28,    29,     0,     0,    30,     0,
    2478        0,    31,    32,     0,     0,     0,     0,     0,     0,     0,
    2479        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2480        0,     0,     0,     0,     0,     0,    33,     0,     0,    34,
    2481        0,    35,     0,    36,    37,     0,    38,    39,    40,     0,
    2482        0,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    2483        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2484        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2485        0,     0,     0,    43,     0,    44,     0,     0,     0,  -525,
    2486        0,    45,    46,     1,     2,     3,     4,     5,     6,     7,
    2487        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2488       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2489       26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
    2490       32,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2491        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2492        0,     0,     0,     0,    33,     0,     0,    34,     0,    35,
    2493        0,    36,    37,     0,    38,    39,    40,     0,     0,     0,
    2494        0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    2495        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2496        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2497        0,    43,     0,    44,     0,     0,     0,     0,     0,    45,
    2498       46,     1,     2,   205,     4,     5,     6,     7,     8,     9,
    2499       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2500       20,    21,    22,    23,    24,    25,  -298,     0,    26,    27,
    2501       28,    29,     0,     0,    30,     0,     0,    31,     0,     0,
    2502        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2503        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2504        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2505        0,     0,    38,    39,     0,     0,  -298,   204,     2,   205,
    2506        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2507       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2508       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2509        0,    44,     0,    31,     0,     0,     0,    45,    46,     0,
    2510        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2511        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2512        0,    34,     0,    35,     0,    36,     0,     0,   206,    39,
    2513        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2514       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2515       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2516        0,     0,     0,     0,     0,    31,     0,   207,     0,     0,
    2517        0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2518        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2519        0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
    2520      206,    39,    40,     0,     0,     0,     0,     0,     0,     0,
    2521        0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,     0,     0,     0,     0,     0,    43,     0,   207,
    2524        0,     0,     0,     0,     0,    45,    46,     2,   205,     4,
     2854       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2855      35,     0,    36,    37,     0,   174,   175,    40,     0,     0,
     2856       0,     0,     0,     0,    41,    42,   205,     2,   206,     4,
    25252857       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25262858      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    25292861       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25302862       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531       34,     0,    35,     0,    36,     0,     0,    38,    39,     2,
    2532      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2533       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2534       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2535        0,     0,     0,     0,    31,  -405,   668,     0,     0,     0,
    2536        0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    2537        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2538        0,     0,    34,     0,    35,     0,    36,     0,     0,    38,
    2539       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2540        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2541        0,     0,     0,  1332,     0,     0,     0,     0,     0,     0,
    2542        0,     0,     0,     0,     0,     0,     0,     0,   668,     0,
    2543        0,     0,     0,     0,    45,    46,     2,   205,     4,     5,
    2544        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2545       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2546        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2547        0,    31,     0,     0,     0,     8,     9,    10,    11,    12,
    2548       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2549       23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
    2550        0,    35,     0,    36,    31,   675,    38,    39,     0,     0,
     2863      34,     0,    35,     0,    36,     0,     0,   207,    39,   467,
     2864       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2865      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2866      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2867       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
    25512868       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25522869       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2553     1334,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2554       39,     0,     0,     0,     0,   668,     0,     0,     0,     0,
    2555        0,    45,    46,     2,   205,     4,     5,     6,     7,     8,
    2556        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2557       19,    20,    21,    22,    23,    24,    25,     0,   676,    26,
    2558       27,    28,   677,     0,    45,    46,     0,     0,    31,     0,
    2559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2560        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2561        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2562       36,     0,     0,   206,    39,     2,   205,     4,     5,     6,
    2563        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2564       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2565        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2566       31,     0,   269,     0,     0,     0,     0,     0,    45,    46,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2569       35,     0,    36,     0,     0,    38,    39,     2,   205,     4,
    2570        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2571       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2572       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2573        0,     0,    31,     0,   668,     0,     0,     0,     0,     0,
    2574       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2575        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2576       34,     0,    35,     0,    36,     0,     0,   206,    39,     8,
    2577        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2578       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2579       27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
    2580        0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
    2581        0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    2582        0,     0,     0,     0,     0,   284,    34,     0,     0,     0,
    2583        0,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2584      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2585        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2586        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2587      295,     0,   513,     0,     0,   170,     0,     0,    45,    46,
    2588      297,   298,   299,   300,     8,     9,    10,    11,    12,    13,
    2589       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2590       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2591        0,   281,   282,    31,   283,     8,     9,    10,    11,    12,
    2592       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2593       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2594      284,    34,     0,     0,    31,     0,   285,     0,    38,    39,
    2595      286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
    2596       42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2597        0,     0,    34,     0,     0,     0,     0,   110,     0,    38,
    2598       39,     0,     0,     0,     0,   295,   -40,   296,     0,     0,
    2599       41,    42,     0,    45,    46,   297,   298,   299,   300,     8,
    2600        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2601       19,    20,    21,    22,    23,    24,    25,     0,    44,    26,
    2602       27,    28,     0,     0,    45,    46,   281,   282,    31,   283,
    2603        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2604       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2605       26,    27,    28,     0,     0,   284,    34,     0,     0,    31,
    2606      675,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2607      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2608        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2609        0,     0,     0,     0,    38,    39,     0,     0,     0,     0,
    2610      295,     0,   296,     0,     0,     0,     0,     0,    45,    46,
    2611      297,   298,   299,   300,     8,     9,    10,    11,    12,    13,
    2612       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2613       24,    25,     0,   676,    26,    27,    28,  1070,     0,    45,
    2614       46,   281,   282,    31,   283,     8,     9,    10,    11,    12,
    2615       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2616       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2617      284,    34,     0,     0,    31,   675,   285,     0,    38,    39,
    2618      286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
    2619       42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2620        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2621       39,     0,     0,     0,     0,   295,     0,   341,     0,     0,
    2622        0,     0,     0,    45,    46,   297,   298,   299,   300,     8,
    2623        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2624       19,    20,    21,    22,    23,    24,    25,     0,   676,    26,
    2625       27,    28,  1197,     0,    45,    46,   281,   282,    31,   283,
    2626        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2627       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2628       26,    27,    28,     0,     0,   284,    34,     0,     0,    31,
    2629        0,   285,     0,    38,    39,   286,     0,     0,   287,   288,
    2630      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2631        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2632        0,     0,    37,     0,    38,    39,    40,     0,     0,     0,
    2633      295,     0,   376,     0,     0,    41,    42,     0,    45,    46,
    2634      297,   298,   299,   300,     0,     0,     0,     0,     0,     0,
    2635        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2636        0,    43,     0,    44,     0,     0,     0,     0,     0,    45,
    2637       46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2638       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2639        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2640       31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2641       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2642        0,    26,    27,    28,     0,     0,     0,     0,    34,     0,
    2643       31,     0,     0,    37,     0,   206,    39,    40,     0,     0,
    2644        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2645        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2646        0,     0,     0,     0,     0,    38,    39,     0,     0,     0,
    2647        0,     0,    43,     0,   269,     0,     0,     0,     0,     0,
    2648       45,    46,     0,     0,     0,     8,     9,    10,    11,    12,
    2649       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2650       23,    24,    25,     0,   256,    26,    27,    28,     0,     0,
    2651       45,    46,     0,     0,    31,     8,     9,    10,    11,    12,
    2652       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2653       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2654        0,     0,    34,     0,    31,     0,     0,     0,     0,    38,
    2655       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2656        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2657        0,     0,    34,     0,     0,     0,     0,     0,     0,   206,
    2658       39,     0,     0,     0,     0,     0,     0,     0,    44,     0,
    2659        0,     0,     0,     0,    45,    46,     0,     0,     0,     8,
    2660        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2661       19,    20,    21,    22,    23,    24,    25,     0,   269,    26,
    2662       27,    28,     0,     0,    45,    46,     0,     0,    31,     8,
    2663        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2664       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2665       27,    28,     0,     0,     0,     0,    34,     0,    31,     0,
    2666        0,     0,     0,    38,    39,     0,     0,     0,     0,     0,
    2667        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2668        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
    2669        0,     0,     0,    38,    39,     0,     0,     0,     0,     0,
    2670        0,     0,   337,     0,     0,     0,     0,     0,    45,    46,
    2671        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2672       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2673       25,     0,   676,    26,    27,    28,     0,     0,    45,    46,
    2674        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2675        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2676        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2677       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2678        0,     0,   281,   282,     0,   283,  1021,     0,  1022,     0,
    2679        0,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,     0,
    2680        0,  1508,  1031,     0,     0,     0,  1032,  1033,     0,    33,
    2681        0,   284,     0,     0,     0,     0,   668,  1034,     0,     0,
    2682        0,   286,    45,    46,   287,   288,   289,   290,   291,   292,
    2683       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2684        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2685        0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
    2686        0,   170,     0,     0,    45,    46,   297,   298,   299,   300,
    2687        0,     0,   281,   282,  1035,   283,  1021,     0,  1022,  -134,
    2688        0,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,     0,
    2689        0,     0,  1031,     0,     0,     0,  1032,  1033,     0,    33,
    2690        0,   284,     0,     0,     0,     0,     0,  1034,     0,     0,
    2691        0,   286,     0,     0,   287,   288,   289,   290,   291,   292,
    2692       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2693        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2694        0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
    2695        0,   170,     0,     0,    45,    46,   297,   298,   299,   300,
    2696        0,     0,     0,     0,  1035,     0,     0,     0,     0,  -134,
    2697        2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    2698       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2699       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2700        0,     0,     0,     0,     0,    31,     0,   281,   282,     0,
    2701      283,  1021,     0,  1022,  1380,  1381,  1023,  1024,  1025,  1026,
    2702     1027,  1028,  1029,  1030,     0,     0,  1508,  1031,     0,     0,
    2703        0,  1032,  1033,    34,    33,    35,   284,    36,     0,     0,
    2704       38,    39,  1034,     0,     0,     0,   286,     0,     0,   287,
    2705      288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2706        0,     0,     0,     0,  1291,     0,     0,     0,     0,     0,
    2707        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2708        0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
    2709       46,   297,   298,   299,   300,     0,     0,   281,   282,  1035,
    2710      283,  1021,     0,  1022,  1380,  1381,  1023,  1024,  1025,  1026,
    2711     1027,  1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,
    2712        0,  1032,  1033,     0,    33,     0,   284,     0,     0,     0,
    2713        0,     0,  1034,     0,     0,     0,   286,     0,     0,   287,
    2714      288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2715        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2716        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2717        0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
    2718       46,   297,   298,   299,   300,     0,     0,   281,   282,  1035,
    2719      283,  1021,     0,  1022,     0,     0,  1023,  1024,  1025,  1026,
    2720     1027,  1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,
    2721        0,  1032,  1033,     0,    33,     0,   284,     0,     0,     0,
    2722        0,     0,  1034,     0,     0,     0,   286,     0,     0,   287,
    2723      288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2724        0,     0,     0,     0,     0,     0,   281,   282,     0,   283,
    2725        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2726        0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
    2727       46,   297,   298,   299,   300,   284,     0,     0,     0,  1035,
    2728        0,   631,     0,   139,   140,   286,     0,     0,   287,   288,
    2729      289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    2730        0,     0,     0,     0,     0,   281,   282,     0,   283,     0,
    2731        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2732      295,     0,   632,     0,   633,   377,     0,     0,    45,    46,
    2733      297,   298,   299,   300,   284,     0,     0,     0,     0,     0,
    2734      285,     0,     0,     0,   286,     0,     0,   287,   288,   289,
    2735      290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
    2736        0,     0,     0,     0,   281,   282,     0,   283,     0,     0,
    2737        0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
    2738        0,   376,     0,     0,   377,     0,     0,    45,    46,   297,
    2739      298,   299,   300,   284,     0,     0,     0,     0,     0,   285,
    2740        0,     0,     0,   286,     0,     0,   287,   288,   289,   290,
    2741      291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    2742        0,     0,     0,   281,   282,     0,   283,     0,     0,     0,
    2743        0,     0,     0,     0,     0,     0,     0,     0,   295,     0,
    2744      376,     0,     0,     0,     0,   748,    45,    46,   297,   298,
    2745      299,   300,   284,     0,     0,     0,     0,     0,   285,     0,
    2746        0,     0,   286,     0,     0,   287,   288,   289,   290,   291,
    2747      292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
    2748        0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
    2749        0,     0,     0,     0,     0,     0,     0,   295,     0,   376,
    2750        0,     0,   956,     0,     0,    45,    46,   297,   298,   299,
    2751      300,   284,     0,     0,     0,     0,     0,   285,     0,     0,
    2752        0,   286,     0,     0,   287,   288,   289,   290,   291,   292,
    2753       41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
    2754        0,   281,   282,     0,   283,     0,     0,     0,     0,     0,
    2755        0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
    2756        0,     0,     0,     0,    45,    46,   297,   298,   299,   300,
    2757      284,     0,     0,     0,     0,     0,   285,     0,     0,     0,
    2758      286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
    2759       42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
    2760      281,   282,     0,   283,     0,     0,     0,     0,     0,     0,
    2761        0,     0,     0,     0,     0,   502,     0,   376,     0,     0,
    2762        0,     0,     0,    45,    46,   297,   298,   299,   300,   284,
    2763        0,     0,     0,     0,     0,   285,     0,     0,     0,   286,
    2764        0,     0,   287,   288,   289,   290,   291,   292,    41,    42,
    2765        0,   293,   294,     0,     0,     0,     0,     0,     0,   281,
    2766      282,     0,   283,     0,     0,     0,     0,     0,     0,     0,
    2767        0,     0,     0,     0,   507,     0,   376,     0,     0,     0,
    2768        0,     0,    45,    46,   297,   298,   299,   300,   284,     0,
    2769        0,     0,     0,     0,   285,     0,     0,     0,   286,     0,
    2770        0,   287,   288,   289,   290,   291,   292,    41,    42,     0,
    2771      293,   294,     0,     0,     0,     0,     0,     0,   281,   282,
    2772        0,   283,     0,     0,     0,     0,     0,     0,     0,     0,
    2773        0,     0,     0,   510,     0,   376,     0,     0,     0,     0,
    2774        0,    45,    46,   297,   298,   299,   300,   284,     0,     0,
    2775        0,     0,     0,   285,     0,     0,     0,   286,     0,     0,
    2776      287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
    2777      294,     0,     0,     0,     0,     0,     0,   281,   282,     0,
    2778      283,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2779        0,     0,   295,     0,   376,     0,     0,     0,     0,     0,
    2780      699,    46,   297,   298,   299,   300,   284,     0,     0,     0,
    2781        0,     0,   285,     0,     0,     0,   286,     0,     0,   287,
    2782      288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    2783        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2784        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2785        0,   295,     0,   376,     0,     0,     0,     0,     0,   342,
    2786       46,   297,   298,   299,   300,     2,   205,     4,     5,     6,
    2787        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2788       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2790       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2791        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2792        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2793       35,     0,    36,    37,     0,   173,   174,    40,     0,     0,
    2794        0,     0,     0,     0,     0,     0,    41,    42,   204,     2,
    2795      205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2796       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2797       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2798        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2799        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2800        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2801        0,     0,    34,     0,    35,     0,    36,     0,     0,   206,
    2802       39,   463,     2,   205,     4,     5,     6,     7,     8,     9,
     2870       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2871      38,    39,     2,   206,     4,     5,     6,     7,     8,     9,
    28032872      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    28042873      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     
    28072876       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28082877       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2809        0,     0,    38,    39,     2,   205,     4,     5,     6,     7,
    2810        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2811       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2812       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2813        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2814       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2815        0,    26,    27,    28,   481,   482,   483,    34,     0,    35,
    2816       31,    36,     0,     0,   206,    39,     0,     0,     0,     0,
    2817        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2818        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2819        0,     0,     0,     0,     0,    38,    39
     2878       0,     0,   207,    39
    28202879};
    28212880
    28222881#define yypact_value_is_default(yystate) \
    2823   ((yystate) == (-1333))
     2882  ((yystate) == (-1323))
    28242883
    28252884#define yytable_value_is_error(yytable_value) \
     
    28282887static const yytype_int16 yycheck[] =
    28292888{
    2830        0,     1,    43,    43,    43,   238,   184,     0,   116,   203,
    2831        1,   184,     0,   530,   184,   218,     0,   184,   184,   509,
    2832      740,     0,   167,   168,   740,   740,   184,   184,   860,   613,
    2833      595,    32,    32,   593,   725,   637,   347,     1,    43,    32,
    2834      460,   593,   517,    43,    32,   478,   488,   593,    32,    49,
    2835      492,   347,   566,    32,   105,   186,    49,   595,  1301,    39,
    2836      185,     0,   966,    63,   423,   424,    66,    81,    43,    69,
    2837       63,   593,   683,    66,   593,   362,    69,   593,    69,   366,
    2838     1002,  1003,    28,   593,    97,    49,   264,  1020,  1003,    43,
    2839       39,   264,   200,    32,   264,    81,    49,   264,   264,   627,
    2840      628,    51,     0,     1,   155,   105,   264,   264,   118,  1013,
    2841        0,  1110,   109,   113,    72,   643,   116,   117,   131,    81,
    2842        0,   343,  1032,  1033,   134,   106,   112,    66,   109,   260,
    2843      261,   490,    78,   113,    32,    63,   133,   111,    44,    45,
    2844      265,   105,    32,   184,   184,   184,   146,   147,    39,   113,
    2845      509,   113,    32,  1485,   147,   155,   156,    49,  1401,   159,
    2846      113,   111,   111,    43,   113,    64,   159,   860,   280,    49,
    2847      890,    69,   628,   701,   890,   890,   134,   111,   415,   184,
    2848     1512,   185,   146,    63,   184,   185,    66,   643,   484,    69,
    2849      709,   155,   185,   709,   627,   628,  1106,   434,   255,   709,
    2850      200,   686,  1485,   678,   407,   442,   134,   596,   208,   184,
    2851      643,   117,   111,   602,   573,   208,   111,   112,   113,    39,
    2852      220,   113,  1505,   264,   264,   264,    39,   220,  1380,  1512,
    2853      184,  1230,    72,  1232,  1233,    72,   217,   111,   238,   799,
    2854      204,   661,    44,    45,   208,   701,   811,   799,    39,   250,
    2855      250,    39,    11,   799,   146,   208,   478,   250,   258,   133,
    2856       98,   265,   250,   263,   264,   265,   250,   147,   701,   783,
    2857      270,   250,   265,   811,   238,   886,   255,   799,   403,   159,
    2858      799,   220,   119,   799,   595,   393,   124,  1202,   339,   799,
    2859      271,   111,    98,   113,   134,   295,   583,   278,   111,   118,
    2860      113,  1453,    87,   736,   184,   185,   270,   909,   308,   273,
    2861      111,   250,  1384,   421,   116,   134,   208,   270,   124,   427,
    2862      111,   114,   113,   111,   324,   113,  1435,  1020,   208,   329,
    2863      115,   295,   116,  1255,  1256,  1268,   329,   624,  1029,   339,
    2864      220,  1256,   295,   343,   308,   227,   238,   347,   348,   111,
    2865      112,   476,   250,   918,   112,   308,  1188,   917,   415,   779,
    2866      250,  1470,   362,  1472,   246,   255,   366,    44,    45,   789,
    2867      250,   917,     0,     1,   132,   339,    72,   434,   270,   343,
    2868      800,   112,   363,   118,   264,   442,   367,   118,   500,    85,
    2869       86,   613,     3,   393,  1456,   917,   618,   981,   362,   403,
    2870     1462,   597,   366,   403,    32,   601,   891,  1311,  1480,   348,
    2871      403,    55,   801,  1485,   118,   111,   308,   113,    30,     3,
    2872     1482,   421,   112,   423,   424,  1487,   622,   427,   132,   429,
    2873      626,   118,    72,  1505,    72,   672,   415,   112,    66,   116,
    2874     1512,    69,   132,     0,   118,    85,    86,    85,    86,   329,
    2875      450,   343,   937,    97,  1376,   434,   889,   132,   132,   423,
    2876      424,  1376,     0,   442,  1368,  1369,   118,   347,   468,   111,
    2877       82,    83,   476,   113,   964,   113,   476,   952,   478,   295,
    2878      480,   111,   134,   476,   484,   927,   450,   480,   121,   122,
    2879      490,  1424,   480,   638,   118,  1188,   480,   450,  1431,   463,
    2880      811,   480,   502,  1105,   504,   792,   112,   507,   132,   509,
    2881      510,   118,   118,  1078,   736,   811,   647,   517,   118,   118,
    2882      113,   521,   115,   403,   488,   415,   490,   134,   492,   114,
    2883      469,   423,   424,   118,   134,   134,   112,   645,   502,   132,
    2884      504,   480,   118,   507,   434,   509,   510,   133,   192,   502,
    2885     1483,   504,   442,   678,   507,   111,   118,   510,     4,     5,
    2886        6,     7,     8,     9,   130,   565,   566,   133,   112,  1002,
    2887      118,   215,   134,   573,   118,  1268,   111,  1268,   113,   999,
    2888     1000,   225,   480,   583,   584,   112,   134,   587,   478,  1064,
    2889      480,   118,   220,   593,  1069,   595,   584,   112,   490,   111,
    2890      480,   990,   991,   118,   484,   118,   112,   423,   424,   573,
    2891      114,  1096,   118,   613,   118,   672,   728,   509,   618,   583,
    2892      620,   134,   250,    69,   624,    71,   922,   627,   628,   111,
    2893      242,   118,   112,   614,  1054,  1055,   111,   833,   118,   118,
    2894      118,   698,   118,   643,   847,   645,   118,   134,   629,   613,
    2895      112,   295,  1343,   114,   618,   134,   134,   118,   134,    72,
    2896      624,   642,   134,    76,   867,   114,    72,   889,    49,   118,
    2897     1155,  1156,    85,    86,   678,   675,   615,   119,   678,    85,
    2898       86,   573,    63,   125,   126,    66,   502,   111,    69,   112,
    2899      112,   507,  1125,   672,   510,   118,   929,   111,   111,   113,
    2900      113,   701,   702,   703,    90,    91,   119,   120,   853,   709,
    2901      710,   675,   890,   593,   114,   595,   112,   890,   118,   698,
    2902      890,   613,   675,   890,   890,   112,   618,   923,   112,   112,
    2903      112,  1424,   890,   890,   118,   118,   736,  1428,  1431,  1430,
    2904      740,   741,   111,   724,   113,   112,   112,   112,   564,   713,
    2905      689,   118,   118,     4,     5,     6,     7,     8,     9,   981,
    2906      111,    92,    93,     1,   703,   377,   147,   892,  1285,  1489,
    2907      112,   112,   111,  1489,  1489,   112,   118,   118,   159,   117,
    2908     1200,   118,   672,   783,     4,     5,     6,     7,     8,     9,
    2909     1483,   111,   792,  1484,   794,   439,   127,   128,   678,   799,
    2910      994,   112,    72,   111,   185,   113,  1094,   118,   698,    79,
    2911     1098,   811,    82,    33,    84,    85,    86,  1237,    69,   134,
    2912       71,   465,  1255,   111,  1244,  1245,  1246,   208,   792,   709,
    2913      710,    72,   112,    74,    75,    76,    94,    95,   118,   220,
    2914       72,   112,    74,    75,    85,    86,   736,   118,   111,    69,
    2915      113,    71,   480,    85,    86,   794,   119,   120,   502,   111,
    2916      860,   113,   111,   507,    66,    64,   510,     0,     1,   111,
    2917     1015,   113,   860,   134,   111,   487,   113,   489,  1363,   111,
    2918       82,   860,   882,   134,   116,   112,   113,  1307,   892,   889,
    2919      890,   116,   892,   116,   882,  1380,    29,    30,    72,    32,
    2920       74,    75,   116,  1125,   904,   134,    57,   111,   112,   113,
    2921       43,    85,    86,    72,   111,   117,    49,   917,   918,   799,
    2922       79,   860,   922,    82,    57,    84,    85,    86,   928,   929,
    2923       63,   811,    72,    66,    74,    75,    69,   928,   134,  1064,
    2924      904,   111,   116,   113,  1069,    85,    86,    81,   329,    82,
    2925       83,   904,   952,   111,   113,   106,   111,   159,   109,   283,
    2926      117,   118,   860,   927,   928,   929,    81,  1452,  1453,   502,
    2927      860,   504,   120,   106,   507,   129,   109,   510,  1086,    96,
    2928     1202,   981,  1094,   116,   308,   309,  1098,  1099,   130,   111,
    2929     1465,   113,   111,   113,   113,   111,   112,   113,     3,   889,
    2930      119,   120,  1002,  1003,   114,    10,    11,    12,    13,    14,
    2931      890,   114,   892,   251,   147,   112,   660,   981,   220,   343,
    2932     1020,   633,   403,    58,    59,   669,   159,   117,   118,   673,
    2933      928,   895,  1020,   897,    39,    44,    45,   929,   112,  1514,
    2934      112,  1020,   922,   112,    72,   984,    74,    75,    76,  1111,
    2935     1112,   184,   185,   112,   378,   112,   258,    85,    86,  1059,
    2936     1064,   263,    67,   111,  1064,  1069,   217,   200,   114,  1069,
    2937      682,   111,   684,   113,   113,   208,   688,   118,  1078,   119,
    2938      120,  1020,   116,   111,   217,   113,  1086,   220,   133,   981,
    2939      116,   119,   120,   116,   227,  1059,   549,   550,    72,   111,
    2940     1212,   111,   112,   113,   132,    79,  1059,   114,    82,   242,
    2941       84,    85,    86,   246,    58,    59,    60,   250,   251,   133,
    2942      271,   112,  1020,   551,   552,  1125,   112,   278,   557,   558,
    2943     1020,   264,   265,     3,   553,   554,   555,   556,   271,   113,
    2944       10,    11,    12,    13,    14,   278,   348,     3,    10,    11,
    2945       12,    13,    14,   114,    10,    11,    12,    13,    14,   114,
    2946       72,   132,    74,    75,    76,   132,  1166,  1167,    72,    39,
    2947       74,    75,    76,    85,    86,   132,  1167,    39,   118,   860,
    2948       29,    85,    86,    39,  1064,   112,   112,   116,  1188,  1069,
    2949     1302,   112,   117,   117,  1306,   346,   329,    67,   117,   111,
    2950     1188,   113,  1202,   118,   111,    67,  1206,   119,   120,  1188,
    2951      112,    67,   363,   346,   347,  1206,   367,    10,    11,    12,
    2952       13,    14,   546,   547,   548,   463,   428,  1166,   134,   132,
    2953      363,   112,   860,   118,   367,  1125,   112,   112,   112,   112,
    2954      884,   853,  1206,   112,   377,   112,    39,   859,   112,  1188,
    2955      118,  1359,   112,   112,   112,  1255,  1256,   112,   112,   112,
    2956      393,   112,   112,  1263,   112,     0,  1499,   469,  1268,  1167,
    2957      403,   117,    29,   112,    67,   118,   133,   114,   114,   112,
    2958     1268,   112,   112,   118,   111,   132,   524,   899,   421,  1268,
    2959     1188,   529,    72,  1405,   427,   118,   116,    32,  1188,    79,
    2960      928,  1301,    82,   132,    84,    85,    86,   112,  1206,   112,
    2961     1301,  1489,  1202,   112,   118,   112,  1489,   112,   111,  1489,
    2962      113,   112,  1489,  1489,  1263,   111,   119,   120,   118,  1268,
    2963      463,  1489,  1489,   113,    69,   468,    72,  1301,   111,   577,
    2964       76,   118,  1023,   476,   956,   111,   111,   480,   111,    85,
    2965       86,   484,  1168,  1169,   487,  1171,   489,  1465,   132,  1359,
    2966      112,   117,  1178,   134,  1180,  1490,   112,   117,    72,   112,
    2967     1268,   130,    76,   117,   116,   111,  1376,  1358,  1268,   134,
    2968      114,    85,    86,   119,   120,   587,   112,  1031,   118,  1514,
    2969      114,   524,  1020,   114,   112,   112,   529,    47,   114,   114,
    2970      114,  1401,   112,  1301,   117,   114,   644,   111,   646,   114,
    2971     1401,   114,   134,   615,   134,   119,   120,   112,   620,     0,
    2972        1,   156,   134,   747,  1424,   117,    72,   134,    74,    75,
    2973      112,  1431,   134,  1433,   132,  1435,  1424,  1401,  1050,    85,
    2974       86,   117,   114,  1431,   577,  1424,    83,   114,  1489,  1489,
    2975     1489,    32,  1431,   114,   114,   114,   114,   112,   696,   112,
    2976      593,    60,   595,   614,   111,  1465,   114,   113,    49,  1433,
    2977     1470,  1435,  1472,   111,   116,   111,    98,   112,   629,   112,
    2978     1433,   614,  1435,  1483,   111,  1424,  1490,   689,    69,  1489,
    2979     1490,   642,  1431,   661,   229,  1483,   629,  1490,   114,  1499,
    2980      633,   703,   134,  1401,  1483,   114,  1470,  1188,  1472,   642,
    2981     1514,   644,   645,   646,  1514,   250,   112,  1470,   112,  1472,
    2982      255,  1514,   114,  1339,   105,    98,  1424,   111,   111,   134,
    2983      117,    42,   112,  1431,  1424,  1499,   112,   112,  1166,  1167,
    2984       72,  1431,    74,    75,  1483,   678,   112,   118,   134,   682,
    2985     1162,   684,   134,    85,    86,   688,    70,   112,   132,    73,
    2986     1188,   112,    76,   696,    78,    98,   147,    98,   112,   134,
    2987      134,    85,   112,   724,   155,   156,   709,   710,  1206,   111,
    2988      114,   134,   112,   112,   116,  1483,    72,   114,    74,    75,
    2989       76,   724,   794,  1483,   117,   114,   134,   134,   111,    85,
    2990       86,   117,   117,  1284,   185,   112,   112,  1499,   134,  1489,
    2991      112,   779,   112,   657,   349,  1035,   559,   562,   560,   200,
    2992      561,   789,   203,   204,   563,   111,   961,   208,  1188,  1453,
    2993     1345,  1524,   800,  1277,  1099,  1263,  1306,  1278,    66,  1431,
    2994     1268,    10,    11,    12,    13,    14,  1050,    75,   229,   686,
    2995      675,   675,   233,  1069,   235,   688,  1337,   981,   897,  1340,
    2996      905,   577,   956,   244,   853,   925,   799,   639,   480,   250,
    2997       39,   713,  1206,  1301,   255,   724,   565,   565,   811,   565,
    2998      415,    -1,    -1,    -1,   265,    -1,    -1,    -1,    -1,   117,
    2999       -1,    -1,   273,    -1,   429,    -1,  1020,   211,    67,   434,
    3000       -1,    -1,    -1,  1384,    -1,   943,    -1,   442,  1389,    -1,
    3001       10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
    3002      853,    -1,    -1,    -1,   962,   460,   859,    -1,   966,    -1,
    3003       -1,   159,    -1,    -1,    -1,    -1,    -1,  1418,    -1,    39,
    3004      777,    -1,   111,   478,   113,   480,    -1,    -1,    -1,    -1,
    3005      119,   120,    -1,    -1,    -1,    -1,    -1,   890,   339,   892,
    3006       -1,    -1,   343,    -1,   278,    -1,   899,    67,   349,    -1,
    3007       -1,    -1,    -1,  1401,    83,  1013,    -1,    -1,    87,    88,
    3008       89,   362,   984,    -1,    -1,   366,   521,    -1,  1432,   922,
    3009     1434,    -1,   220,    -1,    -1,    -1,  1424,    -1,   188,    -1,
    3010       -1,    66,   111,  1431,   113,   195,   115,   116,    -1,    -1,
    3011      943,   111,   849,   113,    -1,    -1,    -1,    -1,    -1,   119,
    3012      120,    -1,  1503,   956,    -1,  1469,    -1,  1471,  1509,   962,
    3013      258,   999,  1000,   966,   415,   263,   350,    -1,   352,  1520,
    3014       -1,    -1,    -1,  1524,    -1,    -1,    -1,    -1,   429,   584,
    3015      278,    -1,   117,   434,   891,  1483,    -1,    -1,    -1,    -1,
    3016       -1,   442,    72,    -1,    74,    75,    76,    -1,    -1,  1513,
    3017       -1,  1515,  1110,    -1,    -1,    85,    86,   267,    -1,   460,
    3018     1013,    -1,   463,    -1,  1528,  1529,  1054,  1055,    -1,    -1,
    3019       -1,    -1,   627,   628,   159,    -1,    -1,   478,    -1,   480,
    3020      937,   111,    -1,   113,    -1,    -1,    -1,   488,   643,   119,
    3021      120,   492,    10,    11,    12,    13,    14,  1050,    -1,    -1,
    3022      348,    -1,    -1,    -1,   438,    -1,   661,    -1,    -1,    -1,
    3023       -1,  1064,   969,    -1,   324,    -1,  1069,   672,    -1,    -1,
    3024      521,    39,   332,    -1,    72,   335,    74,    75,    76,    -1,
    3025        0,    -1,    -1,  1086,    -1,   220,    -1,    85,    86,    -1,
    3026       -1,    -1,    -1,   698,  1166,    -1,   701,    -1,    -1,    67,
    3027       -1,    -1,    -1,    -1,    72,    -1,    -1,  1110,    76,    -1,
    3028     1017,    -1,    32,   111,    -1,   566,    -1,    85,    86,    -1,
    3029       -1,    -1,  1230,   258,  1232,  1233,    -1,    -1,   263,    -1,
    3030      428,   736,   583,   584,    -1,   395,    -1,    -1,    -1,   399,
    3031       -1,    -1,    -1,   111,   595,    -1,   444,    -1,    -1,    69,
    3032      460,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,  1162,
    3033       -1,    -1,   613,    -1,     0,    -1,    -1,   618,    -1,    -1,
    3034       -1,   469,    -1,   624,   779,    -1,   627,   628,    -1,    -1,
    3035       -1,    -1,    -1,    -1,   789,    -1,    -1,    -1,    -1,  1096,
    3036      795,  1263,   643,    -1,    -1,   800,    32,    -1,    72,  1237,
    3037       74,    75,    76,  1311,    -1,    -1,  1244,  1245,  1246,    -1,
    3038      661,    85,    86,   348,    -1,   475,    -1,    -1,    -1,    -1,
    3039       -1,   672,    -1,    -1,    -1,    -1,    -1,  1230,    -1,  1232,
    3040     1233,    -1,    -1,    69,    -1,    -1,   156,   111,    10,    11,
    3041       12,    13,    14,    -1,    -1,   119,   120,   698,  1155,  1156,
    3042      701,    -1,    -1,    -1,    -1,   860,    -1,    -1,    -1,   710,
    3043     1368,  1369,   713,    -1,    -1,    -1,    -1,    39,    -1,  1307,
    3044       10,    11,    12,    13,    14,    -1,    -1,   882,    -1,    -1,
    3045       -1,    -1,    -1,    -1,   889,   736,    -1,    -1,    -1,   587,
    3046      741,    -1,    -1,   428,    -1,    67,    -1,    -1,  1406,    39,
    3047       72,    -1,    74,    75,    76,   565,   566,    -1,  1311,    -1,
    3048       -1,    -1,    -1,    85,    86,    -1,    -1,   615,    -1,    -1,
    3049      156,    -1,   620,    -1,    -1,    -1,    -1,    67,   779,    -1,
    3050      250,    -1,    72,    -1,   469,   255,    76,  1358,   789,   111,
    3051      724,   792,    -1,    -1,   795,    85,    86,   119,   120,   800,
    3052       -1,   661,    -1,    -1,    -1,  1358,  1359,    -1,  1466,   810,
    3053       72,    -1,    74,    75,    76,  1368,  1369,  1475,     0,     1,
    3054       -1,   111,    -1,    85,    86,    -1,    -1,    -1,    -1,   119,
    3055      120,    -1,    10,    11,    12,    13,    14,    -1,   648,    -1,
    3056       -1,   689,   652,    -1,   999,  1000,    -1,  1002,  1003,   111,
    3057       32,   113,    -1,  1406,    -1,   703,    -1,   119,   120,   860,
    3058       -1,    39,    -1,    -1,   250,  1020,    -1,    -1,    -1,   255,
    3059       -1,    -1,    -1,    -1,    -1,    -1,   724,    -1,    -1,   349,
    3060       -1,   882,    -1,    -1,    66,    -1,    -1,    69,   889,    67,
    3061       -1,   892,    -1,    -1,    72,    -1,    74,    75,    76,  1054,
    3062     1055,    -1,   587,    -1,    -1,    -1,  1363,    85,    86,    -1,
    3063       -1,    -1,  1465,  1466,    -1,    -1,    -1,   918,    -1,   779,
    3064       -1,    -1,  1475,  1380,    -1,    -1,   927,   928,     0,   789,
    3065      615,    -1,    -1,   111,    -1,   620,  1489,  1490,    -1,    -1,
    3066      800,   119,   120,    -1,    -1,   415,   794,    -1,    -1,    10,
    3067       11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,   429,
    3068       32,  1514,    -1,   349,   434,    -1,    -1,    -1,    -1,    -1,
    3069     1125,    -1,   442,   783,   156,    -1,    -1,    -1,    39,    -1,
    3070      981,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3071      460,    -1,    -1,   994,    -1,  1452,  1453,    69,   999,  1000,
    3072       -1,  1002,  1003,    -1,   689,    -1,    67,    -1,   478,    -1,
    3073      480,    72,  1167,    74,    75,    76,    -1,    -1,   703,  1020,
    3074       -1,    -1,    -1,    -1,    85,    86,    -1,    -1,    72,   415,
    3075       74,    75,    76,  1188,    -1,    -1,    -1,    -1,   220,    -1,
    3076       -1,    85,    86,   429,    -1,  1200,    -1,  1202,   434,    -1,
    3077      111,   521,   113,  1054,  1055,    -1,   442,    -1,   119,   120,
    3078       -1,    -1,    -1,    -1,    -1,    83,    -1,   111,   250,    87,
    3079       88,    89,    -1,    -1,   460,   119,   120,    -1,    -1,    -1,
    3080       -1,    -1,  1237,    -1,   156,    -1,   896,    -1,    -1,  1244,
    3081     1245,  1246,   478,   111,   480,   113,    -1,   115,   116,    -1,
    3082     1255,  1256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   794,
    3083       -1,    -1,    -1,  1268,   584,    -1,    -1,    -1,    -1,    -1,
    3084       -1,    -1,    -1,    -1,  1125,    -1,    -1,    -1,    -1,    -1,
    3085       -1,    -1,    -1,    -1,    -1,   521,   984,    -1,    -1,   999,
    3086     1000,    99,   100,   101,   102,   103,   104,   105,   106,   107,
    3087      108,   109,  1307,    -1,    -1,    -1,    -1,   627,   628,    -1,
    3088       -1,   971,    -1,    -1,    -1,    -1,  1167,    -1,    -1,    -1,
    3089       -1,    -1,    -1,   643,    -1,   133,    -1,   987,   250,    -1,
    3090       -1,    -1,    -1,   255,    -1,    -1,    -1,  1188,    -1,    -1,
    3091       -1,   661,    -1,    -1,  1054,  1055,    -1,    -1,   584,  1200,
    3092       -1,  1202,   672,    -1,    -1,  1206,    -1,    -1,    -1,    -1,
     2889       0,     1,   186,    43,   239,   185,   204,     0,    43,   219,
     2890      43,   116,   185,   521,   534,   185,     1,   875,   186,     0,
     2891       1,   185,   757,    51,   647,   603,   750,   185,     0,     1,
     2892     281,   621,    32,   750,  1041,     0,  1022,    43,   185,    32,
     2893     345,   185,   750,    43,   168,   169,   513,   349,   875,    49,
     2894     156,    32,   603,    32,     0,   693,    49,   349,   187,     0,
     2895      32,   572,    57,    63,   601,  1322,    66,    32,    43,    69,
     2896      63,     0,     1,    66,   696,    63,    69,  1399,   734,   492,
     2897       0,   109,   266,   496,    69,   265,    32,   601,    69,    39,
     2898      39,    32,   265,   490,    66,   265,   201,    69,   266,   601,
     2899      39,   265,    43,    32,   604,   105,   601,   265,    49,    49,
     2900     610,   106,    32,   113,   109,   418,   116,   117,   265,    82,
     2901      66,   265,    63,    63,    39,    66,    66,    39,    69,    69,
     2902     601,   984,   261,   262,   284,   438,    43,    66,    28,   601,
     2903      69,   105,    72,   446,   132,   185,   146,   147,  1470,   601,
     2904     185,    72,   185,    49,   147,   155,   156,   307,   308,   109,
     2905     160,   111,   111,  1420,    39,   787,    82,   160,    72,   364,
     2906     109,    39,   111,   368,  1021,  1022,    82,   482,    96,   185,
     2907     688,  1034,   906,  1116,   156,   185,   186,  1120,    78,   906,
     2908     156,   155,     0,   186,   110,   345,   488,   109,   906,   111,
     2909     410,   201,   132,    96,   122,   111,   147,   147,   605,   209,
     2910     185,   132,   609,   117,  1041,    64,   209,   113,   109,   160,
     2911     160,   221,   406,   218,    32,   265,   109,   110,   221,   122,
     2912     265,   381,   265,   630,   109,   256,   111,   634,   406,   239,
     2913    1226,   109,   864,   111,   185,   186,   186,   825,   719,   221,
     2914     146,   251,   987,   504,    57,    44,    45,   719,   251,   259,
     2915     109,   426,   427,   901,   264,   265,   266,   719,   209,   209,
     2916     251,   271,   251,   266,   825,   221,   813,   272,   185,   251,
     2917     221,   221,  1289,   794,   279,   907,   251,   109,   696,    85,
     2918    1276,   396,   221,  1502,   294,    49,   480,   636,   637,   813,
     2919     109,   603,   925,   106,  1453,   251,   109,   307,  1053,  1054,
     2920     251,   813,   480,   209,   653,   815,   621,   113,   813,   424,
     2921    1529,   626,   251,   323,   265,   430,   115,   433,   328,   494,
     2922     952,   251,    95,    44,    45,   328,   107,   112,  1487,   116,
     2923    1489,   341,   813,   239,   109,   345,   111,   109,   513,   349,
     2924     350,   813,   155,   348,  1212,   132,   934,     0,   110,   113,
     2925     131,   813,    44,    45,   364,   987,   129,  1473,   368,   131,
     2926     365,   371,   711,  1479,   369,   271,   116,   341,   130,   682,
     2927      72,    11,    74,    75,  1129,  1212,   228,   328,   328,    32,
     2928     130,    83,    84,  1499,  1050,   590,   396,   418,  1504,   114,
     2929     550,   551,   552,   114,   350,   247,   406,   371,   349,  1395,
     2930    1000,   307,   110,   406,   579,   218,  1038,   438,   116,   933,
     2931     526,   109,   114,   111,   424,   446,   426,   427,  1275,  1276,
     2932     430,   933,   114,   433,    72,  1442,   110,   632,   933,   110,
     2933      72,   746,  1449,   251,  1502,    83,    84,   110,   256,   345,
     2934     847,    83,    84,   116,   454,   209,   130,   119,   120,   130,
     2935     968,   433,  1289,   802,  1522,   406,   406,   433,   110,   272,
     2936     112,  1529,   472,   111,   116,   128,   279,   110,   131,   111,
     2937     480,   116,   482,   116,   484,   591,   737,   480,   488,   131,
     2938     132,   484,    70,  1500,   494,    73,  1118,   132,    76,   907,
     2939      78,    90,    91,   484,   688,  1128,   506,    85,   508,  1009,
     2940    1010,   511,   484,   513,   514,   982,   482,   271,   116,   484,
     2941     688,   521,  1100,   825,   648,   525,   526,   473,   657,   942,
     2942     426,   427,   130,   825,  1387,  1388,   125,   126,   484,   109,
     2943     294,   111,   939,   484,   952,   348,   110,   488,  1395,   116,
     2944     655,   116,   116,   307,   526,   484,  1178,  1179,    72,   116,
     2945     526,   525,   365,   130,   484,    72,   369,    74,    75,    83,
     2946      84,   571,   572,    88,    89,   132,    83,    84,  1086,   579,
     2947    1403,    72,     3,  1091,     4,     5,     6,     7,     8,     9,
     2948     590,   591,    83,    84,    72,   595,   116,   111,   494,     3,
     2949     905,   601,     1,   603,   111,    83,    84,   757,   251,   804,
     2950     418,   116,   132,   256,   809,  1442,     0,   513,   110,   591,
     2951     111,   621,  1449,     0,   116,   591,   626,   622,   628,   432,
     2952     438,   109,   632,  1289,   212,   635,   636,   637,   446,   111,
     2953     111,   113,   113,   638,   112,   109,   938,   111,   116,    69,
     2954     116,    71,   862,   653,   116,   655,   109,   652,   130,   130,
     2955     601,   682,   603,   635,   636,   637,   132,   109,   116,   111,
     2956     132,   591,   882,  1500,  1497,   116,   484,   623,   116,  1502,
     2957     116,   653,   131,   579,   132,   685,    72,   708,   688,   116,
     2958      76,   132,   116,   109,   132,  1000,   132,    83,    84,  1522,
     2959     454,   279,   897,    72,   810,   132,  1529,  1363,   132,   944,
     2960    1118,   711,   712,   713,    83,    84,   110,   109,   116,   719,
     2961     720,   116,   116,   109,   908,   621,   906,    92,    93,   110,
     2962     626,   117,   118,   906,   132,   116,   906,   132,   733,   711,
     2963     908,   109,   906,   110,   868,   745,   746,   688,   906,   116,
     2964     750,   751,   506,   699,   508,   109,   109,   511,   111,   906,
     2965     514,  1383,   906,   110,   117,   118,   294,   713,   112,   116,
     2966    1178,  1179,   116,   109,   352,   418,   354,  1399,   719,   720,
     2967     746,   745,  1506,   109,   112,   111,  1306,   590,   116,  1506,
     2968    1446,   109,  1448,   111,   794,   438,   109,   112,  1506,   117,
     2969     118,   116,   802,   446,   804,    72,   806,    74,    75,   809,
     2970     810,   110,   109,   813,   111,  1013,    83,    84,   110,   622,
     2971     117,   118,    72,   110,   116,   825,    76,   110,   112,   116,
     2972     802,   110,   116,    83,    84,   638,   110,   116,   810,   482,
     2973     110,   484,  1147,   112,   810,  1501,   116,  1469,  1470,   652,
     2974    1000,   115,   116,   252,    10,    11,    12,    13,    14,   109,
     2975     806,   111,   110,   111,   442,  1116,   109,   117,   118,  1120,
     2976    1121,   110,   813,   117,   682,   875,   110,   116,     3,   123,
     2977     124,   110,   116,    39,   825,    10,    11,    12,    13,    14,
     2978     810,  1041,    58,    59,   875,   110,   110,   897,   426,   427,
     2979     708,   116,  1086,   875,   904,   905,   906,  1091,   908,   110,
     2980     110,    67,  1036,   109,    39,    72,   116,   115,  1086,    76,
     2981     920,  1226,   109,  1091,   111,   109,    83,    84,  1123,   875,
     2982     733,   685,    64,   933,   934,   110,   115,   116,   938,   905,
     2983     904,   116,    67,   943,   944,    72,   875,    74,    75,    76,
     2984       0,     1,   109,    44,    45,   875,    83,    84,   943,   132,
     2985     117,   118,   943,   110,    66,   906,   109,   908,   968,   116,
     2986     109,   943,   111,   109,  1482,  1383,   553,   554,   506,    29,
     2987      30,   112,    32,   511,   132,  1236,   514,   506,   109,   508,
     2988     111,  1399,   511,    43,   911,   514,   913,   938,   114,    49,
     2989    1000,   555,   556,  1108,   114,   114,    72,    57,    74,    75,
     2990      76,   561,   562,    63,   943,   117,    66,    83,    84,    69,
     2991     132,  1021,  1022,  1531,   132,     4,     5,     6,     7,     8,
     2992       9,   109,    82,    83,   557,   558,   559,   560,    82,   682,
     2993     568,  1041,     4,     5,     6,     7,     8,     9,   944,  1021,
     2994    1022,    85,    86,    87,   109,  1021,   106,  1003,   160,   109,
     2995    1041,  1469,  1470,   109,   112,   708,   116,   875,   467,  1041,
     2996      82,    33,  1323,   118,   127,   109,  1327,   111,    94,   113,
     2997     114,  1081,   109,   110,   111,   128,  1086,   109,   110,   111,
     2998      69,  1091,    71,   131,   897,  1041,   111,   147,   109,   109,
     2999    1100,   110,   110,   746,  1000,   155,     3,    69,  1108,    71,
     3000     160,   112,  1041,    10,    11,    12,    13,    14,   112,   221,
     3001     112,  1041,   110,  1123,   109,   110,   111,   110,   110,   528,
     3002     110,   109,   110,   111,   533,   185,   186,    72,   109,    74,
     3003      75,    76,    39,   112,   111,  1086,   114,  1147,    83,    84,
     3004    1091,   201,   116,   132,   131,   733,   114,   259,   114,   209,
     3005     109,   112,   264,    58,    59,    60,   920,   110,   218,   110,
     3006      67,   221,   112,  1424,   109,   112,   111,   130,   228,   112,
     3007     112,  1147,   117,   118,   583,  1249,  1250,  1251,   130,  1189,
     3008    1190,   130,   116,   243,    29,   130,   110,   247,   110,   112,
     3009     115,   251,   252,   114,   112,  1190,   110,   116,  1208,  1190,
     3010     115,   109,  1212,   115,   110,   265,   266,  1189,  1190,   110,
     3011     130,   110,   272,   116,   110,   132,  1226,     3,   110,   279,
     3012    1230,  1212,   875,  1041,    10,    11,    12,    13,    14,   110,
     3013    1212,   116,   110,  1189,  1208,  1230,   110,   110,   350,  1230,
     3014     110,   110,   110,   110,     1,   654,   110,   656,  1230,   110,
     3015    1189,  1190,   905,    39,   110,   110,  1212,   110,    72,   110,
     3016      74,    75,    76,   115,  1379,  1275,  1276,    29,   328,    83,
     3017      84,  1516,   131,  1212,  1284,   110,   130,   116,   875,  1289,
     3018     112,    67,  1212,   112,   110,   110,   116,   110,   348,   349,
     3019     130,  1230,    49,  1275,  1276,   109,   109,   706,  1289,  1275,
     3020     116,   112,  1284,   117,   118,   365,   114,  1289,   110,   369,
     3021     110,   110,  1322,  1507,   112,   116,  1506,  1081,   110,   431,
     3022     380,   116,   116,  1506,    55,   110,  1506,  1322,  1284,  1507,
     3023     110,  1322,  1506,  1289,   112,   109,   396,  1531,  1506,   109,
     3024    1322,   109,   109,   109,   132,  1284,   406,   130,   105,  1506,
     3025    1289,   112,  1506,  1531,   110,   115,   113,   110,   110,  1289,
     3026     115,   473,   110,   128,   424,   115,    97,  1482,   114,  1379,
     3027     430,   112,   432,  1378,   132,   112,   116,   112,   110,    72,
     3028     110,    74,    75,  1322,   110,  1395,   110,   112,  1041,   146,
     3029      83,    84,   112,   112,  1212,  1208,   112,    72,   155,    74,
     3030      75,    76,   112,    72,   112,    74,    75,   467,    83,    84,
     3031    1420,    47,   472,  1395,    83,    84,   109,   132,   132,   132,
     3032     480,   114,   112,   132,   484,  1420,   132,   115,   488,  1420,
     3033     110,   491,  1442,   493,   109,   130,   115,   110,  1420,  1449,
     3034     109,  1451,   112,  1453,   115,   114,   112,  1044,   205,   112,
     3035     112,  1442,   209,   112,   110,   110,  1506,   109,  1449,   112,
     3036    1442,  1506,   193,  1506,   112,   109,   109,  1449,   528,    60,
     3037     110,  1289,  1482,   533,   132,   110,   114,  1487,   109,  1489,
     3038     112,  1420,   239,   595,   112,   216,  1442,   110,   112,   110,
     3039    1500,    96,    96,  1449,  1147,   226,  1506,  1507,   109,   109,
     3040     464,   115,   132,  1442,  1507,   130,  1516,   110,   110,  1500,
     3041    1449,   623,  1442,   110,   271,   110,   628,   274,  1500,  1449,
     3042     116,  1531,    42,   583,   132,   132,   110,   110,  1531,    66,
     3043     590,    96,    96,   132,   110,   110,   110,   294,    75,   132,
     3044     132,   601,   110,   603,  1500,   115,   112,   132,   115,   958,
     3045     307,   112,   109,   132,   110,  1506,    30,   115,   110,  1212,
     3046     132,  1500,   622,   294,   110,  1378,   110,   667,  1057,   563,
     3047    1500,   980,   978,  1226,   565,   984,  1212,  1365,   638,   564,
     3048     117,   464,   566,   643,   341,   567,  1470,   699,   345,  1541,
     3049    1299,  1327,   652,  1121,   654,   655,   656,  1072,  1449,   685,
     3050     685,   713,   913,   698,    66,  1091,   921,   364,    82,    83,
     3051    1516,   368,   583,   972,   371,  1212,   868,   723,   649,   940,
     3052      82,  1230,   484,   160,  1442,  1034,     0,     1,   688,   733,
     3053     571,  1449,   692,   571,   694,   571,  1289,    72,   698,    74,
     3054      75,    76,    -1,    -1,    -1,    -1,   706,    -1,    83,    84,
     3055      -1,    -1,    -1,  1191,  1192,   117,  1194,    -1,    32,   719,
     3056     720,    -1,    -1,  1201,    -1,  1203,    -1,    -1,    -1,   426,
     3057     427,    -1,    -1,   733,   109,    49,    -1,    10,    11,    12,
     3058      13,    14,  1500,    -1,   221,    -1,    -1,  1451,    -1,  1453,
     3059      -1,    -1,    -1,    -1,   806,    69,    -1,   454,   160,    -1,
     3060      85,    86,    87,    -1,    -1,    -1,    39,   671,  1305,    -1,
     3061     467,    -1,   443,    -1,    -1,    -1,    -1,    10,    11,    12,
     3062      13,    14,   259,  1487,   109,  1489,   111,   264,   113,   114,
     3063      -1,   105,    -1,    -1,    67,   492,    -1,   494,   469,   496,
     3064      -1,    -1,   279,    -1,    -1,    -1,    39,    -1,    -1,   506,
     3065      -1,   508,    -1,   813,   511,    -1,   513,   514,    -1,   221,
     3066    1357,    -1,    -1,  1360,    -1,   825,    -1,    -1,   525,   243,
     3067      -1,    -1,    -1,   147,    67,   506,   109,    -1,   111,    -1,
     3068     511,   155,   156,   514,   117,   118,    -1,    -1,   671,  1442,
     3069      -1,    -1,    -1,    -1,    -1,    -1,  1449,   259,    -1,    -1,
     3070      -1,    -1,   264,    -1,    -1,    -1,  1403,    -1,   868,    -1,
     3071      -1,  1408,   186,   350,   874,    -1,   109,    -1,   111,    -1,
     3072      -1,  1359,   579,    -1,   117,   118,   790,   201,    -1,    -1,
     3073     204,   205,    -1,   590,    -1,   209,   800,   897,    -1,  1436,
     3074    1249,  1250,  1251,    -1,    -1,    -1,   906,  1500,   908,    -1,
     3075     814,    -1,    -1,    -1,    -1,   915,   230,    -1,    -1,    -1,
     3076     234,    -1,   236,    -1,   621,    -1,    -1,    -1,    -1,   626,
     3077      -1,   245,    -1,    -1,    -1,   632,     0,   251,   938,    -1,
     3078      -1,    -1,   256,    -1,    -1,    -1,    -1,    -1,   350,    -1,
     3079      -1,  1003,   266,    -1,   431,    -1,    -1,    -1,   958,    -1,
     3080     274,    10,    11,    12,    13,    14,   380,   790,    32,    -1,
     3081      -1,   448,   972,    -1,    -1,    -1,    -1,   800,    -1,    -1,
     3082     980,    -1,    -1,  1520,   984,    -1,    -1,    -1,   685,  1526,
     3083      39,   814,    -1,    -1,    -1,    -1,   473,    -1,    -1,   670,
     3084    1537,    -1,   671,    -1,  1541,    69,    -1,    -1,   679,    -1,
     3085      -1,    -1,   683,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3086      -1,    72,    -1,    74,    75,    76,   723,   341,    -1,   431,
     3087      -1,   345,    83,    84,  1034,    -1,    -1,   351,  1387,  1388,
     3088      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,
     3089     364,    -1,    -1,    -1,   368,    -1,    -1,   371,   109,    -1,
     3090     109,    -1,   111,    -1,    -1,    -1,   117,   118,   117,   118,
     3091      -1,   473,  1072,    -1,    -1,    -1,  1425,   491,    -1,   493,
     3092      -1,    -1,    -1,    -1,    -1,    -1,  1086,    -1,    -1,    -1,
     3093      -1,  1091,   156,    97,    98,    99,   100,   101,   102,   103,
     3094     104,   105,   106,   107,   418,    -1,    -1,   804,  1108,    -1,
     3095      -1,    -1,   809,    -1,  1018,  1019,    -1,    -1,   595,   433,
     3096      -1,   790,    -1,    -1,   438,    -1,    -1,   131,    -1,    -1,
     3097      -1,   800,   446,    -1,  1483,    -1,    -1,  1189,    -1,    -1,
     3098      -1,    -1,    -1,  1492,    -1,   814,   623,    -1,    -1,    -1,
     3099     464,   628,    72,   467,    74,    75,    76,    -1,    -1,    -1,
     3100      -1,    -1,    -1,    83,    84,    -1,   230,    -1,   482,    -1,
     3101     484,    -1,  1076,  1077,    -1,    -1,    -1,    -1,   492,    -1,
     3102      -1,    -1,   496,    -1,    -1,  1185,    -1,   251,    -1,   109,
     3103      -1,   111,   256,   595,    -1,  1018,  1019,   117,   118,    -1,
     3104     897,    -1,    -1,    -1,    -1,    -1,    -1,   904,  1208,    -1,
     3105      -1,   525,   526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3106      -1,   623,   699,   920,    -1,    -1,   628,    -1,   899,   643,
     3107      -1,    -1,  1284,     0,    -1,    -1,   713,    -1,    -1,    -1,
     3108      -1,    -1,    -1,    -1,    -1,   942,   943,   944,    -1,  1249,
     3109    1250,  1251,    -1,  1076,  1077,    -1,   733,    -1,   572,    72,
     3110      -1,    74,    75,    76,    -1,    32,    -1,    -1,    -1,    -1,
     3111      83,    84,    -1,    -1,    -1,    -1,   590,   591,   692,    -1,
     3112     694,    -1,    -1,    -1,   698,    -1,    -1,   351,    72,   603,
     3113      74,    75,    76,    -1,    -1,    -1,   109,   699,   111,    83,
     3114      84,    -1,    69,  1000,   117,   118,    -1,   621,    -1,    -1,
     3115      -1,   713,   626,    -1,    -1,    -1,    -1,    -1,   632,    -1,
     3116    1224,   635,   636,   637,    -1,   109,    -1,   111,    -1,   806,
     3117      -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,   653,
     3118      -1,    -1,    -1,    26,    27,    28,    -1,    -1,    -1,  1018,
     3119    1019,    -1,  1256,    -1,   418,    -1,    -1,   671,    -1,    -1,
     3120    1264,  1265,  1266,    -1,    -1,    -1,    -1,    -1,   682,   433,
     3121      -1,    -1,    -1,    -1,   438,    -1,    -1,    -1,  1378,  1379,
     3122      -1,  1052,   446,    -1,  1081,    -1,    -1,  1387,  1388,   156,
     3123      -1,    -1,    -1,    -1,   708,    -1,    -1,   711,    -1,    -1,
     3124     464,  1224,    -1,    -1,   806,    -1,   720,  1076,  1077,   723,
     3125      -1,    -1,    -1,    -1,    -1,    98,    -1,   100,   482,    -1,
     3126     484,    -1,    -1,    -1,  1328,  1425,  1123,    -1,    -1,    -1,
     3127      -1,   745,   746,  1256,    -1,    -1,    -1,   751,    -1,    -1,
     3128      -1,  1264,  1265,  1266,    -1,    -1,    -1,    -1,    -1,    -1,
     3129      -1,    -1,    -1,    -1,   868,    -1,    -1,    -1,    -1,    -1,
     3130     874,    -1,   526,    -1,    -1,    -1,    -1,    26,    27,    28,
     3131      -1,    -1,    -1,    -1,    -1,    -1,   790,    -1,    -1,    -1,
     3132      -1,    -1,  1482,  1483,   251,    -1,   800,    -1,   802,   256,
     3133     804,    -1,  1492,   807,    -1,   809,   810,    -1,   181,    -1,
     3134     814,   915,    -1,    -1,    -1,  1328,  1506,  1507,   191,   192,
     3135     824,  1208,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,
     3136      -1,    -1,    -1,    -1,    -1,    -1,  1003,   591,    -1,    -1,
     3137      -1,  1531,    -1,  1230,    -1,    -1,    -1,    -1,    -1,    98,
     3138      -1,   100,    -1,    -1,    -1,     0,    -1,    -1,    -1,    -1,
     3139      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   972,    -1,
     3140      -1,   875,    -1,    -1,    -1,    -1,   125,    -1,    -1,    -1,
     3141      -1,   635,   636,   637,    -1,    -1,    -1,    32,    -1,    -1,
     3142      -1,    -1,    -1,   897,   351,    -1,    -1,  1256,    -1,   653,
     3143     904,   905,    -1,    -1,   908,  1264,  1265,  1266,    -1,    -1,
     3144      -1,  1003,    -1,    -1,    -1,    -1,    -1,   671,    -1,    -1,
     3145      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,   682,    -1,
     3146     934,    -1,   181,    -1,    -1,  1322,    -1,  1298,   942,   943,
     3147     189,    -1,   191,   192,    -1,    -1,    -1,   196,    -1,   198,
     3148     199,    -1,    -1,    -1,   708,    -1,    -1,   711,    -1,    -1,
     3149      -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,  1072,  1328,
     3150      -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     3151      -1,   438,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   446,
     3152      -1,    -1,   746,    -1,    -1,    -1,  1000,    10,    11,    12,
     3153      13,    14,    -1,    -1,    -1,    -1,    -1,   464,    -1,  1013,
     3154      -1,   156,    -1,    -1,  1018,  1019,    -1,  1021,  1022,   268,
     3155      -1,    -1,  1189,    -1,    -1,   482,    39,   484,    -1,    -1,
     3156      -1,    -1,    -1,  1420,    -1,    -1,   790,  1041,    -1,    -1,
     3157      -1,    -1,    -1,    -1,    -1,    -1,   800,    -1,   802,    -1,
     3158      -1,    -1,    -1,   807,    67,    -1,   810,    -1,    -1,    72,
     3159     814,    74,    75,    76,  1451,    -1,  1453,    -1,    -1,   526,
     3160      83,    84,  1076,  1077,    -1,    -1,    -1,    -1,    -1,    -1,
     3161      -1,  1185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1450,
     3162      -1,  1452,    -1,    -1,    -1,    -1,   109,  1189,   111,    -1,
     3163    1487,    -1,  1489,    -1,   117,   118,   251,    -1,    -1,    -1,
     3164      -1,   256,    -1,    -1,    -1,    -1,    -1,  1284,    -1,  1123,
     3165      -1,   875,    -1,    -1,    -1,  1486,    -1,  1488,    -1,  1516,
     3166      -1,    -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
     3167      -1,    -1,    -1,  1147,    -1,    -1,    -1,    -1,    -1,     0,
     3168      -1,   905,    -1,    -1,    -1,    -1,    -1,   189,    -1,    -1,
     3169      -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,  1530,
     3170      -1,  1532,    -1,    -1,    -1,    -1,    -1,    -1,   635,   636,
     3171     637,    32,    -1,    -1,  1545,  1546,  1190,    -1,    -1,    -1,
     3172      -1,    -1,  1284,    -1,    -1,    -1,   653,    -1,    -1,    -1,
     3173      -1,    -1,   575,   576,  1208,    -1,   351,    -1,  1212,    -1,
     3174      -1,    -1,    -1,    -1,   671,    -1,    -1,    -1,    69,    -1,
     3175    1224,    -1,  1226,    -1,    -1,   682,  1230,    -1,    -1,    -1,
     3176      -1,   604,    -1,    -1,   607,   608,   268,   610,    -1,   612,
     3177     613,    -1,    -1,    -1,   617,   618,    -1,    -1,    -1,    -1,
     3178      -1,   708,  1256,    -1,   711,    -1,    -1,    -1,    -1,    -1,
     3179    1264,  1265,  1266,    -1,  1018,  1019,    -1,  1021,  1022,    -1,
     3180      -1,  1275,  1276,   418,    -1,    -1,    -1,    -1,    10,    11,
     3181      12,    13,    14,    -1,    -1,  1289,    -1,  1041,   433,   746,
     3182      -1,   323,    -1,   438,    -1,    -1,    -1,    -1,    -1,   331,
     3183      -1,   446,   334,    -1,    -1,   156,    -1,    39,    -1,    -1,
     3184      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1322,   464,
     3185      -1,    -1,  1076,  1077,  1328,    -1,   575,   576,    -1,    -1,
     3186      -1,    -1,    -1,   790,    -1,    67,    -1,   482,    -1,   484,
     3187      72,    -1,    -1,   800,    76,   802,    -1,    -1,    -1,    -1,
     3188     807,    83,    84,   810,    -1,   604,    -1,   814,   607,   608,
     3189      -1,   610,    -1,   612,   613,    -1,   398,    -1,   617,   618,
     3190     402,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
     3191      -1,   526,   755,   756,    -1,   117,   118,    -1,    -1,    -1,
     3192      -1,  1395,    -1,  1147,    -1,    -1,    -1,    -1,    -1,    -1,
     3193     251,    -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,
     3194      -1,    -1,    -1,    -1,    -1,    -1,  1420,    -1,   875,    -1,
    30933195      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3094       -1,  1376,    -1,    -1,    -1,    -1,    -1,    -1,   698,    -1,
    3095       -1,   701,    -1,    -1,    -1,    -1,  1237,    -1,    -1,    -1,
    3096       -1,   627,   628,  1244,  1245,  1246,    -1,   429,    -1,    -1,
    3097       -1,    -1,  1062,    -1,  1255,  1256,    -1,   643,    -1,    -1,
    3098       -1,    -1,    -1,    -1,    -1,    -1,   736,  1268,    -1,  1424,
    3099       -1,    -1,    -1,    -1,    -1,   661,  1431,   349,    53,    -1,
    3100       55,    -1,    -1,    58,    59,    60,   672,    62,    -1,    -1,
    3101       -1,  1101,    -1,    -1,    -1,    -1,    -1,    -1,   480,   984,
    3102     1301,    76,    -1,    -1,    -1,    -1,  1307,    -1,    -1,   779,
    3103       -1,    -1,   698,    88,    89,   701,    -1,    -1,  1166,   789,
    3104       -1,    -1,    -1,    -1,    -1,   795,    -1,    -1,  1483,    -1,
    3105      800,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   521,
    3106     1200,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
    3107      736,    -1,    -1,    -1,    -1,    -1,    -1,   429,    -1,    -1,
    3108       -1,    -1,   434,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3109      442,    -1,    -1,    -1,    -1,  1376,    -1,  1237,    -1,    -1,
    3110       -1,    -1,    -1,    -1,  1244,  1245,  1246,    -1,   460,    -1,
    3111      860,    -1,    -1,   779,    -1,    -1,    -1,    -1,    -1,    -1,
    3112     1401,    -1,   584,   789,    -1,    -1,   478,    -1,   480,   795,
    3113       -1,    -1,   882,    -1,   800,  1263,    -1,    -1,    -1,   889,
    3114       -1,    -1,    -1,  1424,    -1,    -1,    -1,    -1,    -1,    -1,
    3115     1431,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
    3116       -1,    -1,    -1,    -1,    -1,   627,   628,  1307,    -1,   521,
     3196      -1,    -1,    -1,    -1,    -1,    -1,  1190,    -1,  1442,    -1,
     3197      -1,    -1,    -1,    -1,    -1,  1449,   591,   479,   905,    -1,
     3198      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1212,    -1,
    31173199      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3118       -1,   643,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3119       -1,    -1,    -1,    -1,   860,    -1,    -1,    -1,    -1,    -1,
    3120       -1,  1166,  1483,    -1,    -1,    -1,    -1,    -1,    -1,  1490,
    3121       -1,    66,    67,    -1,    -1,    -1,   882,    72,    -1,    -1,
    3122       -1,    76,    -1,   889,    79,    80,    81,    82,    83,    84,
    3123       85,    86,   584,    88,    89,    -1,    -1,    -1,    -1,   701,
    3124       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   999,
    3125     1000,    -1,  1002,  1003,    -1,    -1,   111,    -1,   113,    -1,
    3126       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3127     1020,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,    -1,
    3128       -1,    -1,    -1,    -1,    -1,    -1,    -1,   342,    -1,   344,
    3129       -1,   643,    -1,    10,    11,    12,    13,    14,  1263,    -1,
    3130      355,   356,    -1,    -1,  1054,  1055,    -1,    -1,    -1,   661,
    3131       -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3132      672,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3133       -1,    -1,    -1,   999,  1000,    -1,  1002,  1003,    -1,    -1,
    3134       -1,    -1,    -1,    -1,    39,    -1,   698,    -1,    -1,   701,
    3135       67,    -1,    -1,    -1,  1020,    72,    -1,    74,    75,    76,
    3136       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,
    3137       -1,    -1,    67,    -1,    -1,  1125,    -1,    72,    -1,    74,
    3138       75,    76,    -1,    -1,   736,    -1,    -1,    -1,  1054,  1055,
    3139       85,    86,    -1,    -1,   111,    -1,   113,    -1,   860,    -1,
    3140       -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3141       -1,    -1,    -1,    -1,    -1,    -1,   111,  1167,   113,    -1,
    3142      882,    -1,    -1,    -1,   119,   120,    -1,   779,    37,    38,
    3143       -1,    40,    -1,    -1,    -1,    -1,    -1,   789,  1188,    -1,
    3144       -1,    -1,    -1,   795,    -1,    -1,    -1,    -1,   800,    -1,
    3145     1200,    -1,  1202,    -1,    -1,    -1,    -1,    66,    -1,  1125,
    3146       -1,    -1,    -1,    72,    -1,    -1,   928,    76,    -1,    -1,
    3147       79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
    3148       89,    -1,    -1,    -1,    -1,    -1,    -1,  1237,    -1,    -1,
    3149       -1,    -1,    -1,    -1,  1244,  1245,  1246,    -1,    -1,    -1,
    3150       -1,  1167,   111,    -1,   113,  1255,  1256,    -1,   860,    -1,
    3151      119,   120,   121,   122,   123,   124,    -1,    -1,  1268,    -1,
    3152       -1,    -1,  1188,   132,    -1,    -1,    -1,    -1,    -1,    -1,
    3153      882,    -1,    -1,    -1,  1200,    -1,  1202,   889,    -1,    -1,
    3154     1002,  1003,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3155       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1307,  1020,    -1,
    3156       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    3157       -1,  1237,    -1,    75,    -1,    77,    -1,    79,  1244,  1245,
    3158     1246,    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,  1255,
    3159     1256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3160       -1,    -1,  1268,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3161       -1,    -1,    -1,    -1,    -1,   117,    -1,   119,   120,   121,
    3162       -1,    -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,    -1,
    3163       -1,    -1,    -1,    -1,    -1,   690,    -1,   692,    -1,    -1,
    3164       -1,  1307,    -1,    -1,   699,   700,    -1,   999,  1000,   704,
    3165     1002,  1003,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,
    3166       -1,    -1,   717,    -1,    -1,    -1,    -1,   722,  1020,    -1,
    3167       -1,    -1,    -1,    -1,  1424,    -1,    -1,    -1,    -1,    -1,
    3168       -1,  1431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3169       -1,    -1,    -1,    -1,   749,    -1,    -1,    -1,    -1,    -1,
    3170       -1,    -1,  1054,  1055,  1166,  1167,    -1,    -1,    -1,    -1,
    3171     1376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   220,    -1,
    3172      222,   223,   224,    -1,    -1,    -1,  1188,    -1,    -1,    -1,
    3173       -1,    -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,
    3174       -1,    -1,    -1,    -1,  1206,    -1,    -1,    -1,    -1,    -1,
    3175       -1,    -1,    -1,    -1,    -1,    -1,   258,    -1,  1424,    -1,
    3176       -1,   263,    -1,    -1,    -1,  1431,    -1,    -1,    -1,    -1,
    3177       -1,    -1,    -1,  1125,    -1,    -1,   278,    -1,    -1,    -1,
    3178       -1,    -1,    -1,    -1,    -1,    -1,    -1,   842,    -1,   844,
    3179      845,   846,    -1,  1255,  1256,    -1,    -1,    -1,    -1,    -1,
    3180       -1,  1263,    49,    -1,    -1,    -1,  1268,    -1,   863,    -1,
    3181       -1,    -1,    -1,    -1,    -1,  1167,    -1,  1483,    -1,    66,
    3182       -1,    -1,   877,    -1,    -1,    -1,    -1,   329,    -1,    -1,
    3183       -1,    -1,    -1,    -1,    -1,    -1,  1188,    -1,    -1,  1301,
    3184       -1,    -1,    -1,    -1,    -1,    -1,   348,    -1,  1200,    -1,
    3185     1202,   353,   354,    -1,    -1,    -1,    -1,    -1,    -1,   361,
    3186       -1,   916,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
    3187      117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3188       -1,    -1,    -1,    -1,    -1,  1237,    -1,    -1,    -1,    -1,
    3189       -1,    -1,  1244,  1245,  1246,    -1,    -1,    -1,    -1,   146,
    3190       -1,   403,    -1,  1255,  1256,   960,    -1,    -1,    -1,   156,
    3191      965,    -1,   159,    -1,  1376,   970,  1268,    -1,    -1,   421,
    3192      975,    -1,    -1,    -1,   426,   980,   428,   982,   983,    -1,
    3193       -1,   986,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1401,
    3194      995,    -1,   444,    -1,    -1,   447,   448,    -1,    -1,    -1,
    3195       -1,    -1,    -1,   455,    -1,  1307,  1011,  1012,    -1,    -1,
    3196       -1,   208,  1424,    -1,    -1,    -1,    -1,   469,    -1,  1431,
    3197       -1,    -1,    -1,   220,   476,    -1,    -1,    -1,    -1,    -1,
    3198       -1,    -1,  1037,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
    3199       -1,   238,    -1,    -1,    -1,    26,    27,    28,    10,    11,
     3200    1224,    -1,  1226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3201      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
     3202     635,   636,   637,    -1,    -1,    -1,  1500,    -1,    -1,    -1,
     3203     351,    -1,  1256,  1507,    -1,    -1,   755,   756,   653,    -1,
     3204    1264,  1265,  1266,    39,    -1,    -1,    -1,    -1,    -1,    -1,
     3205      -1,  1275,  1276,    -1,    -1,    -1,   671,    -1,    -1,    -1,
     3206      -1,    -1,    -1,    -1,    -1,  1289,    -1,   682,    -1,   571,
     3207     572,    67,    -1,    -1,   917,    -1,    72,    -1,    74,    75,
     3208      76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
     3209      -1,  1018,  1019,   708,  1021,  1022,   711,   418,    -1,    -1,
     3210      -1,    -1,    -1,    -1,  1328,    -1,    -1,    -1,    -1,    -1,
     3211      -1,    -1,   433,   109,  1041,   111,    -1,   438,    -1,    -1,
     3212      -1,   117,   118,    -1,    -1,   446,    -1,    -1,    -1,    -1,
     3213      -1,   746,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3214      -1,    -1,    -1,   464,    -1,    -1,    -1,    -1,    -1,  1076,
     3215    1077,    -1,    -1,    -1,    -1,    -1,   658,    -1,    -1,    -1,
     3216     662,   482,    -1,   484,    -1,    -1,    -1,    -1,    -1,    -1,
     3217      -1,  1395,    -1,    -1,    -1,   790,    -1,    -1,    -1,    -1,
     3218      -1,    -1,    -1,    -1,    -1,   800,    -1,   802,    -1,    -1,
     3219      -1,    -1,   807,   912,    -1,   810,    -1,    -1,   917,   814,
     3220      -1,    -1,    -1,    -1,    -1,   526,    53,    -1,    55,    -1,
     3221      -1,    58,    59,    60,    -1,    62,    -1,    -1,  1442,    -1,
     3222    1147,    -1,    -1,    -1,    -1,  1449,    -1,    -1,    -1,    76,
     3223      -1,    -1,    -1,    -1,    -1,  1078,    -1,    -1,    -1,    -1,
     3224      -1,    88,    89,    -1,    10,    11,    12,    13,    14,    -1,
     3225      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3226     875,    -1,    -1,  1190,    -1,    -1,    -1,    -1,    -1,    -1,
     3227     591,    -1,    -1,    39,    -1,    -1,  1500,    -1,    -1,    -1,
     3228      -1,    -1,    -1,    -1,    -1,  1212,    -1,    -1,    -1,    -1,
     3229     905,    -1,   794,    -1,    -1,    -1,    -1,  1224,    -1,  1226,
     3230      -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
     3231      76,    -1,    -1,    -1,   635,   636,   637,    83,    84,    -1,
     3232      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1256,
     3233      -1,    -1,   653,    -1,    -1,    -1,    -1,  1264,  1265,  1266,
     3234      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,  1275,  1276,
     3235     671,   117,   118,    -1,    -1,   282,    -1,   284,   285,  1078,
     3236      -1,   682,  1289,    -1,  1207,   292,   293,    -1,    -1,    -1,
     3237      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3238     307,   308,    -1,    -1,    -1,    -1,    -1,   708,    -1,    -1,
     3239     711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3240      -1,  1328,    -1,  1018,  1019,    -1,  1021,  1022,    -1,    -1,
     3241     912,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,
     3242      -1,    -1,    -1,    -1,    -1,   746,  1041,    10,    11,    12,
     3243      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3244      23,    24,    25,    26,    27,    28,    -1,    30,    31,    32,
     3245      -1,    -1,    -1,    -1,   381,    -1,    39,    -1,    -1,    -1,
     3246      -1,  1076,  1077,    -1,    -1,    -1,    -1,    -1,  1395,   790,
     3247      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   800,
     3248      -1,   802,    -1,    -1,    67,    -1,   807,   989,  1207,   810,
     3249      -1,    74,    75,   814,    -1,    78,    -1,   344,    -1,   346,
     3250      -1,    -1,    -1,    -1,  1006,    -1,    -1,    -1,    -1,    -1,
     3251     357,   358,    -1,    -1,    -1,  1442,    -1,    -1,    -1,    -1,
     3252      37,    38,  1449,    40,    -1,    -1,   109,    -1,   111,    -1,
     3253      -1,    -1,  1147,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3254      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3255      -1,    -1,    -1,    -1,   875,    72,    -1,    -1,    -1,    76,
     3256      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3257      87,    -1,    -1,  1500,    -1,  1190,    -1,    -1,    -1,    -1,
     3258      -1,    -1,  1084,    -1,   905,    -1,    -1,    -1,    -1,    -1,
     3259      -1,    -1,   109,    -1,   111,    -1,    -1,  1212,    -1,    -1,
     3260     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,  1224,
     3261      -1,  1226,     7,   130,    -1,    10,    11,    12,    13,    14,
     3262      -1,    -1,  1124,   550,   551,   552,   553,   554,   555,   556,
     3263     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
     3264     567,  1256,    37,    38,    39,    40,    -1,    -1,    -1,  1264,
     3265    1265,  1266,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3266    1275,  1276,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3267      -1,    66,    67,    -1,  1289,    -1,    -1,    72,    -1,    -1,
     3268      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3269      -1,    86,    87,    -1,    -1,    -1,    -1,  1018,  1019,    -1,
     3270    1021,  1022,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3271      -1,    -1,    -1,  1328,   109,    -1,   111,    -1,    -1,    -1,
     3272    1041,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3273       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3274      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3275      23,    24,    25,    26,    27,  1076,  1077,    30,    31,    32,
     3276      33,    -1,    -1,    36,    37,    38,    39,    40,    -1,   696,
     3277      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3278    1395,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3279      -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
     3280      -1,    74,    75,    76,    49,    -1,    79,    80,    81,    82,
     3281      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3282      -1,    66,    -1,    -1,    -1,    -1,  1147,  1442,    -1,    -1,
     3283     757,    -1,    -1,    -1,  1449,    -1,   109,    -1,   111,    -1,
     3284      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3285      -1,    -1,    -1,   700,    -1,   702,    -1,    -1,    -1,   132,
     3286     787,    -1,   709,   710,    -1,    -1,    -1,   714,   113,  1190,
     3287      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,   726,
     3288      -1,    -1,    -1,    -1,   731,  1500,    -1,    -1,    -1,    -1,
     3289      -1,  1212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3290      -1,   146,    -1,  1224,    -1,  1226,    -1,    -1,    -1,    -1,
     3291      -1,   156,   759,    -1,    -1,   160,    -1,    -1,    -1,    -1,
     3292      -1,    -1,    -1,    -1,    -1,    -1,     7,    -1,    -1,    10,
     3293      11,    12,    13,    14,    -1,  1256,    -1,    -1,    -1,    -1,
     3294      -1,    -1,    -1,  1264,  1265,  1266,    -1,    -1,    -1,    -1,
     3295      -1,    -1,    -1,    -1,  1275,  1276,    37,    38,    39,    40,
     3296      -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,  1289,    -1,
     3297      -1,    -1,    -1,    -1,    -1,    -1,   221,    -1,    -1,    -1,
     3298     907,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
     3299      -1,    72,    -1,    -1,   239,    76,    -1,    -1,    79,    80,
     3300      81,    82,    83,    84,    -1,    86,    87,  1328,    -1,    -1,
     3301      -1,   858,   859,   860,   861,    -1,   863,    -1,    -1,   264,
     3302      -1,    -1,    -1,    -1,    -1,   952,   271,    -1,   109,    -1,
     3303     111,   878,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
     3304     121,   122,    -1,    -1,    -1,   892,    -1,    -1,    -1,   294,
     3305      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3306     987,    -1,   307,    -1,    -1,    -1,    -1,    -1,    -1,    66,
     3307      -1,    -1,    -1,  1000,  1395,    -1,    -1,    -1,    75,    -1,
     3308      77,    -1,    79,    -1,    -1,   932,    -1,    -1,    -1,    86,
     3309      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3310     345,    -1,    -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,
     3311      -1,    -1,    -1,    -1,  1041,    -1,    -1,    -1,    -1,    -1,
     3312     117,  1442,   119,   120,   121,    -1,    -1,    -1,  1449,    -1,
     3313     977,    -1,    -1,    -1,    -1,    -1,   983,    -1,    -1,    -1,
     3314      -1,   988,    -1,    -1,    -1,    -1,   993,    -1,   995,    -1,
     3315      -1,    -1,   999,    -1,  1001,  1002,    -1,    -1,  1005,    -1,
     3316      -1,    -1,    -1,   160,    -1,    -1,    -1,  1014,    -1,    -1,
     3317      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1500,
     3318      -1,   426,   427,    -1,    -1,  1032,  1033,    -1,   433,    -1,
     3319      -1,  1118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3320      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   454,
     3321      -1,    -1,  1059,    -1,    -1,  1062,    -1,    -1,    -1,    -1,
     3322      -1,    -1,    -1,    -1,   221,    -1,   223,   224,   225,    -1,
     3323      -1,    -1,    -1,    -1,    -1,    -1,    -1,   482,    -1,    -1,
     3324      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,   494,
     3325      -1,  1178,  1179,    -1,    -1,    -1,    -1,    -1,  1105,    -1,
     3326      -1,   506,   259,   508,  1111,  1112,   511,   264,   513,   514,
     3327      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3328      -1,   526,   279,    -1,  1131,    -1,    -1,  1134,    -1,    -1,
     3329      -1,  1138,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3330      -1,    -1,    -1,    72,  1151,    74,    75,    76,    -1,    -1,
     3331      -1,    -1,    -1,    -1,    83,    84,    -1,  1164,    -1,  1166,
     3332    1167,  1168,  1169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3333      -1,   328,    -1,    -1,   579,  1182,    -1,  1184,    -1,    -1,
     3334     109,  1188,    -1,    -1,    -1,    -1,   591,    -1,   117,   118,
     3335     595,    -1,    -1,   350,    -1,    -1,    -1,    -1,   355,   356,
     3336      -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,    -1,
     3337    1217,  1218,    -1,    -1,    -1,    -1,   621,    -1,    -1,    -1,
     3338      -1,   626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3339     635,   636,   637,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3340      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,   406,
     3341      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3342    1267,  1268,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,
     3343    1277,    -1,   429,    -1,   431,    -1,    -1,    -1,    -1,    -1,
     3344     685,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3345      -1,   448,    -1,    -1,   451,   452,  1383,    -1,    -1,    -1,
     3346      -1,    -1,   459,    -1,    -1,    -1,   711,    -1,   713,    -1,
     3347      -1,    -1,  1399,    -1,    -1,    -1,   473,    -1,    -1,    -1,
     3348      -1,    -1,    -1,   480,    -1,    -1,    -1,    -1,    -1,    -1,
     3349      -1,  1338,    -1,  1340,  1341,  1342,    -1,    -1,    -1,    -1,
     3350      -1,   746,    -1,    -1,    -1,  1352,    44,    -1,    -1,    -1,
     3351      -1,    -1,    -1,    -1,  1361,    10,    11,    12,    13,    14,
     3352      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3353      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,  1386,
     3354      -1,    -1,  1469,  1470,    39,    -1,    -1,    10,    11,    12,
     3355      13,    14,    -1,    91,    -1,    -1,    -1,   802,    -1,    -1,
     3356      -1,   806,    -1,   101,    -1,   810,    -1,    -1,    -1,    -1,
     3357      -1,    -1,    67,    -1,    -1,    -1,    39,    72,    -1,    74,
     3358      75,    76,  1429,  1430,    -1,    -1,    -1,    -1,    83,    84,
     3359      -1,    -1,    -1,    -1,    -1,  1442,    -1,    -1,   595,    -1,
     3360      -1,    -1,  1449,    -1,    67,    -1,    -1,    -1,    -1,    72,
     3361      -1,    74,    75,    76,   109,    -1,   111,    -1,    -1,   157,
     3362      83,    84,   117,   118,    -1,    -1,   623,    -1,    -1,    -1,
     3363      -1,   628,    -1,   171,  1481,    -1,    -1,    -1,  1485,    -1,
     3364      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     3365      -1,    -1,    -1,    -1,   117,   118,   194,    -1,    -1,    -1,
     3366     905,    -1,    -1,    -1,    -1,    -1,  1513,    -1,  1515,    -1,
     3367     208,    -1,    -1,    -1,    -1,   920,    -1,    -1,    -1,   217,
     3368      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   227,
     3369      -1,    -1,    -1,    -1,    -1,    -1,  1543,  1544,    -1,   944,
     3370      -1,    -1,   699,    -1,  1551,  1552,    -1,    -1,    -1,    -1,
     3371      -1,    -1,    -1,    -1,   252,    -1,   713,    -1,    -1,   257,
     3372      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3373      -1,    -1,   270,    -1,    -1,    -1,   733,    -1,   276,    -1,
     3374     278,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3375      -1,    -1,    -1,    -1,    -1,  1000,    -1,   295,    10,    11,
    32003376      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3201       22,    23,    24,    25,    26,    27,   263,    -1,    -1,    -1,
    3202       -1,  1483,    -1,   270,  1376,    -1,    -1,    39,  1083,    -1,
    3203       -1,    -1,    -1,    -1,  1089,  1090,    -1,    -1,    -1,    -1,
    3204       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,    -1,
    3205       -1,    -1,    -1,  1108,    -1,    67,    -1,    -1,  1113,    -1,
    3206       -1,   308,    -1,  1118,    -1,    -1,    -1,    98,    -1,   100,
    3207       -1,    -1,  1424,    -1,  1129,    -1,    -1,    -1,    -1,  1431,
    3208       -1,    -1,    -1,    -1,    -1,   587,    -1,  1142,    -1,  1144,
    3209     1145,  1146,  1147,    -1,    -1,    -1,   343,    -1,    -1,    -1,
    3210       -1,   348,    -1,    -1,  1159,    -1,  1161,    -1,    -1,    -1,
    3211     1165,    -1,    -1,   615,    -1,    -1,    -1,    -1,   620,    -1,
     3377      22,    23,    24,    25,    26,    27,  1021,  1022,    30,    31,
     3378      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     3379      -1,    -1,    -1,    -1,    -1,    -1,    -1,   794,    -1,    -1,
     3380     338,    -1,    -1,    -1,    -1,   343,    -1,    -1,    -1,   806,
     3381      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3382      72,    -1,    74,    75,    76,    -1,    -1,    -1,   825,    -1,
     3383      -1,    83,    84,    -1,   372,    -1,  1081,    -1,   376,   377,
     3384      -1,   379,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
     3385      -1,   389,   390,    -1,   392,    -1,   394,   109,    -1,   111,
     3386      -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,
     3387      -1,    -1,    -1,   411,    -1,    -1,    -1,    -1,    -1,    -1,
     3388      -1,   419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
     3389     156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3390      -1,    -1,  1147,    -1,    -1,    -1,   444,    -1,    -1,    -1,
     3391      -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3392      14,    -1,    -1,   189,    -1,    -1,    -1,    -1,    -1,    -1,
     3393     196,    -1,   470,    -1,    -1,    -1,    -1,    -1,   476,    -1,
     3394      -1,   938,    -1,   481,  1189,    39,    10,    11,    12,    13,
     3395      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3396      24,    25,    26,    27,    28,    -1,    30,    31,    32,    -1,
     3397      -1,   968,    -1,    67,    -1,    39,    -1,    -1,    72,   517,
     3398      -1,  1226,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3399      84,    -1,    -1,    -1,   532,    -1,    -1,    -1,    -1,    -1,
     3400      -1,    -1,   268,    67,    -1,    -1,  1003,    -1,    72,    -1,
     3401      74,    75,    76,    -1,    78,   109,    -1,  1014,    -1,    83,
     3402      84,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
     3403    1275,  1276,    -1,   571,    -1,    -1,    -1,    -1,    -1,  1284,
     3404      -1,    -1,   580,    -1,    -1,   109,    -1,   111,   146,   587,
     3405      -1,    -1,    -1,   117,   118,   593,    -1,   323,   156,    -1,
     3406      -1,    -1,    -1,    -1,   602,   331,   332,    -1,   334,   335,
     3407     168,   169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
     3408      -1,    -1,    -1,   349,    -1,    -1,    -1,    -1,    -1,  1086,
    32123409      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3213       -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,  1193,  1194,
    3214       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   180,
    3215       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   190,
    3216      191,    -1,    -1,    -1,   195,    -1,   197,   198,    -1,    -1,
    3217       44,    -1,    -1,    -1,    -1,    -1,   423,   424,    -1,    -1,
    3218       -1,    -1,   429,    -1,    -1,    -1,    -1,   689,    -1,    -1,
    3219       -1,    -1,  1247,  1248,    -1,    -1,    -1,    -1,    -1,    -1,
    3220       -1,   703,  1257,   450,    -1,    -1,    -1,    -1,    -1,    -1,
    3221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,
    3222       -1,    -1,   724,    -1,    -1,    -1,    -1,   101,    -1,    -1,
    3223       -1,   478,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3224       -1,    -1,    -1,   490,    -1,    -1,    -1,    -1,    -1,    -1,
    3225       -1,    -1,    -1,    -1,    -1,   502,    -1,   504,    -1,    -1,
    3226      507,    -1,   509,   510,  1319,    -1,  1321,  1322,  1323,    -1,
    3227       -1,    -1,    -1,    -1,   521,    -1,    -1,    -1,  1333,    -1,
    3228       -1,   783,    -1,    -1,    -1,    -1,  1341,    -1,    -1,    -1,
    3229       -1,    -1,   794,    -1,    -1,    -1,   170,    -1,    -1,    -1,
    3230       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   811,
    3231       -1,  1366,  1367,    -1,    -1,    -1,    -1,    -1,    -1,   193,
    3232       -1,    -1,    -1,    -1,    -1,    -1,   573,    -1,    -1,    -1,
    3233       -1,    -1,    -1,   207,    -1,    -1,    -1,   584,    -1,    -1,
    3234      587,    -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3235       -1,    -1,   226,    -1,    -1,    -1,  1411,  1412,    -1,    -1,
    3236       -1,    -1,    -1,    -1,    -1,    -1,   613,    -1,    -1,  1424,
    3237       -1,   618,    -1,    -1,    -1,    -1,  1431,   251,    -1,    -1,
    3238      627,   628,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3239       -1,    -1,    -1,    -1,    -1,   269,   643,    -1,    -1,    -1,
    3240       -1,   275,    -1,   277,    -1,    -1,    -1,    -1,    -1,  1464,
    3241       -1,    -1,    -1,  1468,    -1,    -1,    -1,    -1,    -1,    -1,
    3242      922,    -1,   296,    -1,    -1,    -1,    -1,    -1,   675,    -1,
     3410      -1,    -1,   368,  1100,   642,   371,     3,     4,     5,     6,
     3411       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3412      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3413      27,    -1,   398,    30,    31,    32,   402,    -1,    -1,    -1,
     3414     678,   239,    39,    -1,    -1,    -1,    -1,    -1,   686,    -1,
     3415    1395,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
     3416      -1,    -1,    -1,    -1,    -1,   263,    -1,   433,    -1,    -1,
     3417      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,   717,
     3418      -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,   727,
     3419     728,    76,  1189,    -1,    79,    80,    81,    82,    83,    84,
     3420      -1,    86,    87,    -1,    -1,    -1,  1451,    -1,  1453,    -1,
     3421      -1,    -1,    -1,   479,   111,    -1,   482,    -1,    -1,    -1,
     3422     117,   118,   760,    -1,   109,    -1,   111,   765,    -1,   114,
     3423      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3424      -1,    -1,  1487,    -1,  1489,    -1,    -1,    -1,    -1,    -1,
     3425      -1,    -1,    -1,    -1,    -1,   521,    -1,    -1,    -1,   525,
     3426     526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3427      -1,  1516,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3428      -1,    -1,   380,    -1,    -1,    -1,    -1,  1284,    -1,    -1,
     3429      -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,   836,    -1,
     3430      -1,    -1,    -1,    -1,    -1,   571,   572,    -1,    -1,    -1,
     3431      -1,   849,    -1,   851,    -1,    -1,    -1,    -1,    -1,    -1,
     3432      -1,    -1,    -1,    -1,   590,   591,    -1,   865,    -1,    -1,
     3433      -1,    -1,    -1,   871,    -1,   601,    -1,   603,   604,    -1,
     3434      -1,    -1,    -1,    -1,   610,   883,    -1,    -1,   886,    -1,
     3435      -1,    -1,    -1,    -1,   620,   621,    -1,    -1,    -1,    -1,
     3436     626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   635,
     3437     636,   637,    -1,    -1,    -1,    -1,   474,    -1,    -1,    -1,
     3438      -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,    -1,    -1,
     3439      -1,    -1,   658,   659,    -1,    -1,   662,   663,    -1,    -1,
     3440      -1,    -1,    -1,   669,    -1,    -1,    -1,    -1,    -1,    -1,
     3441      -1,    -1,    -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,
     3442      -1,    -1,   688,    -1,    -1,   963,    -1,    -1,   526,    -1,
     3443      -1,    -1,    -1,   531,    -1,    -1,   534,    -1,    -1,    -1,
     3444      -1,    -1,    -1,    -1,    -1,   711,   712,    -1,    -1,   547,
    32433445      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3244       -1,  1496,    -1,  1498,    -1,    -1,    -1,    -1,    -1,    -1,
    3245      952,    -1,    -1,    -1,   701,    -1,   703,    -1,    -1,    -1,
    3246       -1,    -1,    -1,   337,    -1,    -1,    -1,   341,    -1,    -1,
    3247       -1,  1526,  1527,    -1,    -1,    -1,    -1,    -1,    -1,  1534,
    3248     1535,    -1,   984,    -1,    -1,    -1,    -1,    -1,    -1,   736,
    3249       -1,    -1,    -1,   995,    -1,   369,    -1,    -1,    -1,   373,
    3250      374,    -1,   376,    -1,    -1,    -1,    -1,    -1,    -1,   383,
    3251      384,    -1,   386,   387,    -1,   389,    -1,   391,    -1,    -1,
     3446     998,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3447      -1,   569,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,
     3448     746,   579,    -1,    -1,   750,   751,    -1,    -1,   586,    -1,
     3449      -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
     3450      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3451      20,    21,    22,    23,    24,    25,    26,    27,  1056,    -1,
     3452      30,    31,    32,    -1,  1062,    -1,    -1,    -1,   794,    39,
     3453      -1,    -1,    -1,    -1,  1531,    -1,   802,    -1,    -1,    -1,
     3454      -1,    -1,   640,   809,   810,    -1,    -1,   813,    -1,   815,
     3455     648,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1096,   825,
     3456      -1,    -1,    72,  1101,    74,    75,    76,    -1,    -1,    -1,
     3457      -1,  1109,    -1,    83,    84,    -1,    10,    11,    12,    13,
     3458      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3459      24,    25,    26,    27,    28,    -1,    -1,    -1,    -1,   109,
     3460      -1,   111,    -1,    -1,  1142,    39,    -1,   117,   118,    -1,
     3461      -1,    -1,    -1,    -1,    -1,    -1,  1154,    -1,    -1,  1157,
     3462      -1,  1159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3463      -1,   897,    -1,    67,    -1,  1173,  1174,    -1,   904,   905,
     3464     906,    -1,   908,    -1,    78,    -1,   912,    -1,   746,    -1,
     3465     748,    -1,    -1,    -1,    -1,    -1,    -1,  1195,    -1,    -1,
     3466     758,    -1,    -1,    -1,    -1,    -1,   764,   933,   934,    -1,
     3467      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3468      20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
     3469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     3470      -1,    -1,   968,    -1,  1242,    -1,    -1,    -1,   806,   807,
     3471      -1,    -1,   810,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3472      -1,    40,    -1,   989,   990,    -1,   824,    67,    -1,    -1,
     3473      -1,    -1,    -1,    -1,  1000,    -1,    -1,    -1,    78,    -1,
     3474    1006,  1007,    -1,  1009,  1010,  1011,    -1,    66,    -1,    -1,
     3475      -1,    -1,    -1,    72,    -1,  1021,  1022,    76,    -1,    -1,
     3476      79,    80,    81,    82,    83,    84,   864,    86,    87,    -1,
     3477     868,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1317,
     3478      -1,  1319,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3479     109,    -1,   111,  1331,    -1,  1333,    -1,   116,   117,   118,
     3480     119,   120,   121,   122,    -1,    -1,    -1,   905,    -1,    -1,
     3481      -1,    -1,  1350,    -1,    -1,    -1,    -1,    -1,  1084,    -1,
     3482    1086,    -1,    -1,    -1,    -1,  1091,    -1,    -1,  1366,  1367,
     3483      -1,    -1,    -1,    -1,  1100,    -1,    -1,    -1,    -1,  1377,
     3484      -1,    -1,  1380,    -1,    -1,    -1,   944,    -1,    -1,    -1,
     3485      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1123,  1124,  1125,
     3486      -1,    -1,    -1,  1401,    -1,    -1,    -1,    -1,    -1,    -1,
     3487      -1,    -1,  1410,    -1,   972,  1413,    -1,  1415,  1416,  1417,
     3488     978,  1147,    -1,    -1,   982,    37,    38,    -1,    40,    -1,
    32523489      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3253       -1,    -1,    -1,    -1,   408,    -1,    -1,    -1,   569,   570,
    3254       -1,    -1,   416,    -1,    -1,    -1,    -1,   794,    -1,    -1,
     3490      -1,    -1,    -1,    -1,    -1,  1003,    -1,    -1,    -1,    -1,
     3491      -1,    -1,    -1,    -1,    66,    -1,  1014,  1455,    -1,  1457,
     3492      72,  1459,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3493      82,    83,    84,    -1,    86,    87,  1474,    -1,  1036,    -1,
     3494    1038,    -1,  1208,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3495      -1,    -1,    -1,    -1,    -1,  1053,  1054,   109,    -1,   111,
     3496    1226,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
     3497     122,    -1,    -1,    -1,    -1,    -1,  1074,    -1,    -1,    -1,
     3498      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3499       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3500      19,    20,    21,    22,    23,    24,    25,    26,    27,  1275,
     3501    1276,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
     3502      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3503      -1,  1129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1147,
     3505      69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
     3506      -1,    -1,    -1,    -1,  1162,  1163,    -1,     3,     4,     5,
     3507       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3508      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3509      26,    27,   111,    -1,    30,    31,    32,    33,   117,   118,
     3510      36,    37,    38,    39,    40,    41,    -1,    43,    -1,    -1,
     3511      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
     3512      -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,  1395,
     3513      66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3514      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3515      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32553516      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3256       -1,    -1,  1064,    -1,    -1,   596,   440,    -1,   599,   600,
    3257       -1,   602,    -1,   604,   605,    -1,  1078,    -1,   609,   610,
    3258       -1,    26,    27,    28,   281,    -1,   283,   284,    -1,    -1,
    3259       -1,    -1,   466,    -1,    -1,    -1,   293,   294,   472,    -1,
    3260       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
    3261       -1,   308,   309,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3262       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
    3263      156,    -1,    -1,    -1,    -1,   882,    -1,    -1,    -1,   513,
    3264       -1,    -1,   889,    -1,    -1,    -1,   343,    -1,    -1,    -1,
    3265       -1,    -1,    -1,    98,   528,   100,    -1,   904,    -1,    -1,
    3266       -1,    -1,   188,    -1,  1166,    -1,    -1,    -1,    -1,   195,
     3517      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3518      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3519      -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,  1303,    -1,    -1,  1306,    -1,
     3521      -1,    -1,    -1,    -1,    -1,    -1,  1482,    -1,    -1,    -1,
    32673522      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3268      125,   378,   929,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3269       -1,   565,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3270      574,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3271       -1,    -1,    -1,    -1,   745,   746,    -1,    -1,    -1,    -1,
    3272      594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3273       -1,    -1,    -1,    -1,   981,   180,    -1,    -1,    -1,    -1,
    3274       -1,   267,    -1,   188,    -1,   190,   191,    -1,    -1,    -1,
    3275      195,    -1,   197,   198,    -1,  1002,  1003,    -1,   632,    -1,
    3276       -1,  1263,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3523      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3524    1506,  1507,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3525      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3526      -1,    -1,    -1,    -1,    -1,  1531,     3,     4,     5,     6,
     3527       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3528      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3529      27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
     3530      37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
     3531      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3532      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
     3533      67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
     3534      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3535      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3536      -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
     3537      -1,    -1,   109,    -1,   111,    -1,    -1,    83,    84,    -1,
     3538     117,   118,   119,   120,   121,   122,     4,     5,     6,     7,
     3539       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3540      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3541      -1,    -1,    30,    31,    32,    -1,    -1,    -1,  1516,    37,
     3542      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
     3543      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3544      27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
     3545      -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
     3546      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3547      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3548      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3549      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,   117,
     3550     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    32773551       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    32783552      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3279       -1,    30,    31,    32,   668,    -1,    -1,    -1,   324,    -1,
    3280       39,    -1,   676,    -1,    -1,    -1,   332,   333,    -1,   335,
    3281      336,    -1,  1059,    -1,    -1,    -1,    -1,   343,    -1,    -1,
    3282       -1,   347,   267,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3283       69,    -1,    71,   707,    -1,    74,    75,    -1,    -1,    -1,
    3284      366,    -1,    -1,    -1,   718,   719,    -1,    -1,    -1,   546,
    3285      547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
    3286      557,   558,   559,   560,   561,   562,   563,    -1,    -1,   395,
    3287      901,    -1,    -1,   399,    -1,    -1,   750,   116,  1125,    -1,
    3288       -1,   755,    10,    11,    12,    13,    14,    15,    16,    17,
    3289       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3290       28,    -1,    -1,   429,    -1,    -1,    -1,    -1,    -1,    -1,
    3291       -1,    39,    -1,   146,    -1,    -1,    -1,    -1,    -1,  1166,
    3292       -1,    -1,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,
    3293       -1,    -1,    -1,    -1,   167,   168,    -1,    -1,    -1,    67,
    3294       -1,   815,    -1,    -1,    -1,    -1,    -1,    -1,   822,   475,
    3295       78,    -1,   478,    -1,    -1,  1202,    -1,    -1,    -1,    -1,
    3296       -1,   835,    -1,   837,    -1,    -1,    -1,    -1,    -1,    -1,
    3297       -1,    -1,    -1,    -1,    -1,    -1,   850,    -1,    -1,    -1,
    3298       -1,    -1,   856,    -1,    -1,    -1,    -1,    -1,    -1,   686,
    3299       -1,   517,    -1,    -1,   868,   521,    -1,   871,    -1,    -1,
    3300       -1,    -1,    -1,    -1,    -1,   238,    -1,    -1,  1255,  1256,
    3301       -1,    -1,  1514,    -1,    -1,    -1,  1263,    -1,    -1,    -1,
    3302       -1,    -1,    -1,    -1,    -1,  1056,    -1,    -1,    -1,   262,
    3303       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   565,
    3304      566,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3305      747,    -1,    -1,    -1,    -1,    -1,    -1,   583,   584,    -1,
    3306       -1,    -1,    -1,    -1,    -1,    -1,    -1,   593,    -1,   595,
    3307      596,    -1,    -1,    -1,    -1,    -1,   602,    -1,    -1,    -1,
    3308      777,    -1,    -1,    -1,    -1,    -1,   612,   613,    -1,    -1,
    3309       -1,    -1,   618,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3310       -1,   627,   628,    -1,    -1,   979,    -1,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    -1,    -1,    -1,    -1,   643,    -1,    -1,
    3312       -1,    -1,   648,   649,   569,   570,   652,   653,    -1,  1376,
    3313       -1,    -1,    -1,   659,    -1,    -1,    -1,    -1,    -1,    -1,
    3314       -1,    -1,    -1,    -1,   377,    -1,    -1,    -1,    -1,    -1,
    3315       -1,   596,   678,  1184,   599,   600,    -1,   602,    -1,   604,
    3316      605,    -1,    -1,    -1,   609,   610,  1040,    -1,    -1,    -1,
    3317       -1,    -1,    -1,    -1,    -1,   701,   702,    -1,    -1,    -1,
    3318       -1,    -1,    -1,    -1,    -1,    -1,  1433,    -1,  1435,    -1,
    3319       -1,    -1,    -1,    -1,   891,    -1,    -1,    -1,    -1,    -1,
    3320     1074,    -1,    -1,    -1,    -1,  1079,    -1,    -1,    -1,    -1,
    3321      736,    -1,    -1,  1087,   740,   741,    -1,    -1,    -1,    -1,
    3322       -1,    -1,    -1,  1470,    -1,  1472,    -1,    -1,    -1,    -1,
    3323       -1,    -1,    -1,    -1,    -1,    -1,    -1,   470,    -1,    -1,
    3324      937,    -1,    -1,    -1,    -1,    -1,    -1,  1121,    -1,    -1,
    3325       -1,    -1,  1499,    -1,    -1,    -1,    -1,   783,  1132,    -1,
    3326       -1,  1135,    -1,  1137,    -1,    -1,    -1,    -1,    -1,    -1,
    3327       -1,    -1,   969,   799,    -1,   801,   509,    -1,  1152,  1153,
    3328       -1,    -1,    -1,    -1,   981,   811,    -1,    -1,   521,    -1,
    3329       -1,    -1,    -1,    -1,   527,    -1,    -1,   530,  1172,    -1,
    3330      745,   746,     7,    -1,    -1,    10,    11,    12,    13,    14,
    3331      543,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3332       -1,    -1,    -1,  1020,    -1,    -1,    -1,    -1,    -1,    -1,
    3333       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3334      573,    -1,    -1,    -1,  1218,    -1,    -1,   580,    -1,    -1,
    3335       -1,   584,  1226,    -1,    -1,    -1,   882,    -1,    -1,    -1,
    3336       -1,    66,    67,   889,   890,    -1,   892,    72,    -1,    -1,
    3337      896,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3338       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3339       -1,   917,   918,    -1,    -1,    -1,    -1,   630,    -1,  1096,
    3340       -1,    -1,    -1,    -1,    -1,   638,   111,    -1,   113,    -1,
    3341       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3342       -1,    -1,  1296,    -1,  1298,    -1,   952,    -1,    -1,    -1,
    3343       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3344     1314,    -1,  1316,    -1,    -1,   971,   972,    -1,    -1,    -1,
    3345       -1,   896,    -1,    -1,    -1,   981,   901,  1331,  1155,  1156,
    3346       -1,   987,   988,    -1,   990,   991,   992,    -1,    -1,    -1,
    3347       -1,    -1,  1346,  1347,    -1,    -1,  1002,  1003,    -1,    -1,
    3348       -1,   714,    -1,  1357,    -1,    -1,  1360,    -1,    -1,    -1,
    3349       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3350       -1,    -1,    -1,   736,    -1,   738,    -1,    -1,  1382,    -1,
    3351       -1,    -1,    -1,    -1,    -1,   748,    -1,  1391,    -1,    -1,
    3352     1394,   754,  1396,  1397,  1398,    -1,    -1,    -1,    -1,    -1,
    3353       -1,    -1,    -1,    -1,    -1,    -1,  1062,    -1,  1064,    -1,
    3354       -1,    -1,    -1,  1069,    -1,    -1,    -1,    -1,    -1,    -1,
    3355       -1,    -1,  1078,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3356       -1,   794,   795,  1437,    -1,  1439,    -1,  1441,    -1,    -1,
    3357       -1,    -1,    -1,    -1,    -1,  1101,  1102,   810,    -1,    -1,
    3358       -1,    -1,    -1,  1457,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1125,
    3360       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361       -1,  1056,    -1,    -1,    -1,    -1,   849,    -1,    -1,    -1,
    3362      853,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3363       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3364       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,   882,
    3365       -1,    -1,    -1,    -1,    39,    -1,   889,    -1,    -1,    -1,
    3366       -1,    -1,    -1,    -1,    -1,    -1,  1363,    -1,    -1,    -1,
    3367       -1,    -1,    -1,    -1,    -1,    -1,  1202,    -1,    -1,    -1,
    3368       -1,    -1,    67,  1380,    -1,    -1,    -1,    -1,    -1,    74,
    3369       75,    -1,    -1,    -1,    -1,    -1,   929,     3,     4,     5,
    3370        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3371       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3372       26,    27,    -1,   956,    30,    31,    32,    -1,   961,  1255,
    3373     1256,   964,    -1,    39,   119,   120,    -1,    -1,    -1,  1184,
    3374       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3375       -1,   984,    -1,    -1,    -1,  1452,  1453,    -1,    -1,    -1,
    3376       -1,    67,   995,    69,    -1,    71,    72,    -1,    74,    75,
    3377       76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
    3378       86,    -1,  1015,    -1,  1017,    -1,    -1,    -1,    -1,    -1,
    3379       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1032,
    3380     1033,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
    3381       -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,  1052,
    3382       -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
    3383        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3384       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3385     1376,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
    3386       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3387       -1,    -1,    -1,  1106,    -1,    -1,    -1,    -1,    -1,    -1,
    3388       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3389       -1,    69,  1125,    71,    -1,    -1,    74,    75,    -1,    -1,
    3390       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,  1141,    -1,
    3391        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3392       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3393       24,    25,    26,    27,    -1,   113,    30,    31,    32,  1465,
    3394       -1,   119,   120,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    3395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3396       -1,    -1,    -1,  1489,  1490,    -1,    -1,    -1,    -1,    -1,
    3397       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3398       74,    75,    -1,    -1,    -1,    -1,    -1,    -1,  1514,    -1,
    3399       -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    3400       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3401       21,    22,    23,    24,    25,    26,    27,    -1,   112,    30,
    3402       31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
    3403       41,    -1,    43,    -1,    -1,    46,    47,    48,    49,    50,
    3404       51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,  1282,
    3405       61,    62,  1285,    64,    -1,    66,    67,    -1,    69,    -1,
    3406       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3407       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3408       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3409       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3410      111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,
    3411      121,   122,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,
    3412       -1,    -1,    -1,   134,     3,     4,     5,     6,     7,     8,
    3413        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3414       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3415       -1,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
     3553      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    34163554      39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
    34173555      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    34183556      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
    34193557      69,    39,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3420       79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
    3421       89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3422       -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,
    3423       -1,    -1,   111,    -1,   113,    -1,    -1,    85,    86,    -1,
    3424      119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
    3425       -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,    -1,
    3426       -1,    -1,    -1,    -1,    -1,    -1,  1499,     3,     4,     5,
    3427        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3428       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3429       26,    27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,
    3430       36,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    3431       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3432       25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,
    3433       66,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
    3434       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    3435       86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
    3436       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3437       -1,    -1,    -1,    78,    -1,   111,    -1,   113,    -1,    -1,
    3438       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,     4,
    3439        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3440       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3441       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3442       -1,    -1,    37,    38,    39,    40,    10,    11,    12,    13,
    3443       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3444       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3445       -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
    3446       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3447       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3448       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
    3449       74,    75,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
    3450       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,   124,
    3451        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3452       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3453       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3454       -1,    -1,    -1,    37,    38,    39,    40,    10,    11,    12,
    3455       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3456       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3457       -1,    -1,    66,    67,    -1,    69,    39,    71,    72,    -1,
    3458       74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3459       84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,
    3460       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
    3461       -1,    74,    75,    -1,    -1,    -1,    -1,   111,    -1,   113,
    3462       -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
    3463      124,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3558      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3559      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3560      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
     3561     109,    -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
     3562     119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
     3563      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3564      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3565      30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,
     3566      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3567      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3568      -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,
     3569      39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3570      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3571      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3572      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3573      -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
     3574     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
     3575      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3576      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3577      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3578      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3579      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3580      -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
     3581      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3582      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3583      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3584      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3585     111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
     3586     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3587      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3588      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3589      32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     3590      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3591      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3592      -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
     3593      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3594      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3596      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3597      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3598     122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    34643599      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    34653600      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     
    34693604      -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
    34703605      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3471       83,    84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,
     3606      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    34723607      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3474      113,    -1,    -1,    -1,    -1,    -1,   119,   120,   121,   122,
    3475      123,   124,     4,     5,     6,     7,     8,     9,    10,    11,
    3476       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3477       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3478       32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
    3479       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3480       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3481       -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
    3482       72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3483       82,    83,    84,    85,    86,    -1,    88,    89,    -1,    -1,
    3484       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3485       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    3486       -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,   121,
    3487      122,   123,   124,     4,     5,     6,     7,     8,     9,    10,
    3488       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3489       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3490       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3491       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3492       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3493       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
    3494       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3495       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3496       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3498      111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3499      121,   122,   123,   124,     0,    -1,    -1,     3,     4,     5,
    3500        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3501       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3502       26,    27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,
    3503       36,    -1,    -1,    39,    40,    -1,    -1,    -1,    -1,    -1,
    3504       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,
    3506       -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
    3507       76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
    3508       86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3509       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3510       -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
    3511       -1,    -1,    -1,   119,   120,     3,     4,     5,     6,     7,
    3512        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3513       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3514       -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
    3515       -1,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3516       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3517       -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,
    3518       -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
    3519       -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    -1,
    3520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3521       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3522       -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,   117,
    3523       -1,   119,   120,     3,     4,     5,     6,     7,     8,     9,
    3524       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3525       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3526       30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
    3527       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3528       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3529       -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,
    3530       -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
    3531       -1,    -1,    -1,    -1,    -1,    85,    86,    -1,    -1,    -1,
    3532       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3534       -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
    3535      120,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3536       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3537       22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
    3538       32,    33,    -1,    -1,    36,    -1,    -1,    39,    -1,    -1,
    3539       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3540       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3541       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3542       -1,    -1,    74,    75,    -1,    -1,    78,     3,     4,     5,
    3543        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3544       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3545       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3546       -1,   113,    -1,    39,    -1,    -1,    -1,   119,   120,    -1,
    3547       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3548       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3549       -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
     3608      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3609      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    35503610       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    35513611      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    35523612      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3553       -1,    -1,    -1,    -1,    -1,    39,    -1,   113,    -1,    -1,
    3554       -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,
     3613      -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,
    35553614      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3556       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
    3557       74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3558       -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35593615      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3560       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,
    3561       -1,    -1,    -1,    -1,    -1,   119,   120,     4,     5,     6,
     3616      -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,
     3617      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3618      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3619      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3620      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3621      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     0,
     3622      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3623      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3624      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3625      31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,
     3626      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3627      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3628      -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,    -1,
     3629      71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3630      -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,
     3631      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3632      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3633     111,    -1,    -1,    -1,    -1,    -1,   117,   118,     3,     4,
     3634       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3635      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3636      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
     3637      -1,    36,    -1,    -1,    39,    40,    -1,    -1,    -1,    -1,
     3638      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3639      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,
     3640      -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3641      75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
     3642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3643      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3644      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3645     115,    -1,   117,   118,     3,     4,     5,     6,     7,     8,
     3646       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3647      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3648      -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
     3649      39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3650      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3651      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,
     3652      69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3653      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
     3654      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3655      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3656     109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3657       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3658      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3659      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3660      -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    10,    11,
     3661      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3662      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3663      32,    33,    34,    35,    67,    -1,    69,    39,    71,    72,
     3664      -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
     3665      83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3666      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3667      -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3668      -1,    -1,    -1,    -1,   117,   118,     3,     4,     5,     6,
     3669       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3670      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3671      27,    28,    -1,    30,    31,    32,    33,    -1,    -1,    36,
     3672      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3673      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3674      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3675      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3676      -1,    78,     4,     5,     6,     7,     8,     9,    10,    11,
     3677      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3678      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3679      32,    -1,    -1,    -1,   111,    -1,    -1,    39,    -1,    -1,
     3680     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3681      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3682      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
     3683      72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
     3684      -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3686      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3687      -1,    -1,    -1,    -1,    -1,   117,   118,     4,     5,     6,
    35623688       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    35633689      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    35643690      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3565       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3691      -1,    -1,    39,    -1,    -1,    -1,    -1,    10,    11,    12,
     3692      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3693      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3694      67,    -1,    69,    -1,    71,    -1,    39,    74,    75,    -1,
     3695       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3696      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3697      24,    25,    26,    27,    67,    -1,    30,    31,    32,    -1,
     3698      -1,    74,    75,   110,   111,    39,    -1,    -1,    -1,    -1,
     3699     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3700      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3701      -1,    -1,    -1,    67,    -1,    69,   109,    71,   111,    -1,
     3702      74,    75,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704      -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3705      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3706      -1,    -1,    -1,   117,   118,     4,     5,     6,     7,     8,
     3707       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3708      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3709      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3710      39,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3711      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3712      26,    27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,
     3713      69,    -1,    71,    39,    40,    74,    75,    -1,    -1,    -1,
     3714      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3715      -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
     3716      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
     3717      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3718       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3719      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3720      24,    25,    26,    27,    -1,   111,    30,    31,    32,   115,
     3721      -1,   117,   118,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    35663722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35673723      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3568       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,
     3724      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3725      74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
     3726      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3727      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3728      31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
     3729      -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
     3730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3731      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3732      71,    -1,    -1,    74,    75,    -1,     4,     5,     6,     7,
     3733       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3734      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3735      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3736     111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3737      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3738      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3739      -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,     4,
    35693740       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    35703741      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    35713742      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3572       -1,    -1,    -1,    -1,    39,   112,   113,    -1,    -1,    -1,
    3573       -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
     3743      -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,   117,
     3744     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35743745      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35753746      -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3576       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3577       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3578       -1,    -1,    -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,
    3580       -1,    -1,    -1,    -1,   119,   120,     4,     5,     6,     7,
    3581        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3582       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3583       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3584       -1,    39,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3585       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3586       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    67,
    3587       -1,    69,    -1,    71,    39,    40,    74,    75,    -1,    -1,
     3747      75,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3748      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3749      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
     3750      39,    40,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3751      -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
     3752      -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
     3753      -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3754      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    35883755      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35893756      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3590       98,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3591       75,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,    -1,
    3592       -1,   119,   120,     4,     5,     6,     7,     8,     9,    10,
    3593       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3594       21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
    3595       31,    32,   117,    -1,   119,   120,    -1,    -1,    39,    -1,
    3596       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3597       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3598       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3599       71,    -1,    -1,    74,    75,     4,     5,     6,     7,     8,
    3600        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3601       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3602       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3603       39,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3604       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3606       69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
    3607        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3608       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3609       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3610       -1,    -1,    39,    -1,   113,    -1,    -1,    -1,    -1,    -1,
    3611      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3612       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3613       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    10,
    3614       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3615       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3616       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3617       -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
    3618       -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3619       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
    3620       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3621       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3622       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3624      111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,
    3625      121,   122,   123,   124,    10,    11,    12,    13,    14,    15,
     3757     109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
     3758     119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
    36263759      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    36273760      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     
    36303763      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    36313764      66,    67,    -1,    -1,    39,    -1,    72,    -1,    74,    75,
    3632       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    3633       86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3765      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3766      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36343767      -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3635       75,    -1,    -1,    -1,    -1,   111,   112,   113,    -1,    -1,
    3636       85,    86,    -1,   119,   120,   121,   122,   123,   124,    10,
     3768      75,    76,    -1,   109,   110,   111,    -1,    -1,    83,    84,
     3769      -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
     3770      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3771      23,    24,    25,    26,    27,    -1,   111,    30,    31,    32,
     3772      -1,    -1,   117,   118,    37,    38,    39,    40,    10,    11,
     3773      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3774      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3775      32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,    72,
     3776      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
     3777      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3778      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3779      72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3780      -1,    83,    84,    -1,   117,   118,   119,   120,   121,   122,
     3781      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3782      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
     3783      30,    31,    32,    -1,    -1,   117,   118,    37,    38,    39,
     3784      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3785      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3786      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,
     3787      39,    40,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3788      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3789      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3790      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
     3791      -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
     3792     120,   121,   122,    10,    11,    12,    13,    14,    15,    16,
     3793      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3794      27,    -1,   111,    30,    31,    32,   115,    -1,   117,   118,
     3795      37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
     3796      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3797      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
     3798      67,    -1,    -1,    39,    40,    72,    -1,    74,    75,    76,
     3799      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3800      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3801      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
     3802      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3803     117,   118,   119,   120,   121,   122,    10,    11,    12,    13,
     3804      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3805      24,    25,    26,    27,    -1,   111,    30,    31,    32,   115,
     3806      -1,   117,   118,    37,    38,    39,    40,    -1,    -1,    -1,
     3807      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3808      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3809      26,    27,    66,    67,    30,    31,    32,    -1,    72,    -1,
     3810      74,    75,    76,    39,    -1,    79,    80,    81,    82,    83,
     3811      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3812      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3813      -1,    67,    -1,    -1,    -1,   109,    -1,   111,    74,    75,
     3814      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     3,
     3815       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3816      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3817      24,    25,    26,    27,    -1,   111,    30,    31,    32,    -1,
     3818      -1,   117,   118,    -1,    -1,    39,    -1,    -1,    -1,    10,
    36373819      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3638       21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
    3639       31,    32,    -1,    -1,   119,   120,    37,    38,    39,    40,
     3820      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
     3821      31,    32,    -1,    67,    -1,    69,    -1,    71,    39,    -1,
     3822      74,    75,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3823      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3824      23,    24,    25,    26,    27,    -1,    67,    30,    31,    32,
     3825      -1,    72,    -1,    74,    75,    76,    39,    78,    -1,    -1,
     3826     114,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
     3827      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3828      25,    26,    27,    28,    67,    30,    31,    32,    -1,    72,
     3829     111,    74,    75,    76,    39,    -1,   117,   118,    -1,    -1,
     3830      83,    84,    -1,    10,    11,    12,    13,    14,    15,    16,
     3831      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3832      27,    -1,    67,    30,    31,    32,   109,    -1,   111,    74,
     3833      75,    -1,    39,    78,   117,   118,    10,    11,    12,    13,
     3834      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3835      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3836      67,    -1,    -1,    -1,    -1,    39,   111,    74,    75,    -1,
     3837      -1,    -1,   117,   118,    10,    11,    12,    13,    14,    15,
     3838      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3839      26,    27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,
     3840      74,    75,    -1,    39,   111,    -1,    -1,    -1,    -1,    -1,
     3841     117,   118,    10,    11,    12,    13,    14,    15,    16,    17,
     3842      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3843      -1,    67,    30,    31,    32,    -1,    -1,   111,    74,    75,
     3844      -1,    39,    -1,   117,   118,    10,    11,    12,    13,    14,
     3845      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3846      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    67,
     3847      -1,    -1,    -1,    -1,    39,   111,    74,    75,    -1,    -1,
     3848      -1,   117,   118,    10,    11,    12,    13,    14,    15,    16,
     3849      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3850      27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,    74,
     3851      75,    -1,    39,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3852     118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3853      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3854      67,    30,    31,    32,    -1,    -1,   111,    74,    75,    -1,
     3855      39,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
     3856      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3857      20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
     3858      30,    31,    32,    -1,   111,    74,    75,    -1,    -1,    39,
     3859     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3860      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3861      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3862      -1,    71,    -1,    -1,    74,    75,    -1,    -1,   117,   118,
     3863      37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,    46,
     3864      47,    48,    49,    50,    51,    52,    53,    -1,    -1,    56,
     3865      57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,
     3866     110,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3867      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3868      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3869      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3870      -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
     3871     117,   118,   119,   120,   121,   122,    -1,    -1,    37,    38,
     3872     127,    40,    41,    -1,    43,   132,    -1,    46,    47,    48,
     3873      49,    50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,
     3874      -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
     3875      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3876      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3877      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3878      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3879     109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
     3880     119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,    -1,
     3881      -1,    -1,    -1,   132,     4,     5,     6,     7,     8,     9,
    36403882      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    36413883      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3642       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3643       40,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3644       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3645       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3646       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3647      111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3648      121,   122,   123,   124,    10,    11,    12,    13,    14,    15,
    3649       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3650       26,    27,    -1,   113,    30,    31,    32,   117,    -1,   119,
    3651      120,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    3652       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3653       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3654       66,    67,    -1,    -1,    39,    40,    72,    -1,    74,    75,
    3655       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    3656       86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
    3657       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3658       75,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
    3659       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    10,
    3660       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3661       21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
    3662       31,    32,   117,    -1,   119,   120,    37,    38,    39,    40,
    3663       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3664       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3665       30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
    3666       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3667       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3668       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3669       -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
    3670      111,    -1,   113,    -1,    -1,    85,    86,    -1,   119,   120,
    3671      121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,
     3884      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     3885      -1,    37,    38,    -1,    40,    41,    -1,    43,    44,    45,
     3886      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
     3887      56,    57,    -1,    -1,    -1,    61,    62,    67,    64,    69,
     3888      66,    71,    -1,    -1,    74,    75,    72,    -1,    -1,    -1,
     3889      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3890      86,    87,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
    36723891      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3673       -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
    3674      120,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3675       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3676       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3677       39,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3678       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3679       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    67,    -1,
    3680       39,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3681       -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    -1,    -1,
    3682       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3683       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
    3684       -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,
    3685      119,   120,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3686       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3687       25,    26,    27,    -1,   113,    30,    31,    32,    -1,    -1,
    3688      119,   120,    -1,    -1,    39,    10,    11,    12,    13,    14,
    3689       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3690       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3691       -1,    -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,
    3692       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3694       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3695       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,
    3696       -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    10,
    3697       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3698       21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
    3699       31,    32,    -1,    -1,   119,   120,    -1,    -1,    39,    10,
    3700       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3701       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3702       31,    32,    -1,    -1,    -1,    -1,    67,    -1,    39,    -1,
    3703       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    3704       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3705       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    3706       -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    3707       -1,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
    3708       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3709       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3710       27,    -1,   113,    30,    31,    32,    -1,    -1,   119,   120,
    3711       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3892      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3893      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    37,
     3894      38,   127,    40,    41,    -1,    43,    44,    45,    46,    47,
     3895      48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
     3896      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,
     3897      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3898      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    37123899      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37133900      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3714       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    3715       -1,    -1,    37,    38,    -1,    40,    41,    -1,    43,    -1,
    3716       -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3717       -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3718       -1,    66,    -1,    -1,    -1,    -1,   113,    72,    -1,    -1,
    3719       -1,    76,   119,   120,    79,    80,    81,    82,    83,    84,
    3720       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3721       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3722       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
    3723       -1,   116,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3724       -1,    -1,    37,    38,   129,    40,    41,    -1,    43,   134,
    3725       -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3726       -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3727       -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3728       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3729       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3731       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
    3732       -1,   116,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3733       -1,    -1,    -1,    -1,   129,    -1,    -1,    -1,    -1,   134,
    3734        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3735       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3736       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3737       -1,    -1,    -1,    -1,    -1,    39,    -1,    37,    38,    -1,
    3738       40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
    3739       50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    -1,
    3740       -1,    61,    62,    67,    64,    69,    66,    71,    -1,    -1,
    3741       74,    75,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3742       80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
    3743       -1,    -1,    -1,    -1,    98,    -1,    -1,    -1,    -1,    -1,
    3744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
    3746      120,   121,   122,   123,   124,    -1,    -1,    37,    38,   129,
    3747       40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
    3748       50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
    3749       -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
    3750       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3751       80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
    3752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3753       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3754       -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
    3755      120,   121,   122,   123,   124,    -1,    -1,    37,    38,   129,
     3901      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,
     3902     118,   119,   120,   121,   122,    -1,    -1,    37,    38,   127,
    37563903      40,    41,    -1,    43,    -1,    -1,    46,    47,    48,    49,
    37573904      50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
    37583905      -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
    37593906      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3760       80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
    3761       -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
    3762       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3763       -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
    3764      120,   121,   122,   123,   124,    66,    -1,    -1,    -1,   129,
    3765       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3766       81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    3767       -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,
    3768       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3769      111,    -1,   113,    -1,   115,   116,    -1,    -1,   119,   120,
    3770      121,   122,   123,   124,    66,    -1,    -1,    -1,    -1,    -1,
    3771       72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
    3772       82,    83,    84,    85,    86,    -1,    88,    89,    -1,    -1,
     3907      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    37733908      -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
    3774       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    3775       -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,   121,
    3776      122,   123,   124,    66,    -1,    -1,    -1,    -1,    -1,    72,
     3909      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3910      -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,
     3911     120,   121,   122,    66,    -1,    -1,    -1,   127,    -1,    72,
    37773912      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3778       83,    84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,
    3779       -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
    3780       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3781      113,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
    3782      123,   124,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     3913      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3914      -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
     3915      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3916      -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3917      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3918      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3919      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3920      -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3921      -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,
     3922      40,   117,   118,   119,   120,   121,   122,    66,    -1,    -1,
     3923      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3924      79,    80,    81,    82,    83,    84,    66,    86,    87,    -1,
     3925      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3926      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3927     109,    -1,   111,    -1,    37,    38,    -1,    40,   117,   118,
     3928     119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,   109,
     3929      -1,   111,    -1,    37,    38,    -1,    40,   117,   118,   119,
     3930     120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,
     3931      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3932      83,    84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,
    37833933      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3784       84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,
    3785       -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
    3786       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,
    3787       -1,    -1,   116,    -1,    -1,   119,   120,   121,   122,   123,
    3788      124,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3789       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3790       85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
    3791       -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    3792       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
    3793       -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
    3794       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    3795       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    3796       86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
    3797       37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    3798       -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
    3799       -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    66,
     3934      84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,    -1,
     3935      37,    38,    -1,    40,   117,   118,   119,   120,   121,   122,
     3936      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    37,
     3937      38,    -1,    40,   117,   118,   119,   120,   121,   122,    66,
    38003938      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    3801       -1,    -1,    79,    80,    81,    82,    83,    84,    85,    86,
    3802       -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    37,
    3803       38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3804       -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,
    3805       -1,    -1,   119,   120,   121,   122,   123,   124,    66,    -1,
    3806       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3807       -1,    79,    80,    81,    82,    83,    84,    85,    86,    -1,
    3808       88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
    3809       -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3810       -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,
    3811       -1,   119,   120,   121,   122,   123,   124,    66,    -1,    -1,
    3812       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3813       79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
    3814       89,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,
    3815       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3816       -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,
    3817      119,   120,   121,   122,   123,   124,    66,    -1,    -1,    -1,
    3818       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3819       80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
    3820       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3821       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3822       -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
    3823      120,   121,   122,   123,   124,     4,     5,     6,     7,     8,
     3939      -1,    -1,    79,    80,    81,    82,    83,    84,    66,    86,
     3940      87,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3941      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3942      -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3943     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
     3944      -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3945     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    38243946       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    38253947      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     
    38293951      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    38303952      69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3831       -1,    -1,    -1,    -1,    -1,    -1,    85,    86,     3,     4,
    3832        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3833       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3834       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3835       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
     3953      -1,    -1,    -1,    -1,    83,    84,     3,     4,     5,     6,
     3954       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3955      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3956      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3957      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38363958      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38373959      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3838       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3839       75,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3960      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     3,
     3961       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3962      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3963      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3964      -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
     3965      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3966      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3967      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3968      74,    75,     4,     5,     6,     7,     8,     9,    10,    11,
    38403969      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    38413970      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     
    38443973      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38453974      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3846       -1,    -1,    74,    75,     4,     5,     6,     7,     8,     9,
    3847       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3848       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3849       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3850       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3851       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3852       -1,    30,    31,    32,    33,    34,    35,    67,    -1,    69,
    3853       39,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3854       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3856       -1,    -1,    -1,    -1,    -1,    74,    75
     3975      -1,    -1,    74,    75
    38573976};
    38583977
     
    38653984      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    38663985      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    3867       76,    85,    86,   111,   113,   119,   120,   139,   142,   154,
    3868      203,   217,   218,   219,   220,   221,   222,   223,   224,   225,
    3869      226,   227,   228,   229,   230,   231,   232,   233,   234,   236,
    3870      237,   238,   239,   240,   241,   242,   244,   245,   246,   247,
    3871      248,   249,   251,   259,   260,   287,   288,   289,   297,   300,
    3872      306,   307,   309,   311,   312,   318,   323,   327,   328,   329,
    3873      330,   331,   332,   333,   334,   354,   371,   372,   373,   374,
    3874       72,   141,   142,   154,   220,   222,   230,   232,   241,   245,
    3875      247,   288,    81,   111,   316,   317,   318,   316,   316,    72,
    3876       74,    75,    76,   140,   141,   277,   278,   298,   299,    74,
    3877       75,   278,   111,   309,    11,   204,   111,   154,   323,   328,
    3878      329,   330,   332,   333,   334,   114,   136,   223,   230,   232,
    3879      327,   331,   370,   371,   374,   375,   137,   109,   133,   281,
    3880      116,   137,   178,    74,    75,   139,   276,   137,   137,   137,
    3881      118,   137,    74,    75,   111,   154,   313,   322,   323,   324,
    3882      325,   326,   327,   331,   335,   336,   337,   338,   339,   345,
    3883        3,    28,    78,   243,     3,     5,    74,   113,   154,   222,
    3884      233,   237,   239,   248,   289,   327,   331,   374,   220,   222,
    3885      232,   241,   245,   247,   288,   327,   331,    33,   238,   238,
    3886      233,   239,   137,   238,   233,   238,   233,    75,   111,   116,
    3887      278,   289,   116,   278,   238,   233,   118,   137,   137,     0,
    3888      136,   111,   178,   316,   316,   136,   113,   230,   232,   372,
    3889      276,   276,   133,   232,   111,   154,   313,   323,   327,   113,
    3890      154,   374,   310,   235,   318,   111,   294,   111,   111,    51,
    3891      111,    37,    38,    40,    66,    72,    76,    79,    80,    81,
    3892       82,    83,    84,    88,    89,   111,   113,   121,   122,   123,
    3893      124,   138,   142,   143,   144,   145,   146,   153,   154,   155,
    3894      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
    3895      166,   167,   169,   172,   230,   280,   296,   370,   375,   232,
    3896      112,   112,   112,   112,   112,   112,   112,   113,   230,   354,
    3897      372,   113,   119,   154,   169,   222,   223,   229,   232,   236,
    3898      237,   241,   244,   245,   247,   266,   267,   271,   272,   273,
    3899      274,   288,   354,   366,   367,   368,   369,   374,   375,   111,
    3900      327,   331,   374,   111,   118,   134,   113,   116,   154,   169,
    3901      282,   282,   117,   136,   118,   134,   111,   118,   134,   118,
    3902      134,   118,   134,   316,   134,   323,   324,   325,   326,   336,
    3903      337,   338,   339,   232,   322,   335,    64,   315,   113,   316,
    3904      353,   354,   316,   316,   178,   136,   111,   316,   353,   316,
    3905      316,   232,   313,   111,   111,   231,   232,   230,   232,   136,
    3906      230,   370,   375,   178,   136,   276,   281,   222,   237,   327,
    3907      331,   178,   136,   298,   232,   241,   134,   232,   232,   296,
    3908      252,   250,   262,   278,   261,   232,   298,   134,   134,   309,
    3909      136,   141,   275,     3,   137,   212,   213,   227,   229,   232,
    3910      136,   315,   111,   315,   169,   323,   232,   111,   136,   276,
    3911      116,    33,    34,    35,   230,   290,   291,   293,   136,   130,
    3912      133,   295,   136,   233,   238,   239,   276,   319,   320,   321,
    3913      111,   143,   111,   153,   111,   153,   156,   111,   153,   111,
    3914      111,   153,   153,   113,   169,   174,   178,   230,   279,   370,
    3915      374,   136,    81,    83,    87,    88,    89,   111,   113,   115,
    3916      116,    99,   100,   101,   102,   103,   104,   105,   106,   107,
    3917      108,   109,   133,   171,   156,   156,   119,   125,   126,   121,
    3918      122,    90,    91,    92,    93,   127,   128,    94,    95,   120,
    3919      129,   130,    96,    97,   131,   111,   154,   349,   350,   351,
    3920      352,   353,   112,   118,   111,   353,   354,   111,   353,   354,
    3921      136,   230,   372,   114,   136,   137,   230,   232,   365,   366,
    3922      374,   375,   137,   111,   113,   154,   323,   340,   341,   342,
    3923      343,   344,   345,   346,   347,   348,   354,   355,   356,   357,
    3924      358,   359,   360,   154,   374,   232,   137,   137,   154,   230,
    3925      232,   367,   276,   230,   354,   367,   276,   136,   136,   136,
    3926      136,    72,   113,   115,   142,   278,   282,   283,   284,   285,
    3927      286,   136,   136,   136,   136,   136,   136,   313,   112,   112,
    3928      112,   112,   112,   112,   112,   322,   335,   111,   281,   114,
    3929      212,   136,   313,   174,   280,   174,   280,   313,   113,   212,
    3930      315,   178,   136,   212,   112,    40,   113,   117,   230,   253,
    3931      254,   255,   370,   116,   118,   376,   133,   263,   116,   232,
    3932      268,   269,   270,   273,   274,   112,   118,   178,   136,   119,
    3933      169,   136,   229,   232,   267,   366,   374,   307,   308,   111,
    3934      154,   340,   112,   118,   133,   377,   278,   290,   111,   116,
    3935      278,   280,   290,   112,   118,   111,   143,   112,   132,   279,
    3936      279,   279,   148,   169,   280,   279,   136,   112,   118,   112,
    3937      111,   154,   353,   361,   362,   363,   364,   112,   118,   169,
    3938      113,   141,   147,   148,   136,   113,   141,   147,   169,   156,
    3939      156,   156,   157,   157,   158,   158,   159,   159,   159,   159,
    3940      160,   160,   161,   162,   163,   164,   165,   132,   174,   136,
    3941      350,   351,   352,   232,   349,   316,   316,   169,   280,   136,
    3942      275,   230,   354,   367,   232,   236,   114,   374,   114,   111,
    3943      136,   323,   341,   342,   343,   346,   356,   357,   358,   114,
    3944      136,   232,   340,   344,   355,   111,   316,   359,   377,   316,
    3945      316,   377,   111,   316,   359,   316,   316,   316,   316,   354,
    3946      230,   365,   375,   276,   114,   118,   114,   118,   377,   230,
    3947      367,   377,   264,   265,   266,   267,   264,   276,   169,   136,
    3948      113,   278,   132,   118,   376,   282,   113,   132,   286,    29,
    3949      214,   215,   276,   264,   141,   313,   141,   315,   111,   353,
    3950      354,   111,   353,   354,   144,   354,   178,   268,   112,   112,
    3951      112,   112,   136,   178,   212,   178,   116,   254,   255,   136,
    3952      111,   132,   154,   256,   258,   322,   323,   335,   361,   118,
    3953      134,   118,   134,   278,   252,   278,   117,   167,   168,   262,
    3954      137,   137,   141,   227,   137,   137,   264,   111,   154,   374,
    3955      137,   117,   232,   291,   169,   292,   137,   136,   136,   111,
    3956      137,   112,   320,   174,   175,   132,   134,   113,   143,   205,
    3957      206,   207,   112,   118,   112,   112,   112,   112,   169,   362,
    3958      363,   364,   232,   361,   316,   316,   116,   156,   169,   170,
    3959      173,   118,   136,   112,   118,   169,   136,   117,   167,   132,
    3960      268,   112,   112,   112,   349,   268,   112,   230,   367,   113,
    3961      119,   154,   169,   169,   232,   346,   268,   112,   112,   112,
    3962      112,   112,   112,   112,     7,   232,   340,   344,   355,   136,
    3963      136,   377,   136,   136,   137,   137,   137,   137,   281,   167,
    3964      168,   169,   314,   136,   282,   284,   117,   136,   216,   278,
    3965       40,    41,    43,    46,    47,    48,    49,    50,    51,    52,
    3966       53,    57,    61,    62,    72,   129,   175,   176,   177,   178,
    3967      179,   180,   182,   183,   195,   197,   198,   203,   217,   312,
    3968       29,   137,   133,   281,   136,   136,   112,   137,   178,   252,
    3969      134,   134,   323,   168,   232,   257,   258,   257,   278,   316,
    3970      117,   263,   376,   112,   118,   114,   114,   137,   232,   118,
    3971      377,   294,   112,   290,   220,   222,   230,   302,   303,   304,
    3972      305,   296,   112,   112,   132,   168,   111,   112,   132,   118,
    3973      141,   112,   112,   112,   361,   283,   118,   137,   173,    79,
    3974       82,    84,   141,   149,   150,   151,   148,   137,   149,   167,
    3975      137,   111,   353,   354,   137,   136,   137,   137,   137,   169,
    3976      112,   137,   111,   353,   354,   111,   359,   111,   359,   354,
    3977      231,     7,   119,   137,   169,   268,   268,   267,   271,   271,
    3978      272,   112,   118,   118,   112,    98,   124,   137,   137,   149,
    3979      282,   169,   118,   134,   217,   221,   232,   236,   111,   111,
    3980      176,   111,   111,    72,   134,    72,   134,    72,   119,   175,
    3981      111,   178,   170,   170,   132,   146,   134,   137,   136,   137,
    3982      216,   112,   169,   268,   268,   316,   112,   117,   256,   117,
    3983      136,   112,   136,   137,   313,   117,   136,   137,   137,   112,
    3984      116,   205,   114,   168,   134,   205,   207,   112,   111,   353,
    3985      354,   376,   170,   114,   137,   152,   113,   150,   152,   152,
    3986      118,   137,    87,   115,   114,   137,   112,   136,   112,   114,
    3987      114,   114,   137,   112,   136,   136,   136,   169,   169,   137,
    3988      114,   137,   137,   137,   137,   136,   136,   168,   168,   114,
    3989      114,   137,   278,   232,   174,   174,    47,   174,   136,   134,
    3990      134,   134,   174,   134,   174,    58,    59,    60,   199,   200,
    3991      201,   134,    63,   134,   316,   116,   180,   117,   134,   137,
    3992      137,    98,   273,   274,   112,   303,   118,   134,   118,   134,
    3993      117,   301,   132,   143,   112,   112,   132,   136,   117,   114,
    3994       83,   136,   150,   114,   113,   150,   113,   150,   114,   268,
    3995      114,   268,   268,   268,   137,   137,   114,   114,   112,   112,
    3996      114,   118,    98,   267,    98,   137,   114,   112,   112,   111,
    3997      112,   175,   196,   217,   134,   112,   111,   111,   178,   201,
    3998       58,    59,   169,   176,   147,   112,   112,   116,   136,   136,
    3999      302,   143,   208,   111,   134,   208,   268,   149,   136,   136,
    4000      137,   137,   137,   137,   114,   114,   136,   137,   114,   176,
    4001       44,    45,   116,   186,   187,   188,   174,   176,   137,   112,
    4002      175,   116,   188,    98,   136,    98,   136,   111,   111,   134,
    4003      117,   136,   276,   313,   117,   118,   132,   168,   112,   137,
    4004      137,   149,   149,   112,   112,   112,   112,   271,    42,   168,
    4005      184,   185,   314,   132,   136,   176,   186,   112,   134,   176,
    4006      134,   136,   112,   136,   112,   136,    98,   136,    98,   136,
    4007      134,   302,   143,   141,   209,   112,   134,   112,   114,   137,
    4008      137,   176,    98,   118,   132,   137,   210,   211,   217,   134,
    4009      175,   175,   210,   178,   202,   230,   370,   178,   202,   112,
    4010      136,   112,   136,   117,   112,   118,   114,   114,   168,   184,
    4011      187,   189,   190,   136,   134,   187,   191,   192,   137,   111,
    4012      154,   313,   361,   141,   137,   178,   202,   178,   202,   111,
    4013      134,   141,   176,   181,   117,   187,   217,   175,    56,   181,
    4014      194,   117,   187,   112,   232,   112,   137,   137,   296,   176,
    4015      181,   134,   193,   194,   181,   194,   178,   178,   112,   112,
    4016      112,   193,   137,   137,   178,   178,   137,   137
     3986      76,    83,    84,   109,   111,   117,   118,   137,   140,   150,
     3987     199,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     3988     222,   223,   224,   225,   226,   227,   228,   229,   230,   232,
     3989     233,   234,   235,   236,   237,   238,   240,   241,   242,   243,
     3990     244,   245,   247,   255,   256,   283,   284,   285,   293,   296,
     3991     302,   303,   305,   307,   308,   314,   319,   323,   324,   325,
     3992     326,   327,   328,   329,   330,   350,   367,   368,   369,   370,
     3993      72,   139,   140,   150,   216,   218,   226,   228,   237,   241,
     3994     243,   284,    82,   109,   312,   313,   314,   312,   312,    72,
     3995      74,    75,    76,   138,   139,   273,   274,   294,   295,    74,
     3996      75,   274,   109,   305,    11,   200,   109,   150,   319,   324,
     3997     325,   326,   328,   329,   330,   112,   134,   111,   219,   226,
     3998     228,   323,   327,   366,   367,   370,   371,   135,   107,   131,
     3999     277,   114,   135,   174,    74,    75,   137,   272,   135,   135,
     4000     135,   116,   135,    74,    75,   109,   150,   309,   318,   319,
     4001     320,   321,   322,   323,   327,   331,   332,   333,   334,   335,
     4002     341,     3,    28,    78,   239,     3,     5,    74,   111,   150,
     4003     218,   229,   233,   235,   244,   285,   323,   327,   370,   216,
     4004     218,   228,   237,   241,   243,   284,   323,   327,    33,   234,
     4005     234,   229,   235,   135,   234,   229,   234,   229,    75,   109,
     4006     114,   274,   285,   114,   274,   234,   229,   116,   135,   135,
     4007       0,   134,   109,   174,   312,   312,   134,   111,   226,   228,
     4008     368,   272,   272,   131,   228,   109,   150,   309,   319,   323,
     4009     111,   150,   370,   306,   231,   314,   109,   290,   109,   109,
     4010      51,   109,    37,    38,    40,    66,    72,    76,    79,    80,
     4011      81,    82,    86,    87,   109,   111,   119,   120,   121,   122,
     4012     136,   140,   141,   142,   143,   144,   149,   150,   151,   152,
     4013     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
     4014     163,   165,   168,   226,   276,   292,   366,   371,   228,   110,
     4015     110,   110,   110,   110,   110,   110,    74,    75,   111,   226,
     4016     272,   350,   368,   111,   117,   150,   165,   218,   219,   225,
     4017     228,   232,   233,   237,   240,   241,   243,   262,   263,   267,
     4018     268,   269,   270,   284,   350,   362,   363,   364,   365,   370,
     4019     371,   112,   109,   323,   327,   370,   109,   116,   132,   111,
     4020     114,   150,   165,   278,   278,   115,   134,   116,   132,   109,
     4021     116,   132,   116,   132,   116,   132,   312,   132,   319,   320,
     4022     321,   322,   332,   333,   334,   335,   228,   318,   331,    64,
     4023     311,   111,   312,   349,   350,   312,   312,   174,   134,   109,
     4024     312,   349,   312,   312,   228,   309,   109,   109,   227,   228,
     4025     226,   228,   112,   134,   226,   366,   371,   174,   134,   272,
     4026     277,   218,   233,   323,   327,   174,   134,   294,   228,   237,
     4027     132,   228,   228,   292,   248,   246,   258,   274,   257,   228,
     4028     294,   132,   132,   305,   134,   139,   271,     3,   135,   208,
     4029     209,   223,   225,   228,   134,   311,   109,   311,   165,   319,
     4030     228,   109,   134,   272,   114,    33,    34,    35,   226,   286,
     4031     287,   289,   134,   128,   131,   291,   134,   229,   234,   235,
     4032     272,   315,   316,   317,   109,   141,   109,   149,   109,   149,
     4033     152,   109,   149,   109,   109,   149,   149,   111,   165,   170,
     4034     174,   226,   275,   366,   370,   112,   134,    82,    85,    86,
     4035      87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
     4036     102,   103,   104,   105,   106,   107,   131,   167,   152,   152,
     4037     117,   123,   124,   119,   120,    88,    89,    90,    91,   125,
     4038     126,    92,    93,   118,   127,   128,    94,    95,   129,   131,
     4039     373,   109,   150,   345,   346,   347,   348,   349,   110,   116,
     4040     109,   349,   350,   109,   349,   350,   134,   109,   226,   368,
     4041     112,   134,   135,   111,   226,   228,   361,   362,   370,   371,
     4042     135,   109,   111,   150,   319,   336,   337,   338,   339,   340,
     4043     341,   342,   343,   344,   350,   351,   352,   353,   354,   355,
     4044     356,   150,   370,   228,   135,   135,   150,   226,   228,   363,
     4045     272,   226,   350,   363,   272,   109,   134,   134,   134,   112,
     4046     134,    72,   111,   113,   140,   274,   278,   279,   280,   281,
     4047     282,   134,   134,   134,   134,   134,   134,   309,   110,   110,
     4048     110,   110,   110,   110,   110,   318,   331,   109,   277,   112,
     4049     208,   134,   309,   170,   276,   170,   276,   309,   111,   208,
     4050     311,   174,   134,   208,   110,    40,   111,   115,   226,   249,
     4051     250,   251,   366,   114,   116,   372,   131,   259,   114,   228,
     4052     264,   265,   266,   269,   270,   110,   116,   174,   134,   117,
     4053     165,   134,   225,   228,   263,   362,   370,   303,   304,   109,
     4054     150,   336,   110,   116,   373,   274,   286,   109,   114,   274,
     4055     276,   286,   110,   116,   109,   141,   110,   130,   275,   275,
     4056     275,   146,   165,   276,   275,   112,   134,   110,   116,   110,
     4057     109,   150,   349,   357,   358,   359,   360,   110,   116,   165,
     4058     111,   139,   145,   146,   134,   111,   139,   145,   165,   152,
     4059     152,   152,   153,   153,   154,   154,   155,   155,   155,   155,
     4060     156,   156,   157,   158,   159,   160,   161,   130,   170,   165,
     4061     134,   346,   347,   348,   228,   345,   312,   312,   165,   276,
     4062     134,   271,   134,   226,   350,   363,   228,   232,   112,   112,
     4063     134,   370,   112,   109,   134,   319,   337,   338,   339,   342,
     4064     352,   353,   354,   112,   134,   228,   336,   340,   351,   109,
     4065     312,   355,   373,   312,   312,   373,   109,   312,   355,   312,
     4066     312,   312,   312,   350,   226,   361,   371,   272,   112,   116,
     4067     112,   116,   373,   226,   363,   373,   260,   261,   262,   263,
     4068     260,   260,   272,   165,   134,   111,   274,   130,   116,   372,
     4069     278,   111,   130,   282,    29,   210,   211,   272,   260,   139,
     4070     309,   139,   311,   109,   349,   350,   109,   349,   350,   142,
     4071     350,   174,   264,   110,   110,   110,   110,   112,   174,   208,
     4072     174,   114,   250,   251,   112,   134,   109,   130,   150,   252,
     4073     254,   318,   319,   331,   357,   116,   132,   116,   132,   274,
     4074     248,   274,   115,   163,   164,   258,   135,   135,   139,   223,
     4075     135,   135,   260,   109,   150,   370,   135,   115,   228,   287,
     4076     288,   135,   134,   134,   109,   135,   110,   316,   170,   171,
     4077     130,   132,   111,   141,   201,   202,   203,   110,   116,   110,
     4078     110,   110,   110,   111,   165,   358,   359,   360,   228,   357,
     4079     312,   312,   114,   152,   168,   165,   166,   169,   116,   135,
     4080     134,   110,   116,   165,   134,   115,   163,   130,   264,   110,
     4081     110,   110,   345,   264,   110,   260,   226,   363,   111,   117,
     4082     150,   165,   165,   228,   342,   264,   110,   110,   110,   110,
     4083     110,   110,   110,     7,   228,   336,   340,   351,   134,   134,
     4084     373,   134,   134,   110,   135,   135,   135,   135,   277,   135,
     4085     163,   164,   165,   310,   134,   278,   280,   115,   134,   212,
     4086     274,    40,    41,    43,    46,    47,    48,    49,    50,    51,
     4087      52,    53,    57,    61,    62,    72,   111,   127,   171,   172,
     4088     173,   174,   175,   176,   178,   179,   191,   193,   194,   199,
     4089     213,   308,    29,   135,   131,   277,   134,   134,   110,   135,
     4090     174,   248,   132,   132,   319,   164,   228,   253,   254,   253,
     4091     274,   312,   115,   259,   372,   110,   116,   112,   112,   135,
     4092     228,   116,   373,   290,   110,   286,   216,   218,   226,   298,
     4093     299,   300,   301,   292,   110,   110,   130,   164,   109,   110,
     4094     130,   116,   139,   112,   110,   110,   110,   357,   279,   116,
     4095     135,   169,   112,   139,   147,   148,   146,   135,   147,   163,
     4096     168,   135,   109,   349,   350,   135,   135,   134,   135,   135,
     4097     135,   165,   110,   135,   109,   349,   350,   109,   355,   109,
     4098     355,   350,   227,     7,   117,   135,   165,   264,   264,   263,
     4099     267,   267,   268,   116,   116,   110,   110,   112,    96,   122,
     4100     135,   135,   147,   278,   165,   116,   132,   213,   217,   228,
     4101     232,   109,   109,   172,   109,   109,    72,   132,    72,   132,
     4102      72,   117,   171,   109,   174,   166,   166,   130,   112,   144,
     4103     132,   135,   134,   135,   212,   110,   165,   264,   264,   312,
     4104     110,   115,   252,   115,   134,   110,   134,   135,   309,   115,
     4105     134,   135,   135,   110,   114,   201,   112,   164,   132,   201,
     4106     203,   110,   109,   349,   350,   372,   166,   112,   135,    85,
     4107     113,   116,   135,   112,   135,   110,   134,   110,   110,   112,
     4108     112,   112,   135,   110,   134,   134,   134,   165,   165,   135,
     4109     112,   135,   135,   135,   135,   134,   134,   164,   164,   112,
     4110     112,   135,   135,   274,   228,   170,   170,    47,   170,   134,
     4111     132,   132,   132,   170,   132,   170,    58,    59,    60,   195,
     4112     196,   197,   132,    63,   132,   312,   114,   176,   115,   132,
     4113     135,   135,    96,   269,   270,   110,   299,   116,   132,   116,
     4114     132,   115,   297,   130,   141,   110,   110,   130,   134,   115,
     4115     112,   111,   148,   111,   148,   148,   112,   112,   264,   112,
     4116     264,   264,   264,   135,   135,   112,   112,   110,   110,   112,
     4117     116,    96,   263,    96,   135,   112,   112,   110,   110,   109,
     4118     110,   171,   192,   213,   132,   110,   109,   109,   174,   197,
     4119      58,    59,   165,   172,   145,   110,   110,   114,   134,   134,
     4120     298,   141,   204,   109,   132,   204,   264,   134,   134,   135,
     4121     135,   135,   135,   112,   112,   134,   135,   112,   172,    44,
     4122      45,   114,   182,   183,   184,   170,   172,   135,   110,   171,
     4123     114,   184,    96,   134,    96,   134,   109,   109,   132,   115,
     4124     134,   272,   309,   115,   116,   130,   164,   110,   135,   147,
     4125     147,   110,   110,   110,   110,   267,    42,   164,   180,   181,
     4126     310,   130,   134,   172,   182,   110,   132,   172,   132,   134,
     4127     110,   134,   110,   134,    96,   134,    96,   134,   132,   298,
     4128     141,   139,   205,   110,   132,   110,   135,   135,   172,    96,
     4129     116,   130,   135,   206,   207,   213,   132,   171,   171,   206,
     4130     174,   198,   226,   366,   174,   198,   110,   134,   110,   134,
     4131     115,   110,   116,   112,   112,   164,   180,   183,   185,   186,
     4132     134,   132,   183,   187,   188,   135,   109,   150,   309,   357,
     4133     139,   135,   174,   198,   174,   198,   109,   132,   139,   172,
     4134     177,   115,   183,   213,   171,    56,   177,   190,   115,   183,
     4135     110,   228,   110,   135,   135,   292,   172,   177,   132,   189,
     4136     190,   177,   190,   174,   174,   110,   110,   110,   189,   135,
     4137     135,   174,   174,   135,   135
    40174138};
    40184139
     
    48514972
    48524973/* Line 1806 of yacc.c  */
    4853 #line 306 "parser.yy"
     4974#line 301 "parser.yy"
    48544975    { typedefTable.enterScope(); }
    48554976    break;
     
    48584979
    48594980/* Line 1806 of yacc.c  */
    4860 #line 310 "parser.yy"
     4981#line 305 "parser.yy"
    48614982    { typedefTable.leaveScope(); }
    48624983    break;
     
    48654986
    48664987/* Line 1806 of yacc.c  */
    4867 #line 317 "parser.yy"
     4988#line 312 "parser.yy"
    48684989    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    48694990    break;
     
    48724993
    48734994/* Line 1806 of yacc.c  */
    4874 #line 318 "parser.yy"
     4995#line 313 "parser.yy"
    48754996    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    48764997    break;
     
    48795000
    48805001/* Line 1806 of yacc.c  */
    4881 #line 319 "parser.yy"
    4882     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    4883     break;
    4884 
    4885   case 7:
    4886 
    4887 /* Line 1806 of yacc.c  */
    4888 #line 320 "parser.yy"
    4889     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    4890     break;
    4891 
    4892   case 8:
    4893 
    4894 /* Line 1806 of yacc.c  */
    4895 #line 321 "parser.yy"
     5002#line 314 "parser.yy"
    48965003    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    48975004    break;
    48985005
     5006  case 16:
     5007
     5008/* Line 1806 of yacc.c  */
     5009#line 339 "parser.yy"
     5010    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
     5011    break;
     5012
     5013  case 17:
     5014
     5015/* Line 1806 of yacc.c  */
     5016#line 343 "parser.yy"
     5017    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
     5018    break;
     5019
    48995020  case 18:
    49005021
    49015022/* Line 1806 of yacc.c  */
    4902 #line 346 "parser.yy"
    4903     { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    4904     break;
    4905 
    4906   case 19:
    4907 
    4908 /* Line 1806 of yacc.c  */
    4909 #line 350 "parser.yy"
    4910     { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    4911     break;
    4912 
    4913   case 20:
    4914 
    4915 /* Line 1806 of yacc.c  */
    4916 #line 352 "parser.yy"
     5023#line 345 "parser.yy"
    49175024    {
    49185025                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    49225029    break;
    49235030
     5031  case 19:
     5032
     5033/* Line 1806 of yacc.c  */
     5034#line 356 "parser.yy"
     5035    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5036    break;
     5037
     5038  case 20:
     5039
     5040/* Line 1806 of yacc.c  */
     5041#line 358 "parser.yy"
     5042    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5043    break;
     5044
    49245045  case 21:
    49255046
    49265047/* Line 1806 of yacc.c  */
    4927 #line 363 "parser.yy"
    4928     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5048#line 360 "parser.yy"
     5049    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    49295050    break;
    49305051
     
    49325053
    49335054/* Line 1806 of yacc.c  */
    4934 #line 365 "parser.yy"
    4935     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5055#line 362 "parser.yy"
     5056    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    49365057    break;
    49375058
     
    49395060
    49405061/* Line 1806 of yacc.c  */
    4941 #line 368 "parser.yy"
    4942     { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5062#line 372 "parser.yy"
     5063    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    49435064    break;
    49445065
     
    49465067
    49475068/* Line 1806 of yacc.c  */
    4948 #line 370 "parser.yy"
    4949     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    4950     break;
    4951 
    4952   case 27:
    4953 
    4954 /* Line 1806 of yacc.c  */
    4955 #line 380 "parser.yy"
    4956     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
     5069#line 374 "parser.yy"
     5070    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
     5071    break;
     5072
     5073  case 26:
     5074
     5075/* Line 1806 of yacc.c  */
     5076#line 378 "parser.yy"
     5077    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    49575078    break;
    49585079
     
    49605081
    49615082/* Line 1806 of yacc.c  */
    4962 #line 382 "parser.yy"
    4963     { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    4964     break;
    4965 
    4966   case 29:
     5083#line 381 "parser.yy"
     5084    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5085    break;
     5086
     5087  case 30:
    49675088
    49685089/* Line 1806 of yacc.c  */
    49695090#line 384 "parser.yy"
    4970     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5091    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
     5092    break;
     5093
     5094  case 31:
     5095
     5096/* Line 1806 of yacc.c  */
     5097#line 386 "parser.yy"
     5098    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    49715099    break;
    49725100
     
    49755103/* Line 1806 of yacc.c  */
    49765104#line 388 "parser.yy"
    4977     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    4978     break;
    4979 
    4980   case 34:
    4981 
    4982 /* Line 1806 of yacc.c  */
    4983 #line 391 "parser.yy"
    4984     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    4985     break;
    4986 
    4987   case 35:
    4988 
    4989 /* Line 1806 of yacc.c  */
    4990 #line 393 "parser.yy"
    4991     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    4992     break;
    4993 
    4994   case 36:
    4995 
    4996 /* Line 1806 of yacc.c  */
    4997 #line 395 "parser.yy"
    49985105    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    49995106    break;
    50005107
    5001   case 37:
    5002 
    5003 /* Line 1806 of yacc.c  */
    5004 #line 397 "parser.yy"
     5108  case 33:
     5109
     5110/* Line 1806 of yacc.c  */
     5111#line 390 "parser.yy"
    50055112    {
    50065113                        Token fn;
     
    50105117    break;
    50115118
     5119  case 35:
     5120
     5121/* Line 1806 of yacc.c  */
     5122#line 400 "parser.yy"
     5123    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5124    break;
     5125
     5126  case 36:
     5127
     5128/* Line 1806 of yacc.c  */
     5129#line 405 "parser.yy"
     5130    { (yyval.en) = 0; }
     5131    break;
     5132
    50125133  case 39:
    50135134
    50145135/* Line 1806 of yacc.c  */
    5015 #line 407 "parser.yy"
    5016     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5136#line 411 "parser.yy"
     5137    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    50175138    break;
    50185139
     
    50205141
    50215142/* Line 1806 of yacc.c  */
    5022 #line 412 "parser.yy"
    5023     { (yyval.en) = 0; }
     5143#line 416 "parser.yy"
     5144    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5145    break;
     5146
     5147  case 41:
     5148
     5149/* Line 1806 of yacc.c  */
     5150#line 420 "parser.yy"
     5151    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     5152    break;
     5153
     5154  case 42:
     5155
     5156/* Line 1806 of yacc.c  */
     5157#line 422 "parser.yy"
     5158    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    50245159    break;
    50255160
     
    50275162
    50285163/* Line 1806 of yacc.c  */
    5029 #line 418 "parser.yy"
    5030     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5164#line 424 "parser.yy"
     5165    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    50315166    break;
    50325167
     
    50345169
    50355170/* Line 1806 of yacc.c  */
    5036 #line 423 "parser.yy"
    5037     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    5038     break;
    5039 
    5040   case 45:
    5041 
    5042 /* Line 1806 of yacc.c  */
    5043 #line 425 "parser.yy"
    5044     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(2) - (2)].en), build_varref( (yyvsp[(1) - (2)].tok) ) ) ); }
     5171#line 426 "parser.yy"
     5172    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    50455173    break;
    50465174
     
    50485176
    50495177/* Line 1806 of yacc.c  */
    5050 #line 427 "parser.yy"
    5051     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(4) - (6)].en), build_varref( (yyvsp[(1) - (6)].tok) ) ) ); }
     5178#line 434 "parser.yy"
     5179    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    50525180    break;
    50535181
     
    50555183
    50565184/* Line 1806 of yacc.c  */
    5057 #line 429 "parser.yy"
    5058     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     5185#line 436 "parser.yy"
     5186    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    50595187    break;
    50605188
     
    50625190
    50635191/* Line 1806 of yacc.c  */
    5064 #line 431 "parser.yy"
    5065     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     5192#line 438 "parser.yy"
     5193    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    50665194    break;
    50675195
     
    50695197
    50705198/* Line 1806 of yacc.c  */
    5071 #line 433 "parser.yy"
    5072     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    5073     break;
    5074 
    5075   case 50:
    5076 
    5077 /* Line 1806 of yacc.c  */
    5078 #line 435 "parser.yy"
    5079     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    5080     break;
    5081 
    5082   case 51:
    5083 
    5084 /* Line 1806 of yacc.c  */
    5085 #line 440 "parser.yy"
    5086     { (yyval.tok) = (yyvsp[(1) - (2)].tok); }
    5087     break;
    5088 
    5089   case 52:
    5090 
    5091 /* Line 1806 of yacc.c  */
    5092 #line 442 "parser.yy"
    5093     { (yyval.tok) = (yyvsp[(1) - (2)].tok); }
    5094     break;
    5095 
    5096   case 53:
    5097 
    5098 /* Line 1806 of yacc.c  */
    5099 #line 444 "parser.yy"
    5100     { (yyval.tok) = (yyvsp[(1) - (2)].tok); }
    5101     break;
    5102 
    5103   case 57:
    5104 
    5105 /* Line 1806 of yacc.c  */
    5106 #line 457 "parser.yy"
    5107     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5108     break;
    5109 
    5110   case 58:
    5111 
    5112 /* Line 1806 of yacc.c  */
    5113 #line 459 "parser.yy"
    5114     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    5115     break;
    5116 
    5117   case 59:
    5118 
    5119 /* Line 1806 of yacc.c  */
    5120 #line 461 "parser.yy"
    5121     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    5122     break;
    5123 
    5124   case 60:
    5125 
    5126 /* Line 1806 of yacc.c  */
    5127 #line 466 "parser.yy"
     5199#line 443 "parser.yy"
    51285200    {
    51295201                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    51405212    break;
    51415213
     5214  case 50:
     5215
     5216/* Line 1806 of yacc.c  */
     5217#line 456 "parser.yy"
     5218    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5219    break;
     5220
     5221  case 51:
     5222
     5223/* Line 1806 of yacc.c  */
     5224#line 458 "parser.yy"
     5225    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5226    break;
     5227
     5228  case 52:
     5229
     5230/* Line 1806 of yacc.c  */
     5231#line 460 "parser.yy"
     5232    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5233    break;
     5234
     5235  case 53:
     5236
     5237/* Line 1806 of yacc.c  */
     5238#line 462 "parser.yy"
     5239    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5240    break;
     5241
     5242  case 54:
     5243
     5244/* Line 1806 of yacc.c  */
     5245#line 464 "parser.yy"
     5246    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5247    break;
     5248
     5249  case 55:
     5250
     5251/* Line 1806 of yacc.c  */
     5252#line 466 "parser.yy"
     5253    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5254    break;
     5255
     5256  case 56:
     5257
     5258/* Line 1806 of yacc.c  */
     5259#line 468 "parser.yy"
     5260    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5261    break;
     5262
     5263  case 57:
     5264
     5265/* Line 1806 of yacc.c  */
     5266#line 470 "parser.yy"
     5267    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     5268    break;
     5269
     5270  case 58:
     5271
     5272/* Line 1806 of yacc.c  */
     5273#line 472 "parser.yy"
     5274    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     5275    break;
     5276
     5277  case 59:
     5278
     5279/* Line 1806 of yacc.c  */
     5280#line 474 "parser.yy"
     5281    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     5282    break;
     5283
     5284  case 60:
     5285
     5286/* Line 1806 of yacc.c  */
     5287#line 476 "parser.yy"
     5288    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     5289    break;
     5290
    51425291  case 61:
    51435292
    51445293/* Line 1806 of yacc.c  */
    5145 #line 479 "parser.yy"
    5146     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5294#line 482 "parser.yy"
     5295    { (yyval.op) = OperKinds::PointTo; }
    51475296    break;
    51485297
     
    51505299
    51515300/* Line 1806 of yacc.c  */
    5152 #line 481 "parser.yy"
    5153     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5301#line 483 "parser.yy"
     5302    { (yyval.op) = OperKinds::AddressOf; }
    51545303    break;
    51555304
     
    51575306
    51585307/* Line 1806 of yacc.c  */
    5159 #line 483 "parser.yy"
    5160     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5308#line 489 "parser.yy"
     5309    { (yyval.op) = OperKinds::UnPlus; }
    51615310    break;
    51625311
     
    51645313
    51655314/* Line 1806 of yacc.c  */
    5166 #line 485 "parser.yy"
    5167     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5315#line 490 "parser.yy"
     5316    { (yyval.op) = OperKinds::UnMinus; }
    51685317    break;
    51695318
     
    51715320
    51725321/* Line 1806 of yacc.c  */
    5173 #line 487 "parser.yy"
    5174     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5322#line 491 "parser.yy"
     5323    { (yyval.op) = OperKinds::Neg; }
    51755324    break;
    51765325
     
    51785327
    51795328/* Line 1806 of yacc.c  */
    5180 #line 489 "parser.yy"
    5181     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    5182     break;
    5183 
    5184   case 67:
    5185 
    5186 /* Line 1806 of yacc.c  */
    5187 #line 491 "parser.yy"
    5188     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5329#line 492 "parser.yy"
     5330    { (yyval.op) = OperKinds::BitNeg; }
    51895331    break;
    51905332
     
    51925334
    51935335/* Line 1806 of yacc.c  */
    5194 #line 493 "parser.yy"
    5195     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     5336#line 498 "parser.yy"
     5337    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    51965338    break;
    51975339
     
    51995341
    52005342/* Line 1806 of yacc.c  */
    5201 #line 495 "parser.yy"
    5202     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    5203     break;
    5204 
    5205   case 70:
    5206 
    5207 /* Line 1806 of yacc.c  */
    5208 #line 497 "parser.yy"
    5209     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     5343#line 500 "parser.yy"
     5344    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    52105345    break;
    52115346
     
    52135348
    52145349/* Line 1806 of yacc.c  */
    5215 #line 499 "parser.yy"
    5216     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     5350#line 506 "parser.yy"
     5351    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52175352    break;
    52185353
     
    52205355
    52215356/* Line 1806 of yacc.c  */
    5222 #line 505 "parser.yy"
    5223     { (yyval.op) = OperKinds::PointTo; }
     5357#line 508 "parser.yy"
     5358    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52245359    break;
    52255360
     
    52275362
    52285363/* Line 1806 of yacc.c  */
    5229 #line 506 "parser.yy"
    5230     { (yyval.op) = OperKinds::AddressOf; }
    5231     break;
    5232 
    5233   case 74:
    5234 
    5235 /* Line 1806 of yacc.c  */
    5236 #line 512 "parser.yy"
    5237     { (yyval.op) = OperKinds::UnPlus; }
     5364#line 510 "parser.yy"
     5365    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52385366    break;
    52395367
     
    52415369
    52425370/* Line 1806 of yacc.c  */
    5243 #line 513 "parser.yy"
    5244     { (yyval.op) = OperKinds::UnMinus; }
     5371#line 516 "parser.yy"
     5372    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52455373    break;
    52465374
     
    52485376
    52495377/* Line 1806 of yacc.c  */
    5250 #line 514 "parser.yy"
    5251     { (yyval.op) = OperKinds::Neg; }
    5252     break;
    5253 
    5254   case 77:
    5255 
    5256 /* Line 1806 of yacc.c  */
    5257 #line 515 "parser.yy"
    5258     { (yyval.op) = OperKinds::BitNeg; }
     5378#line 518 "parser.yy"
     5379    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5380    break;
     5381
     5382  case 78:
     5383
     5384/* Line 1806 of yacc.c  */
     5385#line 524 "parser.yy"
     5386    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52595387    break;
    52605388
     
    52625390
    52635391/* Line 1806 of yacc.c  */
    5264 #line 521 "parser.yy"
    5265     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     5392#line 526 "parser.yy"
     5393    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52665394    break;
    52675395
     
    52695397
    52705398/* Line 1806 of yacc.c  */
    5271 #line 529 "parser.yy"
    5272     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5399#line 532 "parser.yy"
     5400    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52735401    break;
    52745402
     
    52765404
    52775405/* Line 1806 of yacc.c  */
    5278 #line 531 "parser.yy"
    5279     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5406#line 534 "parser.yy"
     5407    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52805408    break;
    52815409
     
    52835411
    52845412/* Line 1806 of yacc.c  */
    5285 #line 533 "parser.yy"
    5286     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5287     break;
    5288 
    5289   case 85:
    5290 
    5291 /* Line 1806 of yacc.c  */
    5292 #line 539 "parser.yy"
    5293     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5413#line 536 "parser.yy"
     5414    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5415    break;
     5416
     5417  case 84:
     5418
     5419/* Line 1806 of yacc.c  */
     5420#line 538 "parser.yy"
     5421    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52945422    break;
    52955423
     
    52975425
    52985426/* Line 1806 of yacc.c  */
    5299 #line 541 "parser.yy"
    5300     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5301     break;
    5302 
    5303   case 88:
    5304 
    5305 /* Line 1806 of yacc.c  */
    5306 #line 547 "parser.yy"
    5307     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5427#line 544 "parser.yy"
     5428    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5429    break;
     5430
     5431  case 87:
     5432
     5433/* Line 1806 of yacc.c  */
     5434#line 546 "parser.yy"
     5435    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53085436    break;
    53095437
     
    53115439
    53125440/* Line 1806 of yacc.c  */
    5313 #line 549 "parser.yy"
    5314     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5441#line 552 "parser.yy"
     5442    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53155443    break;
    53165444
     
    53185446
    53195447/* Line 1806 of yacc.c  */
    5320 #line 555 "parser.yy"
    5321     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5322     break;
    5323 
    5324   case 92:
    5325 
    5326 /* Line 1806 of yacc.c  */
    5327 #line 557 "parser.yy"
    5328     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5448#line 558 "parser.yy"
     5449    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53295450    break;
    53305451
     
    53325453
    53335454/* Line 1806 of yacc.c  */
    5334 #line 559 "parser.yy"
    5335     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5336     break;
    5337 
    5338   case 94:
    5339 
    5340 /* Line 1806 of yacc.c  */
    5341 #line 561 "parser.yy"
    5342     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5343     break;
    5344 
    5345   case 96:
    5346 
    5347 /* Line 1806 of yacc.c  */
    5348 #line 567 "parser.yy"
    5349     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5455#line 564 "parser.yy"
     5456    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5457    break;
     5458
     5459  case 95:
     5460
     5461/* Line 1806 of yacc.c  */
     5462#line 570 "parser.yy"
     5463    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    53505464    break;
    53515465
     
    53535467
    53545468/* Line 1806 of yacc.c  */
    5355 #line 569 "parser.yy"
    5356     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5469#line 576 "parser.yy"
     5470    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    53575471    break;
    53585472
     
    53605474
    53615475/* Line 1806 of yacc.c  */
    5362 #line 575 "parser.yy"
    5363     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5476#line 582 "parser.yy"
     5477    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     5478    break;
     5479
     5480  case 100:
     5481
     5482/* Line 1806 of yacc.c  */
     5483#line 585 "parser.yy"
     5484    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    53645485    break;
    53655486
     
    53675488
    53685489/* Line 1806 of yacc.c  */
    5369 #line 581 "parser.yy"
    5370     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5371     break;
    5372 
    5373   case 103:
    5374 
    5375 /* Line 1806 of yacc.c  */
    53765490#line 587 "parser.yy"
    5377     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5491    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     5492    break;
     5493
     5494  case 104:
     5495
     5496/* Line 1806 of yacc.c  */
     5497#line 598 "parser.yy"
     5498    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53785499    break;
    53795500
     
    53815502
    53825503/* Line 1806 of yacc.c  */
    5383 #line 593 "parser.yy"
    5384     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    5385     break;
    5386 
    5387   case 107:
    5388 
    5389 /* Line 1806 of yacc.c  */
    5390 #line 599 "parser.yy"
    5391     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     5504#line 600 "parser.yy"
     5505    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
     5506    break;
     5507
     5508  case 106:
     5509
     5510/* Line 1806 of yacc.c  */
     5511#line 605 "parser.yy"
     5512    { (yyval.en) = nullptr; }
     5513    break;
     5514
     5515  case 108:
     5516
     5517/* Line 1806 of yacc.c  */
     5518#line 610 "parser.yy"
     5519    { (yyval.op) = OperKinds::Assign; }
    53925520    break;
    53935521
     
    53955523
    53965524/* Line 1806 of yacc.c  */
    5397 #line 605 "parser.yy"
    5398     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     5525#line 611 "parser.yy"
     5526    { (yyval.op) = OperKinds::AtAssn; }
    53995527    break;
    54005528
     
    54025530
    54035531/* Line 1806 of yacc.c  */
    5404 #line 608 "parser.yy"
    5405     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5532#line 612 "parser.yy"
     5533    { (yyval.op) = OperKinds::MulAssn; }
     5534    break;
     5535
     5536  case 111:
     5537
     5538/* Line 1806 of yacc.c  */
     5539#line 613 "parser.yy"
     5540    { (yyval.op) = OperKinds::DivAssn; }
     5541    break;
     5542
     5543  case 112:
     5544
     5545/* Line 1806 of yacc.c  */
     5546#line 614 "parser.yy"
     5547    { (yyval.op) = OperKinds::ModAssn; }
    54065548    break;
    54075549
     
    54095551
    54105552/* Line 1806 of yacc.c  */
     5553#line 615 "parser.yy"
     5554    { (yyval.op) = OperKinds::PlusAssn; }
     5555    break;
     5556
     5557  case 114:
     5558
     5559/* Line 1806 of yacc.c  */
     5560#line 616 "parser.yy"
     5561    { (yyval.op) = OperKinds::MinusAssn; }
     5562    break;
     5563
     5564  case 115:
     5565
     5566/* Line 1806 of yacc.c  */
     5567#line 617 "parser.yy"
     5568    { (yyval.op) = OperKinds::LSAssn; }
     5569    break;
     5570
     5571  case 116:
     5572
     5573/* Line 1806 of yacc.c  */
     5574#line 618 "parser.yy"
     5575    { (yyval.op) = OperKinds::RSAssn; }
     5576    break;
     5577
     5578  case 117:
     5579
     5580/* Line 1806 of yacc.c  */
     5581#line 619 "parser.yy"
     5582    { (yyval.op) = OperKinds::AndAssn; }
     5583    break;
     5584
     5585  case 118:
     5586
     5587/* Line 1806 of yacc.c  */
     5588#line 620 "parser.yy"
     5589    { (yyval.op) = OperKinds::ERAssn; }
     5590    break;
     5591
     5592  case 119:
     5593
     5594/* Line 1806 of yacc.c  */
    54115595#line 621 "parser.yy"
    5412     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5413     break;
    5414 
    5415   case 114:
     5596    { (yyval.op) = OperKinds::OrAssn; }
     5597    break;
     5598
     5599  case 120:
    54165600
    54175601/* Line 1806 of yacc.c  */
    54185602#line 628 "parser.yy"
    5419     { (yyval.en) = nullptr; }
    5420     break;
    5421 
    5422   case 116:
    5423 
    5424 /* Line 1806 of yacc.c  */
    5425 #line 633 "parser.yy"
    5426     { (yyval.op) = OperKinds::Assign; }
    5427     break;
    5428 
    5429   case 117:
     5603    { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5604    break;
     5605
     5606  case 121:
     5607
     5608/* Line 1806 of yacc.c  */
     5609#line 630 "parser.yy"
     5610    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5611    break;
     5612
     5613  case 122:
     5614
     5615/* Line 1806 of yacc.c  */
     5616#line 632 "parser.yy"
     5617    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5618    break;
     5619
     5620  case 123:
    54305621
    54315622/* Line 1806 of yacc.c  */
    54325623#line 634 "parser.yy"
    5433     { (yyval.op) = OperKinds::AtAssn; }
    5434     break;
    5435 
    5436   case 118:
    5437 
    5438 /* Line 1806 of yacc.c  */
    5439 #line 635 "parser.yy"
    5440     { (yyval.op) = OperKinds::MulAssn; }
    5441     break;
    5442 
    5443   case 119:
    5444 
    5445 /* Line 1806 of yacc.c  */
    5446 #line 636 "parser.yy"
    5447     { (yyval.op) = OperKinds::DivAssn; }
    5448     break;
    5449 
    5450   case 120:
    5451 
    5452 /* Line 1806 of yacc.c  */
    5453 #line 637 "parser.yy"
    5454     { (yyval.op) = OperKinds::ModAssn; }
    5455     break;
    5456 
    5457   case 121:
    5458 
    5459 /* Line 1806 of yacc.c  */
    5460 #line 638 "parser.yy"
    5461     { (yyval.op) = OperKinds::PlusAssn; }
    5462     break;
    5463 
    5464   case 122:
    5465 
    5466 /* Line 1806 of yacc.c  */
    5467 #line 639 "parser.yy"
    5468     { (yyval.op) = OperKinds::MinusAssn; }
    5469     break;
    5470 
    5471   case 123:
     5624    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5625    break;
     5626
     5627  case 125:
    54725628
    54735629/* Line 1806 of yacc.c  */
    54745630#line 640 "parser.yy"
    5475     { (yyval.op) = OperKinds::LSAssn; }
    5476     break;
    5477 
    5478   case 124:
    5479 
    5480 /* Line 1806 of yacc.c  */
    5481 #line 641 "parser.yy"
    5482     { (yyval.op) = OperKinds::RSAssn; }
    5483     break;
    5484 
    5485   case 125:
    5486 
    5487 /* Line 1806 of yacc.c  */
    5488 #line 642 "parser.yy"
    5489     { (yyval.op) = OperKinds::AndAssn; }
    5490     break;
    5491 
    5492   case 126:
    5493 
    5494 /* Line 1806 of yacc.c  */
    5495 #line 643 "parser.yy"
    5496     { (yyval.op) = OperKinds::ERAssn; }
     5631    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    54975632    break;
    54985633
     
    55005635
    55015636/* Line 1806 of yacc.c  */
    5502 #line 644 "parser.yy"
    5503     { (yyval.op) = OperKinds::OrAssn; }
     5637#line 646 "parser.yy"
     5638    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55045639    break;
    55055640
     
    55075642
    55085643/* Line 1806 of yacc.c  */
    5509 #line 655 "parser.yy"
    5510     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    5511     break;
    5512 
    5513   case 129:
    5514 
    5515 /* Line 1806 of yacc.c  */
    5516 #line 657 "parser.yy"
    5517     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    5518     break;
    5519 
    5520   case 131:
    5521 
    5522 /* Line 1806 of yacc.c  */
    5523 #line 663 "parser.yy"
    5524     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    5525     break;
    5526 
    5527   case 133:
    5528 
    5529 /* Line 1806 of yacc.c  */
    5530 #line 669 "parser.yy"
    5531     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5532     break;
    5533 
    5534   case 134:
    5535 
    5536 /* Line 1806 of yacc.c  */
    5537 #line 674 "parser.yy"
     5644#line 651 "parser.yy"
    55385645    { (yyval.en) = 0; }
    55395646    break;
    55405647
     5648  case 132:
     5649
     5650/* Line 1806 of yacc.c  */
     5651#line 660 "parser.yy"
     5652    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     5653    break;
     5654
    55415655  case 138:
    55425656
    55435657/* Line 1806 of yacc.c  */
    5544 #line 683 "parser.yy"
    5545     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    5546     break;
    5547 
    5548   case 144:
    5549 
    5550 /* Line 1806 of yacc.c  */
    5551 #line 690 "parser.yy"
     5658#line 667 "parser.yy"
    55525659    {
    55535660                        Token fn;
     
    55575664    break;
    55585665
    5559   case 145:
    5560 
    5561 /* Line 1806 of yacc.c  */
    5562 #line 700 "parser.yy"
     5666  case 139:
     5667
     5668/* Line 1806 of yacc.c  */
     5669#line 677 "parser.yy"
    55635670    {
    55645671                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    55665673    break;
    55675674
    5568   case 146:
    5569 
    5570 /* Line 1806 of yacc.c  */
    5571 #line 707 "parser.yy"
     5675  case 140:
     5676
     5677/* Line 1806 of yacc.c  */
     5678#line 684 "parser.yy"
    55725679    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    55735680    break;
    55745681
    5575   case 147:
    5576 
    5577 /* Line 1806 of yacc.c  */
    5578 #line 714 "parser.yy"
     5682  case 141:
     5683
     5684/* Line 1806 of yacc.c  */
     5685#line 691 "parser.yy"
    55795686    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    55805687    break;
    55815688
    5582   case 149:
    5583 
    5584 /* Line 1806 of yacc.c  */
    5585 #line 720 "parser.yy"
     5689  case 143:
     5690
     5691/* Line 1806 of yacc.c  */
     5692#line 697 "parser.yy"
    55865693    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    55875694    break;
    55885695
    5589   case 150:
    5590 
    5591 /* Line 1806 of yacc.c  */
    5592 #line 725 "parser.yy"
     5696  case 144:
     5697
     5698/* Line 1806 of yacc.c  */
     5699#line 702 "parser.yy"
    55935700    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    55945701    break;
    55955702
    5596   case 151:
    5597 
    5598 /* Line 1806 of yacc.c  */
    5599 #line 727 "parser.yy"
     5703  case 145:
     5704
     5705/* Line 1806 of yacc.c  */
     5706#line 704 "parser.yy"
    56005707    {   // mark all fields in list
    56015708                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    56055712    break;
    56065713
     5714  case 146:
     5715
     5716/* Line 1806 of yacc.c  */
     5717#line 710 "parser.yy"
     5718    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5719    break;
     5720
     5721  case 149:
     5722
     5723/* Line 1806 of yacc.c  */
     5724#line 717 "parser.yy"
     5725    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5726    break;
     5727
     5728  case 150:
     5729
     5730/* Line 1806 of yacc.c  */
     5731#line 722 "parser.yy"
     5732    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5733    break;
     5734
     5735  case 151:
     5736
     5737/* Line 1806 of yacc.c  */
     5738#line 728 "parser.yy"
     5739    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     5740    break;
     5741
    56075742  case 152:
    56085743
    56095744/* Line 1806 of yacc.c  */
    5610 #line 733 "parser.yy"
    5611     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5612     break;
    5613 
    5614   case 155:
    5615 
    5616 /* Line 1806 of yacc.c  */
    5617 #line 740 "parser.yy"
    5618     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    5619     break;
    5620 
    5621   case 156:
    5622 
    5623 /* Line 1806 of yacc.c  */
    5624 #line 745 "parser.yy"
    5625     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    5626     break;
    5627 
    5628   case 157:
    5629 
    5630 /* Line 1806 of yacc.c  */
    5631 #line 751 "parser.yy"
    5632     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    5633     break;
    5634 
    5635   case 158:
    5636 
    5637 /* Line 1806 of yacc.c  */
    5638 #line 753 "parser.yy"
     5745#line 730 "parser.yy"
    56395746    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    56405747    break;
    56415748
    5642   case 159:
    5643 
    5644 /* Line 1806 of yacc.c  */
    5645 #line 755 "parser.yy"
     5749  case 153:
     5750
     5751/* Line 1806 of yacc.c  */
     5752#line 732 "parser.yy"
    56465753    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    56475754    break;
    56485755
    5649   case 160:
    5650 
    5651 /* Line 1806 of yacc.c  */
    5652 #line 757 "parser.yy"
     5756  case 154:
     5757
     5758/* Line 1806 of yacc.c  */
     5759#line 734 "parser.yy"
    56535760    {
    56545761                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    56625769    break;
    56635770
    5664   case 161:
    5665 
    5666 /* Line 1806 of yacc.c  */
    5667 #line 767 "parser.yy"
     5771  case 155:
     5772
     5773/* Line 1806 of yacc.c  */
     5774#line 744 "parser.yy"
    56685775    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    56695776    break;
    56705777
    5671   case 162:
    5672 
    5673 /* Line 1806 of yacc.c  */
    5674 #line 769 "parser.yy"
     5778  case 156:
     5779
     5780/* Line 1806 of yacc.c  */
     5781#line 746 "parser.yy"
    56755782    {
    56765783                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    56795786    break;
    56805787
     5788  case 157:
     5789
     5790/* Line 1806 of yacc.c  */
     5791#line 756 "parser.yy"
     5792    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5793    break;
     5794
     5795  case 158:
     5796
     5797/* Line 1806 of yacc.c  */
     5798#line 758 "parser.yy"
     5799    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5800    break;
     5801
     5802  case 160:
     5803
     5804/* Line 1806 of yacc.c  */
     5805#line 763 "parser.yy"
     5806    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5807    break;
     5808
     5809  case 161:
     5810
     5811/* Line 1806 of yacc.c  */
     5812#line 765 "parser.yy"
     5813    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5814    break;
     5815
     5816  case 162:
     5817
     5818/* Line 1806 of yacc.c  */
     5819#line 769 "parser.yy"
     5820    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5821    break;
     5822
    56815823  case 163:
    56825824
    56835825/* Line 1806 of yacc.c  */
    5684 #line 779 "parser.yy"
    5685     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5686     break;
    5687 
    5688   case 164:
    5689 
    5690 /* Line 1806 of yacc.c  */
    5691 #line 781 "parser.yy"
    5692     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5826#line 770 "parser.yy"
     5827    { (yyval.sn) = new StatementNode( build_default() ); }
     5828    break;
     5829
     5830  case 165:
     5831
     5832/* Line 1806 of yacc.c  */
     5833#line 776 "parser.yy"
     5834    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    56935835    break;
    56945836
     
    56965838
    56975839/* Line 1806 of yacc.c  */
    5698 #line 786 "parser.yy"
    5699     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5840#line 780 "parser.yy"
     5841    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    57005842    break;
    57015843
     
    57035845
    57045846/* Line 1806 of yacc.c  */
    5705 #line 788 "parser.yy"
    5706     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    5707     break;
    5708 
    5709   case 168:
    5710 
    5711 /* Line 1806 of yacc.c  */
    5712 #line 792 "parser.yy"
    5713     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5847#line 785 "parser.yy"
     5848    { (yyval.sn) = 0; }
    57145849    break;
    57155850
     
    57175852
    57185853/* Line 1806 of yacc.c  */
     5854#line 791 "parser.yy"
     5855    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5856    break;
     5857
     5858  case 170:
     5859
     5860/* Line 1806 of yacc.c  */
    57195861#line 793 "parser.yy"
    5720     { (yyval.sn) = new StatementNode( build_default() ); }
     5862    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    57215863    break;
    57225864
     
    57245866
    57255867/* Line 1806 of yacc.c  */
    5726 #line 799 "parser.yy"
    5727     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    5728     break;
    5729 
    5730   case 172:
    5731 
    5732 /* Line 1806 of yacc.c  */
    5733 #line 803 "parser.yy"
    5734     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5868#line 798 "parser.yy"
     5869    { (yyval.sn) = 0; }
    57355870    break;
    57365871
     
    57385873
    57395874/* Line 1806 of yacc.c  */
     5875#line 804 "parser.yy"
     5876    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5877    break;
     5878
     5879  case 174:
     5880
     5881/* Line 1806 of yacc.c  */
     5882#line 806 "parser.yy"
     5883    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5884    break;
     5885
     5886  case 175:
     5887
     5888/* Line 1806 of yacc.c  */
    57405889#line 808 "parser.yy"
    5741     { (yyval.sn) = 0; }
    5742     break;
    5743 
    5744   case 175:
    5745 
    5746 /* Line 1806 of yacc.c  */
    5747 #line 814 "parser.yy"
    5748     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5890    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    57495891    break;
    57505892
     
    57525894
    57535895/* Line 1806 of yacc.c  */
    5754 #line 816 "parser.yy"
    5755     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5896#line 810 "parser.yy"
     5897    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    57565898    break;
    57575899
    57585900  case 177:
     5901
     5902/* Line 1806 of yacc.c  */
     5903#line 815 "parser.yy"
     5904    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5905    break;
     5906
     5907  case 179:
    57595908
    57605909/* Line 1806 of yacc.c  */
     
    57635912    break;
    57645913
    5765   case 179:
    5766 
    5767 /* Line 1806 of yacc.c  */
    5768 #line 827 "parser.yy"
    5769     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5770     break;
    5771 
    57725914  case 180:
    57735915
    57745916/* Line 1806 of yacc.c  */
    5775 #line 829 "parser.yy"
    5776     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5917#line 823 "parser.yy"
     5918    { (yyval.sn) = 0; }
    57775919    break;
    57785920
     
    57805922
    57815923/* Line 1806 of yacc.c  */
    5782 #line 831 "parser.yy"
    5783     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5924#line 828 "parser.yy"
     5925    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57845926    break;
    57855927
     
    57875929
    57885930/* Line 1806 of yacc.c  */
    5789 #line 833 "parser.yy"
    5790     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
     5931#line 830 "parser.yy"
     5932    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    57915933    break;
    57925934
     
    57945936
    57955937/* Line 1806 of yacc.c  */
    5796 #line 838 "parser.yy"
     5938#line 832 "parser.yy"
     5939    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5940    break;
     5941
     5942  case 184:
     5943
     5944/* Line 1806 of yacc.c  */
     5945#line 837 "parser.yy"
     5946    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5947    break;
     5948
     5949  case 185:
     5950
     5951/* Line 1806 of yacc.c  */
     5952#line 839 "parser.yy"
     5953    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5954    break;
     5955
     5956  case 186:
     5957
     5958/* Line 1806 of yacc.c  */
     5959#line 844 "parser.yy"
     5960    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5961    break;
     5962
     5963  case 187:
     5964
     5965/* Line 1806 of yacc.c  */
     5966#line 848 "parser.yy"
     5967    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5968    break;
     5969
     5970  case 188:
     5971
     5972/* Line 1806 of yacc.c  */
     5973#line 851 "parser.yy"
     5974    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     5975    break;
     5976
     5977  case 189:
     5978
     5979/* Line 1806 of yacc.c  */
     5980#line 855 "parser.yy"
     5981    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     5982    break;
     5983
     5984  case 190:
     5985
     5986/* Line 1806 of yacc.c  */
     5987#line 858 "parser.yy"
    57975988    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    57985989    break;
    57995990
    5800   case 185:
    5801 
    5802 /* Line 1806 of yacc.c  */
    5803 #line 844 "parser.yy"
    5804     { (yyval.sn) = 0; }
    5805     break;
    5806 
    5807   case 186:
    5808 
    5809 /* Line 1806 of yacc.c  */
    5810 #line 846 "parser.yy"
    5811     { (yyval.sn) = 0; }
    5812     break;
    5813 
    5814   case 187:
    5815 
    5816 /* Line 1806 of yacc.c  */
    5817 #line 851 "parser.yy"
    5818     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5819     break;
    5820 
    5821   case 188:
    5822 
    5823 /* Line 1806 of yacc.c  */
    5824 #line 853 "parser.yy"
    5825     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    5826     break;
    5827 
    5828   case 189:
    5829 
    5830 /* Line 1806 of yacc.c  */
    5831 #line 855 "parser.yy"
    5832     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    5833     break;
    5834 
    5835   case 190:
    5836 
    5837 /* Line 1806 of yacc.c  */
    5838 #line 860 "parser.yy"
    5839     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    5840     break;
    5841 
    58425991  case 191:
    58435992
    58445993/* Line 1806 of yacc.c  */
    58455994#line 862 "parser.yy"
    5846     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5995    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    58475996    break;
    58485997
     
    58505999
    58516000/* Line 1806 of yacc.c  */
    5852 #line 867 "parser.yy"
    5853     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     6001#line 864 "parser.yy"
     6002    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    58546003    break;
    58556004
     
    58576006
    58586007/* Line 1806 of yacc.c  */
    5859 #line 871 "parser.yy"
    5860     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     6008#line 866 "parser.yy"
     6009    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    58616010    break;
    58626011
     
    58646013
    58656014/* Line 1806 of yacc.c  */
    5866 #line 874 "parser.yy"
    5867     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     6015#line 868 "parser.yy"
     6016    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    58686017    break;
    58696018
     
    58716020
    58726021/* Line 1806 of yacc.c  */
    5873 #line 878 "parser.yy"
    5874     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     6022#line 870 "parser.yy"
     6023    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    58756024    break;
    58766025
     
    58786027
    58796028/* Line 1806 of yacc.c  */
    5880 #line 881 "parser.yy"
    5881     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     6029#line 875 "parser.yy"
     6030    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    58826031    break;
    58836032
     
    58856034
    58866035/* Line 1806 of yacc.c  */
    5887 #line 885 "parser.yy"
    5888     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     6036#line 877 "parser.yy"
     6037    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    58896038    break;
    58906039
     
    58926041
    58936042/* Line 1806 of yacc.c  */
    5894 #line 887 "parser.yy"
    5895     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    5896     break;
    5897 
    5898   case 199:
    5899 
    5900 /* Line 1806 of yacc.c  */
    5901 #line 889 "parser.yy"
    5902     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6043#line 879 "parser.yy"
     6044    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    59036045    break;
    59046046
     
    59066048
    59076049/* Line 1806 of yacc.c  */
    5908 #line 891 "parser.yy"
    5909     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6050#line 886 "parser.yy"
     6051    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    59106052    break;
    59116053
     
    59136055
    59146056/* Line 1806 of yacc.c  */
    5915 #line 893 "parser.yy"
    5916     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     6057#line 888 "parser.yy"
     6058    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    59176059    break;
    59186060
     
    59206062
    59216063/* Line 1806 of yacc.c  */
    5922 #line 898 "parser.yy"
    5923     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     6064#line 890 "parser.yy"
     6065    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    59246066    break;
    59256067
     
    59276069
    59286070/* Line 1806 of yacc.c  */
    5929 #line 900 "parser.yy"
    5930     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     6071#line 892 "parser.yy"
     6072    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    59316073    break;
    59326074
     
    59346076
    59356077/* Line 1806 of yacc.c  */
    5936 #line 902 "parser.yy"
    5937     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     6078#line 897 "parser.yy"
     6079    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6080    break;
     6081
     6082  case 205:
     6083
     6084/* Line 1806 of yacc.c  */
     6085#line 899 "parser.yy"
     6086    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    59386087    break;
    59396088
     
    59416090
    59426091/* Line 1806 of yacc.c  */
    5943 #line 909 "parser.yy"
    5944     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6092#line 901 "parser.yy"
     6093    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    59456094    break;
    59466095
     
    59486097
    59496098/* Line 1806 of yacc.c  */
    5950 #line 911 "parser.yy"
    5951     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6099#line 903 "parser.yy"
     6100    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    59526101    break;
    59536102
     
    59556104
    59566105/* Line 1806 of yacc.c  */
    5957 #line 913 "parser.yy"
    5958     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    5959     break;
    5960 
    5961   case 209:
    5962 
    5963 /* Line 1806 of yacc.c  */
    5964 #line 915 "parser.yy"
    5965     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    5966     break;
    5967 
    5968   case 210:
    5969 
    5970 /* Line 1806 of yacc.c  */
    5971 #line 920 "parser.yy"
    5972     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    5973     break;
    5974 
    5975   case 211:
    5976 
    5977 /* Line 1806 of yacc.c  */
    5978 #line 922 "parser.yy"
    5979     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    5980     break;
    5981 
    5982   case 212:
    5983 
    5984 /* Line 1806 of yacc.c  */
    5985 #line 924 "parser.yy"
    5986     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    5987     break;
    5988 
    5989   case 213:
    5990 
    5991 /* Line 1806 of yacc.c  */
    5992 #line 926 "parser.yy"
    5993     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    5994     break;
    5995 
    5996   case 214:
    5997 
    5998 /* Line 1806 of yacc.c  */
    5999 #line 931 "parser.yy"
     6106#line 908 "parser.yy"
    60006107    {
    60016108                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    60036110    break;
    60046111
    6005   case 216:
    6006 
    6007 /* Line 1806 of yacc.c  */
    6008 #line 944 "parser.yy"
     6112  case 210:
     6113
     6114/* Line 1806 of yacc.c  */
     6115#line 921 "parser.yy"
    60096116    {
    60106117                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60136120    break;
    60146121
    6015   case 217:
    6016 
    6017 /* Line 1806 of yacc.c  */
    6018 #line 949 "parser.yy"
     6122  case 211:
     6123
     6124/* Line 1806 of yacc.c  */
     6125#line 926 "parser.yy"
    60196126    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    60206127    break;
    60216128
    6022   case 218:
    6023 
    6024 /* Line 1806 of yacc.c  */
    6025 #line 951 "parser.yy"
     6129  case 212:
     6130
     6131/* Line 1806 of yacc.c  */
     6132#line 928 "parser.yy"
    60266133    {
    60276134                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60306137    break;
    60316138
     6139  case 214:
     6140
     6141/* Line 1806 of yacc.c  */
     6142#line 937 "parser.yy"
     6143    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6144    break;
     6145
     6146  case 215:
     6147
     6148/* Line 1806 of yacc.c  */
     6149#line 939 "parser.yy"
     6150    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     6151    break;
     6152
     6153  case 216:
     6154
     6155/* Line 1806 of yacc.c  */
     6156#line 941 "parser.yy"
     6157    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     6158    break;
     6159
     6160  case 217:
     6161
     6162/* Line 1806 of yacc.c  */
     6163#line 943 "parser.yy"
     6164    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
     6165    break;
     6166
     6167  case 218:
     6168
     6169/* Line 1806 of yacc.c  */
     6170#line 945 "parser.yy"
     6171    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
     6172    break;
     6173
     6174  case 219:
     6175
     6176/* Line 1806 of yacc.c  */
     6177#line 950 "parser.yy"
     6178    { (yyval.flag) = false; }
     6179    break;
     6180
    60326181  case 220:
    60336182
    60346183/* Line 1806 of yacc.c  */
    6035 #line 960 "parser.yy"
    6036     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6184#line 952 "parser.yy"
     6185    { (yyval.flag) = true; }
    60376186    break;
    60386187
     
    60406189
    60416190/* Line 1806 of yacc.c  */
    6042 #line 962 "parser.yy"
    6043     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    6044     break;
    6045 
    6046   case 222:
     6191#line 957 "parser.yy"
     6192    { (yyval.en) = 0; }
     6193    break;
     6194
     6195  case 224:
    60476196
    60486197/* Line 1806 of yacc.c  */
    60496198#line 964 "parser.yy"
    6050     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    6051     break;
    6052 
    6053   case 223:
    6054 
    6055 /* Line 1806 of yacc.c  */
    6056 #line 966 "parser.yy"
    6057     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
    6058     break;
    6059 
    6060   case 224:
    6061 
    6062 /* Line 1806 of yacc.c  */
    6063 #line 968 "parser.yy"
    6064     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
     6199    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    60656200    break;
    60666201
     
    60686203
    60696204/* Line 1806 of yacc.c  */
    6070 #line 973 "parser.yy"
    6071     { (yyval.flag) = false; }
     6205#line 969 "parser.yy"
     6206    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    60726207    break;
    60736208
     
    60756210
    60766211/* Line 1806 of yacc.c  */
    6077 #line 975 "parser.yy"
    6078     { (yyval.flag) = true; }
     6212#line 971 "parser.yy"
     6213    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    60796214    break;
    60806215
     
    60826217
    60836218/* Line 1806 of yacc.c  */
     6219#line 976 "parser.yy"
     6220    { (yyval.en) = 0; }
     6221    break;
     6222
     6223  case 228:
     6224
     6225/* Line 1806 of yacc.c  */
     6226#line 978 "parser.yy"
     6227    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     6228    break;
     6229
     6230  case 229:
     6231
     6232/* Line 1806 of yacc.c  */
    60846233#line 980 "parser.yy"
    6085     { (yyval.en) = 0; }
     6234    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    60866235    break;
    60876236
     
    60896238
    60906239/* Line 1806 of yacc.c  */
    6091 #line 987 "parser.yy"
    6092     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    6093     break;
    6094 
    6095   case 231:
    6096 
    6097 /* Line 1806 of yacc.c  */
    6098 #line 992 "parser.yy"
    6099     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    6100     break;
    6101 
    6102   case 232:
    6103 
    6104 /* Line 1806 of yacc.c  */
    6105 #line 994 "parser.yy"
    6106     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    6107     break;
    6108 
    6109   case 233:
    6110 
    6111 /* Line 1806 of yacc.c  */
    6112 #line 999 "parser.yy"
    6113     { (yyval.en) = 0; }
    6114     break;
    6115 
    6116   case 234:
    6117 
    6118 /* Line 1806 of yacc.c  */
    6119 #line 1001 "parser.yy"
    6120     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    6121     break;
    6122 
    6123   case 235:
    6124 
    6125 /* Line 1806 of yacc.c  */
    6126 #line 1003 "parser.yy"
    6127     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    6128     break;
    6129 
    6130   case 236:
    6131 
    6132 /* Line 1806 of yacc.c  */
    6133 #line 1008 "parser.yy"
     6240#line 985 "parser.yy"
    61346241    {
    61356242                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    61386245    break;
    61396246
    6140   case 237:
    6141 
    6142 /* Line 1806 of yacc.c  */
    6143 #line 1013 "parser.yy"
     6247  case 231:
     6248
     6249/* Line 1806 of yacc.c  */
     6250#line 990 "parser.yy"
    61446251    {
    61456252                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    61486255    break;
    61496256
    6150   case 238:
    6151 
    6152 /* Line 1806 of yacc.c  */
    6153 #line 1023 "parser.yy"
     6257  case 232:
     6258
     6259/* Line 1806 of yacc.c  */
     6260#line 1000 "parser.yy"
    61546261    { (yyval.decl) = 0; }
    61556262    break;
    61566263
    6157   case 241:
    6158 
    6159 /* Line 1806 of yacc.c  */
    6160 #line 1030 "parser.yy"
     6264  case 235:
     6265
     6266/* Line 1806 of yacc.c  */
     6267#line 1007 "parser.yy"
    61616268    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    61626269    break;
    61636270
    6164   case 242:
    6165 
    6166 /* Line 1806 of yacc.c  */
    6167 #line 1035 "parser.yy"
     6271  case 236:
     6272
     6273/* Line 1806 of yacc.c  */
     6274#line 1012 "parser.yy"
    61686275    { (yyval.decl) = 0; }
    61696276    break;
    61706277
     6278  case 239:
     6279
     6280/* Line 1806 of yacc.c  */
     6281#line 1019 "parser.yy"
     6282    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6283    break;
     6284
     6285  case 244:
     6286
     6287/* Line 1806 of yacc.c  */
     6288#line 1033 "parser.yy"
     6289    {}
     6290    break;
     6291
    61716292  case 245:
    61726293
    61736294/* Line 1806 of yacc.c  */
    6174 #line 1042 "parser.yy"
    6175     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6176     break;
    6177 
    6178   case 250:
    6179 
    6180 /* Line 1806 of yacc.c  */
    6181 #line 1056 "parser.yy"
     6295#line 1034 "parser.yy"
    61826296    {}
    61836297    break;
    61846298
    6185   case 251:
    6186 
    6187 /* Line 1806 of yacc.c  */
    6188 #line 1057 "parser.yy"
    6189     {}
    6190     break;
    6191 
    6192   case 259:
    6193 
    6194 /* Line 1806 of yacc.c  */
    6195 #line 1086 "parser.yy"
     6299  case 253:
     6300
     6301/* Line 1806 of yacc.c  */
     6302#line 1063 "parser.yy"
    61966303    {
    61976304                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62006307    break;
    62016308
    6202   case 260:
    6203 
    6204 /* Line 1806 of yacc.c  */
    6205 #line 1093 "parser.yy"
     6309  case 254:
     6310
     6311/* Line 1806 of yacc.c  */
     6312#line 1070 "parser.yy"
    62066313    {
    62076314                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62106317    break;
    62116318
    6212   case 261:
    6213 
    6214 /* Line 1806 of yacc.c  */
    6215 #line 1098 "parser.yy"
     6319  case 255:
     6320
     6321/* Line 1806 of yacc.c  */
     6322#line 1075 "parser.yy"
    62166323    {
    62176324                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    62206327    break;
    62216328
    6222   case 262:
    6223 
    6224 /* Line 1806 of yacc.c  */
    6225 #line 1108 "parser.yy"
     6329  case 256:
     6330
     6331/* Line 1806 of yacc.c  */
     6332#line 1085 "parser.yy"
    62266333    {
    62276334                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62306337    break;
    62316338
    6232   case 263:
    6233 
    6234 /* Line 1806 of yacc.c  */
    6235 #line 1113 "parser.yy"
     6339  case 257:
     6340
     6341/* Line 1806 of yacc.c  */
     6342#line 1090 "parser.yy"
    62366343    {
    62376344                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62406347    break;
    62416348
    6242   case 264:
    6243 
    6244 /* Line 1806 of yacc.c  */
    6245 #line 1118 "parser.yy"
     6349  case 258:
     6350
     6351/* Line 1806 of yacc.c  */
     6352#line 1095 "parser.yy"
    62466353    {
    62476354                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    62506357    break;
    62516358
    6252   case 265:
    6253 
    6254 /* Line 1806 of yacc.c  */
    6255 #line 1126 "parser.yy"
     6359  case 259:
     6360
     6361/* Line 1806 of yacc.c  */
     6362#line 1103 "parser.yy"
    62566363    {
    62576364                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62606367    break;
    62616368
    6262   case 266:
    6263 
    6264 /* Line 1806 of yacc.c  */
    6265 #line 1131 "parser.yy"
     6369  case 260:
     6370
     6371/* Line 1806 of yacc.c  */
     6372#line 1108 "parser.yy"
    62666373    {
    62676374                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62706377    break;
    62716378
    6272   case 267:
    6273 
    6274 /* Line 1806 of yacc.c  */
    6275 #line 1136 "parser.yy"
     6379  case 261:
     6380
     6381/* Line 1806 of yacc.c  */
     6382#line 1113 "parser.yy"
    62766383    {
    62776384                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62806387    break;
    62816388
    6282   case 268:
    6283 
    6284 /* Line 1806 of yacc.c  */
    6285 #line 1141 "parser.yy"
     6389  case 262:
     6390
     6391/* Line 1806 of yacc.c  */
     6392#line 1118 "parser.yy"
    62866393    {
    62876394                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62906397    break;
    62916398
    6292   case 269:
    6293 
    6294 /* Line 1806 of yacc.c  */
    6295 #line 1146 "parser.yy"
     6399  case 263:
     6400
     6401/* Line 1806 of yacc.c  */
     6402#line 1123 "parser.yy"
    62966403    {
    62976404                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63006407    break;
    63016408
    6302   case 270:
    6303 
    6304 /* Line 1806 of yacc.c  */
    6305 #line 1177 "parser.yy"
     6409  case 264:
     6410
     6411/* Line 1806 of yacc.c  */
     6412#line 1131 "parser.yy"
     6413    {
     6414                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     6415                }
     6416    break;
     6417
     6418  case 265:
     6419
     6420/* Line 1806 of yacc.c  */
     6421#line 1154 "parser.yy"
    63066422    {
    63076423                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63096425    break;
    63106426
    6311   case 271:
    6312 
    6313 /* Line 1806 of yacc.c  */
    6314 #line 1181 "parser.yy"
     6427  case 266:
     6428
     6429/* Line 1806 of yacc.c  */
     6430#line 1158 "parser.yy"
    63156431    {
    63166432                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63186434    break;
    63196435
    6320   case 272:
    6321 
    6322 /* Line 1806 of yacc.c  */
    6323 #line 1188 "parser.yy"
     6436  case 267:
     6437
     6438/* Line 1806 of yacc.c  */
     6439#line 1165 "parser.yy"
    63246440    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    63256441    break;
    63266442
    6327   case 273:
    6328 
    6329 /* Line 1806 of yacc.c  */
    6330 #line 1192 "parser.yy"
     6443  case 268:
     6444
     6445/* Line 1806 of yacc.c  */
     6446#line 1169 "parser.yy"
    63316447    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    63326448    break;
    63336449
    6334   case 274:
    6335 
    6336 /* Line 1806 of yacc.c  */
    6337 #line 1197 "parser.yy"
     6450  case 269:
     6451
     6452/* Line 1806 of yacc.c  */
     6453#line 1174 "parser.yy"
    63386454    {
    63396455                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63426458    break;
    63436459
    6344   case 275:
    6345 
    6346 /* Line 1806 of yacc.c  */
    6347 #line 1202 "parser.yy"
     6460  case 270:
     6461
     6462/* Line 1806 of yacc.c  */
     6463#line 1179 "parser.yy"
    63486464    {
    63496465                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63526468    break;
    63536469
    6354   case 276:
    6355 
    6356 /* Line 1806 of yacc.c  */
    6357 #line 1207 "parser.yy"
     6470  case 271:
     6471
     6472/* Line 1806 of yacc.c  */
     6473#line 1184 "parser.yy"
    63586474    {
    63596475                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    63626478    break;
    63636479
    6364   case 277:
    6365 
    6366 /* Line 1806 of yacc.c  */
    6367 #line 1218 "parser.yy"
     6480  case 272:
     6481
     6482/* Line 1806 of yacc.c  */
     6483#line 1195 "parser.yy"
    63686484    {
    63696485                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63726488    break;
    63736489
    6374   case 278:
    6375 
    6376 /* Line 1806 of yacc.c  */
    6377 #line 1223 "parser.yy"
     6490  case 273:
     6491
     6492/* Line 1806 of yacc.c  */
     6493#line 1200 "parser.yy"
    63786494    {
    63796495                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63826498    break;
    63836499
    6384   case 279:
    6385 
    6386 /* Line 1806 of yacc.c  */
    6387 #line 1228 "parser.yy"
     6500  case 274:
     6501
     6502/* Line 1806 of yacc.c  */
     6503#line 1205 "parser.yy"
    63886504    {
    63896505                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63926508    break;
    63936509
    6394   case 280:
    6395 
    6396 /* Line 1806 of yacc.c  */
    6397 #line 1233 "parser.yy"
     6510  case 275:
     6511
     6512/* Line 1806 of yacc.c  */
     6513#line 1210 "parser.yy"
    63986514    {
    63996515                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64026518    break;
    64036519
    6404   case 281:
    6405 
    6406 /* Line 1806 of yacc.c  */
    6407 #line 1238 "parser.yy"
     6520  case 276:
     6521
     6522/* Line 1806 of yacc.c  */
     6523#line 1215 "parser.yy"
    64086524    {
    64096525                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64126528    break;
    64136529
    6414   case 282:
    6415 
    6416 /* Line 1806 of yacc.c  */
    6417 #line 1247 "parser.yy"
     6530  case 277:
     6531
     6532/* Line 1806 of yacc.c  */
     6533#line 1224 "parser.yy"
    64186534    {
    64196535                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    64226538    break;
    64236539
    6424   case 283:
    6425 
    6426 /* Line 1806 of yacc.c  */
    6427 #line 1252 "parser.yy"
     6540  case 278:
     6541
     6542/* Line 1806 of yacc.c  */
     6543#line 1229 "parser.yy"
    64286544    {
    64296545                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    64326548    break;
    64336549
    6434   case 288:
    6435 
    6436 /* Line 1806 of yacc.c  */
    6437 #line 1269 "parser.yy"
     6550  case 283:
     6551
     6552/* Line 1806 of yacc.c  */
     6553#line 1246 "parser.yy"
    64386554    {
    64396555                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64426558    break;
    64436559
    6444   case 289:
    6445 
    6446 /* Line 1806 of yacc.c  */
    6447 #line 1274 "parser.yy"
     6560  case 284:
     6561
     6562/* Line 1806 of yacc.c  */
     6563#line 1251 "parser.yy"
    64486564    {
    64496565                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64526568    break;
    64536569
    6454   case 298:
     6570  case 293:
     6571
     6572/* Line 1806 of yacc.c  */
     6573#line 1273 "parser.yy"
     6574    { (yyval.decl) = 0; }
     6575    break;
     6576
     6577  case 296:
     6578
     6579/* Line 1806 of yacc.c  */
     6580#line 1285 "parser.yy"
     6581    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6582    break;
     6583
     6584  case 299:
    64556585
    64566586/* Line 1806 of yacc.c  */
    64576587#line 1296 "parser.yy"
    6458     { (yyval.decl) = 0; }
     6588    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6589    break;
     6590
     6591  case 300:
     6592
     6593/* Line 1806 of yacc.c  */
     6594#line 1298 "parser.yy"
     6595    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    64596596    break;
    64606597
     
    64626599
    64636600/* Line 1806 of yacc.c  */
    6464 #line 1308 "parser.yy"
    6465     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6601#line 1300 "parser.yy"
     6602    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6603    break;
     6604
     6605  case 302:
     6606
     6607/* Line 1806 of yacc.c  */
     6608#line 1302 "parser.yy"
     6609    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6610    break;
     6611
     6612  case 303:
     6613
     6614/* Line 1806 of yacc.c  */
     6615#line 1304 "parser.yy"
     6616    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    64666617    break;
    64676618
     
    64696620
    64706621/* Line 1806 of yacc.c  */
    6471 #line 1319 "parser.yy"
    6472     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6473     break;
    6474 
    6475   case 305:
    6476 
    6477 /* Line 1806 of yacc.c  */
    6478 #line 1321 "parser.yy"
    6479     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6480     break;
    6481 
    6482   case 306:
    6483 
    6484 /* Line 1806 of yacc.c  */
    6485 #line 1323 "parser.yy"
    6486     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6487     break;
    6488 
    6489   case 307:
    6490 
    6491 /* Line 1806 of yacc.c  */
    6492 #line 1325 "parser.yy"
    6493     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6494     break;
    6495 
    6496   case 308:
    6497 
    6498 /* Line 1806 of yacc.c  */
    6499 #line 1327 "parser.yy"
    6500     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6501     break;
    6502 
    6503   case 309:
    6504 
    6505 /* Line 1806 of yacc.c  */
    6506 #line 1329 "parser.yy"
     6622#line 1306 "parser.yy"
    65076623    {
    65086624                        typedefTable.enterScope();
     
    65106626    break;
    65116627
    6512   case 310:
    6513 
    6514 /* Line 1806 of yacc.c  */
    6515 #line 1333 "parser.yy"
     6628  case 305:
     6629
     6630/* Line 1806 of yacc.c  */
     6631#line 1310 "parser.yy"
    65166632    {
    65176633                        typedefTable.leaveScope();
     
    65206636    break;
    65216637
     6638  case 307:
     6639
     6640/* Line 1806 of yacc.c  */
     6641#line 1319 "parser.yy"
     6642    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6643    break;
     6644
     6645  case 308:
     6646
     6647/* Line 1806 of yacc.c  */
     6648#line 1321 "parser.yy"
     6649    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6650    break;
     6651
     6652  case 310:
     6653
     6654/* Line 1806 of yacc.c  */
     6655#line 1332 "parser.yy"
     6656    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6657    break;
     6658
     6659  case 311:
     6660
     6661/* Line 1806 of yacc.c  */
     6662#line 1337 "parser.yy"
     6663    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6664    break;
     6665
    65226666  case 312:
    65236667
    65246668/* Line 1806 of yacc.c  */
    6525 #line 1342 "parser.yy"
     6669#line 1339 "parser.yy"
     6670    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6671    break;
     6672
     6673  case 313:
     6674
     6675/* Line 1806 of yacc.c  */
     6676#line 1341 "parser.yy"
     6677    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6678    break;
     6679
     6680  case 314:
     6681
     6682/* Line 1806 of yacc.c  */
     6683#line 1343 "parser.yy"
     6684    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6685    break;
     6686
     6687  case 315:
     6688
     6689/* Line 1806 of yacc.c  */
     6690#line 1346 "parser.yy"
     6691    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     6692    break;
     6693
     6694  case 316:
     6695
     6696/* Line 1806 of yacc.c  */
     6697#line 1348 "parser.yy"
     6698    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6699    break;
     6700
     6701  case 317:
     6702
     6703/* Line 1806 of yacc.c  */
     6704#line 1351 "parser.yy"
     6705    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     6706    break;
     6707
     6708  case 318:
     6709
     6710/* Line 1806 of yacc.c  */
     6711#line 1353 "parser.yy"
     6712    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6713    break;
     6714
     6715  case 319:
     6716
     6717/* Line 1806 of yacc.c  */
     6718#line 1358 "parser.yy"
     6719    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6720    break;
     6721
     6722  case 320:
     6723
     6724/* Line 1806 of yacc.c  */
     6725#line 1360 "parser.yy"
     6726    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6727    break;
     6728
     6729  case 321:
     6730
     6731/* Line 1806 of yacc.c  */
     6732#line 1362 "parser.yy"
     6733    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6734    break;
     6735
     6736  case 322:
     6737
     6738/* Line 1806 of yacc.c  */
     6739#line 1364 "parser.yy"
     6740    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6741    break;
     6742
     6743  case 323:
     6744
     6745/* Line 1806 of yacc.c  */
     6746#line 1366 "parser.yy"
     6747    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6748    break;
     6749
     6750  case 324:
     6751
     6752/* Line 1806 of yacc.c  */
     6753#line 1368 "parser.yy"
     6754    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6755    break;
     6756
     6757  case 325:
     6758
     6759/* Line 1806 of yacc.c  */
     6760#line 1370 "parser.yy"
     6761    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6762    break;
     6763
     6764  case 326:
     6765
     6766/* Line 1806 of yacc.c  */
     6767#line 1372 "parser.yy"
     6768    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6769    break;
     6770
     6771  case 327:
     6772
     6773/* Line 1806 of yacc.c  */
     6774#line 1374 "parser.yy"
     6775    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6776    break;
     6777
     6778  case 328:
     6779
     6780/* Line 1806 of yacc.c  */
     6781#line 1376 "parser.yy"
     6782    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6783    break;
     6784
     6785  case 329:
     6786
     6787/* Line 1806 of yacc.c  */
     6788#line 1378 "parser.yy"
     6789    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6790    break;
     6791
     6792  case 330:
     6793
     6794/* Line 1806 of yacc.c  */
     6795#line 1380 "parser.yy"
     6796    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6797    break;
     6798
     6799  case 331:
     6800
     6801/* Line 1806 of yacc.c  */
     6802#line 1382 "parser.yy"
     6803    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6804    break;
     6805
     6806  case 333:
     6807
     6808/* Line 1806 of yacc.c  */
     6809#line 1389 "parser.yy"
     6810    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6811    break;
     6812
     6813  case 334:
     6814
     6815/* Line 1806 of yacc.c  */
     6816#line 1391 "parser.yy"
    65266817    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65276818    break;
    65286819
    6529   case 313:
    6530 
    6531 /* Line 1806 of yacc.c  */
    6532 #line 1344 "parser.yy"
     6820  case 335:
     6821
     6822/* Line 1806 of yacc.c  */
     6823#line 1393 "parser.yy"
    65336824    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    65346825    break;
    65356826
    6536   case 315:
    6537 
    6538 /* Line 1806 of yacc.c  */
    6539 #line 1355 "parser.yy"
     6827  case 336:
     6828
     6829/* Line 1806 of yacc.c  */
     6830#line 1395 "parser.yy"
     6831    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6832    break;
     6833
     6834  case 338:
     6835
     6836/* Line 1806 of yacc.c  */
     6837#line 1401 "parser.yy"
     6838    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6839    break;
     6840
     6841  case 340:
     6842
     6843/* Line 1806 of yacc.c  */
     6844#line 1408 "parser.yy"
     6845    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6846    break;
     6847
     6848  case 341:
     6849
     6850/* Line 1806 of yacc.c  */
     6851#line 1410 "parser.yy"
    65406852    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65416853    break;
    65426854
    6543   case 316:
    6544 
    6545 /* Line 1806 of yacc.c  */
    6546 #line 1360 "parser.yy"
    6547     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6548     break;
    6549 
    6550   case 317:
    6551 
    6552 /* Line 1806 of yacc.c  */
    6553 #line 1362 "parser.yy"
    6554     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6555     break;
    6556 
    6557   case 318:
    6558 
    6559 /* Line 1806 of yacc.c  */
    6560 #line 1364 "parser.yy"
    6561     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6562     break;
    6563 
    6564   case 319:
    6565 
    6566 /* Line 1806 of yacc.c  */
    6567 #line 1366 "parser.yy"
    6568     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6569     break;
    6570 
    6571   case 320:
    6572 
    6573 /* Line 1806 of yacc.c  */
    6574 #line 1369 "parser.yy"
    6575     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    6576     break;
    6577 
    6578   case 321:
    6579 
    6580 /* Line 1806 of yacc.c  */
    6581 #line 1371 "parser.yy"
    6582     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6583     break;
    6584 
    6585   case 322:
    6586 
    6587 /* Line 1806 of yacc.c  */
    6588 #line 1374 "parser.yy"
    6589     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    6590     break;
    6591 
    6592   case 323:
    6593 
    6594 /* Line 1806 of yacc.c  */
    6595 #line 1376 "parser.yy"
    6596     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6597     break;
    6598 
    6599   case 324:
    6600 
    6601 /* Line 1806 of yacc.c  */
    6602 #line 1381 "parser.yy"
    6603     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6604     break;
    6605 
    6606   case 325:
    6607 
    6608 /* Line 1806 of yacc.c  */
    6609 #line 1383 "parser.yy"
    6610     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6611     break;
    6612 
    6613   case 326:
    6614 
    6615 /* Line 1806 of yacc.c  */
    6616 #line 1385 "parser.yy"
    6617     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6618     break;
    6619 
    6620   case 327:
    6621 
    6622 /* Line 1806 of yacc.c  */
    6623 #line 1387 "parser.yy"
    6624     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6625     break;
    6626 
    6627   case 328:
    6628 
    6629 /* Line 1806 of yacc.c  */
    6630 #line 1389 "parser.yy"
    6631     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    6632     break;
    6633 
    6634   case 329:
    6635 
    6636 /* Line 1806 of yacc.c  */
    6637 #line 1391 "parser.yy"
    6638     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    6639     break;
    6640 
    6641   case 330:
    6642 
    6643 /* Line 1806 of yacc.c  */
    6644 #line 1393 "parser.yy"
    6645     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    6646     break;
    6647 
    6648   case 331:
    6649 
    6650 /* Line 1806 of yacc.c  */
    6651 #line 1395 "parser.yy"
    6652     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    6653     break;
    6654 
    6655   case 332:
    6656 
    6657 /* Line 1806 of yacc.c  */
    6658 #line 1397 "parser.yy"
    6659     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6660     break;
    6661 
    6662   case 333:
    6663 
    6664 /* Line 1806 of yacc.c  */
    6665 #line 1399 "parser.yy"
    6666     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6667     break;
    6668 
    6669   case 334:
    6670 
    6671 /* Line 1806 of yacc.c  */
    6672 #line 1401 "parser.yy"
    6673     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    6674     break;
    6675 
    6676   case 335:
    6677 
    6678 /* Line 1806 of yacc.c  */
    6679 #line 1403 "parser.yy"
    6680     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    6681     break;
    6682 
    6683   case 336:
    6684 
    6685 /* Line 1806 of yacc.c  */
    6686 #line 1405 "parser.yy"
    6687     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6688     break;
    6689 
    6690   case 338:
     6855  case 342:
    66916856
    66926857/* Line 1806 of yacc.c  */
    66936858#line 1412 "parser.yy"
     6859    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6860    break;
     6861
     6862  case 343:
     6863
     6864/* Line 1806 of yacc.c  */
     6865#line 1417 "parser.yy"
     6866    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6867    break;
     6868
     6869  case 344:
     6870
     6871/* Line 1806 of yacc.c  */
     6872#line 1419 "parser.yy"
     6873    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6874    break;
     6875
     6876  case 345:
     6877
     6878/* Line 1806 of yacc.c  */
     6879#line 1421 "parser.yy"
     6880    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6881    break;
     6882
     6883  case 346:
     6884
     6885/* Line 1806 of yacc.c  */
     6886#line 1423 "parser.yy"
     6887    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6888    break;
     6889
     6890  case 348:
     6891
     6892/* Line 1806 of yacc.c  */
     6893#line 1429 "parser.yy"
    66946894    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66956895    break;
    66966896
    6697   case 339:
    6698 
    6699 /* Line 1806 of yacc.c  */
    6700 #line 1414 "parser.yy"
     6897  case 349:
     6898
     6899/* Line 1806 of yacc.c  */
     6900#line 1431 "parser.yy"
    67016901    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67026902    break;
    67036903
    6704   case 340:
    6705 
    6706 /* Line 1806 of yacc.c  */
    6707 #line 1416 "parser.yy"
     6904  case 350:
     6905
     6906/* Line 1806 of yacc.c  */
     6907#line 1433 "parser.yy"
    67086908    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67096909    break;
    67106910
    6711   case 341:
    6712 
    6713 /* Line 1806 of yacc.c  */
    6714 #line 1418 "parser.yy"
    6715     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6716     break;
    6717 
    6718   case 343:
    6719 
    6720 /* Line 1806 of yacc.c  */
    6721 #line 1424 "parser.yy"
    6722     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6723     break;
    6724 
    6725   case 345:
    6726 
    6727 /* Line 1806 of yacc.c  */
    6728 #line 1431 "parser.yy"
     6911  case 352:
     6912
     6913/* Line 1806 of yacc.c  */
     6914#line 1439 "parser.yy"
    67296915    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67306916    break;
    67316917
    6732   case 346:
    6733 
    6734 /* Line 1806 of yacc.c  */
    6735 #line 1433 "parser.yy"
     6918  case 353:
     6919
     6920/* Line 1806 of yacc.c  */
     6921#line 1441 "parser.yy"
    67366922    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67376923    break;
    67386924
    6739   case 347:
    6740 
    6741 /* Line 1806 of yacc.c  */
    6742 #line 1435 "parser.yy"
    6743     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6744     break;
    6745 
    6746   case 348:
    6747 
    6748 /* Line 1806 of yacc.c  */
    6749 #line 1440 "parser.yy"
    6750     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6751     break;
    6752 
    6753   case 349:
    6754 
    6755 /* Line 1806 of yacc.c  */
    6756 #line 1442 "parser.yy"
    6757     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6758     break;
    6759 
    6760   case 350:
    6761 
    6762 /* Line 1806 of yacc.c  */
    6763 #line 1444 "parser.yy"
    6764     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6765     break;
    6766 
    6767   case 351:
    6768 
    6769 /* Line 1806 of yacc.c  */
    6770 #line 1446 "parser.yy"
    6771     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6772     break;
    6773 
    6774   case 353:
    6775 
    6776 /* Line 1806 of yacc.c  */
    6777 #line 1452 "parser.yy"
     6925  case 355:
     6926
     6927/* Line 1806 of yacc.c  */
     6928#line 1447 "parser.yy"
    67786929    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67796930    break;
    67806931
    6781   case 354:
    6782 
    6783 /* Line 1806 of yacc.c  */
    6784 #line 1454 "parser.yy"
     6932  case 356:
     6933
     6934/* Line 1806 of yacc.c  */
     6935#line 1449 "parser.yy"
    67856936    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67866937    break;
    67876938
    6788   case 355:
     6939  case 357:
     6940
     6941/* Line 1806 of yacc.c  */
     6942#line 1451 "parser.yy"
     6943    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6944    break;
     6945
     6946  case 358:
    67896947
    67906948/* Line 1806 of yacc.c  */
    67916949#line 1456 "parser.yy"
    6792     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6793     break;
    6794 
    6795   case 357:
    6796 
    6797 /* Line 1806 of yacc.c  */
    6798 #line 1462 "parser.yy"
    6799     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6800     break;
    6801 
    6802   case 358:
    6803 
    6804 /* Line 1806 of yacc.c  */
    6805 #line 1464 "parser.yy"
     6950    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6951    break;
     6952
     6953  case 359:
     6954
     6955/* Line 1806 of yacc.c  */
     6956#line 1458 "parser.yy"
     6957    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6958    break;
     6959
     6960  case 360:
     6961
     6962/* Line 1806 of yacc.c  */
     6963#line 1460 "parser.yy"
    68066964    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68076965    break;
    68086966
    6809   case 360:
     6967  case 363:
    68106968
    68116969/* Line 1806 of yacc.c  */
    68126970#line 1470 "parser.yy"
    6813     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6814     break;
    6815 
    6816   case 361:
     6971    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
     6972    break;
     6973
     6974  case 364:
    68176975
    68186976/* Line 1806 of yacc.c  */
    68196977#line 1472 "parser.yy"
    6820     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6821     break;
    6822 
    6823   case 362:
    6824 
    6825 /* Line 1806 of yacc.c  */
    6826 #line 1474 "parser.yy"
    6827     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6828     break;
    6829 
    6830   case 363:
    6831 
    6832 /* Line 1806 of yacc.c  */
    6833 #line 1479 "parser.yy"
    6834     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6835     break;
    6836 
    6837   case 364:
    6838 
    6839 /* Line 1806 of yacc.c  */
    6840 #line 1481 "parser.yy"
    6841     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6842     break;
    6843 
    6844   case 365:
    6845 
    6846 /* Line 1806 of yacc.c  */
    6847 #line 1483 "parser.yy"
    6848     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6849     break;
    6850 
    6851   case 368:
    6852 
    6853 /* Line 1806 of yacc.c  */
    6854 #line 1493 "parser.yy"
    6855     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    6856     break;
    6857 
    6858   case 369:
    6859 
    6860 /* Line 1806 of yacc.c  */
    6861 #line 1495 "parser.yy"
    68626978    {
    68636979                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    68666982    break;
    68676983
     6984  case 365:
     6985
     6986/* Line 1806 of yacc.c  */
     6987#line 1477 "parser.yy"
     6988    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6989    break;
     6990
     6991  case 366:
     6992
     6993/* Line 1806 of yacc.c  */
     6994#line 1479 "parser.yy"
     6995    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     6996    break;
     6997
     6998  case 367:
     6999
     7000/* Line 1806 of yacc.c  */
     7001#line 1481 "parser.yy"
     7002    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7003    break;
     7004
     7005  case 368:
     7006
     7007/* Line 1806 of yacc.c  */
     7008#line 1483 "parser.yy"
     7009    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7010    break;
     7011
     7012  case 369:
     7013
     7014/* Line 1806 of yacc.c  */
     7015#line 1488 "parser.yy"
     7016    { (yyval.aggKey) = DeclarationNode::Struct; }
     7017    break;
     7018
    68687019  case 370:
    68697020
    68707021/* Line 1806 of yacc.c  */
    6871 #line 1500 "parser.yy"
    6872     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7022#line 1490 "parser.yy"
     7023    { (yyval.aggKey) = DeclarationNode::Union; }
    68737024    break;
    68747025
     
    68767027
    68777028/* Line 1806 of yacc.c  */
    6878 #line 1502 "parser.yy"
    6879     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     7029#line 1495 "parser.yy"
     7030    { (yyval.decl) = 0; }
    68807031    break;
    68817032
     
    68837034
    68847035/* Line 1806 of yacc.c  */
    6885 #line 1504 "parser.yy"
    6886     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    6887     break;
    6888 
    6889   case 373:
     7036#line 1497 "parser.yy"
     7037    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     7038    break;
     7039
     7040  case 374:
     7041
     7042/* Line 1806 of yacc.c  */
     7043#line 1503 "parser.yy"
     7044    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     7045    break;
     7046
     7047  case 376:
    68907048
    68917049/* Line 1806 of yacc.c  */
    68927050#line 1506 "parser.yy"
    6893     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    6894     break;
    6895 
    6896   case 374:
    6897 
    6898 /* Line 1806 of yacc.c  */
    6899 #line 1511 "parser.yy"
    6900     { (yyval.aggKey) = DeclarationNode::Struct; }
    6901     break;
    6902 
    6903   case 375:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1513 "parser.yy"
    6907     { (yyval.aggKey) = DeclarationNode::Union; }
    6908     break;
    6909 
    6910   case 376:
    6911 
    6912 /* Line 1806 of yacc.c  */
    6913 #line 1518 "parser.yy"
    6914     { (yyval.decl) = 0; }
    6915     break;
    6916 
    6917   case 377:
    6918 
    6919 /* Line 1806 of yacc.c  */
    6920 #line 1520 "parser.yy"
    6921     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    6922     break;
    6923 
    6924   case 379:
    6925 
    6926 /* Line 1806 of yacc.c  */
    6927 #line 1526 "parser.yy"
    6928     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    6929     break;
    6930 
    6931   case 381:
    6932 
    6933 /* Line 1806 of yacc.c  */
    6934 #line 1529 "parser.yy"
    69357051    {   // mark all fields in list
    69367052                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    69407056    break;
    69417057
     7058  case 378:
     7059
     7060/* Line 1806 of yacc.c  */
     7061#line 1516 "parser.yy"
     7062    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7063    break;
     7064
     7065  case 379:
     7066
     7067/* Line 1806 of yacc.c  */
     7068#line 1518 "parser.yy"
     7069    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7070    break;
     7071
     7072  case 380:
     7073
     7074/* Line 1806 of yacc.c  */
     7075#line 1520 "parser.yy"
     7076    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7077    break;
     7078
     7079  case 381:
     7080
     7081/* Line 1806 of yacc.c  */
     7082#line 1525 "parser.yy"
     7083    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7084    break;
     7085
     7086  case 382:
     7087
     7088/* Line 1806 of yacc.c  */
     7089#line 1527 "parser.yy"
     7090    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7091    break;
     7092
    69427093  case 383:
    69437094
    69447095/* Line 1806 of yacc.c  */
    6945 #line 1539 "parser.yy"
    6946     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7096#line 1532 "parser.yy"
     7097    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    69477098    break;
    69487099
     
    69507101
    69517102/* Line 1806 of yacc.c  */
    6952 #line 1541 "parser.yy"
    6953     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7103#line 1534 "parser.yy"
     7104    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    69547105    break;
    69557106
     
    69577108
    69587109/* Line 1806 of yacc.c  */
    6959 #line 1543 "parser.yy"
    6960     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7110#line 1537 "parser.yy"
     7111    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    69617112    break;
    69627113
     
    69647115
    69657116/* Line 1806 of yacc.c  */
     7117#line 1540 "parser.yy"
     7118    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7119    break;
     7120
     7121  case 388:
     7122
     7123/* Line 1806 of yacc.c  */
     7124#line 1546 "parser.yy"
     7125    { (yyval.en) = 0; }
     7126    break;
     7127
     7128  case 389:
     7129
     7130/* Line 1806 of yacc.c  */
    69667131#line 1548 "parser.yy"
    6967     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6968     break;
    6969 
    6970   case 387:
    6971 
    6972 /* Line 1806 of yacc.c  */
    6973 #line 1550 "parser.yy"
    6974     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    6975     break;
    6976 
    6977   case 388:
    6978 
    6979 /* Line 1806 of yacc.c  */
    6980 #line 1555 "parser.yy"
    6981     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    6982     break;
    6983 
    6984   case 389:
    6985 
    6986 /* Line 1806 of yacc.c  */
    6987 #line 1557 "parser.yy"
    6988     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7132    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    69897133    break;
    69907134
     
    69927136
    69937137/* Line 1806 of yacc.c  */
    6994 #line 1560 "parser.yy"
    6995     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    6996     break;
    6997 
    6998   case 391:
    6999 
    7000 /* Line 1806 of yacc.c  */
    7001 #line 1563 "parser.yy"
    7002     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7138#line 1553 "parser.yy"
     7139    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7140    break;
     7141
     7142  case 392:
     7143
     7144/* Line 1806 of yacc.c  */
     7145#line 1562 "parser.yy"
     7146    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    70037147    break;
    70047148
     
    70067150
    70077151/* Line 1806 of yacc.c  */
    7008 #line 1569 "parser.yy"
    7009     { (yyval.en) = 0; }
    7010     break;
    7011 
    7012   case 394:
    7013 
    7014 /* Line 1806 of yacc.c  */
    7015 #line 1571 "parser.yy"
    7016     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7017     break;
    7018 
    7019   case 395:
    7020 
    7021 /* Line 1806 of yacc.c  */
    7022 #line 1576 "parser.yy"
    7023     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7024     break;
    7025 
    7026   case 397:
    7027 
    7028 /* Line 1806 of yacc.c  */
    7029 #line 1585 "parser.yy"
    7030     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    7031     break;
    7032 
    7033   case 398:
    7034 
    7035 /* Line 1806 of yacc.c  */
    7036 #line 1587 "parser.yy"
     7152#line 1564 "parser.yy"
    70377153    {
    70387154                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    70417157    break;
    70427158
     7159  case 394:
     7160
     7161/* Line 1806 of yacc.c  */
     7162#line 1569 "parser.yy"
     7163    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7164    break;
     7165
     7166  case 395:
     7167
     7168/* Line 1806 of yacc.c  */
     7169#line 1571 "parser.yy"
     7170    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7171    break;
     7172
     7173  case 396:
     7174
     7175/* Line 1806 of yacc.c  */
     7176#line 1576 "parser.yy"
     7177    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7178    break;
     7179
     7180  case 397:
     7181
     7182/* Line 1806 of yacc.c  */
     7183#line 1578 "parser.yy"
     7184    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7185    break;
     7186
     7187  case 398:
     7188
     7189/* Line 1806 of yacc.c  */
     7190#line 1583 "parser.yy"
     7191    { (yyval.en) = 0; }
     7192    break;
     7193
    70437194  case 399:
    70447195
    70457196/* Line 1806 of yacc.c  */
     7197#line 1585 "parser.yy"
     7198    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7199    break;
     7200
     7201  case 400:
     7202
     7203/* Line 1806 of yacc.c  */
    70467204#line 1592 "parser.yy"
    7047     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    7048     break;
    7049 
    7050   case 400:
    7051 
    7052 /* Line 1806 of yacc.c  */
    7053 #line 1594 "parser.yy"
    7054     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    7055     break;
    7056 
    7057   case 401:
    7058 
    7059 /* Line 1806 of yacc.c  */
    7060 #line 1599 "parser.yy"
    7061     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7062     break;
    7063 
    7064   case 402:
    7065 
    7066 /* Line 1806 of yacc.c  */
    7067 #line 1601 "parser.yy"
    7068     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    7069     break;
    7070 
    7071   case 403:
    7072 
    7073 /* Line 1806 of yacc.c  */
    7074 #line 1606 "parser.yy"
    7075     { (yyval.en) = 0; }
     7205    { (yyval.decl) = 0; }
    70767206    break;
    70777207
     
    70797209
    70807210/* Line 1806 of yacc.c  */
    7081 #line 1608 "parser.yy"
    7082     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7211#line 1600 "parser.yy"
     7212    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    70837213    break;
    70847214
     
    70867216
    70877217/* Line 1806 of yacc.c  */
    7088 #line 1615 "parser.yy"
     7218#line 1602 "parser.yy"
     7219    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7220    break;
     7221
     7222  case 406:
     7223
     7224/* Line 1806 of yacc.c  */
     7225#line 1604 "parser.yy"
     7226    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7227    break;
     7228
     7229  case 408:
     7230
     7231/* Line 1806 of yacc.c  */
     7232#line 1612 "parser.yy"
     7233    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7234    break;
     7235
     7236  case 409:
     7237
     7238/* Line 1806 of yacc.c  */
     7239#line 1614 "parser.yy"
     7240    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7241    break;
     7242
     7243  case 410:
     7244
     7245/* Line 1806 of yacc.c  */
     7246#line 1616 "parser.yy"
     7247    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7248    break;
     7249
     7250  case 412:
     7251
     7252/* Line 1806 of yacc.c  */
     7253#line 1622 "parser.yy"
     7254    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7255    break;
     7256
     7257  case 413:
     7258
     7259/* Line 1806 of yacc.c  */
     7260#line 1627 "parser.yy"
    70897261    { (yyval.decl) = 0; }
    70907262    break;
    70917263
    7092   case 409:
    7093 
    7094 /* Line 1806 of yacc.c  */
    7095 #line 1623 "parser.yy"
     7264  case 416:
     7265
     7266/* Line 1806 of yacc.c  */
     7267#line 1634 "parser.yy"
     7268    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7269    break;
     7270
     7271  case 419:
     7272
     7273/* Line 1806 of yacc.c  */
     7274#line 1641 "parser.yy"
    70967275    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    70977276    break;
    70987277
    7099   case 410:
    7100 
    7101 /* Line 1806 of yacc.c  */
    7102 #line 1625 "parser.yy"
    7103     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7104     break;
    7105 
    7106   case 411:
    7107 
    7108 /* Line 1806 of yacc.c  */
    7109 #line 1627 "parser.yy"
    7110     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7111     break;
    7112 
    7113   case 413:
    7114 
    7115 /* Line 1806 of yacc.c  */
    7116 #line 1635 "parser.yy"
     7278  case 420:
     7279
     7280/* Line 1806 of yacc.c  */
     7281#line 1643 "parser.yy"
    71177282    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71187283    break;
    71197284
    7120   case 414:
    7121 
    7122 /* Line 1806 of yacc.c  */
    7123 #line 1637 "parser.yy"
    7124     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7125     break;
    7126 
    7127   case 415:
    7128 
    7129 /* Line 1806 of yacc.c  */
    7130 #line 1639 "parser.yy"
    7131     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7132     break;
    7133 
    7134   case 417:
    7135 
    7136 /* Line 1806 of yacc.c  */
    7137 #line 1645 "parser.yy"
    7138     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7139     break;
    7140 
    7141   case 418:
    7142 
    7143 /* Line 1806 of yacc.c  */
    7144 #line 1650 "parser.yy"
    7145     { (yyval.decl) = 0; }
    7146     break;
    7147 
    7148   case 421:
     7285  case 422:
     7286
     7287/* Line 1806 of yacc.c  */
     7288#line 1652 "parser.yy"
     7289    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7290    break;
     7291
     7292  case 423:
     7293
     7294/* Line 1806 of yacc.c  */
     7295#line 1655 "parser.yy"
     7296    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7297    break;
     7298
     7299  case 424:
    71497300
    71507301/* Line 1806 of yacc.c  */
    71517302#line 1657 "parser.yy"
    7152     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7153     break;
    7154 
    7155   case 424:
    7156 
    7157 /* Line 1806 of yacc.c  */
    7158 #line 1664 "parser.yy"
    7159     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7160     break;
    7161 
    7162   case 425:
    7163 
    7164 /* Line 1806 of yacc.c  */
    7165 #line 1666 "parser.yy"
    7166     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7167     break;
    7168 
    7169   case 427:
    7170 
    7171 /* Line 1806 of yacc.c  */
    7172 #line 1675 "parser.yy"
    7173     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7174     break;
    7175 
    7176   case 428:
    7177 
    7178 /* Line 1806 of yacc.c  */
    7179 #line 1678 "parser.yy"
    7180     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7303    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    71817304    break;
    71827305
     
    71847307
    71857308/* Line 1806 of yacc.c  */
    7186 #line 1680 "parser.yy"
    7187     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    7188     break;
    7189 
    7190   case 434:
    7191 
    7192 /* Line 1806 of yacc.c  */
    7193 #line 1690 "parser.yy"
     7309#line 1667 "parser.yy"
    71947310    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71957311    break;
    71967312
    7197   case 436:
    7198 
    7199 /* Line 1806 of yacc.c  */
    7200 #line 1696 "parser.yy"
     7313  case 431:
     7314
     7315/* Line 1806 of yacc.c  */
     7316#line 1673 "parser.yy"
    72017317    {
    72027318                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72057321    break;
    72067322
    7207   case 437:
    7208 
    7209 /* Line 1806 of yacc.c  */
    7210 #line 1701 "parser.yy"
     7323  case 432:
     7324
     7325/* Line 1806 of yacc.c  */
     7326#line 1678 "parser.yy"
    72117327    {
    72127328                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72157331    break;
    72167332
    7217   case 439:
    7218 
    7219 /* Line 1806 of yacc.c  */
    7220 #line 1710 "parser.yy"
     7333  case 434:
     7334
     7335/* Line 1806 of yacc.c  */
     7336#line 1687 "parser.yy"
    72217337    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72227338    break;
    72237339
    7224   case 440:
    7225 
    7226 /* Line 1806 of yacc.c  */
    7227 #line 1719 "parser.yy"
     7340  case 435:
     7341
     7342/* Line 1806 of yacc.c  */
     7343#line 1696 "parser.yy"
    72287344    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    72297345    break;
    72307346
    7231   case 441:
    7232 
    7233 /* Line 1806 of yacc.c  */
    7234 #line 1721 "parser.yy"
     7347  case 436:
     7348
     7349/* Line 1806 of yacc.c  */
     7350#line 1698 "parser.yy"
    72357351    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    72367352    break;
    72377353
     7354  case 448:
     7355
     7356/* Line 1806 of yacc.c  */
     7357#line 1723 "parser.yy"
     7358    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7359    break;
     7360
     7361  case 452:
     7362
     7363/* Line 1806 of yacc.c  */
     7364#line 1731 "parser.yy"
     7365    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7366    break;
     7367
    72387368  case 453:
    72397369
    72407370/* Line 1806 of yacc.c  */
    7241 #line 1746 "parser.yy"
    7242     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7371#line 1736 "parser.yy"
     7372    { (yyval.in) = 0; }
     7373    break;
     7374
     7375  case 454:
     7376
     7377/* Line 1806 of yacc.c  */
     7378#line 1738 "parser.yy"
     7379    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7380    break;
     7381
     7382  case 455:
     7383
     7384/* Line 1806 of yacc.c  */
     7385#line 1740 "parser.yy"
     7386    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7387    break;
     7388
     7389  case 456:
     7390
     7391/* Line 1806 of yacc.c  */
     7392#line 1744 "parser.yy"
     7393    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    72437394    break;
    72447395
     
    72467397
    72477398/* Line 1806 of yacc.c  */
    7248 #line 1754 "parser.yy"
    7249     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7399#line 1745 "parser.yy"
     7400    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    72507401    break;
    72517402
     
    72537404
    72547405/* Line 1806 of yacc.c  */
    7255 #line 1759 "parser.yy"
     7406#line 1750 "parser.yy"
    72567407    { (yyval.in) = 0; }
    72577408    break;
    72587409
    7259   case 459:
    7260 
    7261 /* Line 1806 of yacc.c  */
    7262 #line 1761 "parser.yy"
    7263     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7264     break;
    7265 
    72667410  case 460:
    72677411
    72687412/* Line 1806 of yacc.c  */
    7269 #line 1763 "parser.yy"
    7270     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7413#line 1752 "parser.yy"
     7414    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    72717415    break;
    72727416
     
    72747418
    72757419/* Line 1806 of yacc.c  */
    7276 #line 1767 "parser.yy"
    7277     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7420#line 1753 "parser.yy"
     7421    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    72787422    break;
    72797423
     
    72817425
    72827426/* Line 1806 of yacc.c  */
    7283 #line 1768 "parser.yy"
    7284     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7285     break;
    7286 
    7287   case 463:
    7288 
    7289 /* Line 1806 of yacc.c  */
    7290 #line 1773 "parser.yy"
    7291     { (yyval.in) = 0; }
    7292     break;
    7293 
    7294   case 465:
    7295 
    7296 /* Line 1806 of yacc.c  */
    7297 #line 1775 "parser.yy"
    7298     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7427#line 1755 "parser.yy"
     7428    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7429    break;
     7430
     7431  case 464:
     7432
     7433/* Line 1806 of yacc.c  */
     7434#line 1771 "parser.yy"
     7435    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    72997436    break;
    73007437
     
    73027439
    73037440/* Line 1806 of yacc.c  */
    7304 #line 1776 "parser.yy"
    7305     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7441#line 1777 "parser.yy"
     7442    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    73067443    break;
    73077444
     
    73097446
    73107447/* Line 1806 of yacc.c  */
    7311 #line 1778 "parser.yy"
    7312     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7448#line 1783 "parser.yy"
     7449    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     7450    break;
     7451
     7452  case 468:
     7453
     7454/* Line 1806 of yacc.c  */
     7455#line 1786 "parser.yy"
     7456    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    73137457    break;
    73147458
     
    73167460
    73177461/* Line 1806 of yacc.c  */
    7318 #line 1794 "parser.yy"
    7319     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     7462#line 1788 "parser.yy"
     7463    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7464    break;
     7465
     7466  case 470:
     7467
     7468/* Line 1806 of yacc.c  */
     7469#line 1790 "parser.yy"
     7470    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    73207471    break;
    73217472
     
    73237474
    73247475/* Line 1806 of yacc.c  */
    7325 #line 1800 "parser.yy"
    7326     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    7327     break;
    7328 
    7329   case 472:
    7330 
    7331 /* Line 1806 of yacc.c  */
    7332 #line 1806 "parser.yy"
    7333     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     7476#line 1792 "parser.yy"
     7477    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    73347478    break;
    73357479
     
    73377481
    73387482/* Line 1806 of yacc.c  */
    7339 #line 1809 "parser.yy"
    7340     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7483#line 1816 "parser.yy"
     7484    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73417485    break;
    73427486
     
    73447488
    73457489/* Line 1806 of yacc.c  */
    7346 #line 1811 "parser.yy"
    7347     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7490#line 1818 "parser.yy"
     7491    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73487492    break;
    73497493
     
    73517495
    73527496/* Line 1806 of yacc.c  */
    7353 #line 1813 "parser.yy"
    7354     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    7355     break;
    7356 
    7357   case 476:
    7358 
    7359 /* Line 1806 of yacc.c  */
    7360 #line 1815 "parser.yy"
    7361     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     7497#line 1820 "parser.yy"
     7498    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7499    break;
     7500
     7501  case 477:
     7502
     7503/* Line 1806 of yacc.c  */
     7504#line 1826 "parser.yy"
     7505    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73627506    break;
    73637507
     
    73657509
    73667510/* Line 1806 of yacc.c  */
     7511#line 1828 "parser.yy"
     7512    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7513    break;
     7514
     7515  case 479:
     7516
     7517/* Line 1806 of yacc.c  */
     7518#line 1833 "parser.yy"
     7519    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7520    break;
     7521
     7522  case 481:
     7523
     7524/* Line 1806 of yacc.c  */
    73677525#line 1839 "parser.yy"
    7368     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7369     break;
    7370 
    7371   case 479:
    7372 
    7373 /* Line 1806 of yacc.c  */
    7374 #line 1841 "parser.yy"
    7375     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7376     break;
    7377 
    7378   case 480:
    7379 
    7380 /* Line 1806 of yacc.c  */
    7381 #line 1843 "parser.yy"
    7382     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7526    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    73837527    break;
    73847528
     
    73867530
    73877531/* Line 1806 of yacc.c  */
    7388 #line 1849 "parser.yy"
    7389     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7532#line 1844 "parser.yy"
     7533    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    73907534    break;
    73917535
     
    73937537
    73947538/* Line 1806 of yacc.c  */
    7395 #line 1851 "parser.yy"
    7396     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7397     break;
    7398 
    7399   case 484:
     7539#line 1846 "parser.yy"
     7540    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7541    break;
     7542
     7543  case 485:
     7544
     7545/* Line 1806 of yacc.c  */
     7546#line 1852 "parser.yy"
     7547    { (yyval.tclass) = DeclarationNode::Otype; }
     7548    break;
     7549
     7550  case 486:
     7551
     7552/* Line 1806 of yacc.c  */
     7553#line 1854 "parser.yy"
     7554    { (yyval.tclass) = DeclarationNode::Ftype; }
     7555    break;
     7556
     7557  case 487:
    74007558
    74017559/* Line 1806 of yacc.c  */
    74027560#line 1856 "parser.yy"
    7403     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7404     break;
    7405 
    7406   case 486:
    7407 
    7408 /* Line 1806 of yacc.c  */
    7409 #line 1862 "parser.yy"
    7410     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    7411     break;
    7412 
    7413   case 487:
    7414 
    7415 /* Line 1806 of yacc.c  */
    7416 #line 1867 "parser.yy"
    7417     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7561    { (yyval.tclass) = DeclarationNode::Dtype; }
    74187562    break;
    74197563
     
    74217565
    74227566/* Line 1806 of yacc.c  */
    7423 #line 1869 "parser.yy"
    7424     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7567#line 1861 "parser.yy"
     7568    { (yyval.decl) = 0; }
     7569    break;
     7570
     7571  case 489:
     7572
     7573/* Line 1806 of yacc.c  */
     7574#line 1863 "parser.yy"
     7575    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    74257576    break;
    74267577
     
    74287579
    74297580/* Line 1806 of yacc.c  */
    7430 #line 1875 "parser.yy"
    7431     { (yyval.tclass) = DeclarationNode::Otype; }
    7432     break;
    7433 
    7434   case 491:
    7435 
    7436 /* Line 1806 of yacc.c  */
    7437 #line 1877 "parser.yy"
    7438     { (yyval.tclass) = DeclarationNode::Ftype; }
    7439     break;
    7440 
    7441   case 492:
    7442 
    7443 /* Line 1806 of yacc.c  */
    7444 #line 1879 "parser.yy"
    7445     { (yyval.tclass) = DeclarationNode::Dtype; }
    7446     break;
    7447 
    7448   case 493:
    7449 
    7450 /* Line 1806 of yacc.c  */
    7451 #line 1884 "parser.yy"
    7452     { (yyval.decl) = 0; }
    7453     break;
    7454 
    7455   case 494:
    7456 
    7457 /* Line 1806 of yacc.c  */
    7458 #line 1886 "parser.yy"
    7459     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7460     break;
    7461 
    7462   case 495:
    7463 
    7464 /* Line 1806 of yacc.c  */
    7465 #line 1891 "parser.yy"
     7581#line 1868 "parser.yy"
    74667582    {
    74677583                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    74707586    break;
    74717587
     7588  case 491:
     7589
     7590/* Line 1806 of yacc.c  */
     7591#line 1873 "parser.yy"
     7592    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7593    break;
     7594
     7595  case 492:
     7596
     7597/* Line 1806 of yacc.c  */
     7598#line 1875 "parser.yy"
     7599    { (yyval.decl) = 0; }
     7600    break;
     7601
     7602  case 493:
     7603
     7604/* Line 1806 of yacc.c  */
     7605#line 1880 "parser.yy"
     7606    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     7607    break;
     7608
     7609  case 495:
     7610
     7611/* Line 1806 of yacc.c  */
     7612#line 1883 "parser.yy"
     7613    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7614    break;
     7615
    74727616  case 496:
    74737617
    74747618/* Line 1806 of yacc.c  */
    7475 #line 1896 "parser.yy"
    7476     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7619#line 1885 "parser.yy"
     7620    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    74777621    break;
    74787622
     
    74807624
    74817625/* Line 1806 of yacc.c  */
    7482 #line 1898 "parser.yy"
    7483     { (yyval.decl) = 0; }
     7626#line 1890 "parser.yy"
     7627    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    74847628    break;
    74857629
     
    74877631
    74887632/* Line 1806 of yacc.c  */
    7489 #line 1903 "parser.yy"
    7490     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     7633#line 1892 "parser.yy"
     7634    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7635    break;
     7636
     7637  case 499:
     7638
     7639/* Line 1806 of yacc.c  */
     7640#line 1894 "parser.yy"
     7641    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    74917642    break;
    74927643
     
    74947645
    74957646/* Line 1806 of yacc.c  */
     7647#line 1899 "parser.yy"
     7648    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7649    break;
     7650
     7651  case 501:
     7652
     7653/* Line 1806 of yacc.c  */
     7654#line 1901 "parser.yy"
     7655    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     7656    break;
     7657
     7658  case 502:
     7659
     7660/* Line 1806 of yacc.c  */
    74967661#line 1906 "parser.yy"
    7497     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    7498     break;
    7499 
    7500   case 501:
    7501 
    7502 /* Line 1806 of yacc.c  */
    7503 #line 1908 "parser.yy"
    7504     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    7505     break;
    7506 
    7507   case 502:
    7508 
    7509 /* Line 1806 of yacc.c  */
    7510 #line 1913 "parser.yy"
    7511     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7512     break;
    7513 
    7514   case 503:
    7515 
    7516 /* Line 1806 of yacc.c  */
    7517 #line 1915 "parser.yy"
    7518     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    7519     break;
    7520 
    7521   case 504:
    7522 
    7523 /* Line 1806 of yacc.c  */
    7524 #line 1917 "parser.yy"
    7525     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    7526     break;
    7527 
    7528   case 505:
    7529 
    7530 /* Line 1806 of yacc.c  */
    7531 #line 1922 "parser.yy"
    7532     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7533     break;
    7534 
    7535   case 506:
    7536 
    7537 /* Line 1806 of yacc.c  */
    7538 #line 1924 "parser.yy"
    7539     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7540     break;
    7541 
    7542   case 507:
    7543 
    7544 /* Line 1806 of yacc.c  */
    7545 #line 1929 "parser.yy"
    75467662    {
    75477663                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    75507666    break;
    75517667
    7552   case 508:
    7553 
    7554 /* Line 1806 of yacc.c  */
    7555 #line 1934 "parser.yy"
     7668  case 503:
     7669
     7670/* Line 1806 of yacc.c  */
     7671#line 1911 "parser.yy"
    75567672    {
    75577673                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    75607676    break;
    75617677
    7562   case 509:
    7563 
    7564 /* Line 1806 of yacc.c  */
    7565 #line 1942 "parser.yy"
     7678  case 504:
     7679
     7680/* Line 1806 of yacc.c  */
     7681#line 1919 "parser.yy"
    75667682    {
    75677683                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    75707686    break;
    75717687
    7572   case 510:
    7573 
    7574 /* Line 1806 of yacc.c  */
    7575 #line 1947 "parser.yy"
     7688  case 505:
     7689
     7690/* Line 1806 of yacc.c  */
     7691#line 1924 "parser.yy"
    75767692    {
    75777693                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    75807696    break;
    75817697
    7582   case 511:
    7583 
    7584 /* Line 1806 of yacc.c  */
    7585 #line 1952 "parser.yy"
     7698  case 506:
     7699
     7700/* Line 1806 of yacc.c  */
     7701#line 1929 "parser.yy"
    75867702    {
    75877703                        typedefTable.leaveTrait();
     
    75917707    break;
    75927708
    7593   case 513:
    7594 
    7595 /* Line 1806 of yacc.c  */
    7596 #line 1962 "parser.yy"
     7709  case 508:
     7710
     7711/* Line 1806 of yacc.c  */
     7712#line 1939 "parser.yy"
    75977713    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    75987714    break;
    75997715
    7600   case 516:
    7601 
    7602 /* Line 1806 of yacc.c  */
    7603 #line 1972 "parser.yy"
     7716  case 511:
     7717
     7718/* Line 1806 of yacc.c  */
     7719#line 1949 "parser.yy"
    76047720    {
    76057721                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76087724    break;
    76097725
    7610   case 517:
    7611 
    7612 /* Line 1806 of yacc.c  */
    7613 #line 1977 "parser.yy"
     7726  case 512:
     7727
     7728/* Line 1806 of yacc.c  */
     7729#line 1954 "parser.yy"
    76147730    {
    76157731                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76187734    break;
    76197735
    7620   case 518:
    7621 
    7622 /* Line 1806 of yacc.c  */
    7623 #line 1982 "parser.yy"
     7736  case 513:
     7737
     7738/* Line 1806 of yacc.c  */
     7739#line 1959 "parser.yy"
    76247740    {
    76257741                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76287744    break;
    76297745
    7630   case 519:
    7631 
    7632 /* Line 1806 of yacc.c  */
    7633 #line 1990 "parser.yy"
     7746  case 514:
     7747
     7748/* Line 1806 of yacc.c  */
     7749#line 1967 "parser.yy"
    76347750    {
    76357751                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76387754    break;
    76397755
    7640   case 520:
    7641 
    7642 /* Line 1806 of yacc.c  */
    7643 #line 1995 "parser.yy"
     7756  case 515:
     7757
     7758/* Line 1806 of yacc.c  */
     7759#line 1972 "parser.yy"
    76447760    {
    76457761                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76487764    break;
    76497765
    7650   case 521:
     7766  case 516:
     7767
     7768/* Line 1806 of yacc.c  */
     7769#line 1982 "parser.yy"
     7770    {}
     7771    break;
     7772
     7773  case 517:
     7774
     7775/* Line 1806 of yacc.c  */
     7776#line 1984 "parser.yy"
     7777    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     7778    break;
     7779
     7780  case 519:
     7781
     7782/* Line 1806 of yacc.c  */
     7783#line 1990 "parser.yy"
     7784    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7785    break;
     7786
     7787  case 520:
     7788
     7789/* Line 1806 of yacc.c  */
     7790#line 1995 "parser.yy"
     7791    { (yyval.decl) = 0; }
     7792    break;
     7793
     7794  case 524:
     7795
     7796/* Line 1806 of yacc.c  */
     7797#line 2003 "parser.yy"
     7798    {}
     7799    break;
     7800
     7801  case 525:
    76517802
    76527803/* Line 1806 of yacc.c  */
    76537804#line 2005 "parser.yy"
    7654     {}
    7655     break;
    7656 
    7657   case 522:
    7658 
    7659 /* Line 1806 of yacc.c  */
    7660 #line 2007 "parser.yy"
    7661     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    7662     break;
    7663 
    7664   case 524:
    7665 
    7666 /* Line 1806 of yacc.c  */
    7667 #line 2013 "parser.yy"
    7668     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7669     break;
    7670 
    7671   case 525:
    7672 
    7673 /* Line 1806 of yacc.c  */
    7674 #line 2018 "parser.yy"
    7675     { (yyval.decl) = 0; }
    7676     break;
    7677 
    7678   case 529:
    7679 
    7680 /* Line 1806 of yacc.c  */
    7681 #line 2026 "parser.yy"
    7682     {}
    7683     break;
    7684 
    7685   case 530:
    7686 
    7687 /* Line 1806 of yacc.c  */
    7688 #line 2028 "parser.yy"
    76897805    {
    76907806                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    7691                         linkage = LinkageSpec::linkageCheck( (yyvsp[(2) - (2)].tok) );
     7807                        linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
    76927808                }
    76937809    break;
    76947810
    7695   case 531:
    7696 
    7697 /* Line 1806 of yacc.c  */
    7698 #line 2033 "parser.yy"
     7811  case 526:
     7812
     7813/* Line 1806 of yacc.c  */
     7814#line 2010 "parser.yy"
    76997815    {
    77007816                        linkage = linkageStack.top();
     
    77047820    break;
    77057821
    7706   case 532:
    7707 
    7708 /* Line 1806 of yacc.c  */
    7709 #line 2039 "parser.yy"
     7822  case 527:
     7823
     7824/* Line 1806 of yacc.c  */
     7825#line 2016 "parser.yy"
    77107826    {   // mark all fields in list
    77117827                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    77157831    break;
    77167832
    7717   case 534:
    7718 
    7719 /* Line 1806 of yacc.c  */
    7720 #line 2054 "parser.yy"
     7833  case 529:
     7834
     7835/* Line 1806 of yacc.c  */
     7836#line 2031 "parser.yy"
    77217837    {
    77227838                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77267842    break;
    77277843
    7728   case 535:
    7729 
    7730 /* Line 1806 of yacc.c  */
    7731 #line 2060 "parser.yy"
     7844  case 530:
     7845
     7846/* Line 1806 of yacc.c  */
     7847#line 2037 "parser.yy"
    77327848    {
    77337849                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77377853    break;
    77387854
    7739   case 536:
    7740 
    7741 /* Line 1806 of yacc.c  */
    7742 #line 2069 "parser.yy"
     7855  case 531:
     7856
     7857/* Line 1806 of yacc.c  */
     7858#line 2046 "parser.yy"
    77437859    {
    77447860                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77487864    break;
    77497865
    7750   case 537:
    7751 
    7752 /* Line 1806 of yacc.c  */
    7753 #line 2075 "parser.yy"
     7866  case 532:
     7867
     7868/* Line 1806 of yacc.c  */
     7869#line 2052 "parser.yy"
    77547870    {
    77557871                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77597875    break;
    77607876
    7761   case 538:
    7762 
    7763 /* Line 1806 of yacc.c  */
    7764 #line 2081 "parser.yy"
     7877  case 533:
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 2058 "parser.yy"
    77657881    {
    77667882                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77707886    break;
    77717887
    7772   case 539:
    7773 
    7774 /* Line 1806 of yacc.c  */
    7775 #line 2087 "parser.yy"
     7888  case 534:
     7889
     7890/* Line 1806 of yacc.c  */
     7891#line 2064 "parser.yy"
    77767892    {
    77777893                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77817897    break;
    77827898
    7783   case 540:
    7784 
    7785 /* Line 1806 of yacc.c  */
    7786 #line 2093 "parser.yy"
     7899  case 535:
     7900
     7901/* Line 1806 of yacc.c  */
     7902#line 2070 "parser.yy"
    77877903    {
    77887904                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77927908    break;
    77937909
    7794   case 541:
    7795 
    7796 /* Line 1806 of yacc.c  */
    7797 #line 2101 "parser.yy"
     7910  case 536:
     7911
     7912/* Line 1806 of yacc.c  */
     7913#line 2078 "parser.yy"
    77987914    {
    77997915                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78037919    break;
    78047920
    7805   case 542:
    7806 
    7807 /* Line 1806 of yacc.c  */
    7808 #line 2107 "parser.yy"
     7921  case 537:
     7922
     7923/* Line 1806 of yacc.c  */
     7924#line 2084 "parser.yy"
    78097925    {
    78107926                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78147930    break;
    78157931
    7816   case 543:
    7817 
    7818 /* Line 1806 of yacc.c  */
    7819 #line 2115 "parser.yy"
     7932  case 538:
     7933
     7934/* Line 1806 of yacc.c  */
     7935#line 2092 "parser.yy"
    78207936    {
    78217937                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78257941    break;
    78267942
    7827   case 544:
    7828 
    7829 /* Line 1806 of yacc.c  */
    7830 #line 2121 "parser.yy"
     7943  case 539:
     7944
     7945/* Line 1806 of yacc.c  */
     7946#line 2098 "parser.yy"
    78317947    {
    78327948                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78367952    break;
    78377953
    7838   case 548:
     7954  case 543:
     7955
     7956/* Line 1806 of yacc.c  */
     7957#line 2113 "parser.yy"
     7958    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7959    break;
     7960
     7961  case 545:
     7962
     7963/* Line 1806 of yacc.c  */
     7964#line 2118 "parser.yy"
     7965    { delete (yyvsp[(3) - (5)].str); }
     7966    break;
     7967
     7968  case 546:
     7969
     7970/* Line 1806 of yacc.c  */
     7971#line 2123 "parser.yy"
     7972    { (yyval.decl) = 0; }
     7973    break;
     7974
     7975  case 549:
     7976
     7977/* Line 1806 of yacc.c  */
     7978#line 2130 "parser.yy"
     7979    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7980    break;
     7981
     7982  case 550:
    78397983
    78407984/* Line 1806 of yacc.c  */
    78417985#line 2136 "parser.yy"
    7842     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    7843     break;
    7844 
    7845   case 550:
    7846 
    7847 /* Line 1806 of yacc.c  */
    7848 #line 2141 "parser.yy"
    7849     { delete (yyvsp[(3) - (5)].str); }
    7850     break;
    7851 
    7852   case 551:
    7853 
    7854 /* Line 1806 of yacc.c  */
    7855 #line 2146 "parser.yy"
    78567986    { (yyval.decl) = 0; }
    78577987    break;
    78587988
    7859   case 554:
     7989  case 555:
     7990
     7991/* Line 1806 of yacc.c  */
     7992#line 2147 "parser.yy"
     7993    { delete (yyvsp[(3) - (4)].en); }
     7994    break;
     7995
     7996  case 556:
     7997
     7998/* Line 1806 of yacc.c  */
     7999#line 2151 "parser.yy"
     8000    { delete (yyvsp[(1) - (1)].tok); }
     8001    break;
     8002
     8003  case 557:
     8004
     8005/* Line 1806 of yacc.c  */
     8006#line 2152 "parser.yy"
     8007    { delete (yyvsp[(1) - (1)].decl); }
     8008    break;
     8009
     8010  case 558:
    78608011
    78618012/* Line 1806 of yacc.c  */
    78628013#line 2153 "parser.yy"
    7863     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7864     break;
    7865 
    7866   case 555:
    7867 
    7868 /* Line 1806 of yacc.c  */
    7869 #line 2159 "parser.yy"
    7870     { (yyval.decl) = 0; }
     8014    { delete (yyvsp[(1) - (1)].decl); }
     8015    break;
     8016
     8017  case 559:
     8018
     8019/* Line 1806 of yacc.c  */
     8020#line 2154 "parser.yy"
     8021    { delete (yyvsp[(1) - (1)].decl); }
    78718022    break;
    78728023
     
    78748025
    78758026/* Line 1806 of yacc.c  */
    7876 #line 2170 "parser.yy"
    7877     { delete (yyvsp[(3) - (4)].en); }
    7878     break;
    7879 
    7880   case 561:
    7881 
    7882 /* Line 1806 of yacc.c  */
    7883 #line 2174 "parser.yy"
    7884     { delete (yyvsp[(1) - (1)].tok); }
     8027#line 2189 "parser.yy"
     8028    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78858029    break;
    78868030
     
    78888032
    78898033/* Line 1806 of yacc.c  */
    7890 #line 2175 "parser.yy"
    7891     { delete (yyvsp[(1) - (1)].decl); }
     8034#line 2192 "parser.yy"
     8035    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78928036    break;
    78938037
     
    78958039
    78968040/* Line 1806 of yacc.c  */
    7897 #line 2176 "parser.yy"
    7898     { delete (yyvsp[(1) - (1)].decl); }
     8041#line 2194 "parser.yy"
     8042    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78998043    break;
    79008044
     
    79028046
    79038047/* Line 1806 of yacc.c  */
    7904 #line 2177 "parser.yy"
    7905     { delete (yyvsp[(1) - (1)].decl); }
    7906     break;
    7907 
    7908   case 565:
    7909 
    7910 /* Line 1806 of yacc.c  */
    7911 #line 2212 "parser.yy"
    7912     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7913     break;
    7914 
    7915   case 567:
    7916 
    7917 /* Line 1806 of yacc.c  */
    7918 #line 2215 "parser.yy"
    7919     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7920     break;
    7921 
    7922   case 568:
    7923 
    7924 /* Line 1806 of yacc.c  */
    7925 #line 2217 "parser.yy"
    7926     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7927     break;
    7928 
    7929   case 569:
    7930 
    7931 /* Line 1806 of yacc.c  */
    7932 #line 2222 "parser.yy"
     8048#line 2199 "parser.yy"
    79338049    {
    79348050                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79378053    break;
    79388054
     8055  case 565:
     8056
     8057/* Line 1806 of yacc.c  */
     8058#line 2204 "parser.yy"
     8059    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8060    break;
     8061
     8062  case 566:
     8063
     8064/* Line 1806 of yacc.c  */
     8065#line 2209 "parser.yy"
     8066    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8067    break;
     8068
     8069  case 567:
     8070
     8071/* Line 1806 of yacc.c  */
     8072#line 2211 "parser.yy"
     8073    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8074    break;
     8075
     8076  case 568:
     8077
     8078/* Line 1806 of yacc.c  */
     8079#line 2213 "parser.yy"
     8080    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8081    break;
     8082
     8083  case 569:
     8084
     8085/* Line 1806 of yacc.c  */
     8086#line 2218 "parser.yy"
     8087    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8088    break;
     8089
    79398090  case 570:
    79408091
    79418092/* Line 1806 of yacc.c  */
    7942 #line 2227 "parser.yy"
     8093#line 2220 "parser.yy"
     8094    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8095    break;
     8096
     8097  case 571:
     8098
     8099/* Line 1806 of yacc.c  */
     8100#line 2222 "parser.yy"
     8101    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8102    break;
     8103
     8104  case 572:
     8105
     8106/* Line 1806 of yacc.c  */
     8107#line 2224 "parser.yy"
    79438108    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79448109    break;
    79458110
    7946   case 571:
    7947 
    7948 /* Line 1806 of yacc.c  */
    7949 #line 2232 "parser.yy"
     8111  case 573:
     8112
     8113/* Line 1806 of yacc.c  */
     8114#line 2229 "parser.yy"
     8115    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8116    break;
     8117
     8118  case 574:
     8119
     8120/* Line 1806 of yacc.c  */
     8121#line 2231 "parser.yy"
     8122    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8123    break;
     8124
     8125  case 575:
     8126
     8127/* Line 1806 of yacc.c  */
     8128#line 2240 "parser.yy"
     8129    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8130    break;
     8131
     8132  case 577:
     8133
     8134/* Line 1806 of yacc.c  */
     8135#line 2243 "parser.yy"
     8136    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8137    break;
     8138
     8139  case 578:
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2248 "parser.yy"
     8143    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8144    break;
     8145
     8146  case 579:
     8147
     8148/* Line 1806 of yacc.c  */
     8149#line 2250 "parser.yy"
     8150    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8151    break;
     8152
     8153  case 580:
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2252 "parser.yy"
     8157    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8158    break;
     8159
     8160  case 581:
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2257 "parser.yy"
    79508164    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    79518165    break;
    79528166
    7953   case 572:
    7954 
    7955 /* Line 1806 of yacc.c  */
    7956 #line 2234 "parser.yy"
     8167  case 582:
     8168
     8169/* Line 1806 of yacc.c  */
     8170#line 2259 "parser.yy"
    79578171    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    79588172    break;
    79598173
    7960   case 573:
    7961 
    7962 /* Line 1806 of yacc.c  */
    7963 #line 2236 "parser.yy"
     8174  case 583:
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2261 "parser.yy"
    79648178    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79658179    break;
    79668180
    7967   case 574:
    7968 
    7969 /* Line 1806 of yacc.c  */
    7970 #line 2241 "parser.yy"
     8181  case 584:
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2266 "parser.yy"
     8185    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8186    break;
     8187
     8188  case 585:
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2268 "parser.yy"
     8192    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8193    break;
     8194
     8195  case 586:
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2270 "parser.yy"
     8199    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8200    break;
     8201
     8202  case 590:
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2285 "parser.yy"
     8206    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8207    break;
     8208
     8209  case 591:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2287 "parser.yy"
     8213    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8214    break;
     8215
     8216  case 592:
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2289 "parser.yy"
     8220    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8221    break;
     8222
     8223  case 593:
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2294 "parser.yy"
     8227    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8228    break;
     8229
     8230  case 594:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2296 "parser.yy"
     8234    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8235    break;
     8236
     8237  case 595:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2298 "parser.yy"
     8241    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8242    break;
     8243
     8244  case 596:
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2303 "parser.yy"
     8248    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8249    break;
     8250
     8251  case 597:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2305 "parser.yy"
     8255    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8256    break;
     8257
     8258  case 598:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2307 "parser.yy"
     8262    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8263    break;
     8264
     8265  case 599:
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2322 "parser.yy"
     8269    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8270    break;
     8271
     8272  case 601:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2325 "parser.yy"
     8276    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8277    break;
     8278
     8279  case 602:
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2327 "parser.yy"
     8283    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8284    break;
     8285
     8286  case 604:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2333 "parser.yy"
     8290    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8291    break;
     8292
     8293  case 605:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2338 "parser.yy"
     8297    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8298    break;
     8299
     8300  case 606:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2340 "parser.yy"
     8304    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8305    break;
     8306
     8307  case 607:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2342 "parser.yy"
     8311    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8312    break;
     8313
     8314  case 608:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2347 "parser.yy"
    79718318    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    79728319    break;
    79738320
    7974   case 575:
    7975 
    7976 /* Line 1806 of yacc.c  */
    7977 #line 2243 "parser.yy"
     8321  case 609:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2349 "parser.yy"
    79788325    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79798326    break;
    79808327
    7981   case 576:
    7982 
    7983 /* Line 1806 of yacc.c  */
    7984 #line 2245 "parser.yy"
     8328  case 610:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2351 "parser.yy"
    79858332    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79868333    break;
    79878334
    7988   case 577:
    7989 
    7990 /* Line 1806 of yacc.c  */
    7991 #line 2247 "parser.yy"
     8335  case 611:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2353 "parser.yy"
    79928339    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79938340    break;
    79948341
    7995   case 578:
    7996 
    7997 /* Line 1806 of yacc.c  */
    7998 #line 2252 "parser.yy"
     8342  case 612:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2358 "parser.yy"
     8346    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8347    break;
     8348
     8349  case 613:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2360 "parser.yy"
    79998353    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80008354    break;
    80018355
    8002   case 579:
    8003 
    8004 /* Line 1806 of yacc.c  */
    8005 #line 2254 "parser.yy"
     8356  case 614:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2362 "parser.yy"
    80068360    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80078361    break;
    80088362
    8009   case 580:
    8010 
    8011 /* Line 1806 of yacc.c  */
    8012 #line 2263 "parser.yy"
     8363  case 615:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2372 "parser.yy"
    80138367    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80148368    break;
    80158369
    8016   case 582:
    8017 
    8018 /* Line 1806 of yacc.c  */
    8019 #line 2266 "parser.yy"
     8370  case 617:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2375 "parser.yy"
    80208374    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80218375    break;
    80228376
    8023   case 583:
    8024 
    8025 /* Line 1806 of yacc.c  */
    8026 #line 2271 "parser.yy"
     8377  case 618:
     8378
     8379/* Line 1806 of yacc.c  */
     8380#line 2377 "parser.yy"
     8381    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8382    break;
     8383
     8384  case 619:
     8385
     8386/* Line 1806 of yacc.c  */
     8387#line 2382 "parser.yy"
     8388    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8389    break;
     8390
     8391  case 620:
     8392
     8393/* Line 1806 of yacc.c  */
     8394#line 2384 "parser.yy"
     8395    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8396    break;
     8397
     8398  case 621:
     8399
     8400/* Line 1806 of yacc.c  */
     8401#line 2386 "parser.yy"
     8402    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8403    break;
     8404
     8405  case 622:
     8406
     8407/* Line 1806 of yacc.c  */
     8408#line 2391 "parser.yy"
     8409    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8410    break;
     8411
     8412  case 623:
     8413
     8414/* Line 1806 of yacc.c  */
     8415#line 2393 "parser.yy"
     8416    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8417    break;
     8418
     8419  case 624:
     8420
     8421/* Line 1806 of yacc.c  */
     8422#line 2395 "parser.yy"
     8423    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8424    break;
     8425
     8426  case 625:
     8427
     8428/* Line 1806 of yacc.c  */
     8429#line 2397 "parser.yy"
     8430    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8431    break;
     8432
     8433  case 626:
     8434
     8435/* Line 1806 of yacc.c  */
     8436#line 2402 "parser.yy"
    80278437    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80288438    break;
    80298439
    8030   case 584:
    8031 
    8032 /* Line 1806 of yacc.c  */
    8033 #line 2273 "parser.yy"
     8440  case 627:
     8441
     8442/* Line 1806 of yacc.c  */
     8443#line 2404 "parser.yy"
    80348444    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80358445    break;
    80368446
    8037   case 585:
    8038 
    8039 /* Line 1806 of yacc.c  */
    8040 #line 2275 "parser.yy"
     8447  case 628:
     8448
     8449/* Line 1806 of yacc.c  */
     8450#line 2406 "parser.yy"
    80418451    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80428452    break;
    80438453
    8044   case 586:
    8045 
    8046 /* Line 1806 of yacc.c  */
    8047 #line 2280 "parser.yy"
    8048     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8049     break;
    8050 
    8051   case 587:
    8052 
    8053 /* Line 1806 of yacc.c  */
    8054 #line 2282 "parser.yy"
    8055     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8056     break;
    8057 
    8058   case 588:
    8059 
    8060 /* Line 1806 of yacc.c  */
    8061 #line 2284 "parser.yy"
    8062     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8063     break;
    8064 
    8065   case 589:
    8066 
    8067 /* Line 1806 of yacc.c  */
    8068 #line 2289 "parser.yy"
    8069     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8070     break;
    8071 
    8072   case 590:
    8073 
    8074 /* Line 1806 of yacc.c  */
    8075 #line 2291 "parser.yy"
    8076     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8077     break;
    8078 
    8079   case 591:
    8080 
    8081 /* Line 1806 of yacc.c  */
    8082 #line 2293 "parser.yy"
    8083     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8084     break;
    8085 
    8086   case 595:
    8087 
    8088 /* Line 1806 of yacc.c  */
    8089 #line 2308 "parser.yy"
    8090     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8091     break;
    8092 
    8093   case 596:
    8094 
    8095 /* Line 1806 of yacc.c  */
    8096 #line 2310 "parser.yy"
    8097     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8098     break;
    8099 
    8100   case 597:
    8101 
    8102 /* Line 1806 of yacc.c  */
    8103 #line 2312 "parser.yy"
    8104     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8105     break;
    8106 
    8107   case 598:
    8108 
    8109 /* Line 1806 of yacc.c  */
    8110 #line 2317 "parser.yy"
    8111     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8112     break;
    8113 
    8114   case 599:
    8115 
    8116 /* Line 1806 of yacc.c  */
    8117 #line 2319 "parser.yy"
    8118     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8119     break;
    8120 
    8121   case 600:
    8122 
    8123 /* Line 1806 of yacc.c  */
    8124 #line 2321 "parser.yy"
    8125     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8126     break;
    8127 
    8128   case 601:
    8129 
    8130 /* Line 1806 of yacc.c  */
    8131 #line 2326 "parser.yy"
    8132     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8133     break;
    8134 
    8135   case 602:
    8136 
    8137 /* Line 1806 of yacc.c  */
    8138 #line 2328 "parser.yy"
    8139     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8140     break;
    8141 
    8142   case 603:
    8143 
    8144 /* Line 1806 of yacc.c  */
    8145 #line 2330 "parser.yy"
    8146     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8147     break;
    8148 
    8149   case 604:
    8150 
    8151 /* Line 1806 of yacc.c  */
    8152 #line 2345 "parser.yy"
     8454  case 629:
     8455
     8456/* Line 1806 of yacc.c  */
     8457#line 2437 "parser.yy"
    81538458    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81548459    break;
    81558460
    8156   case 606:
    8157 
    8158 /* Line 1806 of yacc.c  */
    8159 #line 2348 "parser.yy"
     8461  case 631:
     8462
     8463/* Line 1806 of yacc.c  */
     8464#line 2440 "parser.yy"
    81608465    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81618466    break;
    81628467
    8163   case 607:
    8164 
    8165 /* Line 1806 of yacc.c  */
    8166 #line 2350 "parser.yy"
     8468  case 632:
     8469
     8470/* Line 1806 of yacc.c  */
     8471#line 2442 "parser.yy"
    81678472    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81688473    break;
    81698474
    8170   case 609:
    8171 
    8172 /* Line 1806 of yacc.c  */
    8173 #line 2356 "parser.yy"
    8174     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8175     break;
    8176 
    8177   case 610:
    8178 
    8179 /* Line 1806 of yacc.c  */
    8180 #line 2361 "parser.yy"
    8181     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8182     break;
    8183 
    8184   case 611:
    8185 
    8186 /* Line 1806 of yacc.c  */
    8187 #line 2363 "parser.yy"
    8188     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8189     break;
    8190 
    8191   case 612:
    8192 
    8193 /* Line 1806 of yacc.c  */
    8194 #line 2365 "parser.yy"
    8195     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8196     break;
    8197 
    8198   case 613:
    8199 
    8200 /* Line 1806 of yacc.c  */
    8201 #line 2370 "parser.yy"
    8202     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8203     break;
    8204 
    8205   case 614:
    8206 
    8207 /* Line 1806 of yacc.c  */
    8208 #line 2372 "parser.yy"
    8209     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8210     break;
    8211 
    8212   case 615:
    8213 
    8214 /* Line 1806 of yacc.c  */
    8215 #line 2374 "parser.yy"
    8216     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8217     break;
    8218 
    8219   case 616:
    8220 
    8221 /* Line 1806 of yacc.c  */
    8222 #line 2376 "parser.yy"
    8223     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8224     break;
    8225 
    8226   case 617:
    8227 
    8228 /* Line 1806 of yacc.c  */
    8229 #line 2381 "parser.yy"
    8230     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8231     break;
    8232 
    8233   case 618:
    8234 
    8235 /* Line 1806 of yacc.c  */
    8236 #line 2383 "parser.yy"
    8237     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8238     break;
    8239 
    8240   case 619:
    8241 
    8242 /* Line 1806 of yacc.c  */
    8243 #line 2385 "parser.yy"
    8244     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8245     break;
    8246 
    8247   case 620:
    8248 
    8249 /* Line 1806 of yacc.c  */
    8250 #line 2395 "parser.yy"
    8251     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8252     break;
    8253 
    8254   case 622:
    8255 
    8256 /* Line 1806 of yacc.c  */
    8257 #line 2398 "parser.yy"
    8258     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8259     break;
    8260 
    8261   case 623:
    8262 
    8263 /* Line 1806 of yacc.c  */
    8264 #line 2400 "parser.yy"
    8265     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8266     break;
    8267 
    8268   case 624:
    8269 
    8270 /* Line 1806 of yacc.c  */
    8271 #line 2405 "parser.yy"
    8272     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8273     break;
    8274 
    8275   case 625:
    8276 
    8277 /* Line 1806 of yacc.c  */
    8278 #line 2407 "parser.yy"
    8279     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8280     break;
    8281 
    8282   case 626:
    8283 
    8284 /* Line 1806 of yacc.c  */
    8285 #line 2409 "parser.yy"
    8286     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8287     break;
    8288 
    8289   case 627:
    8290 
    8291 /* Line 1806 of yacc.c  */
    8292 #line 2414 "parser.yy"
    8293     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8294     break;
    8295 
    8296   case 628:
    8297 
    8298 /* Line 1806 of yacc.c  */
    8299 #line 2416 "parser.yy"
    8300     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8301     break;
    8302 
    8303   case 629:
    8304 
    8305 /* Line 1806 of yacc.c  */
    8306 #line 2418 "parser.yy"
    8307     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8308     break;
    8309 
    8310   case 630:
    8311 
    8312 /* Line 1806 of yacc.c  */
    8313 #line 2420 "parser.yy"
    8314     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8315     break;
    8316 
    8317   case 631:
    8318 
    8319 /* Line 1806 of yacc.c  */
    8320 #line 2425 "parser.yy"
    8321     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8322     break;
    8323 
    8324   case 632:
    8325 
    8326 /* Line 1806 of yacc.c  */
    8327 #line 2427 "parser.yy"
    8328     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8329     break;
    8330 
    83318475  case 633:
    83328476
    83338477/* Line 1806 of yacc.c  */
    8334 #line 2429 "parser.yy"
    8335     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8336     break;
    8337 
    8338   case 634:
    8339 
    8340 /* Line 1806 of yacc.c  */
    8341 #line 2460 "parser.yy"
    8342     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8343     break;
    8344 
    8345   case 636:
    8346 
    8347 /* Line 1806 of yacc.c  */
    8348 #line 2463 "parser.yy"
    8349     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8350     break;
    8351 
    8352   case 637:
    8353 
    8354 /* Line 1806 of yacc.c  */
    8355 #line 2465 "parser.yy"
    8356     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8357     break;
    8358 
    8359   case 638:
    8360 
    8361 /* Line 1806 of yacc.c  */
    8362 #line 2470 "parser.yy"
     8478#line 2447 "parser.yy"
    83638479    {
    83648480                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83678483    break;
    83688484
    8369   case 639:
    8370 
    8371 /* Line 1806 of yacc.c  */
    8372 #line 2475 "parser.yy"
     8485  case 634:
     8486
     8487/* Line 1806 of yacc.c  */
     8488#line 2452 "parser.yy"
    83738489    {
    83748490                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83778493    break;
    83788494
     8495  case 635:
     8496
     8497/* Line 1806 of yacc.c  */
     8498#line 2460 "parser.yy"
     8499    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8500    break;
     8501
     8502  case 636:
     8503
     8504/* Line 1806 of yacc.c  */
     8505#line 2462 "parser.yy"
     8506    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8507    break;
     8508
     8509  case 637:
     8510
     8511/* Line 1806 of yacc.c  */
     8512#line 2464 "parser.yy"
     8513    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8514    break;
     8515
     8516  case 638:
     8517
     8518/* Line 1806 of yacc.c  */
     8519#line 2469 "parser.yy"
     8520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8521    break;
     8522
     8523  case 639:
     8524
     8525/* Line 1806 of yacc.c  */
     8526#line 2471 "parser.yy"
     8527    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8528    break;
     8529
    83798530  case 640:
    83808531
    83818532/* Line 1806 of yacc.c  */
    8382 #line 2483 "parser.yy"
     8533#line 2476 "parser.yy"
     8534    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8535    break;
     8536
     8537  case 641:
     8538
     8539/* Line 1806 of yacc.c  */
     8540#line 2478 "parser.yy"
     8541    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8542    break;
     8543
     8544  case 643:
     8545
     8546/* Line 1806 of yacc.c  */
     8547#line 2493 "parser.yy"
     8548    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8549    break;
     8550
     8551  case 644:
     8552
     8553/* Line 1806 of yacc.c  */
     8554#line 2495 "parser.yy"
     8555    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8556    break;
     8557
     8558  case 645:
     8559
     8560/* Line 1806 of yacc.c  */
     8561#line 2500 "parser.yy"
     8562    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8563    break;
     8564
     8565  case 646:
     8566
     8567/* Line 1806 of yacc.c  */
     8568#line 2502 "parser.yy"
     8569    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8570    break;
     8571
     8572  case 647:
     8573
     8574/* Line 1806 of yacc.c  */
     8575#line 2504 "parser.yy"
    83838576    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83848577    break;
    83858578
    8386   case 641:
    8387 
    8388 /* Line 1806 of yacc.c  */
    8389 #line 2485 "parser.yy"
     8579  case 648:
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2506 "parser.yy"
    83908583    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83918584    break;
    83928585
    8393   case 642:
    8394 
    8395 /* Line 1806 of yacc.c  */
    8396 #line 2487 "parser.yy"
     8586  case 649:
     8587
     8588/* Line 1806 of yacc.c  */
     8589#line 2508 "parser.yy"
    83978590    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83988591    break;
    83998592
    8400   case 643:
    8401 
    8402 /* Line 1806 of yacc.c  */
    8403 #line 2492 "parser.yy"
     8593  case 651:
     8594
     8595/* Line 1806 of yacc.c  */
     8596#line 2514 "parser.yy"
     8597    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8598    break;
     8599
     8600  case 652:
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2516 "parser.yy"
     8604    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8605    break;
     8606
     8607  case 653:
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2518 "parser.yy"
     8611    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8612    break;
     8613
     8614  case 654:
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2523 "parser.yy"
     8618    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8619    break;
     8620
     8621  case 655:
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2525 "parser.yy"
     8625    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8626    break;
     8627
     8628  case 656:
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2527 "parser.yy"
     8632    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8633    break;
     8634
     8635  case 657:
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2533 "parser.yy"
     8639    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8640    break;
     8641
     8642  case 658:
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2535 "parser.yy"
     8646    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8647    break;
     8648
     8649  case 660:
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2541 "parser.yy"
     8653    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8654    break;
     8655
     8656  case 661:
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2543 "parser.yy"
     8660    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8661    break;
     8662
     8663  case 662:
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2545 "parser.yy"
     8667    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8668    break;
     8669
     8670  case 663:
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2547 "parser.yy"
     8674    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8675    break;
     8676
     8677  case 665:
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2562 "parser.yy"
     8681    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8682    break;
     8683
     8684  case 666:
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2564 "parser.yy"
     8688    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8689    break;
     8690
     8691  case 667:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2569 "parser.yy"
     8695    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8696    break;
     8697
     8698  case 668:
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2571 "parser.yy"
     8702    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8703    break;
     8704
     8705  case 669:
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2573 "parser.yy"
     8709    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8710    break;
     8711
     8712  case 670:
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2575 "parser.yy"
     8716    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8717    break;
     8718
     8719  case 671:
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2577 "parser.yy"
     8723    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8724    break;
     8725
     8726  case 673:
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2583 "parser.yy"
     8730    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8731    break;
     8732
     8733  case 674:
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2585 "parser.yy"
     8737    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8738    break;
     8739
     8740  case 675:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2587 "parser.yy"
     8744    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8745    break;
     8746
     8747  case 676:
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2592 "parser.yy"
     8751    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8752    break;
     8753
     8754  case 677:
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2594 "parser.yy"
     8758    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8759    break;
     8760
     8761  case 678:
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2596 "parser.yy"
     8765    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8766    break;
     8767
     8768  case 680:
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2603 "parser.yy"
    84048772    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84058773    break;
    84068774
    8407   case 644:
    8408 
    8409 /* Line 1806 of yacc.c  */
    8410 #line 2494 "parser.yy"
     8775  case 682:
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2614 "parser.yy"
     8779    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8780    break;
     8781
     8782  case 683:
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2617 "parser.yy"
     8786    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8787    break;
     8788
     8789  case 684:
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2619 "parser.yy"
     8793    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8794    break;
     8795
     8796  case 685:
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2622 "parser.yy"
     8800    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8801    break;
     8802
     8803  case 686:
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2624 "parser.yy"
     8807    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8808    break;
     8809
     8810  case 687:
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2626 "parser.yy"
     8814    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8815    break;
     8816
     8817  case 689:
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2640 "parser.yy"
     8821    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8822    break;
     8823
     8824  case 690:
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2642 "parser.yy"
     8828    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8829    break;
     8830
     8831  case 691:
     8832
     8833/* Line 1806 of yacc.c  */
     8834#line 2647 "parser.yy"
     8835    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8836    break;
     8837
     8838  case 692:
     8839
     8840/* Line 1806 of yacc.c  */
     8841#line 2649 "parser.yy"
     8842    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8843    break;
     8844
     8845  case 693:
     8846
     8847/* Line 1806 of yacc.c  */
     8848#line 2651 "parser.yy"
     8849    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8850    break;
     8851
     8852  case 694:
     8853
     8854/* Line 1806 of yacc.c  */
     8855#line 2653 "parser.yy"
     8856    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8857    break;
     8858
     8859  case 695:
     8860
     8861/* Line 1806 of yacc.c  */
     8862#line 2655 "parser.yy"
     8863    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8864    break;
     8865
     8866  case 697:
     8867
     8868/* Line 1806 of yacc.c  */
     8869#line 2661 "parser.yy"
    84118870    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84128871    break;
    84138872
    8414   case 645:
    8415 
    8416 /* Line 1806 of yacc.c  */
    8417 #line 2499 "parser.yy"
    8418     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8419     break;
    8420 
    8421   case 646:
    8422 
    8423 /* Line 1806 of yacc.c  */
    8424 #line 2501 "parser.yy"
     8873  case 698:
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2663 "parser.yy"
     8877    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8878    break;
     8879
     8880  case 699:
     8881
     8882/* Line 1806 of yacc.c  */
     8883#line 2665 "parser.yy"
     8884    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8885    break;
     8886
     8887  case 700:
     8888
     8889/* Line 1806 of yacc.c  */
     8890#line 2670 "parser.yy"
    84258891    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84268892    break;
    84278893
    8428   case 648:
    8429 
    8430 /* Line 1806 of yacc.c  */
    8431 #line 2516 "parser.yy"
    8432     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8433     break;
    8434 
    8435   case 649:
    8436 
    8437 /* Line 1806 of yacc.c  */
    8438 #line 2518 "parser.yy"
    8439     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8440     break;
    8441 
    8442   case 650:
    8443 
    8444 /* Line 1806 of yacc.c  */
    8445 #line 2523 "parser.yy"
    8446     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8447     break;
    8448 
    8449   case 651:
    8450 
    8451 /* Line 1806 of yacc.c  */
    8452 #line 2525 "parser.yy"
    8453     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8454     break;
    8455 
    8456   case 652:
    8457 
    8458 /* Line 1806 of yacc.c  */
    8459 #line 2527 "parser.yy"
    8460     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8461     break;
    8462 
    8463   case 653:
    8464 
    8465 /* Line 1806 of yacc.c  */
    8466 #line 2529 "parser.yy"
    8467     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8468     break;
    8469 
    8470   case 654:
    8471 
    8472 /* Line 1806 of yacc.c  */
    8473 #line 2531 "parser.yy"
     8894  case 701:
     8895
     8896/* Line 1806 of yacc.c  */
     8897#line 2672 "parser.yy"
    84748898    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84758899    break;
    84768900
    8477   case 656:
    8478 
    8479 /* Line 1806 of yacc.c  */
    8480 #line 2537 "parser.yy"
    8481     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8482     break;
    8483 
    8484   case 657:
    8485 
    8486 /* Line 1806 of yacc.c  */
    8487 #line 2539 "parser.yy"
    8488     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8489     break;
    8490 
    8491   case 658:
    8492 
    8493 /* Line 1806 of yacc.c  */
    8494 #line 2541 "parser.yy"
    8495     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8496     break;
    8497 
    8498   case 659:
    8499 
    8500 /* Line 1806 of yacc.c  */
    8501 #line 2546 "parser.yy"
    8502     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8503     break;
    8504 
    8505   case 660:
    8506 
    8507 /* Line 1806 of yacc.c  */
    8508 #line 2548 "parser.yy"
    8509     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8510     break;
    8511 
    8512   case 661:
    8513 
    8514 /* Line 1806 of yacc.c  */
    8515 #line 2550 "parser.yy"
    8516     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8517     break;
    8518 
    8519   case 662:
    8520 
    8521 /* Line 1806 of yacc.c  */
    8522 #line 2556 "parser.yy"
    8523     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8524     break;
    8525 
    8526   case 663:
    8527 
    8528 /* Line 1806 of yacc.c  */
    8529 #line 2558 "parser.yy"
    8530     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8531     break;
    8532 
    8533   case 665:
    8534 
    8535 /* Line 1806 of yacc.c  */
    8536 #line 2564 "parser.yy"
    8537     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8538     break;
    8539 
    8540   case 666:
    8541 
    8542 /* Line 1806 of yacc.c  */
    8543 #line 2566 "parser.yy"
    8544     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8545     break;
    8546 
    8547   case 667:
    8548 
    8549 /* Line 1806 of yacc.c  */
    8550 #line 2568 "parser.yy"
    8551     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8552     break;
    8553 
    8554   case 668:
    8555 
    8556 /* Line 1806 of yacc.c  */
    8557 #line 2570 "parser.yy"
    8558     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8559     break;
    8560 
    8561   case 670:
    8562 
    8563 /* Line 1806 of yacc.c  */
    8564 #line 2585 "parser.yy"
    8565     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8566     break;
    8567 
    8568   case 671:
    8569 
    8570 /* Line 1806 of yacc.c  */
    8571 #line 2587 "parser.yy"
    8572     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8573     break;
    8574 
    8575   case 672:
    8576 
    8577 /* Line 1806 of yacc.c  */
    8578 #line 2592 "parser.yy"
    8579     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8580     break;
    8581 
    8582   case 673:
    8583 
    8584 /* Line 1806 of yacc.c  */
    8585 #line 2594 "parser.yy"
    8586     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8587     break;
    8588 
    8589   case 674:
    8590 
    8591 /* Line 1806 of yacc.c  */
    8592 #line 2596 "parser.yy"
    8593     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8594     break;
    8595 
    8596   case 675:
    8597 
    8598 /* Line 1806 of yacc.c  */
    8599 #line 2598 "parser.yy"
    8600     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8601     break;
    8602 
    8603   case 676:
    8604 
    8605 /* Line 1806 of yacc.c  */
    8606 #line 2600 "parser.yy"
    8607     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8608     break;
    8609 
    8610   case 678:
    8611 
    8612 /* Line 1806 of yacc.c  */
    8613 #line 2606 "parser.yy"
    8614     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8615     break;
    8616 
    8617   case 679:
    8618 
    8619 /* Line 1806 of yacc.c  */
    8620 #line 2608 "parser.yy"
    8621     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8622     break;
    8623 
    8624   case 680:
    8625 
    8626 /* Line 1806 of yacc.c  */
    8627 #line 2610 "parser.yy"
    8628     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8629     break;
    8630 
    8631   case 681:
    8632 
    8633 /* Line 1806 of yacc.c  */
    8634 #line 2615 "parser.yy"
    8635     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8636     break;
    8637 
    8638   case 682:
    8639 
    8640 /* Line 1806 of yacc.c  */
    8641 #line 2617 "parser.yy"
    8642     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8643     break;
    8644 
    8645   case 683:
    8646 
    8647 /* Line 1806 of yacc.c  */
    8648 #line 2619 "parser.yy"
    8649     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8650     break;
    8651 
    8652   case 685:
    8653 
    8654 /* Line 1806 of yacc.c  */
    8655 #line 2626 "parser.yy"
    8656     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8657     break;
    8658 
    8659   case 687:
    8660 
    8661 /* Line 1806 of yacc.c  */
    8662 #line 2637 "parser.yy"
    8663     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8664     break;
    8665 
    8666   case 688:
    8667 
    8668 /* Line 1806 of yacc.c  */
    8669 #line 2640 "parser.yy"
     8901  case 704:
     8902
     8903/* Line 1806 of yacc.c  */
     8904#line 2682 "parser.yy"
     8905    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8906    break;
     8907
     8908  case 707:
     8909
     8910/* Line 1806 of yacc.c  */
     8911#line 2692 "parser.yy"
     8912    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8913    break;
     8914
     8915  case 708:
     8916
     8917/* Line 1806 of yacc.c  */
     8918#line 2694 "parser.yy"
     8919    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8920    break;
     8921
     8922  case 709:
     8923
     8924/* Line 1806 of yacc.c  */
     8925#line 2696 "parser.yy"
     8926    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8927    break;
     8928
     8929  case 710:
     8930
     8931/* Line 1806 of yacc.c  */
     8932#line 2698 "parser.yy"
     8933    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8934    break;
     8935
     8936  case 711:
     8937
     8938/* Line 1806 of yacc.c  */
     8939#line 2700 "parser.yy"
     8940    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8941    break;
     8942
     8943  case 712:
     8944
     8945/* Line 1806 of yacc.c  */
     8946#line 2702 "parser.yy"
     8947    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8948    break;
     8949
     8950  case 713:
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2709 "parser.yy"
     8954    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8955    break;
     8956
     8957  case 714:
     8958
     8959/* Line 1806 of yacc.c  */
     8960#line 2711 "parser.yy"
     8961    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8962    break;
     8963
     8964  case 715:
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2713 "parser.yy"
     8968    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8969    break;
     8970
     8971  case 716:
     8972
     8973/* Line 1806 of yacc.c  */
     8974#line 2715 "parser.yy"
     8975    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8976    break;
     8977
     8978  case 717:
     8979
     8980/* Line 1806 of yacc.c  */
     8981#line 2717 "parser.yy"
     8982    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8983    break;
     8984
     8985  case 718:
     8986
     8987/* Line 1806 of yacc.c  */
     8988#line 2719 "parser.yy"
     8989    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8990    break;
     8991
     8992  case 719:
     8993
     8994/* Line 1806 of yacc.c  */
     8995#line 2721 "parser.yy"
     8996    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8997    break;
     8998
     8999  case 720:
     9000
     9001/* Line 1806 of yacc.c  */
     9002#line 2723 "parser.yy"
     9003    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9004    break;
     9005
     9006  case 721:
     9007
     9008/* Line 1806 of yacc.c  */
     9009#line 2725 "parser.yy"
     9010    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9011    break;
     9012
     9013  case 722:
     9014
     9015/* Line 1806 of yacc.c  */
     9016#line 2727 "parser.yy"
     9017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9018    break;
     9019
     9020  case 723:
     9021
     9022/* Line 1806 of yacc.c  */
     9023#line 2732 "parser.yy"
    86709024    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86719025    break;
    86729026
    8673   case 689:
    8674 
    8675 /* Line 1806 of yacc.c  */
    8676 #line 2642 "parser.yy"
    8677     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8678     break;
    8679 
    8680   case 690:
    8681 
    8682 /* Line 1806 of yacc.c  */
    8683 #line 2645 "parser.yy"
     9027  case 724:
     9028
     9029/* Line 1806 of yacc.c  */
     9030#line 2734 "parser.yy"
    86849031    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    86859032    break;
    86869033
    8687   case 691:
    8688 
    8689 /* Line 1806 of yacc.c  */
    8690 #line 2647 "parser.yy"
    8691     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8692     break;
    8693 
    8694   case 692:
    8695 
    8696 /* Line 1806 of yacc.c  */
    8697 #line 2649 "parser.yy"
    8698     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8699     break;
    8700 
    8701   case 694:
    8702 
    8703 /* Line 1806 of yacc.c  */
    8704 #line 2663 "parser.yy"
    8705     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8706     break;
    8707 
    8708   case 695:
    8709 
    8710 /* Line 1806 of yacc.c  */
    8711 #line 2665 "parser.yy"
    8712     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8713     break;
    8714 
    8715   case 696:
    8716 
    8717 /* Line 1806 of yacc.c  */
    8718 #line 2670 "parser.yy"
    8719     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8720     break;
    8721 
    8722   case 697:
    8723 
    8724 /* Line 1806 of yacc.c  */
    8725 #line 2672 "parser.yy"
    8726     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8727     break;
    8728 
    8729   case 698:
    8730 
    8731 /* Line 1806 of yacc.c  */
    8732 #line 2674 "parser.yy"
    8733     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8734     break;
    8735 
    8736   case 699:
    8737 
    8738 /* Line 1806 of yacc.c  */
    8739 #line 2676 "parser.yy"
    8740     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8741     break;
    8742 
    8743   case 700:
    8744 
    8745 /* Line 1806 of yacc.c  */
    8746 #line 2678 "parser.yy"
    8747     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8748     break;
    8749 
    8750   case 702:
    8751 
    8752 /* Line 1806 of yacc.c  */
    8753 #line 2684 "parser.yy"
    8754     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8755     break;
    8756 
    8757   case 703:
    8758 
    8759 /* Line 1806 of yacc.c  */
    8760 #line 2686 "parser.yy"
    8761     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8762     break;
    8763 
    8764   case 704:
    8765 
    8766 /* Line 1806 of yacc.c  */
    8767 #line 2688 "parser.yy"
    8768     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8769     break;
    8770 
    8771   case 705:
    8772 
    8773 /* Line 1806 of yacc.c  */
    8774 #line 2693 "parser.yy"
    8775     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8776     break;
    8777 
    8778   case 706:
    8779 
    8780 /* Line 1806 of yacc.c  */
    8781 #line 2695 "parser.yy"
    8782     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8783     break;
    8784 
    8785   case 709:
    8786 
    8787 /* Line 1806 of yacc.c  */
    8788 #line 2705 "parser.yy"
     9034  case 725:
     9035
     9036/* Line 1806 of yacc.c  */
     9037#line 2739 "parser.yy"
     9038    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9039    break;
     9040
     9041  case 726:
     9042
     9043/* Line 1806 of yacc.c  */
     9044#line 2741 "parser.yy"
     9045    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9046    break;
     9047
     9048  case 728:
     9049
     9050/* Line 1806 of yacc.c  */
     9051#line 2768 "parser.yy"
    87899052    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    87909053    break;
    87919054
    8792   case 712:
    8793 
    8794 /* Line 1806 of yacc.c  */
    8795 #line 2715 "parser.yy"
     9055  case 732:
     9056
     9057/* Line 1806 of yacc.c  */
     9058#line 2779 "parser.yy"
    87969059    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87979060    break;
    87989061
    8799   case 713:
    8800 
    8801 /* Line 1806 of yacc.c  */
    8802 #line 2717 "parser.yy"
     9062  case 733:
     9063
     9064/* Line 1806 of yacc.c  */
     9065#line 2781 "parser.yy"
    88039066    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88049067    break;
    88059068
    8806   case 714:
    8807 
    8808 /* Line 1806 of yacc.c  */
    8809 #line 2719 "parser.yy"
     9069  case 734:
     9070
     9071/* Line 1806 of yacc.c  */
     9072#line 2783 "parser.yy"
    88109073    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88119074    break;
    88129075
    8813   case 715:
    8814 
    8815 /* Line 1806 of yacc.c  */
    8816 #line 2721 "parser.yy"
     9076  case 735:
     9077
     9078/* Line 1806 of yacc.c  */
     9079#line 2785 "parser.yy"
    88179080    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88189081    break;
    88199082
    8820   case 716:
    8821 
    8822 /* Line 1806 of yacc.c  */
    8823 #line 2723 "parser.yy"
     9083  case 736:
     9084
     9085/* Line 1806 of yacc.c  */
     9086#line 2787 "parser.yy"
    88249087    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88259088    break;
    88269089
    8827   case 717:
    8828 
    8829 /* Line 1806 of yacc.c  */
    8830 #line 2725 "parser.yy"
     9090  case 737:
     9091
     9092/* Line 1806 of yacc.c  */
     9093#line 2789 "parser.yy"
    88319094    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88329095    break;
    88339096
    8834   case 718:
    8835 
    8836 /* Line 1806 of yacc.c  */
    8837 #line 2732 "parser.yy"
    8838     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8839     break;
    8840 
    8841   case 719:
    8842 
    8843 /* Line 1806 of yacc.c  */
    8844 #line 2734 "parser.yy"
     9097  case 738:
     9098
     9099/* Line 1806 of yacc.c  */
     9100#line 2796 "parser.yy"
     9101    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9102    break;
     9103
     9104  case 739:
     9105
     9106/* Line 1806 of yacc.c  */
     9107#line 2798 "parser.yy"
     9108    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9109    break;
     9110
     9111  case 740:
     9112
     9113/* Line 1806 of yacc.c  */
     9114#line 2800 "parser.yy"
    88459115    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88469116    break;
    88479117
    8848   case 720:
    8849 
    8850 /* Line 1806 of yacc.c  */
    8851 #line 2736 "parser.yy"
    8852     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8853     break;
    8854 
    8855   case 721:
    8856 
    8857 /* Line 1806 of yacc.c  */
    8858 #line 2738 "parser.yy"
    8859     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8860     break;
    8861 
    8862   case 722:
    8863 
    8864 /* Line 1806 of yacc.c  */
    8865 #line 2740 "parser.yy"
     9118  case 741:
     9119
     9120/* Line 1806 of yacc.c  */
     9121#line 2802 "parser.yy"
     9122    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9123    break;
     9124
     9125  case 742:
     9126
     9127/* Line 1806 of yacc.c  */
     9128#line 2804 "parser.yy"
     9129    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9130    break;
     9131
     9132  case 743:
     9133
     9134/* Line 1806 of yacc.c  */
     9135#line 2806 "parser.yy"
    88669136    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88679137    break;
    88689138
    8869   case 723:
    8870 
    8871 /* Line 1806 of yacc.c  */
    8872 #line 2743 "parser.yy"
    8873     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8874     break;
    8875 
    8876   case 724:
    8877 
    8878 /* Line 1806 of yacc.c  */
    8879 #line 2745 "parser.yy"
    8880     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8881     break;
    8882 
    8883   case 725:
    8884 
    8885 /* Line 1806 of yacc.c  */
    8886 #line 2747 "parser.yy"
    8887     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8888     break;
    8889 
    8890   case 726:
    8891 
    8892 /* Line 1806 of yacc.c  */
    8893 #line 2749 "parser.yy"
    8894     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8895     break;
    8896 
    8897   case 727:
    8898 
    8899 /* Line 1806 of yacc.c  */
    8900 #line 2751 "parser.yy"
    8901     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8902     break;
    8903 
    8904   case 728:
    8905 
    8906 /* Line 1806 of yacc.c  */
    8907 #line 2756 "parser.yy"
    8908     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8909     break;
    8910 
    8911   case 729:
    8912 
    8913 /* Line 1806 of yacc.c  */
    8914 #line 2758 "parser.yy"
    8915     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8916     break;
    8917 
    8918   case 730:
    8919 
    8920 /* Line 1806 of yacc.c  */
    8921 #line 2763 "parser.yy"
    8922     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    8923     break;
    8924 
    8925   case 731:
    8926 
    8927 /* Line 1806 of yacc.c  */
    8928 #line 2765 "parser.yy"
    8929     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    8930     break;
    8931 
    8932   case 733:
    8933 
    8934 /* Line 1806 of yacc.c  */
    8935 #line 2792 "parser.yy"
    8936     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8937     break;
    8938 
    8939   case 737:
    8940 
    8941 /* Line 1806 of yacc.c  */
    8942 #line 2803 "parser.yy"
    8943     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8944     break;
    8945 
    8946   case 738:
    8947 
    8948 /* Line 1806 of yacc.c  */
    8949 #line 2805 "parser.yy"
    8950     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8951     break;
    8952 
    8953   case 739:
    8954 
    8955 /* Line 1806 of yacc.c  */
    8956 #line 2807 "parser.yy"
    8957     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8958     break;
    8959 
    8960   case 740:
    8961 
    8962 /* Line 1806 of yacc.c  */
    8963 #line 2809 "parser.yy"
    8964     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8965     break;
    8966 
    8967   case 741:
     9139  case 744:
    89689140
    89699141/* Line 1806 of yacc.c  */
    89709142#line 2811 "parser.yy"
    8971     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8972     break;
    8973 
    8974   case 742:
    8975 
    8976 /* Line 1806 of yacc.c  */
    8977 #line 2813 "parser.yy"
    8978     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8979     break;
    8980 
    8981   case 743:
     9143    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9144    break;
     9145
     9146  case 745:
     9147
     9148/* Line 1806 of yacc.c  */
     9149#line 2816 "parser.yy"
     9150    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
     9151    break;
     9152
     9153  case 746:
     9154
     9155/* Line 1806 of yacc.c  */
     9156#line 2818 "parser.yy"
     9157    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     9158    break;
     9159
     9160  case 747:
    89829161
    89839162/* Line 1806 of yacc.c  */
    89849163#line 2820 "parser.yy"
    8985     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    8986     break;
    8987 
    8988   case 744:
    8989 
    8990 /* Line 1806 of yacc.c  */
    8991 #line 2822 "parser.yy"
    8992     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    8993     break;
    8994 
    8995   case 745:
    8996 
    8997 /* Line 1806 of yacc.c  */
    8998 #line 2824 "parser.yy"
    8999     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9000     break;
    9001 
    9002   case 746:
    9003 
    9004 /* Line 1806 of yacc.c  */
    9005 #line 2826 "parser.yy"
    9006     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9007     break;
    9008 
    9009   case 747:
    9010 
    9011 /* Line 1806 of yacc.c  */
    9012 #line 2828 "parser.yy"
    9013     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9014     break;
    9015 
    9016   case 748:
    9017 
    9018 /* Line 1806 of yacc.c  */
    9019 #line 2830 "parser.yy"
    9020     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9021     break;
    9022 
    9023   case 749:
    9024 
    9025 /* Line 1806 of yacc.c  */
    9026 #line 2835 "parser.yy"
    9027     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9164    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    90289165    break;
    90299166
     
    90319168
    90329169/* Line 1806 of yacc.c  */
    9033 #line 2842 "parser.yy"
    9034     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     9170#line 2844 "parser.yy"
     9171    { (yyval.en) = 0; }
    90359172    break;
    90369173
     
    90389175
    90399176/* Line 1806 of yacc.c  */
    9040 #line 2844 "parser.yy"
    9041     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    9042     break;
    9043 
    9044   case 754:
    9045 
    9046 /* Line 1806 of yacc.c  */
    9047 #line 2868 "parser.yy"
    9048     { (yyval.en) = 0; }
    9049     break;
    9050 
    9051   case 755:
    9052 
    9053 /* Line 1806 of yacc.c  */
    9054 #line 2870 "parser.yy"
     9177#line 2846 "parser.yy"
    90559178    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    90569179    break;
     
    90599182
    90609183/* Line 1806 of yacc.c  */
    9061 #line 9062 "Parser/parser.cc"
     9184#line 9185 "Parser/parser.cc"
    90629185      default: break;
    90639186    }
     
    92909413
    92919414/* Line 2067 of yacc.c  */
    9292 #line 2873 "parser.yy"
     9415#line 2849 "parser.yy"
    92939416
    92949417// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.