Changeset 9706554


Ignore:
Timestamp:
Aug 5, 2016, 12:06:21 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
71a3593
Parents:
51e076e
Message:

even more refactoring of parser code

Location:
src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    r51e076e r9706554  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Aug  5 07:56:23 2016
    13 // Update Count     : 375
     12// Last Modified On : Fri Aug  5 11:39:25 2016
     13// Update Count     : 391
    1414//
    1515
     
    289289}
    290290
    291 CompositeExprNode::CompositeExprNode( ExpressionNode *f, ExpressionNode *arg1, ExpressionNode *arg2):
     291CompositeExprNode::CompositeExprNode( ExpressionNode *f, ExpressionNode *arg1, ExpressionNode *arg2 ):
    292292        function( f ), arguments( arg1 ) {
    293293        arguments->set_link( arg2 );
     
    369369}
    370370
    371 Expression *build_opr1( OperatorNode::Type op, ExpressionNode *expr_node ) {
     371Expression *build_unary_val( OperatorNode::Type op, ExpressionNode *expr_node ) {
     372        std::list<Expression *> args;
     373        args.push_back( maybeBuild<Expression>(expr_node) );
     374        return new UntypedExpr( new NameExpr( opName[ op ] ), args );
     375}
     376Expression *build_unary_ptr( OperatorNode::Type op, ExpressionNode *expr_node ) {
    372377        std::list<Expression *> args;
    373378        args.push_back( new AddressExpr( maybeBuild<Expression>(expr_node) ) );
    374379        return new UntypedExpr( new NameExpr( opName[ op ] ), args );
    375380}
    376 Expression *build_opr2( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) {
     381Expression *build_binary_val( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) {
    377382        std::list<Expression *> args;
    378383        args.push_back( maybeBuild<Expression>(expr_node1) );
     
    380385        return new UntypedExpr( new NameExpr( opName[ op ] ), args );
    381386}
     387Expression *build_binary_ptr( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) {
     388        std::list<Expression *> args;
     389        args.push_back( new AddressExpr( maybeBuild<Expression>(expr_node1) ) );
     390        args.push_back( maybeBuild<Expression>(expr_node2) );
     391        return new UntypedExpr( new NameExpr( opName[ op ] ), args );
     392}
    382393
    383394Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ) {
     
    387398Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) {
    388399        return new CommaExpr( maybeBuild<Expression>(expr_node1), maybeBuild<Expression>(expr_node2) );
     400}
     401
     402Expression *build_attr( VarRefNode *var, ExpressionNode * expr ) {
     403        if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( expr ) ) {
     404                return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType() );
     405        } else {
     406                return new AttrExpr( maybeBuild<Expression>(var), maybeBuild<Expression>(expr) );
     407        } // if
     408}
     409
     410Expression *build_tuple( ExpressionNode * expr ) {
     411        TupleExpr *ret = new TupleExpr();
     412        buildList( expr, ret->get_exprs() );
     413        return ret;
     414}
     415
     416Expression *build_func( ExpressionNode * function, ExpressionNode * expr ) {
     417        std::list<Expression *> args;
     418
     419        buildList( expr, args );
     420        return new UntypedExpr( maybeBuild<Expression>(function), args, nullptr );
    389421}
    390422
     
    406438        } // if
    407439
    408         switch ( op->get_type() ) {
    409           case OperatorNode::Assign:
    410           case OperatorNode::MulAssn:
    411           case OperatorNode::DivAssn:
    412           case OperatorNode::ModAssn:
    413           case OperatorNode::PlusAssn:
    414           case OperatorNode::MinusAssn:
    415           case OperatorNode::LSAssn:
    416           case OperatorNode::RSAssn:
    417           case OperatorNode::AndAssn:
    418           case OperatorNode::ERAssn:
    419           case OperatorNode::OrAssn:
    420                 assert( ! args.empty() );
    421                 args.front() = new AddressExpr( args.front() );
    422           case OperatorNode::UnPlus:
    423           case OperatorNode::UnMinus:
    424           case OperatorNode::PointTo:
    425           case OperatorNode::Neg:
    426           case OperatorNode::BitNeg:
    427           case OperatorNode::LabelAddress:
    428                 return new UntypedExpr( new NameExpr( opName[ op->get_type() ] ), args );
    429 
    430           case OperatorNode::Attr:
    431                 {
    432                         VarRefNode *var = dynamic_cast<VarRefNode *>( get_args() );
    433                         assert( var );
    434                         if ( ! get_args()->get_link() ) {
    435                                 return new AttrExpr( maybeBuild<Expression>(var), ( Expression*)0);
    436                         } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link() ) ) {
    437                                 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType() );
    438                         } else {
    439                                 return new AttrExpr( maybeBuild<Expression>(var), args.back() );
    440                         } // if
    441                 }
    442           case OperatorNode::Cond:
    443                 {
    444                         assert( args.size() == 3);
    445                         std::list< Expression * >::const_iterator i = args.begin();
    446                         Expression *arg1 = notZeroExpr( *i++ );
    447                         Expression *arg2 = *i++;
    448                         Expression *arg3 = *i++;
    449                         return new ConditionalExpr( arg1, arg2, arg3 );
    450                 }
    451           case OperatorNode::NCond:
    452                 throw UnimplementedError( "GNU 2-argument conditional expression" );
    453                 // Tuples
    454           case OperatorNode::TupleC:
    455                 {
    456                         TupleExpr *ret = new TupleExpr();
    457                         std::copy( args.begin(), args.end(), back_inserter( ret->get_exprs() ) );
    458                         return ret;
    459                 }
    460           default:
    461                 assert( ((void)"CompositeExprNode::build", false) );
    462                 return 0;
    463         } // switch
     440        assert( ((void)"CompositeExprNode::build", false) );
     441        return nullptr;
    464442}
    465443
  • src/Parser/ParseNode.h

    r51e076e r9706554  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Aug  5 07:49:32 2016
    13 // Update Count     : 288
     12// Last Modified On : Fri Aug  5 11:42:50 2016
     13// Update Count     : 293
    1414//
    1515
     
    234234Expression *build_and( ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
    235235Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind );
    236 Expression *build_opr1( OperatorNode::Type op, ExpressionNode *expr_node );
    237 Expression *build_opr2( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
     236Expression *build_unary_val( OperatorNode::Type op, ExpressionNode *expr_node );
     237Expression *build_unary_ptr( OperatorNode::Type op, ExpressionNode *expr_node );
     238Expression *build_binary_val( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
     239Expression *build_binary_ptr( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
    238240Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 );
    239241Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 );
     242Expression *build_attr( VarRefNode *var, ExpressionNode * expr = 0 );
     243Expression *build_tuple( ExpressionNode * expr = 0 );
     244Expression *build_func( ExpressionNode * function, ExpressionNode * expr );
    240245
    241246class CompositeExprNode2 : public ExpressionNode {
  • src/Parser/parser.cc

    r51e076e r9706554  
    589589
    590590/* YYFINAL -- State number of the termination state.  */
    591 #define YYFINAL  252
     591#define YYFINAL  251
    592592/* YYLAST -- Last index in YYTABLE.  */
    593 #define YYLAST   12080
     593#define YYLAST   10969
    594594
    595595/* YYNTOKENS -- Number of terminals.  */
     
    598598#define YYNNTS  241
    599599/* YYNRULES -- Number of rules.  */
    600 #define YYNRULES  755
     600#define YYNRULES  754
    601601/* YYNRULES -- Number of states.  */
    602 #define YYNSTATES  1579
     602#define YYNSTATES  1577
    603603
    604604/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    663663     172,   175,   178,   181,   184,   187,   190,   195,   202,   204,
    664664     209,   214,   217,   222,   224,   226,   228,   230,   232,   234,
    665      236,   238,   243,   248,   250,   254,   258,   262,   264,   268,
    666      272,   274,   278,   282,   284,   288,   292,   296,   300,   302,
    667      306,   310,   312,   316,   318,   322,   324,   328,   330,   334,
    668      336,   340,   342,   348,   353,   359,   361,   363,   367,   371,
    669      374,   375,   377,   380,   386,   393,   401,   403,   407,   409,
    670      411,   413,   415,   417,   419,   421,   423,   425,   427,   429,
    671      433,   434,   436,   438,   440,   442,   444,   446,   448,   450,
    672      452,   459,   464,   467,   475,   477,   481,   483,   486,   488,
    673      491,   493,   496,   499,   505,   513,   519,   529,   535,   545,
    674      547,   551,   553,   555,   559,   563,   566,   568,   571,   574,
    675      575,   577,   580,   584,   585,   587,   590,   594,   598,   603,
    676      604,   606,   608,   611,   617,   625,   632,   639,   644,   648,
    677      653,   656,   660,   663,   667,   671,   675,   679,   685,   689,
    678      693,   698,   700,   706,   713,   719,   726,   736,   747,   757,
    679      768,   771,   773,   776,   779,   782,   784,   791,   800,   811,
    680      824,   839,   840,   842,   843,   845,   847,   851,   856,   864,
    681      865,   867,   871,   873,   877,   879,   881,   883,   887,   889,
    682      891,   893,   897,   898,   900,   904,   909,   911,   915,   917,
    683      919,   923,   927,   931,   935,   939,   942,   946,   953,   957,
    684      961,   966,   968,   971,   974,   978,   984,   993,  1001,  1009,
    685     1015,  1025,  1028,  1031,  1037,  1041,  1047,  1052,  1056,  1061,
    686     1066,  1074,  1078,  1082,  1086,  1090,  1095,  1102,  1104,  1106,
    687     1108,  1110,  1112,  1114,  1116,  1118,  1119,  1121,  1123,  1126,
    688     1128,  1130,  1132,  1134,  1136,  1138,  1140,  1141,  1147,  1149,
    689     1152,  1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1173,
    690     1175,  1177,  1179,  1181,  1183,  1185,  1187,  1189,  1191,  1193,
    691     1195,  1197,  1199,  1201,  1203,  1205,  1207,  1210,  1213,  1217,
    692     1221,  1223,  1227,  1229,  1232,  1235,  1238,  1243,  1248,  1253,
    693     1258,  1260,  1263,  1266,  1270,  1272,  1275,  1278,  1280,  1283,
    694     1286,  1290,  1292,  1295,  1298,  1300,  1302,  1307,  1310,  1311,
    695     1318,  1326,  1329,  1332,  1335,  1336,  1339,  1342,  1346,  1349,
    696     1353,  1355,  1358,  1362,  1365,  1368,  1373,  1374,  1376,  1379,
    697     1382,  1384,  1385,  1387,  1390,  1393,  1399,  1402,  1403,  1411,
    698     1414,  1419,  1420,  1423,  1424,  1426,  1428,  1430,  1436,  1442,
    699     1448,  1450,  1456,  1462,  1472,  1474,  1480,  1481,  1483,  1485,
    700     1491,  1493,  1495,  1501,  1507,  1509,  1513,  1517,  1522,  1524,
    701     1526,  1528,  1530,  1533,  1535,  1539,  1543,  1545,  1548,  1550,
    702     1554,  1556,  1558,  1560,  1562,  1564,  1566,  1568,  1570,  1572,
    703     1574,  1576,  1579,  1581,  1583,  1585,  1588,  1589,  1592,  1595,
    704     1597,  1602,  1603,  1605,  1608,  1612,  1617,  1620,  1623,  1625,
    705     1628,  1630,  1633,  1639,  1645,  1653,  1660,  1662,  1665,  1668,
    706     1672,  1674,  1677,  1680,  1685,  1688,  1693,  1694,  1699,  1702,
    707     1704,  1706,  1708,  1709,  1712,  1718,  1724,  1738,  1740,  1742,
    708     1746,  1750,  1753,  1757,  1761,  1764,  1769,  1771,  1778,  1788,
    709     1789,  1801,  1803,  1807,  1811,  1815,  1817,  1819,  1825,  1828,
    710     1834,  1835,  1837,  1839,  1843,  1844,  1846,  1848,  1850,  1852,
    711     1853,  1860,  1863,  1865,  1868,  1873,  1876,  1880,  1884,  1888,
    712     1893,  1899,  1905,  1911,  1918,  1920,  1922,  1924,  1928,  1929,
    713     1935,  1936,  1938,  1940,  1943,  1950,  1952,  1956,  1957,  1959,
    714     1964,  1966,  1968,  1970,  1972,  1975,  1977,  1980,  1983,  1985,
    715     1989,  1992,  1996,  2000,  2003,  2008,  2013,  2017,  2026,  2030,
    716     2033,  2035,  2038,  2045,  2054,  2058,  2061,  2065,  2069,  2074,
    717     2079,  2083,  2085,  2087,  2089,  2094,  2101,  2105,  2108,  2112,
    718     2116,  2121,  2126,  2130,  2133,  2135,  2138,  2141,  2143,  2147,
    719     2150,  2154,  2158,  2161,  2166,  2171,  2175,  2182,  2191,  2195,
    720     2198,  2200,  2203,  2206,  2209,  2213,  2217,  2220,  2225,  2230,
    721     2234,  2241,  2250,  2254,  2257,  2259,  2262,  2265,  2267,  2269,
    722     2272,  2276,  2280,  2283,  2288,  2295,  2304,  2306,  2309,  2312,
    723     2314,  2317,  2320,  2324,  2328,  2330,  2335,  2340,  2344,  2350,
    724     2359,  2363,  2366,  2370,  2372,  2378,  2384,  2391,  2398,  2400,
    725     2403,  2406,  2408,  2411,  2414,  2418,  2422,  2424,  2429,  2434,
    726     2438,  2444,  2453,  2457,  2459,  2462,  2464,  2467,  2474,  2480,
    727     2487,  2495,  2503,  2505,  2508,  2511,  2513,  2516,  2519,  2523,
    728     2527,  2529,  2534,  2539,  2543,  2552,  2556,  2558,  2560,  2563,
    729     2565,  2567,  2570,  2574,  2577,  2581,  2584,  2588,  2592,  2595,
    730     2600,  2604,  2607,  2611,  2614,  2619,  2623,  2626,  2633,  2640,
    731     2647,  2655,  2657,  2660,  2662,  2664,  2666,  2669,  2673,  2676,
    732     2680,  2683,  2687,  2691,  2696,  2699,  2703,  2708,  2711,  2717,
    733     2723,  2730,  2737,  2738,  2740,  2741
     665     236,   241,   246,   248,   252,   256,   260,   262,   266,   270,
     666     272,   276,   280,   282,   286,   290,   294,   298,   300,   304,
     667     308,   310,   314,   316,   320,   322,   326,   328,   332,   334,
     668     338,   340,   346,   351,   357,   359,   361,   365,   368,   369,
     669     371,   373,   375,   377,   379,   381,   383,   385,   387,   389,
     670     391,   393,   396,   402,   409,   417,   419,   423,   425,   429,
     671     430,   432,   434,   436,   438,   440,   442,   444,   446,   448,
     672     455,   460,   463,   471,   473,   477,   479,   482,   484,   487,
     673     489,   492,   495,   501,   509,   515,   525,   531,   541,   543,
     674     547,   549,   551,   555,   559,   562,   564,   567,   570,   571,
     675     573,   576,   580,   581,   583,   586,   590,   594,   599,   600,
     676     602,   604,   607,   613,   621,   628,   635,   640,   644,   649,
     677     652,   656,   659,   663,   667,   671,   675,   681,   685,   689,
     678     694,   696,   702,   709,   715,   722,   732,   743,   753,   764,
     679     767,   769,   772,   775,   778,   780,   787,   796,   807,   820,
     680     835,   836,   838,   839,   841,   843,   847,   852,   860,   861,
     681     863,   867,   869,   873,   875,   877,   879,   883,   885,   887,
     682     889,   893,   894,   896,   900,   905,   907,   911,   913,   915,
     683     919,   923,   927,   931,   935,   938,   942,   949,   953,   957,
     684     962,   964,   967,   970,   974,   980,   989,   997,  1005,  1011,
     685    1021,  1024,  1027,  1033,  1037,  1043,  1048,  1052,  1057,  1062,
     686    1070,  1074,  1078,  1082,  1086,  1091,  1098,  1100,  1102,  1104,
     687    1106,  1108,  1110,  1112,  1114,  1115,  1117,  1119,  1122,  1124,
     688    1126,  1128,  1130,  1132,  1134,  1136,  1137,  1143,  1145,  1148,
     689    1152,  1154,  1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,
     690    1173,  1175,  1177,  1179,  1181,  1183,  1185,  1187,  1189,  1191,
     691    1193,  1195,  1197,  1199,  1201,  1203,  1206,  1209,  1213,  1217,
     692    1219,  1223,  1225,  1228,  1231,  1234,  1239,  1244,  1249,  1254,
     693    1256,  1259,  1262,  1266,  1268,  1271,  1274,  1276,  1279,  1282,
     694    1286,  1288,  1291,  1294,  1296,  1298,  1303,  1306,  1307,  1314,
     695    1322,  1325,  1328,  1331,  1332,  1335,  1338,  1342,  1345,  1349,
     696    1351,  1354,  1358,  1361,  1364,  1369,  1370,  1372,  1375,  1378,
     697    1380,  1381,  1383,  1386,  1389,  1395,  1398,  1399,  1407,  1410,
     698    1415,  1416,  1419,  1420,  1422,  1424,  1426,  1432,  1438,  1444,
     699    1446,  1452,  1458,  1468,  1470,  1476,  1477,  1479,  1481,  1487,
     700    1489,  1491,  1497,  1503,  1505,  1509,  1513,  1518,  1520,  1522,
     701    1524,  1526,  1529,  1531,  1535,  1539,  1541,  1544,  1546,  1550,
     702    1552,  1554,  1556,  1558,  1560,  1562,  1564,  1566,  1568,  1570,
     703    1572,  1575,  1577,  1579,  1581,  1584,  1585,  1588,  1591,  1593,
     704    1598,  1599,  1601,  1604,  1608,  1613,  1616,  1619,  1621,  1624,
     705    1626,  1629,  1635,  1641,  1649,  1656,  1658,  1661,  1664,  1668,
     706    1670,  1673,  1676,  1681,  1684,  1689,  1690,  1695,  1698,  1700,
     707    1702,  1704,  1705,  1708,  1714,  1720,  1734,  1736,  1738,  1742,
     708    1746,  1749,  1753,  1757,  1760,  1765,  1767,  1774,  1784,  1785,
     709    1797,  1799,  1803,  1807,  1811,  1813,  1815,  1821,  1824,  1830,
     710    1831,  1833,  1835,  1839,  1840,  1842,  1844,  1846,  1848,  1849,
     711    1856,  1859,  1861,  1864,  1869,  1872,  1876,  1880,  1884,  1889,
     712    1895,  1901,  1907,  1914,  1916,  1918,  1920,  1924,  1925,  1931,
     713    1932,  1934,  1936,  1939,  1946,  1948,  1952,  1953,  1955,  1960,
     714    1962,  1964,  1966,  1968,  1971,  1973,  1976,  1979,  1981,  1985,
     715    1988,  1992,  1996,  1999,  2004,  2009,  2013,  2022,  2026,  2029,
     716    2031,  2034,  2041,  2050,  2054,  2057,  2061,  2065,  2070,  2075,
     717    2079,  2081,  2083,  2085,  2090,  2097,  2101,  2104,  2108,  2112,
     718    2117,  2122,  2126,  2129,  2131,  2134,  2137,  2139,  2143,  2146,
     719    2150,  2154,  2157,  2162,  2167,  2171,  2178,  2187,  2191,  2194,
     720    2196,  2199,  2202,  2205,  2209,  2213,  2216,  2221,  2226,  2230,
     721    2237,  2246,  2250,  2253,  2255,  2258,  2261,  2263,  2265,  2268,
     722    2272,  2276,  2279,  2284,  2291,  2300,  2302,  2305,  2308,  2310,
     723    2313,  2316,  2320,  2324,  2326,  2331,  2336,  2340,  2346,  2355,
     724    2359,  2362,  2366,  2368,  2374,  2380,  2387,  2394,  2396,  2399,
     725    2402,  2404,  2407,  2410,  2414,  2418,  2420,  2425,  2430,  2434,
     726    2440,  2449,  2453,  2455,  2458,  2460,  2463,  2470,  2476,  2483,
     727    2491,  2499,  2501,  2504,  2507,  2509,  2512,  2515,  2519,  2523,
     728    2525,  2530,  2535,  2539,  2548,  2552,  2554,  2556,  2559,  2561,
     729    2563,  2566,  2570,  2573,  2577,  2580,  2584,  2588,  2591,  2596,
     730    2600,  2603,  2607,  2610,  2615,  2619,  2622,  2629,  2636,  2643,
     731    2651,  2653,  2656,  2658,  2660,  2662,  2665,  2669,  2672,  2676,
     732    2679,  2683,  2687,  2692,  2695,  2699,  2704,  2707,  2713,  2719,
     733    2726,  2733,  2734,  2736,  2737
    734734};
    735735
     
    749749     144,   115,    -1,   145,    -1,   144,   116,   145,    -1,    -1,
    750750     164,    -1,   139,   117,   164,    -1,   111,   134,   164,   135,
    751      112,   117,   164,    -1,   111,   134,   164,   116,   167,   135,
     751     112,   117,   164,    -1,   111,   134,   164,   116,   168,   135,
    752752     112,   117,   164,    -1,   147,    -1,   146,   116,   147,    -1,
    753753     139,    -1,   139,   113,   147,    -1,   139,   113,   111,   134,
     
    759759     110,    -1,    76,    -1,    76,   109,   276,   110,    -1,    76,
    760760     109,   145,   110,    -1,    66,   148,    -1,    66,   109,   275,
    761      110,    -1,   118,    -1,   119,    -1,    94,    -1,   120,    -1,
    762      121,    -1,   122,    -1,   123,    -1,   148,    -1,   109,   275,
    763      110,   151,    -1,   109,   275,   110,   166,    -1,   151,    -1,
    764      152,   118,   151,    -1,   152,   124,   151,    -1,   152,   125,
    765      151,    -1,   152,    -1,   153,   120,   152,    -1,   153,   121,
    766      152,    -1,   153,    -1,   154,    88,   153,    -1,   154,    89,
    767      153,    -1,   154,    -1,   155,   126,   154,    -1,   155,   127,
    768      154,    -1,   155,    90,   154,    -1,   155,    91,   154,    -1,
    769      155,    -1,   156,    92,   155,    -1,   156,    93,   155,    -1,
    770      156,    -1,   157,   119,   156,    -1,   157,    -1,   158,   128,
    771      157,    -1,   158,    -1,   159,   129,   158,    -1,   159,    -1,
    772      160,    94,   159,    -1,   160,    -1,   161,    95,   160,    -1,
    773      161,    -1,   161,   130,   169,   117,   162,    -1,   161,   130,
    774      117,   162,    -1,   161,   130,   169,   117,   166,    -1,   162,
    775       -1,   162,    -1,   148,   131,   164,    -1,   148,   168,   164,
    776       -1,   166,   373,    -1,    -1,   164,    -1,   111,   112,    -1,
    777      111,   134,   164,   135,   112,    -1,   111,   134,   116,   167,
    778      135,   112,    -1,   111,   134,   164,   116,   167,   135,   112,
    779       -1,   165,    -1,   167,   116,   165,    -1,    97,    -1,    98,
    780       -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,
    781       -1,   104,    -1,   105,    -1,   106,    -1,   164,    -1,   169,
    782      116,   164,    -1,    -1,   169,    -1,   172,    -1,   173,    -1,
    783      177,    -1,   178,    -1,   190,    -1,   192,    -1,   193,    -1,
    784      198,    -1,   128,   143,   114,   144,   115,   132,    -1,    72,
    785      117,   312,   171,    -1,   114,   115,    -1,   114,   134,   134,
    786      209,   174,   135,   115,    -1,   175,    -1,   174,   134,   175,
    787       -1,   212,    -1,    40,   212,    -1,   308,    -1,   171,   135,
    788       -1,   171,    -1,   176,   171,    -1,   170,   132,    -1,    41,
    789      109,   169,   110,   171,    -1,    41,   109,   169,   110,   171,
    790       42,   171,    -1,    43,   109,   169,   110,   183,    -1,    43,
    791      109,   169,   110,   114,   134,   205,   184,   115,    -1,    53,
    792      109,   169,   110,   183,    -1,    53,   109,   169,   110,   114,
    793      134,   205,   186,   115,    -1,   163,    -1,   163,    96,   163,
    794       -1,   310,    -1,   179,    -1,   180,   116,   179,    -1,    44,
    795      180,   117,    -1,    45,   117,    -1,   181,    -1,   182,   181,
    796       -1,   182,   171,    -1,    -1,   185,    -1,   182,   176,    -1,
    797      185,   182,   176,    -1,    -1,   187,    -1,   182,   189,    -1,
    798      182,   176,   188,    -1,   187,   182,   189,    -1,   187,   182,
    799      176,   188,    -1,    -1,   189,    -1,    56,    -1,    56,   132,
    800       -1,    47,   109,   169,   110,   171,    -1,    46,   171,    47,
    801      109,   169,   110,   132,    -1,    48,   109,   134,   191,   110,
    802      171,    -1,   170,   135,   132,   170,   132,   170,    -1,   212,
    803      170,   132,   170,    -1,    51,    72,   132,    -1,    51,   118,
    804      169,   132,    -1,    50,   132,    -1,    50,    72,   132,    -1,
    805       49,   132,    -1,    49,    72,   132,    -1,    52,   170,   132,
    806       -1,    61,   165,   132,    -1,    62,   165,   132,    -1,    62,
    807      165,    63,   164,   132,    -1,    57,   173,   194,    -1,    57,
    808      173,   196,    -1,    57,   173,   194,   196,    -1,   195,    -1,
    809       58,   109,    96,   110,   173,    -1,   195,    58,   109,    96,
    810      110,   173,    -1,    59,   109,    96,   110,   173,    -1,   195,
    811       59,   109,    96,   110,   173,    -1,    58,   109,   134,   134,
    812      197,   135,   110,   173,   135,    -1,   195,    58,   109,   134,
    813      134,   197,   135,   110,   173,   135,    -1,    59,   109,   134,
    814      134,   197,   135,   110,   173,   135,    -1,   195,    59,   109,
    815      134,   134,   197,   135,   110,   173,   135,    -1,    60,   173,
    816       -1,   225,    -1,   225,   309,    -1,   225,   357,    -1,   366,
    817      139,    -1,   366,    -1,    64,   199,   109,   141,   110,   132,
    818       -1,    64,   199,   109,   141,   117,   200,   110,   132,    -1,
    819       64,   199,   109,   141,   117,   200,   117,   200,   110,   132,
    820       -1,    64,   199,   109,   141,   117,   200,   117,   200,   117,
    821      203,   110,   132,    -1,    64,   199,    51,   109,   141,   117,
    822      117,   200,   117,   203,   117,   204,   110,   132,    -1,    -1,
    823       11,    -1,    -1,   201,    -1,   202,    -1,   201,   116,   202,
    824       -1,   141,   109,   163,   110,    -1,   111,   163,   112,   141,
    825      109,   163,   110,    -1,    -1,   141,    -1,   203,   116,   141,
    826       -1,   139,    -1,   204,   116,   139,    -1,   135,    -1,   206,
    827       -1,   212,    -1,   206,   134,   212,    -1,   135,    -1,   208,
    828       -1,   222,    -1,   208,   134,   222,    -1,    -1,   210,    -1,
    829       29,   211,   132,    -1,   210,    29,   211,   132,    -1,   274,
    830       -1,   211,   116,   274,    -1,   213,    -1,   222,    -1,   214,
    831      135,   132,    -1,   219,   135,   132,    -1,   216,   135,   132,
    832       -1,   293,   135,   132,    -1,   296,   135,   132,    -1,   215,
    833      277,    -1,   231,   215,   277,    -1,   214,   135,   116,   134,
    834      272,   277,    -1,   367,   272,   311,    -1,   370,   272,   311,
    835       -1,   227,   370,   272,   311,    -1,   217,    -1,   227,   217,
    836       -1,   231,   217,    -1,   231,   227,   217,    -1,   216,   135,
    837      116,   134,   272,    -1,   111,   112,   272,   109,   134,   260,
    838      135,   110,    -1,   370,   272,   109,   134,   260,   135,   110,
    839       -1,   218,   272,   109,   134,   260,   135,   110,    -1,   111,
    840      134,   262,   135,   112,    -1,   111,   134,   262,   135,   116,
    841      134,   263,   135,   112,    -1,     3,   215,    -1,     3,   217,
    842       -1,   219,   135,   116,   134,   139,    -1,     3,   225,   309,
    843       -1,   220,   135,   116,   134,   309,    -1,   227,     3,   225,
    844      309,    -1,   225,     3,   309,    -1,   225,     3,   227,   309,
    845       -1,     3,   139,   131,   164,    -1,   221,   135,   116,   134,
    846      139,   131,   164,    -1,   223,   135,   132,    -1,   220,   135,
    847      132,    -1,   221,   135,   132,    -1,   240,   135,   132,    -1,
    848      224,   309,   311,   277,    -1,   223,   116,   312,   309,   311,
    849      277,    -1,   236,    -1,   240,    -1,   242,    -1,   283,    -1,
    850      237,    -1,   241,    -1,   243,    -1,   284,    -1,    -1,   227,
    851       -1,   228,    -1,   227,   228,    -1,   229,    -1,   314,    -1,
    852       10,    -1,    12,    -1,    11,    -1,    14,    -1,    67,    -1,
    853       -1,    13,   109,   230,   286,   110,    -1,   232,    -1,   227,
    854      232,    -1,   231,   227,   232,    -1,   233,    -1,   232,   233,
    855       -1,   234,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
    856       -1,     8,    -1,     9,    -1,    69,    -1,    71,    -1,    16,
    857       -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
    858       -1,    22,    -1,    23,    -1,    15,    -1,    25,    -1,    26,
    859       -1,    27,    -1,    24,    -1,   237,    -1,   231,   237,    -1,
    860      236,   233,    -1,   236,   233,   227,    -1,   236,   233,   237,
    861       -1,   238,    -1,   226,   239,   226,    -1,   235,    -1,   227,
    862      235,    -1,   238,   228,    -1,   238,   235,    -1,    28,   109,
    863      276,   110,    -1,    28,   109,   169,   110,    -1,    78,   109,
    864      276,   110,    -1,    78,   109,   169,   110,    -1,   241,    -1,
    865      231,   241,    -1,   240,   233,    -1,   240,   233,   227,    -1,
    866      244,    -1,   227,   244,    -1,   241,   228,    -1,   243,    -1,
    867      231,   243,    -1,   242,   233,    -1,   242,   233,   227,    -1,
    868       74,    -1,   227,    74,    -1,   243,   228,    -1,   245,    -1,
    869      256,    -1,   247,   114,   248,   115,    -1,   247,   274,    -1,
    870       -1,   247,   274,   246,   114,   248,   115,    -1,   247,   109,
    871      292,   110,   114,   248,   115,    -1,   247,   285,    -1,    31,
    872      312,    -1,    32,   312,    -1,    -1,   248,   249,    -1,   250,
    873      132,    -1,    40,   250,   132,    -1,   251,   132,    -1,    40,
    874      251,   132,    -1,   366,    -1,   366,   274,    -1,   250,   116,
    875      274,    -1,   250,   116,    -1,   225,   252,    -1,   251,   116,
    876      312,   252,    -1,    -1,   254,    -1,   318,   253,    -1,   331,
    877      253,    -1,   357,    -1,    -1,   254,    -1,   117,   163,    -1,
    878       30,   312,    -1,   255,   114,   258,   372,   115,    -1,   255,
    879      274,    -1,    -1,   255,   274,   257,   114,   258,   372,   115,
    880       -1,   274,   259,    -1,   258,   116,   274,   259,    -1,    -1,
    881      131,   163,    -1,    -1,   261,    -1,   263,    -1,   262,    -1,
    882      262,   135,   116,   134,   263,    -1,   263,   135,   116,   134,
    883       96,    -1,   262,   135,   116,   134,    96,    -1,   267,    -1,
    884      263,   135,   116,   134,   267,    -1,   262,   135,   116,   134,
    885      267,    -1,   262,   135,   116,   134,   263,   135,   116,   134,
    886      267,    -1,   268,    -1,   263,   135,   116,   134,   268,    -1,
    887       -1,   265,    -1,   266,    -1,   266,   135,   116,   134,    96,
    888       -1,   270,    -1,   269,    -1,   266,   135,   116,   134,   270,
    889       -1,   266,   135,   116,   134,   269,    -1,   269,    -1,   362,
    890      272,   373,    -1,   370,   272,   373,    -1,   227,   370,   272,
    891      373,    -1,   217,    -1,   270,    -1,   362,    -1,   370,    -1,
    892      227,   370,    -1,   371,    -1,   224,   336,   373,    -1,   224,
    893      340,   373,    -1,   224,    -1,   224,   351,    -1,   139,    -1,
    894      271,   116,   139,    -1,   137,    -1,    74,    -1,    75,    -1,
    895      138,    -1,    74,    -1,    75,    -1,   139,    -1,    74,    -1,
    896       75,    -1,   366,    -1,   225,    -1,   225,   357,    -1,   366,
    897       -1,   371,    -1,   225,    -1,   225,   345,    -1,    -1,   131,
    898      278,    -1,   107,   278,    -1,   164,    -1,   114,   279,   372,
    899      115,    -1,    -1,   278,    -1,   280,   278,    -1,   279,   116,
    900      278,    -1,   279,   116,   280,   278,    -1,   281,   117,    -1,
    901      274,   117,    -1,   282,    -1,   281,   282,    -1,    80,    -1,
    902      113,   274,    -1,   111,   134,   164,   135,   112,    -1,   111,
    903      134,   310,   135,   112,    -1,   111,   134,   163,    96,   163,
    904      135,   112,    -1,   113,   111,   134,   146,   135,   112,    -1,
    905      284,    -1,   231,   284,    -1,   283,   233,    -1,   283,   233,
    906      227,    -1,   285,    -1,   227,   285,    -1,   284,   228,    -1,
    907       75,   109,   292,   110,    -1,   287,   373,    -1,   286,   116,
    908      287,   373,    -1,    -1,   289,   274,   288,   290,    -1,   225,
    909      336,    -1,    33,    -1,    35,    -1,    34,    -1,    -1,   290,
    910      291,    -1,   129,   274,   109,   292,   110,    -1,   129,   114,
    911      134,   298,   115,    -1,   129,   109,   134,   286,   135,   110,
    912      114,   134,   298,   115,   109,   292,   110,    -1,   276,    -1,
    913      164,    -1,   292,   116,   276,    -1,   292,   116,   164,    -1,
    914       33,   294,    -1,   232,    33,   294,    -1,   293,   116,   294,
    915       -1,   295,   290,    -1,   295,   290,   131,   276,    -1,   274,
    916       -1,   273,   109,   134,   286,   135,   110,    -1,    36,   274,
    917      109,   134,   286,   135,   110,   114,   115,    -1,    -1,    36,
    918      274,   109,   134,   286,   135,   110,   114,   297,   298,   115,
    919       -1,   299,    -1,   298,   134,   299,    -1,   300,   135,   132,
    920       -1,   301,   135,   132,    -1,   215,    -1,   217,    -1,   300,
    921      135,   116,   134,   272,    -1,   225,   309,    -1,   301,   135,
    922      116,   134,   309,    -1,    -1,   303,    -1,   305,    -1,   303,
    923      134,   305,    -1,    -1,   303,    -1,   212,    -1,   307,    -1,
    924      198,    -1,    -1,     5,    82,   306,   114,   304,   115,    -1,
    925       40,   305,    -1,   308,    -1,   323,   173,    -1,   327,   134,
    926      207,   173,    -1,   216,   173,    -1,   224,   323,   173,    -1,
    927      227,   323,   173,    -1,   231,   323,   173,    -1,   231,   227,
    928      323,   173,    -1,   224,   327,   134,   207,   173,    -1,   227,
    929      327,   134,   207,   173,    -1,   231,   327,   134,   207,   173,
    930       -1,   231,   227,   327,   134,   207,   173,    -1,   318,    -1,
    931      331,    -1,   323,    -1,   163,   123,   163,    -1,    -1,    64,
    932      109,   141,   110,   312,    -1,    -1,   313,    -1,   314,    -1,
    933      313,   314,    -1,    39,   109,   109,   315,   110,   110,    -1,
    934      316,    -1,   315,   116,   316,    -1,    -1,   317,    -1,   317,
    935      109,   170,   110,    -1,   272,    -1,   234,    -1,   235,    -1,
    936      228,    -1,   319,   312,    -1,   320,    -1,   321,   312,    -1,
    937      322,   312,    -1,   137,    -1,   109,   319,   110,    -1,   149,
    938      318,    -1,   149,   227,   318,    -1,   109,   320,   110,    -1,
    939      319,   349,    -1,   109,   320,   110,   349,    -1,   109,   321,
    940      110,   350,    -1,   109,   321,   110,    -1,   109,   320,   110,
    941      109,   134,   264,   135,   110,    -1,   109,   322,   110,    -1,
    942      324,   312,    -1,   325,    -1,   326,   312,    -1,   319,   109,
    943      134,   264,   135,   110,    -1,   109,   325,   110,   109,   134,
    944      264,   135,   110,    -1,   109,   324,   110,    -1,   149,   323,
    945       -1,   149,   227,   323,    -1,   109,   325,   110,    -1,   109,
    946      325,   110,   349,    -1,   109,   326,   110,   350,    -1,   109,
    947      326,   110,    -1,   328,    -1,   329,    -1,   330,    -1,   319,
    948      109,   271,   110,    -1,   109,   329,   110,   109,   271,   110,
    949       -1,   109,   328,   110,    -1,   149,   327,    -1,   149,   227,
    950      327,    -1,   109,   329,   110,    -1,   109,   329,   110,   349,
    951       -1,   109,   330,   110,   350,    -1,   109,   330,   110,    -1,
    952      332,   312,    -1,   333,    -1,   334,   312,    -1,   335,   312,
    953       -1,   341,    -1,   109,   332,   110,    -1,   149,   331,    -1,
    954      149,   227,   331,    -1,   109,   333,   110,    -1,   332,   349,
    955       -1,   109,   333,   110,   349,    -1,   109,   334,   110,   350,
    956       -1,   109,   334,   110,    -1,   332,   109,   134,   264,   135,
    957      110,    -1,   109,   333,   110,   109,   134,   264,   135,   110,
    958       -1,   109,   335,   110,    -1,   319,   312,    -1,   337,    -1,
    959      338,   312,    -1,   339,   312,    -1,   149,   336,    -1,   149,
    960      227,   336,    -1,   109,   337,   110,    -1,   319,   355,    -1,
    961      109,   337,   110,   349,    -1,   109,   338,   110,   350,    -1,
    962      109,   338,   110,    -1,   319,   109,   134,   264,   135,   110,
    963       -1,   109,   337,   110,   109,   134,   264,   135,   110,    -1,
    964      109,   339,   110,    -1,   341,   312,    -1,   342,    -1,   343,
    965      312,    -1,   344,   312,    -1,    74,    -1,    75,    -1,   149,
    966      340,    -1,   149,   227,   340,    -1,   109,   342,   110,    -1,
    967      341,   355,    -1,   109,   342,   110,   355,    -1,   341,   109,
    968      134,   264,   135,   110,    -1,   109,   342,   110,   109,   134,
    969      264,   135,   110,    -1,   346,    -1,   347,   312,    -1,   348,
    970      312,    -1,   149,    -1,   149,   227,    -1,   149,   345,    -1,
    971      149,   227,   345,    -1,   109,   346,   110,    -1,   349,    -1,
    972      109,   346,   110,   349,    -1,   109,   347,   110,   350,    -1,
    973      109,   347,   110,    -1,   109,   134,   264,   135,   110,    -1,
    974      109,   346,   110,   109,   134,   264,   135,   110,    -1,   109,
    975      348,   110,    -1,   111,   112,    -1,   111,   112,   350,    -1,
    976      350,    -1,   111,   134,   164,   135,   112,    -1,   111,   134,
    977      118,   135,   112,    -1,   350,   111,   134,   164,   135,   112,
    978       -1,   350,   111,   134,   118,   135,   112,    -1,   352,    -1,
    979      353,   312,    -1,   354,   312,    -1,   149,    -1,   149,   227,
    980       -1,   149,   351,    -1,   149,   227,   351,    -1,   109,   352,
    981      110,    -1,   355,    -1,   109,   352,   110,   355,    -1,   109,
    982      353,   110,   350,    -1,   109,   353,   110,    -1,   109,   134,
    983      264,   135,   110,    -1,   109,   352,   110,   109,   134,   264,
    984      135,   110,    -1,   109,   354,   110,    -1,   356,    -1,   356,
    985      350,    -1,   350,    -1,   111,   112,    -1,   111,   134,   227,
    986      118,   135,   112,    -1,   111,   134,   227,   135,   112,    -1,
    987      111,   134,   227,   164,   135,   112,    -1,   111,   134,     7,
    988      226,   164,   135,   112,    -1,   111,   134,   227,     7,   164,
    989      135,   112,    -1,   358,    -1,   359,   312,    -1,   360,   312,
    990       -1,   149,    -1,   149,   227,    -1,   149,   357,    -1,   149,
    991      227,   357,    -1,   109,   358,   110,    -1,   349,    -1,   109,
    992      358,   110,   349,    -1,   109,   359,   110,   350,    -1,   109,
    993      359,   110,    -1,   109,   358,   110,   109,   134,   264,   135,
    994      110,    -1,   109,   360,   110,    -1,   362,    -1,   370,    -1,
    995      227,   370,    -1,   363,    -1,   364,    -1,   149,   225,    -1,
    996      227,   149,   225,    -1,   149,   371,    -1,   227,   149,   371,
    997       -1,   149,   361,    -1,   227,   149,   361,    -1,   111,   112,
    998      225,    -1,   365,   225,    -1,   111,   112,   350,   225,    -1,
    999      365,   350,   225,    -1,   350,   225,    -1,   111,   112,   363,
    1000       -1,   365,   363,    -1,   111,   112,   350,   363,    -1,   365,
    1001      350,   363,    -1,   350,   363,    -1,   111,   134,   227,   118,
    1002      135,   112,    -1,   111,   134,   227,   164,   135,   112,    -1,
    1003      111,   134,   231,   164,   135,   112,    -1,   111,   134,   231,
    1004      227,   164,   135,   112,    -1,   370,    -1,   227,   370,    -1,
    1005      367,    -1,   368,    -1,   369,    -1,   149,   225,    -1,   227,
    1006      149,   225,    -1,   149,   371,    -1,   227,   149,   371,    -1,
    1007      149,   366,    -1,   227,   149,   366,    -1,   111,   112,   225,
    1008       -1,   111,   112,   350,   225,    -1,   350,   225,    -1,   111,
    1009      112,   368,    -1,   111,   112,   350,   368,    -1,   350,   368,
    1010       -1,   111,   134,   263,   135,   112,    -1,   111,   112,   109,
    1011      260,   110,    -1,   370,   109,   134,   260,   135,   110,    -1,
    1012      218,   109,   134,   260,   135,   110,    -1,    -1,   116,    -1,
    1013       -1,   131,   164,    -1
     761     110,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
     762     122,    -1,   123,    -1,   148,    -1,   109,   275,   110,   151,
     763      -1,   109,   275,   110,   167,    -1,   151,    -1,   152,   118,
     764     151,    -1,   152,   124,   151,    -1,   152,   125,   151,    -1,
     765     152,    -1,   153,   120,   152,    -1,   153,   121,   152,    -1,
     766     153,    -1,   154,    88,   153,    -1,   154,    89,   153,    -1,
     767     154,    -1,   155,   126,   154,    -1,   155,   127,   154,    -1,
     768     155,    90,   154,    -1,   155,    91,   154,    -1,   155,    -1,
     769     156,    92,   155,    -1,   156,    93,   155,    -1,   156,    -1,
     770     157,   119,   156,    -1,   157,    -1,   158,   128,   157,    -1,
     771     158,    -1,   159,   129,   158,    -1,   159,    -1,   160,    94,
     772     159,    -1,   160,    -1,   161,    95,   160,    -1,   161,    -1,
     773     161,   130,   169,   117,   162,    -1,   161,   130,   117,   162,
     774      -1,   161,   130,   169,   117,   167,    -1,   162,    -1,   162,
     775      -1,   148,   166,   164,    -1,   167,   373,    -1,    -1,   164,
     776      -1,   131,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
     777      -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
     778      -1,   106,    -1,   111,   112,    -1,   111,   134,   164,   135,
     779     112,    -1,   111,   134,   116,   168,   135,   112,    -1,   111,
     780     134,   164,   116,   168,   135,   112,    -1,   165,    -1,   168,
     781     116,   165,    -1,   164,    -1,   169,   116,   164,    -1,    -1,
     782     169,    -1,   172,    -1,   173,    -1,   177,    -1,   178,    -1,
     783     190,    -1,   192,    -1,   193,    -1,   198,    -1,   128,   143,
     784     114,   144,   115,   132,    -1,    72,   117,   312,   171,    -1,
     785     114,   115,    -1,   114,   134,   134,   209,   174,   135,   115,
     786      -1,   175,    -1,   174,   134,   175,    -1,   212,    -1,    40,
     787     212,    -1,   308,    -1,   171,   135,    -1,   171,    -1,   176,
     788     171,    -1,   170,   132,    -1,    41,   109,   169,   110,   171,
     789      -1,    41,   109,   169,   110,   171,    42,   171,    -1,    43,
     790     109,   169,   110,   183,    -1,    43,   109,   169,   110,   114,
     791     134,   205,   184,   115,    -1,    53,   109,   169,   110,   183,
     792      -1,    53,   109,   169,   110,   114,   134,   205,   186,   115,
     793      -1,   163,    -1,   163,    96,   163,    -1,   310,    -1,   179,
     794      -1,   180,   116,   179,    -1,    44,   180,   117,    -1,    45,
     795     117,    -1,   181,    -1,   182,   181,    -1,   182,   171,    -1,
     796      -1,   185,    -1,   182,   176,    -1,   185,   182,   176,    -1,
     797      -1,   187,    -1,   182,   189,    -1,   182,   176,   188,    -1,
     798     187,   182,   189,    -1,   187,   182,   176,   188,    -1,    -1,
     799     189,    -1,    56,    -1,    56,   132,    -1,    47,   109,   169,
     800     110,   171,    -1,    46,   171,    47,   109,   169,   110,   132,
     801      -1,    48,   109,   134,   191,   110,   171,    -1,   170,   135,
     802     132,   170,   132,   170,    -1,   212,   170,   132,   170,    -1,
     803      51,    72,   132,    -1,    51,   118,   169,   132,    -1,    50,
     804     132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
     805      72,   132,    -1,    52,   170,   132,    -1,    61,   165,   132,
     806      -1,    62,   165,   132,    -1,    62,   165,    63,   164,   132,
     807      -1,    57,   173,   194,    -1,    57,   173,   196,    -1,    57,
     808     173,   194,   196,    -1,   195,    -1,    58,   109,    96,   110,
     809     173,    -1,   195,    58,   109,    96,   110,   173,    -1,    59,
     810     109,    96,   110,   173,    -1,   195,    59,   109,    96,   110,
     811     173,    -1,    58,   109,   134,   134,   197,   135,   110,   173,
     812     135,    -1,   195,    58,   109,   134,   134,   197,   135,   110,
     813     173,   135,    -1,    59,   109,   134,   134,   197,   135,   110,
     814     173,   135,    -1,   195,    59,   109,   134,   134,   197,   135,
     815     110,   173,   135,    -1,    60,   173,    -1,   225,    -1,   225,
     816     309,    -1,   225,   357,    -1,   366,   139,    -1,   366,    -1,
     817      64,   199,   109,   141,   110,   132,    -1,    64,   199,   109,
     818     141,   117,   200,   110,   132,    -1,    64,   199,   109,   141,
     819     117,   200,   117,   200,   110,   132,    -1,    64,   199,   109,
     820     141,   117,   200,   117,   200,   117,   203,   110,   132,    -1,
     821      64,   199,    51,   109,   141,   117,   117,   200,   117,   203,
     822     117,   204,   110,   132,    -1,    -1,    11,    -1,    -1,   201,
     823      -1,   202,    -1,   201,   116,   202,    -1,   141,   109,   163,
     824     110,    -1,   111,   163,   112,   141,   109,   163,   110,    -1,
     825      -1,   141,    -1,   203,   116,   141,    -1,   139,    -1,   204,
     826     116,   139,    -1,   135,    -1,   206,    -1,   212,    -1,   206,
     827     134,   212,    -1,   135,    -1,   208,    -1,   222,    -1,   208,
     828     134,   222,    -1,    -1,   210,    -1,    29,   211,   132,    -1,
     829     210,    29,   211,   132,    -1,   274,    -1,   211,   116,   274,
     830      -1,   213,    -1,   222,    -1,   214,   135,   132,    -1,   219,
     831     135,   132,    -1,   216,   135,   132,    -1,   293,   135,   132,
     832      -1,   296,   135,   132,    -1,   215,   277,    -1,   231,   215,
     833     277,    -1,   214,   135,   116,   134,   272,   277,    -1,   367,
     834     272,   311,    -1,   370,   272,   311,    -1,   227,   370,   272,
     835     311,    -1,   217,    -1,   227,   217,    -1,   231,   217,    -1,
     836     231,   227,   217,    -1,   216,   135,   116,   134,   272,    -1,
     837     111,   112,   272,   109,   134,   260,   135,   110,    -1,   370,
     838     272,   109,   134,   260,   135,   110,    -1,   218,   272,   109,
     839     134,   260,   135,   110,    -1,   111,   134,   262,   135,   112,
     840      -1,   111,   134,   262,   135,   116,   134,   263,   135,   112,
     841      -1,     3,   215,    -1,     3,   217,    -1,   219,   135,   116,
     842     134,   139,    -1,     3,   225,   309,    -1,   220,   135,   116,
     843     134,   309,    -1,   227,     3,   225,   309,    -1,   225,     3,
     844     309,    -1,   225,     3,   227,   309,    -1,     3,   139,   131,
     845     164,    -1,   221,   135,   116,   134,   139,   131,   164,    -1,
     846     223,   135,   132,    -1,   220,   135,   132,    -1,   221,   135,
     847     132,    -1,   240,   135,   132,    -1,   224,   309,   311,   277,
     848      -1,   223,   116,   312,   309,   311,   277,    -1,   236,    -1,
     849     240,    -1,   242,    -1,   283,    -1,   237,    -1,   241,    -1,
     850     243,    -1,   284,    -1,    -1,   227,    -1,   228,    -1,   227,
     851     228,    -1,   229,    -1,   314,    -1,    10,    -1,    12,    -1,
     852      11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   230,
     853     286,   110,    -1,   232,    -1,   227,   232,    -1,   231,   227,
     854     232,    -1,   233,    -1,   232,   233,    -1,   234,    -1,     5,
     855      -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
     856      -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
     857      -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
     858      -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
     859      -1,   237,    -1,   231,   237,    -1,   236,   233,    -1,   236,
     860     233,   227,    -1,   236,   233,   237,    -1,   238,    -1,   226,
     861     239,   226,    -1,   235,    -1,   227,   235,    -1,   238,   228,
     862      -1,   238,   235,    -1,    28,   109,   276,   110,    -1,    28,
     863     109,   169,   110,    -1,    78,   109,   276,   110,    -1,    78,
     864     109,   169,   110,    -1,   241,    -1,   231,   241,    -1,   240,
     865     233,    -1,   240,   233,   227,    -1,   244,    -1,   227,   244,
     866      -1,   241,   228,    -1,   243,    -1,   231,   243,    -1,   242,
     867     233,    -1,   242,   233,   227,    -1,    74,    -1,   227,    74,
     868      -1,   243,   228,    -1,   245,    -1,   256,    -1,   247,   114,
     869     248,   115,    -1,   247,   274,    -1,    -1,   247,   274,   246,
     870     114,   248,   115,    -1,   247,   109,   292,   110,   114,   248,
     871     115,    -1,   247,   285,    -1,    31,   312,    -1,    32,   312,
     872      -1,    -1,   248,   249,    -1,   250,   132,    -1,    40,   250,
     873     132,    -1,   251,   132,    -1,    40,   251,   132,    -1,   366,
     874      -1,   366,   274,    -1,   250,   116,   274,    -1,   250,   116,
     875      -1,   225,   252,    -1,   251,   116,   312,   252,    -1,    -1,
     876     254,    -1,   318,   253,    -1,   331,   253,    -1,   357,    -1,
     877      -1,   254,    -1,   117,   163,    -1,    30,   312,    -1,   255,
     878     114,   258,   372,   115,    -1,   255,   274,    -1,    -1,   255,
     879     274,   257,   114,   258,   372,   115,    -1,   274,   259,    -1,
     880     258,   116,   274,   259,    -1,    -1,   131,   163,    -1,    -1,
     881     261,    -1,   263,    -1,   262,    -1,   262,   135,   116,   134,
     882     263,    -1,   263,   135,   116,   134,    96,    -1,   262,   135,
     883     116,   134,    96,    -1,   267,    -1,   263,   135,   116,   134,
     884     267,    -1,   262,   135,   116,   134,   267,    -1,   262,   135,
     885     116,   134,   263,   135,   116,   134,   267,    -1,   268,    -1,
     886     263,   135,   116,   134,   268,    -1,    -1,   265,    -1,   266,
     887      -1,   266,   135,   116,   134,    96,    -1,   270,    -1,   269,
     888      -1,   266,   135,   116,   134,   270,    -1,   266,   135,   116,
     889     134,   269,    -1,   269,    -1,   362,   272,   373,    -1,   370,
     890     272,   373,    -1,   227,   370,   272,   373,    -1,   217,    -1,
     891     270,    -1,   362,    -1,   370,    -1,   227,   370,    -1,   371,
     892      -1,   224,   336,   373,    -1,   224,   340,   373,    -1,   224,
     893      -1,   224,   351,    -1,   139,    -1,   271,   116,   139,    -1,
     894     137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,    -1,
     895      75,    -1,   139,    -1,    74,    -1,    75,    -1,   366,    -1,
     896     225,    -1,   225,   357,    -1,   366,    -1,   371,    -1,   225,
     897      -1,   225,   345,    -1,    -1,   131,   278,    -1,   107,   278,
     898      -1,   164,    -1,   114,   279,   372,   115,    -1,    -1,   278,
     899      -1,   280,   278,    -1,   279,   116,   278,    -1,   279,   116,
     900     280,   278,    -1,   281,   117,    -1,   274,   117,    -1,   282,
     901      -1,   281,   282,    -1,    80,    -1,   113,   274,    -1,   111,
     902     134,   164,   135,   112,    -1,   111,   134,   310,   135,   112,
     903      -1,   111,   134,   163,    96,   163,   135,   112,    -1,   113,
     904     111,   134,   146,   135,   112,    -1,   284,    -1,   231,   284,
     905      -1,   283,   233,    -1,   283,   233,   227,    -1,   285,    -1,
     906     227,   285,    -1,   284,   228,    -1,    75,   109,   292,   110,
     907      -1,   287,   373,    -1,   286,   116,   287,   373,    -1,    -1,
     908     289,   274,   288,   290,    -1,   225,   336,    -1,    33,    -1,
     909      35,    -1,    34,    -1,    -1,   290,   291,    -1,   129,   274,
     910     109,   292,   110,    -1,   129,   114,   134,   298,   115,    -1,
     911     129,   109,   134,   286,   135,   110,   114,   134,   298,   115,
     912     109,   292,   110,    -1,   276,    -1,   164,    -1,   292,   116,
     913     276,    -1,   292,   116,   164,    -1,    33,   294,    -1,   232,
     914      33,   294,    -1,   293,   116,   294,    -1,   295,   290,    -1,
     915     295,   290,   131,   276,    -1,   274,    -1,   273,   109,   134,
     916     286,   135,   110,    -1,    36,   274,   109,   134,   286,   135,
     917     110,   114,   115,    -1,    -1,    36,   274,   109,   134,   286,
     918     135,   110,   114,   297,   298,   115,    -1,   299,    -1,   298,
     919     134,   299,    -1,   300,   135,   132,    -1,   301,   135,   132,
     920      -1,   215,    -1,   217,    -1,   300,   135,   116,   134,   272,
     921      -1,   225,   309,    -1,   301,   135,   116,   134,   309,    -1,
     922      -1,   303,    -1,   305,    -1,   303,   134,   305,    -1,    -1,
     923     303,    -1,   212,    -1,   307,    -1,   198,    -1,    -1,     5,
     924      82,   306,   114,   304,   115,    -1,    40,   305,    -1,   308,
     925      -1,   323,   173,    -1,   327,   134,   207,   173,    -1,   216,
     926     173,    -1,   224,   323,   173,    -1,   227,   323,   173,    -1,
     927     231,   323,   173,    -1,   231,   227,   323,   173,    -1,   224,
     928     327,   134,   207,   173,    -1,   227,   327,   134,   207,   173,
     929      -1,   231,   327,   134,   207,   173,    -1,   231,   227,   327,
     930     134,   207,   173,    -1,   318,    -1,   331,    -1,   323,    -1,
     931     163,   123,   163,    -1,    -1,    64,   109,   141,   110,   312,
     932      -1,    -1,   313,    -1,   314,    -1,   313,   314,    -1,    39,
     933     109,   109,   315,   110,   110,    -1,   316,    -1,   315,   116,
     934     316,    -1,    -1,   317,    -1,   317,   109,   170,   110,    -1,
     935     272,    -1,   234,    -1,   235,    -1,   228,    -1,   319,   312,
     936      -1,   320,    -1,   321,   312,    -1,   322,   312,    -1,   137,
     937      -1,   109,   319,   110,    -1,   149,   318,    -1,   149,   227,
     938     318,    -1,   109,   320,   110,    -1,   319,   349,    -1,   109,
     939     320,   110,   349,    -1,   109,   321,   110,   350,    -1,   109,
     940     321,   110,    -1,   109,   320,   110,   109,   134,   264,   135,
     941     110,    -1,   109,   322,   110,    -1,   324,   312,    -1,   325,
     942      -1,   326,   312,    -1,   319,   109,   134,   264,   135,   110,
     943      -1,   109,   325,   110,   109,   134,   264,   135,   110,    -1,
     944     109,   324,   110,    -1,   149,   323,    -1,   149,   227,   323,
     945      -1,   109,   325,   110,    -1,   109,   325,   110,   349,    -1,
     946     109,   326,   110,   350,    -1,   109,   326,   110,    -1,   328,
     947      -1,   329,    -1,   330,    -1,   319,   109,   271,   110,    -1,
     948     109,   329,   110,   109,   271,   110,    -1,   109,   328,   110,
     949      -1,   149,   327,    -1,   149,   227,   327,    -1,   109,   329,
     950     110,    -1,   109,   329,   110,   349,    -1,   109,   330,   110,
     951     350,    -1,   109,   330,   110,    -1,   332,   312,    -1,   333,
     952      -1,   334,   312,    -1,   335,   312,    -1,   341,    -1,   109,
     953     332,   110,    -1,   149,   331,    -1,   149,   227,   331,    -1,
     954     109,   333,   110,    -1,   332,   349,    -1,   109,   333,   110,
     955     349,    -1,   109,   334,   110,   350,    -1,   109,   334,   110,
     956      -1,   332,   109,   134,   264,   135,   110,    -1,   109,   333,
     957     110,   109,   134,   264,   135,   110,    -1,   109,   335,   110,
     958      -1,   319,   312,    -1,   337,    -1,   338,   312,    -1,   339,
     959     312,    -1,   149,   336,    -1,   149,   227,   336,    -1,   109,
     960     337,   110,    -1,   319,   355,    -1,   109,   337,   110,   349,
     961      -1,   109,   338,   110,   350,    -1,   109,   338,   110,    -1,
     962     319,   109,   134,   264,   135,   110,    -1,   109,   337,   110,
     963     109,   134,   264,   135,   110,    -1,   109,   339,   110,    -1,
     964     341,   312,    -1,   342,    -1,   343,   312,    -1,   344,   312,
     965      -1,    74,    -1,    75,    -1,   149,   340,    -1,   149,   227,
     966     340,    -1,   109,   342,   110,    -1,   341,   355,    -1,   109,
     967     342,   110,   355,    -1,   341,   109,   134,   264,   135,   110,
     968      -1,   109,   342,   110,   109,   134,   264,   135,   110,    -1,
     969     346,    -1,   347,   312,    -1,   348,   312,    -1,   149,    -1,
     970     149,   227,    -1,   149,   345,    -1,   149,   227,   345,    -1,
     971     109,   346,   110,    -1,   349,    -1,   109,   346,   110,   349,
     972      -1,   109,   347,   110,   350,    -1,   109,   347,   110,    -1,
     973     109,   134,   264,   135,   110,    -1,   109,   346,   110,   109,
     974     134,   264,   135,   110,    -1,   109,   348,   110,    -1,   111,
     975     112,    -1,   111,   112,   350,    -1,   350,    -1,   111,   134,
     976     164,   135,   112,    -1,   111,   134,   118,   135,   112,    -1,
     977     350,   111,   134,   164,   135,   112,    -1,   350,   111,   134,
     978     118,   135,   112,    -1,   352,    -1,   353,   312,    -1,   354,
     979     312,    -1,   149,    -1,   149,   227,    -1,   149,   351,    -1,
     980     149,   227,   351,    -1,   109,   352,   110,    -1,   355,    -1,
     981     109,   352,   110,   355,    -1,   109,   353,   110,   350,    -1,
     982     109,   353,   110,    -1,   109,   134,   264,   135,   110,    -1,
     983     109,   352,   110,   109,   134,   264,   135,   110,    -1,   109,
     984     354,   110,    -1,   356,    -1,   356,   350,    -1,   350,    -1,
     985     111,   112,    -1,   111,   134,   227,   118,   135,   112,    -1,
     986     111,   134,   227,   135,   112,    -1,   111,   134,   227,   164,
     987     135,   112,    -1,   111,   134,     7,   226,   164,   135,   112,
     988      -1,   111,   134,   227,     7,   164,   135,   112,    -1,   358,
     989      -1,   359,   312,    -1,   360,   312,    -1,   149,    -1,   149,
     990     227,    -1,   149,   357,    -1,   149,   227,   357,    -1,   109,
     991     358,   110,    -1,   349,    -1,   109,   358,   110,   349,    -1,
     992     109,   359,   110,   350,    -1,   109,   359,   110,    -1,   109,
     993     358,   110,   109,   134,   264,   135,   110,    -1,   109,   360,
     994     110,    -1,   362,    -1,   370,    -1,   227,   370,    -1,   363,
     995      -1,   364,    -1,   149,   225,    -1,   227,   149,   225,    -1,
     996     149,   371,    -1,   227,   149,   371,    -1,   149,   361,    -1,
     997     227,   149,   361,    -1,   111,   112,   225,    -1,   365,   225,
     998      -1,   111,   112,   350,   225,    -1,   365,   350,   225,    -1,
     999     350,   225,    -1,   111,   112,   363,    -1,   365,   363,    -1,
     1000     111,   112,   350,   363,    -1,   365,   350,   363,    -1,   350,
     1001     363,    -1,   111,   134,   227,   118,   135,   112,    -1,   111,
     1002     134,   227,   164,   135,   112,    -1,   111,   134,   231,   164,
     1003     135,   112,    -1,   111,   134,   231,   227,   164,   135,   112,
     1004      -1,   370,    -1,   227,   370,    -1,   367,    -1,   368,    -1,
     1005     369,    -1,   149,   225,    -1,   227,   149,   225,    -1,   149,
     1006     371,    -1,   227,   149,   371,    -1,   149,   366,    -1,   227,
     1007     149,   366,    -1,   111,   112,   225,    -1,   111,   112,   350,
     1008     225,    -1,   350,   225,    -1,   111,   112,   368,    -1,   111,
     1009     112,   350,   368,    -1,   350,   368,    -1,   111,   134,   263,
     1010     135,   112,    -1,   111,   112,   109,   260,   110,    -1,   370,
     1011     109,   134,   260,   135,   110,    -1,   218,   109,   134,   260,
     1012     135,   110,    -1,    -1,   116,    -1,    -1,   131,   164,    -1
    10141013};
    10151014
     
    10171016static const yytype_uint16 yyrline[] =
    10181017{
    1019        0,   292,   292,   298,   307,   308,   309,   313,   314,   315,
    1020      319,   320,   324,   325,   329,   330,   334,   335,   341,   343,
    1021      345,   347,   352,   353,   359,   363,   365,   366,   368,   369,
    1022      371,   373,   375,   383,   384,   390,   391,   392,   397,   399,
     1018       0,   291,   291,   297,   306,   307,   308,   312,   313,   314,
     1019     318,   319,   323,   324,   328,   329,   333,   334,   340,   342,
     1020     344,   346,   351,   352,   358,   362,   364,   365,   367,   368,
     1021     370,   372,   374,   383,   384,   390,   391,   392,   397,   399,
    10231022     404,   405,   409,   413,   415,   417,   419,   424,   427,   429,
    1024      431,   436,   439,   441,   443,   445,   447,   449,   451,   453,
    1025      455,   457,   459,   466,   467,   469,   473,   474,   475,   476,
    1026      480,   481,   483,   488,   489,   491,   493,   498,   499,   501,
    1027      506,   507,   509,   514,   515,   517,   519,   521,   526,   527,
    1028      529,   534,   535,   540,   541,   546,   547,   552,   553,   558,
    1029      559,   564,   565,   568,   570,   575,   580,   581,   583,   585,
    1030      591,   592,   598,   600,   602,   604,   609,   610,   615,   616,
    1031      617,   618,   619,   620,   621,   622,   623,   624,   628,   629,
    1032      636,   637,   643,   644,   645,   646,   647,   648,   649,   650,
    1033      651,   661,   668,   670,   680,   681,   686,   688,   694,   696,
    1034      700,   701,   706,   711,   714,   716,   718,   728,   730,   741,
    1035      742,   744,   748,   750,   754,   755,   760,   761,   765,   770,
    1036      771,   775,   777,   783,   784,   788,   790,   792,   794,   800,
    1037      801,   805,   807,   812,   814,   816,   821,   823,   828,   830,
    1038      834,   837,   841,   844,   848,   850,   854,   856,   863,   865,
    1039      867,   876,   878,   880,   882,   884,   889,   891,   893,   895,
    1040      900,   913,   914,   919,   921,   926,   930,   932,   934,   936,
    1041      938,   944,   945,   951,   952,   956,   957,   962,   964,   970,
    1042      971,   973,   978,   980,   987,   989,   993,   994,   999,  1001,
    1043     1005,  1006,  1010,  1012,  1016,  1017,  1021,  1022,  1026,  1027,
    1044     1042,  1043,  1044,  1045,  1046,  1050,  1055,  1062,  1072,  1077,
    1045     1082,  1090,  1095,  1100,  1105,  1110,  1118,  1140,  1145,  1152,
    1046     1154,  1161,  1166,  1171,  1182,  1187,  1192,  1197,  1202,  1211,
    1047     1216,  1224,  1225,  1226,  1227,  1233,  1238,  1246,  1247,  1248,
    1048     1249,  1253,  1254,  1255,  1256,  1261,  1262,  1271,  1272,  1277,
    1049     1278,  1283,  1285,  1287,  1289,  1291,  1294,  1293,  1305,  1306,
    1050     1308,  1318,  1319,  1324,  1328,  1330,  1332,  1334,  1336,  1338,
    1051     1340,  1342,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
    1052     1363,  1365,  1367,  1369,  1371,  1377,  1378,  1380,  1382,  1384,
    1053     1389,  1390,  1396,  1397,  1399,  1401,  1406,  1408,  1410,  1412,
    1054     1417,  1418,  1420,  1422,  1427,  1428,  1430,  1435,  1436,  1438,
    1055     1440,  1445,  1447,  1449,  1454,  1455,  1459,  1461,  1467,  1466,
    1056     1470,  1472,  1477,  1479,  1485,  1486,  1491,  1492,  1494,  1495,
    1057     1504,  1505,  1507,  1509,  1514,  1516,  1522,  1523,  1525,  1528,
    1058     1531,  1536,  1537,  1542,  1547,  1551,  1553,  1559,  1558,  1565,
    1059     1567,  1573,  1574,  1582,  1583,  1587,  1588,  1589,  1591,  1593,
    1060     1600,  1601,  1603,  1605,  1610,  1611,  1617,  1618,  1622,  1623,
    1061     1628,  1629,  1630,  1632,  1640,  1641,  1643,  1646,  1648,  1652,
    1062     1653,  1654,  1656,  1658,  1662,  1667,  1675,  1676,  1685,  1687,
    1063     1692,  1693,  1694,  1698,  1699,  1700,  1704,  1705,  1706,  1710,
    1064     1711,  1712,  1717,  1718,  1719,  1720,  1726,  1727,  1729,  1734,
    1065     1735,  1740,  1741,  1742,  1743,  1744,  1759,  1760,  1765,  1766,
    1066     1774,  1776,  1778,  1781,  1783,  1785,  1808,  1809,  1811,  1813,
    1067     1818,  1819,  1821,  1826,  1831,  1832,  1838,  1837,  1841,  1845,
    1068     1847,  1849,  1855,  1856,  1861,  1866,  1868,  1873,  1875,  1876,
    1069     1878,  1883,  1885,  1887,  1892,  1894,  1899,  1904,  1912,  1918,
    1070     1917,  1931,  1932,  1937,  1938,  1942,  1947,  1952,  1960,  1965,
    1071     1976,  1977,  1988,  1989,  1995,  1996,  2000,  2001,  2002,  2005,
    1072     2004,  2015,  2024,  2030,  2036,  2045,  2051,  2057,  2063,  2069,
    1073     2077,  2083,  2091,  2097,  2106,  2107,  2108,  2112,  2116,  2118,
    1074     2123,  2124,  2128,  2129,  2134,  2140,  2141,  2144,  2146,  2147,
    1075     2151,  2152,  2153,  2154,  2188,  2190,  2191,  2193,  2198,  2203,
    1076     2208,  2210,  2212,  2217,  2219,  2221,  2223,  2228,  2230,  2239,
    1077     2241,  2242,  2247,  2249,  2251,  2256,  2258,  2260,  2265,  2267,
    1078     2269,  2278,  2279,  2280,  2284,  2286,  2288,  2293,  2295,  2297,
    1079     2302,  2304,  2306,  2321,  2323,  2324,  2326,  2331,  2332,  2337,
    1080     2339,  2341,  2346,  2348,  2350,  2352,  2357,  2359,  2361,  2371,
    1081     2373,  2374,  2376,  2381,  2383,  2385,  2390,  2392,  2394,  2396,
    1082     2401,  2403,  2405,  2436,  2438,  2439,  2441,  2446,  2451,  2459,
    1083     2461,  2463,  2468,  2470,  2475,  2477,  2491,  2492,  2494,  2499,
    1084     2501,  2503,  2505,  2507,  2512,  2513,  2515,  2517,  2522,  2524,
    1085     2526,  2532,  2534,  2536,  2540,  2542,  2544,  2546,  2560,  2561,
    1086     2563,  2568,  2570,  2572,  2574,  2576,  2581,  2582,  2584,  2586,
    1087     2591,  2593,  2595,  2601,  2602,  2604,  2613,  2616,  2618,  2621,
    1088     2623,  2625,  2638,  2639,  2641,  2646,  2648,  2650,  2652,  2654,
    1089     2659,  2660,  2662,  2664,  2669,  2671,  2679,  2680,  2681,  2686,
    1090     2687,  2691,  2693,  2695,  2697,  2699,  2701,  2708,  2710,  2712,
    1091     2714,  2716,  2718,  2720,  2722,  2724,  2726,  2731,  2733,  2735,
    1092     2740,  2766,  2767,  2769,  2773,  2774,  2778,  2780,  2782,  2784,
    1093     2786,  2788,  2795,  2797,  2799,  2801,  2803,  2805,  2810,  2815,
    1094     2817,  2819,  2837,  2839,  2844,  2845
     1023     431,   436,   449,   451,   453,   455,   457,   459,   461,   463,
     1024     465,   467,   469,   476,   477,   483,   484,   485,   486,   490,
     1025     491,   493,   498,   499,   501,   503,   508,   509,   511,   516,
     1026     517,   519,   524,   525,   527,   529,   531,   536,   537,   539,
     1027     544,   545,   550,   551,   556,   557,   562,   563,   568,   569,
     1028     574,   575,   577,   579,   584,   589,   590,   592,   598,   599,
     1029     603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
     1030     613,   619,   621,   623,   625,   630,   631,   636,   637,   643,
     1031     644,   650,   651,   652,   653,   654,   655,   656,   657,   658,
     1032     667,   674,   676,   686,   687,   692,   694,   700,   702,   706,
     1033     707,   712,   717,   720,   722,   724,   734,   736,   747,   748,
     1034     750,   754,   756,   760,   761,   766,   767,   771,   776,   777,
     1035     781,   783,   789,   790,   794,   796,   798,   800,   806,   807,
     1036     811,   813,   818,   820,   822,   827,   829,   834,   836,   840,
     1037     843,   847,   850,   854,   856,   860,   862,   869,   871,   873,
     1038     882,   884,   886,   888,   890,   895,   897,   899,   901,   906,
     1039     919,   920,   925,   927,   932,   936,   938,   940,   942,   944,
     1040     950,   951,   957,   958,   962,   963,   968,   970,   976,   977,
     1041     979,   984,   986,   993,   995,   999,  1000,  1005,  1007,  1011,
     1042    1012,  1016,  1018,  1022,  1023,  1027,  1028,  1032,  1033,  1048,
     1043    1049,  1050,  1051,  1052,  1056,  1061,  1068,  1078,  1083,  1088,
     1044    1096,  1101,  1106,  1111,  1116,  1124,  1146,  1151,  1158,  1160,
     1045    1167,  1172,  1177,  1188,  1193,  1198,  1203,  1208,  1217,  1222,
     1046    1230,  1231,  1232,  1233,  1239,  1244,  1252,  1253,  1254,  1255,
     1047    1259,  1260,  1261,  1262,  1267,  1268,  1277,  1278,  1283,  1284,
     1048    1289,  1291,  1293,  1295,  1297,  1300,  1299,  1311,  1312,  1314,
     1049    1324,  1325,  1330,  1334,  1336,  1338,  1340,  1342,  1344,  1346,
     1050    1348,  1353,  1355,  1357,  1359,  1361,  1363,  1365,  1367,  1369,
     1051    1371,  1373,  1375,  1377,  1383,  1384,  1386,  1388,  1390,  1395,
     1052    1396,  1402,  1403,  1405,  1407,  1412,  1414,  1416,  1418,  1423,
     1053    1424,  1426,  1428,  1433,  1434,  1436,  1441,  1442,  1444,  1446,
     1054    1451,  1453,  1455,  1460,  1461,  1465,  1467,  1473,  1472,  1476,
     1055    1478,  1483,  1485,  1491,  1492,  1497,  1498,  1500,  1501,  1510,
     1056    1511,  1513,  1515,  1520,  1522,  1528,  1529,  1531,  1534,  1537,
     1057    1542,  1543,  1548,  1553,  1557,  1559,  1565,  1564,  1571,  1573,
     1058    1579,  1580,  1588,  1589,  1593,  1594,  1595,  1597,  1599,  1606,
     1059    1607,  1609,  1611,  1616,  1617,  1623,  1624,  1628,  1629,  1634,
     1060    1635,  1636,  1638,  1646,  1647,  1649,  1652,  1654,  1658,  1659,
     1061    1660,  1662,  1664,  1668,  1673,  1681,  1682,  1691,  1693,  1698,
     1062    1699,  1700,  1704,  1705,  1706,  1710,  1711,  1712,  1716,  1717,
     1063    1718,  1723,  1724,  1725,  1726,  1732,  1733,  1735,  1740,  1741,
     1064    1746,  1747,  1748,  1749,  1750,  1765,  1766,  1771,  1772,  1780,
     1065    1782,  1784,  1787,  1789,  1791,  1814,  1815,  1817,  1819,  1824,
     1066    1825,  1827,  1832,  1837,  1838,  1844,  1843,  1847,  1851,  1853,
     1067    1855,  1861,  1862,  1867,  1872,  1874,  1879,  1881,  1882,  1884,
     1068    1889,  1891,  1893,  1898,  1900,  1905,  1910,  1918,  1924,  1923,
     1069    1937,  1938,  1943,  1944,  1948,  1953,  1958,  1966,  1971,  1982,
     1070    1983,  1994,  1995,  2001,  2002,  2006,  2007,  2008,  2011,  2010,
     1071    2021,  2030,  2036,  2042,  2051,  2057,  2063,  2069,  2075,  2083,
     1072    2089,  2097,  2103,  2112,  2113,  2114,  2118,  2122,  2124,  2129,
     1073    2130,  2134,  2135,  2140,  2146,  2147,  2150,  2152,  2153,  2157,
     1074    2158,  2159,  2160,  2194,  2196,  2197,  2199,  2204,  2209,  2214,
     1075    2216,  2218,  2223,  2225,  2227,  2229,  2234,  2236,  2245,  2247,
     1076    2248,  2253,  2255,  2257,  2262,  2264,  2266,  2271,  2273,  2275,
     1077    2284,  2285,  2286,  2290,  2292,  2294,  2299,  2301,  2303,  2308,
     1078    2310,  2312,  2327,  2329,  2330,  2332,  2337,  2338,  2343,  2345,
     1079    2347,  2352,  2354,  2356,  2358,  2363,  2365,  2367,  2377,  2379,
     1080    2380,  2382,  2387,  2389,  2391,  2396,  2398,  2400,  2402,  2407,
     1081    2409,  2411,  2442,  2444,  2445,  2447,  2452,  2457,  2465,  2467,
     1082    2469,  2474,  2476,  2481,  2483,  2497,  2498,  2500,  2505,  2507,
     1083    2509,  2511,  2513,  2518,  2519,  2521,  2523,  2528,  2530,  2532,
     1084    2538,  2540,  2542,  2546,  2548,  2550,  2552,  2566,  2567,  2569,
     1085    2574,  2576,  2578,  2580,  2582,  2587,  2588,  2590,  2592,  2597,
     1086    2599,  2601,  2607,  2608,  2610,  2619,  2622,  2624,  2627,  2629,
     1087    2631,  2644,  2645,  2647,  2652,  2654,  2656,  2658,  2660,  2665,
     1088    2666,  2668,  2670,  2675,  2677,  2685,  2686,  2687,  2692,  2693,
     1089    2697,  2699,  2701,  2703,  2705,  2707,  2714,  2716,  2718,  2720,
     1090    2722,  2724,  2726,  2728,  2730,  2732,  2737,  2739,  2741,  2746,
     1091    2772,  2773,  2775,  2779,  2780,  2784,  2786,  2788,  2790,  2792,
     1092    2794,  2801,  2803,  2805,  2807,  2809,  2811,  2816,  2821,  2823,
     1093    2825,  2843,  2845,  2850,  2851
    10951094};
    10961095#endif
     
    11301129  "logical_AND_expression", "logical_OR_expression",
    11311130  "conditional_expression", "constant_expression", "assignment_expression",
    1132   "assignment_expression_opt", "tuple", "tuple_expression_list",
    1133   "assignment_operator", "comma_expression", "comma_expression_opt",
     1131  "assignment_expression_opt", "assignment_operator", "tuple",
     1132  "tuple_expression_list", "comma_expression", "comma_expression_opt",
    11341133  "statement", "labeled_statement", "compound_statement",
    11351134  "block_item_list", "block_item", "statement_list",
     
    12401239     146,   146,   147,   147,   147,   147,   147,   148,   148,   148,
    12411240     148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
    1242      148,   148,   148,   149,   149,   149,   150,   150,   150,   150,
    1243      151,   151,   151,   152,   152,   152,   152,   153,   153,   153,
    1244      154,   154,   154,   155,   155,   155,   155,   155,   156,   156,
    1245      156,   157,   157,   158,   158,   159,   159,   160,   160,   161,
    1246      161,   162,   162,   162,   162,   163,   164,   164,   164,   164,
    1247      165,   165,   166,   166,   166,   166,   167,   167,   168,   168,
    1248      168,   168,   168,   168,   168,   168,   168,   168,   169,   169,
    1249      170,   170,   171,   171,   171,   171,   171,   171,   171,   171,
    1250      171,   172,   173,   173,   174,   174,   175,   175,   175,   175,
    1251      176,   176,   177,   178,   178,   178,   178,   178,   178,   179,
    1252      179,   179,   180,   180,   181,   181,   182,   182,   183,   184,
    1253      184,   185,   185,   186,   186,   187,   187,   187,   187,   188,
    1254      188,   189,   189,   190,   190,   190,   191,   191,   192,   192,
    1255      192,   192,   192,   192,   192,   192,   192,   192,   193,   193,
    1256      193,   194,   194,   194,   194,   194,   195,   195,   195,   195,
    1257      196,   197,   197,   197,   197,   197,   198,   198,   198,   198,
    1258      198,   199,   199,   200,   200,   201,   201,   202,   202,   203,
    1259      203,   203,   204,   204,   205,   205,   206,   206,   207,   207,
    1260      208,   208,   209,   209,   210,   210,   211,   211,   212,   212,
    1261      213,   213,   213,   213,   213,   214,   214,   214,   215,   215,
    1262      215,   216,   216,   216,   216,   216,   217,   217,   217,   218,
    1263      218,   219,   219,   219,   220,   220,   220,   220,   220,   221,
    1264      221,   222,   222,   222,   222,   223,   223,   224,   224,   224,
    1265      224,   225,   225,   225,   225,   226,   226,   227,   227,   228,
    1266      228,   229,   229,   229,   229,   229,   230,   229,   231,   231,
    1267      231,   232,   232,   233,   234,   234,   234,   234,   234,   234,
    1268      234,   234,   235,   235,   235,   235,   235,   235,   235,   235,
    1269      235,   235,   235,   235,   235,   236,   236,   236,   236,   236,
    1270      237,   237,   238,   238,   238,   238,   239,   239,   239,   239,
    1271      240,   240,   240,   240,   241,   241,   241,   242,   242,   242,
    1272      242,   243,   243,   243,   244,   244,   245,   245,   246,   245,
    1273      245,   245,   247,   247,   248,   248,   249,   249,   249,   249,
    1274      250,   250,   250,   250,   251,   251,   252,   252,   252,   252,
    1275      252,   253,   253,   254,   255,   256,   256,   257,   256,   258,
    1276      258,   259,   259,   260,   260,   261,   261,   261,   261,   261,
    1277      262,   262,   262,   262,   263,   263,   264,   264,   265,   265,
    1278      266,   266,   266,   266,   267,   267,   267,   267,   267,   268,
    1279      268,   268,   268,   268,   269,   269,   270,   270,   271,   271,
    1280      272,   272,   272,   273,   273,   273,   274,   274,   274,   275,
    1281      275,   275,   276,   276,   276,   276,   277,   277,   277,   278,
    1282      278,   279,   279,   279,   279,   279,   280,   280,   281,   281,
    1283      282,   282,   282,   282,   282,   282,   283,   283,   283,   283,
    1284      284,   284,   284,   285,   286,   286,   288,   287,   287,   289,
    1285      289,   289,   290,   290,   291,   291,   291,   292,   292,   292,
    1286      292,   293,   293,   293,   294,   294,   295,   295,   296,   297,
    1287      296,   298,   298,   299,   299,   300,   300,   300,   301,   301,
    1288      302,   302,   303,   303,   304,   304,   305,   305,   305,   306,
    1289      305,   305,   307,   307,   307,   308,   308,   308,   308,   308,
    1290      308,   308,   308,   308,   309,   309,   309,   310,   311,   311,
    1291      312,   312,   313,   313,   314,   315,   315,   316,   316,   316,
    1292      317,   317,   317,   317,   318,   318,   318,   318,   319,   319,
    1293      320,   320,   320,   321,   321,   321,   321,   322,   322,   323,
    1294      323,   323,   324,   324,   324,   325,   325,   325,   326,   326,
    1295      326,   327,   327,   327,   328,   328,   328,   329,   329,   329,
    1296      330,   330,   330,   331,   331,   331,   331,   332,   332,   333,
    1297      333,   333,   334,   334,   334,   334,   335,   335,   335,   336,
    1298      336,   336,   336,   337,   337,   337,   338,   338,   338,   338,
    1299      339,   339,   339,   340,   340,   340,   340,   341,   341,   342,
    1300      342,   342,   343,   343,   344,   344,   345,   345,   345,   346,
    1301      346,   346,   346,   346,   347,   347,   347,   347,   348,   348,
    1302      348,   349,   349,   349,   350,   350,   350,   350,   351,   351,
    1303      351,   352,   352,   352,   352,   352,   353,   353,   353,   353,
    1304      354,   354,   354,   355,   355,   355,   356,   356,   356,   356,
    1305      356,   356,   357,   357,   357,   358,   358,   358,   358,   358,
    1306      359,   359,   359,   359,   360,   360,   361,   361,   361,   362,
    1307      362,   363,   363,   363,   363,   363,   363,   364,   364,   364,
    1308      364,   364,   364,   364,   364,   364,   364,   365,   365,   365,
    1309      365,   366,   366,   366,   367,   367,   368,   368,   368,   368,
    1310      368,   368,   369,   369,   369,   369,   369,   369,   370,   371,
    1311      371,   371,   372,   372,   373,   373
     1241     148,   148,   148,   149,   149,   150,   150,   150,   150,   151,
     1242     151,   151,   152,   152,   152,   152,   153,   153,   153,   154,
     1243     154,   154,   155,   155,   155,   155,   155,   156,   156,   156,
     1244     157,   157,   158,   158,   159,   159,   160,   160,   161,   161,
     1245     162,   162,   162,   162,   163,   164,   164,   164,   165,   165,
     1246     166,   166,   166,   166,   166,   166,   166,   166,   166,   166,
     1247     166,   167,   167,   167,   167,   168,   168,   169,   169,   170,
     1248     170,   171,   171,   171,   171,   171,   171,   171,   171,   171,
     1249     172,   173,   173,   174,   174,   175,   175,   175,   175,   176,
     1250     176,   177,   178,   178,   178,   178,   178,   178,   179,   179,
     1251     179,   180,   180,   181,   181,   182,   182,   183,   184,   184,
     1252     185,   185,   186,   186,   187,   187,   187,   187,   188,   188,
     1253     189,   189,   190,   190,   190,   191,   191,   192,   192,   192,
     1254     192,   192,   192,   192,   192,   192,   192,   193,   193,   193,
     1255     194,   194,   194,   194,   194,   195,   195,   195,   195,   196,
     1256     197,   197,   197,   197,   197,   198,   198,   198,   198,   198,
     1257     199,   199,   200,   200,   201,   201,   202,   202,   203,   203,
     1258     203,   204,   204,   205,   205,   206,   206,   207,   207,   208,
     1259     208,   209,   209,   210,   210,   211,   211,   212,   212,   213,
     1260     213,   213,   213,   213,   214,   214,   214,   215,   215,   215,
     1261     216,   216,   216,   216,   216,   217,   217,   217,   218,   218,
     1262     219,   219,   219,   220,   220,   220,   220,   220,   221,   221,
     1263     222,   222,   222,   222,   223,   223,   224,   224,   224,   224,
     1264     225,   225,   225,   225,   226,   226,   227,   227,   228,   228,
     1265     229,   229,   229,   229,   229,   230,   229,   231,   231,   231,
     1266     232,   232,   233,   234,   234,   234,   234,   234,   234,   234,
     1267     234,   235,   235,   235,   235,   235,   235,   235,   235,   235,
     1268     235,   235,   235,   235,   236,   236,   236,   236,   236,   237,
     1269     237,   238,   238,   238,   238,   239,   239,   239,   239,   240,
     1270     240,   240,   240,   241,   241,   241,   242,   242,   242,   242,
     1271     243,   243,   243,   244,   244,   245,   245,   246,   245,   245,
     1272     245,   247,   247,   248,   248,   249,   249,   249,   249,   250,
     1273     250,   250,   250,   251,   251,   252,   252,   252,   252,   252,
     1274     253,   253,   254,   255,   256,   256,   257,   256,   258,   258,
     1275     259,   259,   260,   260,   261,   261,   261,   261,   261,   262,
     1276     262,   262,   262,   263,   263,   264,   264,   265,   265,   266,
     1277     266,   266,   266,   267,   267,   267,   267,   267,   268,   268,
     1278     268,   268,   268,   269,   269,   270,   270,   271,   271,   272,
     1279     272,   272,   273,   273,   273,   274,   274,   274,   275,   275,
     1280     275,   276,   276,   276,   276,   277,   277,   277,   278,   278,
     1281     279,   279,   279,   279,   279,   280,   280,   281,   281,   282,
     1282     282,   282,   282,   282,   282,   283,   283,   283,   283,   284,
     1283     284,   284,   285,   286,   286,   288,   287,   287,   289,   289,
     1284     289,   290,   290,   291,   291,   291,   292,   292,   292,   292,
     1285     293,   293,   293,   294,   294,   295,   295,   296,   297,   296,
     1286     298,   298,   299,   299,   300,   300,   300,   301,   301,   302,
     1287     302,   303,   303,   304,   304,   305,   305,   305,   306,   305,
     1288     305,   307,   307,   307,   308,   308,   308,   308,   308,   308,
     1289     308,   308,   308,   309,   309,   309,   310,   311,   311,   312,
     1290     312,   313,   313,   314,   315,   315,   316,   316,   316,   317,
     1291     317,   317,   317,   318,   318,   318,   318,   319,   319,   320,
     1292     320,   320,   321,   321,   321,   321,   322,   322,   323,   323,
     1293     323,   324,   324,   324,   325,   325,   325,   326,   326,   326,
     1294     327,   327,   327,   328,   328,   328,   329,   329,   329,   330,
     1295     330,   330,   331,   331,   331,   331,   332,   332,   333,   333,
     1296     333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
     1297     336,   336,   337,   337,   337,   338,   338,   338,   338,   339,
     1298     339,   339,   340,   340,   340,   340,   341,   341,   342,   342,
     1299     342,   343,   343,   344,   344,   345,   345,   345,   346,   346,
     1300     346,   346,   346,   347,   347,   347,   347,   348,   348,   348,
     1301     349,   349,   349,   350,   350,   350,   350,   351,   351,   351,
     1302     352,   352,   352,   352,   352,   353,   353,   353,   353,   354,
     1303     354,   354,   355,   355,   355,   356,   356,   356,   356,   356,
     1304     356,   357,   357,   357,   358,   358,   358,   358,   358,   359,
     1305     359,   359,   359,   360,   360,   361,   361,   361,   362,   362,
     1306     363,   363,   363,   363,   363,   363,   364,   364,   364,   364,
     1307     364,   364,   364,   364,   364,   364,   365,   365,   365,   365,
     1308     366,   366,   366,   367,   367,   368,   368,   368,   368,   368,
     1309     368,   369,   369,   369,   369,   369,   369,   370,   371,   371,
     1310     371,   372,   372,   373,   373
    13121311};
    13131312
     
    13221321       2,     2,     2,     2,     2,     2,     4,     6,     1,     4,
    13231322       4,     2,     4,     1,     1,     1,     1,     1,     1,     1,
    1324        1,     4,     4,     1,     3,     3,     3,     1,     3,     3,
    1325        1,     3,     3,     1,     3,     3,     3,     3,     1,     3,
    1326        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1327        3,     1,     5,     4,     5,     1,     1,     3,     3,     2,
    1328        0,     1,     2,     5,     6,     7,     1,     3,     1,     1,
    1329        1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
    1330        0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1331        6,     4,     2,     7,     1,     3,     1,     2,     1,     2,
    1332        1,     2,     2,     5,     7,     5,     9,     5,     9,     1,
    1333        3,     1,     1,     3,     3,     2,     1,     2,     2,     0,
    1334        1,     2,     3,     0,     1,     2,     3,     3,     4,     0,
    1335        1,     1,     2,     5,     7,     6,     6,     4,     3,     4,
    1336        2,     3,     2,     3,     3,     3,     3,     5,     3,     3,
    1337        4,     1,     5,     6,     5,     6,     9,    10,     9,    10,
    1338        2,     1,     2,     2,     2,     1,     6,     8,    10,    12,
    1339       14,     0,     1,     0,     1,     1,     3,     4,     7,     0,
    1340        1,     3,     1,     3,     1,     1,     1,     3,     1,     1,
    1341        1,     3,     0,     1,     3,     4,     1,     3,     1,     1,
    1342        3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
    1343        4,     1,     2,     2,     3,     5,     8,     7,     7,     5,
    1344        9,     2,     2,     5,     3,     5,     4,     3,     4,     4,
    1345        7,     3,     3,     3,     3,     4,     6,     1,     1,     1,
    1346        1,     1,     1,     1,     1,     0,     1,     1,     2,     1,
    1347        1,     1,     1,     1,     1,     1,     0,     5,     1,     2,
    1348        3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
     1323       4,     4,     1,     3,     3,     3,     1,     3,     3,     1,
     1324       3,     3,     1,     3,     3,     3,     3,     1,     3,     3,
     1325       1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
     1326       1,     5,     4,     5,     1,     1,     3,     2,     0,     1,
    13491327       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1350        1,     1,     1,     1,     1,     1,     2,     2,     3,     3,
    1351        1,     3,     1,     2,     2,     2,     4,     4,     4,     4,
    1352        1,     2,     2,     3,     1,     2,     2,     1,     2,     2,
    1353        3,     1,     2,     2,     1,     1,     4,     2,     0,     6,
    1354        7,     2,     2,     2,     0,     2,     2,     3,     2,     3,
    1355        1,     2,     3,     2,     2,     4,     0,     1,     2,     2,
    1356        1,     0,     1,     2,     2,     5,     2,     0,     7,     2,
    1357        4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
    1358        1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
    1359        1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
    1360        1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
     1328       1,     2,     5,     6,     7,     1,     3,     1,     3,     0,
     1329       1,     1,     1,     1,     1,     1,     1,     1,     1,     6,
     1330       4,     2,     7,     1,     3,     1,     2,     1,     2,     1,
     1331       2,     2,     5,     7,     5,     9,     5,     9,     1,     3,
     1332       1,     1,     3,     3,     2,     1,     2,     2,     0,     1,
     1333       2,     3,     0,     1,     2,     3,     3,     4,     0,     1,
     1334       1,     2,     5,     7,     6,     6,     4,     3,     4,     2,
     1335       3,     2,     3,     3,     3,     3,     5,     3,     3,     4,
     1336       1,     5,     6,     5,     6,     9,    10,     9,    10,     2,
     1337       1,     2,     2,     2,     1,     6,     8,    10,    12,    14,
     1338       0,     1,     0,     1,     1,     3,     4,     7,     0,     1,
     1339       3,     1,     3,     1,     1,     1,     3,     1,     1,     1,
     1340       3,     0,     1,     3,     4,     1,     3,     1,     1,     3,
     1341       3,     3,     3,     3,     2,     3,     6,     3,     3,     4,
     1342       1,     2,     2,     3,     5,     8,     7,     7,     5,     9,
     1343       2,     2,     5,     3,     5,     4,     3,     4,     4,     7,
     1344       3,     3,     3,     3,     4,     6,     1,     1,     1,     1,
     1345       1,     1,     1,     1,     0,     1,     1,     2,     1,     1,
     1346       1,     1,     1,     1,     1,     0,     5,     1,     2,     3,
     1347       1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
    13611348       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1362        1,     2,     1,     1,     1,     2,     0,     2,     2,     1,
    1363        4,     0,     1,     2,     3,     4,     2,     2,     1,     2,
    1364        1,     2,     5,     5,     7,     6,     1,     2,     2,     3,
    1365        1,     2,     2,     4,     2,     4,     0,     4,     2,     1,
    1366        1,     1,     0,     2,     5,     5,    13,     1,     1,     3,
    1367        3,     2,     3,     3,     2,     4,     1,     6,     9,     0,
    1368       11,     1,     3,     3,     3,     1,     1,     5,     2,     5,
    1369        0,     1,     1,     3,     0,     1,     1,     1,     1,     0,
    1370        6,     2,     1,     2,     4,     2,     3,     3,     3,     4,
    1371        5,     5,     5,     6,     1,     1,     1,     3,     0,     5,
    1372        0,     1,     1,     2,     6,     1,     3,     0,     1,     4,
    1373        1,     1,     1,     1,     2,     1,     2,     2,     1,     3,
    1374        2,     3,     3,     2,     4,     4,     3,     8,     3,     2,
    1375        1,     2,     6,     8,     3,     2,     3,     3,     4,     4,
    1376        3,     1,     1,     1,     4,     6,     3,     2,     3,     3,
    1377        4,     4,     3,     2,     1,     2,     2,     1,     3,     2,
    1378        3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
    1379        1,     2,     2,     2,     3,     3,     2,     4,     4,     3,
    1380        6,     8,     3,     2,     1,     2,     2,     1,     1,     2,
    1381        3,     3,     2,     4,     6,     8,     1,     2,     2,     1,
    1382        2,     2,     3,     3,     1,     4,     4,     3,     5,     8,
    1383        3,     2,     3,     1,     5,     5,     6,     6,     1,     2,
    1384        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1385        5,     8,     3,     1,     2,     1,     2,     6,     5,     6,
    1386        7,     7,     1,     2,     2,     1,     2,     2,     3,     3,
    1387        1,     4,     4,     3,     8,     3,     1,     1,     2,     1,
    1388        1,     2,     3,     2,     3,     2,     3,     3,     2,     4,
    1389        3,     2,     3,     2,     4,     3,     2,     6,     6,     6,
    1390        7,     1,     2,     1,     1,     1,     2,     3,     2,     3,
    1391        2,     3,     3,     4,     2,     3,     4,     2,     5,     5,
    1392        6,     6,     0,     1,     0,     2
     1349       1,     1,     1,     1,     1,     2,     2,     3,     3,     1,
     1350       3,     1,     2,     2,     2,     4,     4,     4,     4,     1,
     1351       2,     2,     3,     1,     2,     2,     1,     2,     2,     3,
     1352       1,     2,     2,     1,     1,     4,     2,     0,     6,     7,
     1353       2,     2,     2,     0,     2,     2,     3,     2,     3,     1,
     1354       2,     3,     2,     2,     4,     0,     1,     2,     2,     1,
     1355       0,     1,     2,     2,     5,     2,     0,     7,     2,     4,
     1356       0,     2,     0,     1,     1,     1,     5,     5,     5,     1,
     1357       5,     5,     9,     1,     5,     0,     1,     1,     5,     1,
     1358       1,     5,     5,     1,     3,     3,     4,     1,     1,     1,
     1359       1,     2,     1,     3,     3,     1,     2,     1,     3,     1,
     1360       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1361       2,     1,     1,     1,     2,     0,     2,     2,     1,     4,
     1362       0,     1,     2,     3,     4,     2,     2,     1,     2,     1,
     1363       2,     5,     5,     7,     6,     1,     2,     2,     3,     1,
     1364       2,     2,     4,     2,     4,     0,     4,     2,     1,     1,
     1365       1,     0,     2,     5,     5,    13,     1,     1,     3,     3,
     1366       2,     3,     3,     2,     4,     1,     6,     9,     0,    11,
     1367       1,     3,     3,     3,     1,     1,     5,     2,     5,     0,
     1368       1,     1,     3,     0,     1,     1,     1,     1,     0,     6,
     1369       2,     1,     2,     4,     2,     3,     3,     3,     4,     5,
     1370       5,     5,     6,     1,     1,     1,     3,     0,     5,     0,
     1371       1,     1,     2,     6,     1,     3,     0,     1,     4,     1,
     1372       1,     1,     1,     2,     1,     2,     2,     1,     3,     2,
     1373       3,     3,     2,     4,     4,     3,     8,     3,     2,     1,
     1374       2,     6,     8,     3,     2,     3,     3,     4,     4,     3,
     1375       1,     1,     1,     4,     6,     3,     2,     3,     3,     4,
     1376       4,     3,     2,     1,     2,     2,     1,     3,     2,     3,
     1377       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1378       2,     2,     2,     3,     3,     2,     4,     4,     3,     6,
     1379       8,     3,     2,     1,     2,     2,     1,     1,     2,     3,
     1380       3,     2,     4,     6,     8,     1,     2,     2,     1,     2,
     1381       2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
     1382       2,     3,     1,     5,     5,     6,     6,     1,     2,     2,
     1383       1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
     1384       8,     3,     1,     2,     1,     2,     6,     5,     6,     7,
     1385       7,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1386       4,     4,     3,     8,     3,     1,     1,     2,     1,     1,
     1387       2,     3,     2,     3,     2,     3,     3,     2,     4,     3,
     1388       2,     3,     2,     4,     3,     2,     6,     6,     6,     7,
     1389       1,     2,     1,     1,     1,     2,     3,     2,     3,     2,
     1390       3,     3,     4,     2,     3,     4,     2,     5,     5,     6,
     1391       6,     0,     1,     0,     2
    13931392};
    13941393
     
    13981397static const yytype_uint16 yydefact[] =
    13991398{
    1400      295,   295,   316,   314,   317,   315,   318,   319,   301,   303,
    1401      302,     0,   304,   330,   322,   327,   325,   326,   324,   323,
    1402      328,   329,   334,   331,   332,   333,   550,   550,   550,     0,
    1403        0,     0,   295,   221,   305,   320,   321,     7,   361,     0,
    1404        8,    14,    15,    65,     0,     2,    63,    64,   568,     9,
    1405      295,   528,   526,   248,     3,   456,     3,   261,     0,     3,
    1406        3,     3,   249,     3,     0,     0,     0,   296,   297,   299,
    1407      295,   308,   311,   313,   342,   287,   335,   340,   288,   350,
    1408      289,   357,   354,   364,     0,     0,   365,   290,   476,   480,
    1409        3,     3,     0,     2,   522,   527,   532,   300,     0,     0,
    1410      550,   580,   550,     2,   591,   592,   593,   295,     0,   734,
    1411      735,     0,    12,     0,    13,   295,   271,   272,     0,   296,
    1412      291,   292,   293,   294,   529,   306,   394,   551,   552,   372,
    1413      373,    12,   447,   448,    11,   443,   446,     0,   506,   501,
    1414      492,   447,   448,     0,     0,   531,   222,     0,   295,     0,
    1415        0,     0,     0,     0,     0,     0,     0,   295,   295,     2,
    1416        0,   736,   296,   585,   597,   740,   733,   731,   738,     0,
    1417        0,     0,   255,     2,     0,   535,   441,   442,   440,     0,
    1418        0,     0,     0,   550,     0,   637,   638,     0,     0,   548,
    1419      544,   550,   565,   550,   550,   546,     2,   545,   550,   604,
    1420      550,   550,   607,     0,     0,     0,   295,   295,   314,   362,
    1421        2,   295,   262,   298,   309,   343,   355,   481,     0,     2,
    1422        0,   456,   263,   296,   336,   351,   358,   477,     0,     2,
    1423        0,   312,   337,   344,   345,     0,   352,   356,   359,   363,
    1424      448,   295,   374,   367,   371,     0,   396,   478,   482,     0,
    1425        0,     0,     1,   295,     2,   533,   579,   581,   295,     2,
    1426      744,   296,   747,   548,   548,     0,   296,     0,     0,   274,
    1427      550,   546,     2,   295,     0,     0,   295,   553,     2,   504,
    1428        2,   557,     0,     0,     0,     0,     0,     0,    18,    58,
    1429        4,     5,     6,    16,     0,     0,   295,     2,    66,    67,
    1430       68,    69,    48,    19,    49,    22,    47,    70,   295,     0,
    1431       73,    77,    80,    83,    88,    91,    93,    95,    97,    99,
    1432      101,   106,   498,   754,   454,   497,     0,   452,   453,     0,
    1433      569,   584,   587,   590,   596,   599,   602,   361,     0,     2,
    1434      742,     0,   295,   745,     2,    63,   295,     3,   428,     0,
    1435      436,   296,   295,   308,   335,   288,   350,   357,     3,     3,
    1436      410,   414,   424,   429,   476,   295,   430,   709,   710,   295,
    1437      431,   433,   295,     2,   586,   598,   732,     2,     2,   250,
    1438        2,   461,     0,   459,   458,   457,   142,     2,     2,   252,
    1439        2,     2,   251,     2,   282,     2,   283,     0,   281,     0,
    1440        0,     0,     0,     0,     0,     0,     0,     0,   570,   609,
    1441        0,   456,     2,   564,   573,   663,   566,   567,   536,   295,
    1442        2,   603,   612,   605,   606,     0,   277,   295,   295,   341,
    1443      296,     0,   296,     0,   295,   737,   741,   739,   537,   295,
    1444      548,   256,   264,   310,     0,     2,   538,   295,   502,   338,
    1445      339,   284,   353,   360,     0,   295,     0,   752,   401,     0,
    1446      479,   503,   253,   254,   523,   295,   438,     0,   295,   238,
    1447        0,     2,   240,     0,   296,     0,   258,     2,   259,   279,
    1448        0,     0,     2,   295,   548,   295,   489,   491,   490,     0,
    1449        0,   754,     0,   295,     0,   295,   493,   295,   563,   561,
    1450      562,   560,     0,   555,   558,     0,     0,   295,    55,   295,
    1451       70,    50,   295,    61,   295,   295,    53,    54,     2,   128,
    1452        0,     0,   450,     0,   449,   731,   112,   295,    17,     0,
    1453       29,    30,    35,     2,     0,    35,   118,   119,   120,   121,
    1454      122,   123,   124,   125,   126,   127,     0,     0,    51,    52,
     1399     294,   294,   315,   313,   316,   314,   317,   318,   300,   302,
     1400     301,     0,   303,   329,   321,   326,   324,   325,   323,   322,
     1401     327,   328,   333,   330,   331,   332,   549,   549,   549,     0,
     1402       0,     0,   294,   220,   304,   319,   320,     7,   360,     0,
     1403       8,    14,    15,     0,     2,    63,    64,   567,     9,   294,
     1404     527,   525,   247,     3,   455,     3,   260,     0,     3,     3,
     1405       3,   248,     3,     0,     0,     0,   295,   296,   298,   294,
     1406     307,   310,   312,   341,   286,   334,   339,   287,   349,   288,
     1407     356,   353,   363,     0,     0,   364,   289,   475,   479,     3,
     1408       3,     0,     2,   521,   526,   531,   299,     0,     0,   549,
     1409     579,   549,     2,   590,   591,   592,   294,     0,   733,   734,
     1410       0,    12,     0,    13,   294,   270,   271,     0,   295,   290,
     1411     291,   292,   293,   528,   305,   393,   550,   551,   371,   372,
     1412      12,   446,   447,    11,   442,   445,     0,   505,   500,   491,
     1413     446,   447,     0,     0,   530,   221,     0,   294,     0,     0,
     1414       0,     0,     0,     0,     0,     0,   294,   294,     2,     0,
     1415     735,   295,   584,   596,   739,   732,   730,   737,     0,     0,
     1416       0,   254,     2,     0,   534,   440,   441,   439,     0,     0,
     1417       0,     0,   549,     0,   636,   637,     0,     0,   547,   543,
     1418     549,   564,   549,   549,   545,     2,   544,   549,   603,   549,
     1419     549,   606,     0,     0,     0,   294,   294,   313,   361,     2,
     1420     294,   261,   297,   308,   342,   354,   480,     0,     2,     0,
     1421     455,   262,   295,   335,   350,   357,   476,     0,     2,     0,
     1422     311,   336,   343,   344,     0,   351,   355,   358,   362,   447,
     1423     294,   373,   366,   370,     0,   395,   477,   481,     0,     0,
     1424       0,     1,   294,     2,   532,   578,   580,   294,     2,   743,
     1425     295,   746,   547,   547,     0,   295,     0,     0,   273,   549,
     1426     545,     2,   294,     0,     0,   294,   552,     2,   503,     2,
     1427     556,     0,     0,     0,     0,     0,     0,    18,    58,     4,
     1428       5,     6,    16,     0,     0,   294,     2,    65,    66,    67,
     1429      68,    48,    19,    49,    22,    47,    69,   294,     0,    72,
     1430      76,    79,    82,    87,    90,    92,    94,    96,    98,   100,
     1431     105,   497,   753,   453,   496,     0,   451,   452,     0,   568,
     1432     583,   586,   589,   595,   598,   601,   360,     0,     2,   741,
     1433       0,   294,   744,     2,    63,   294,     3,   427,     0,   435,
     1434     295,   294,   307,   334,   287,   349,   356,     3,     3,   409,
     1435     413,   423,   428,   475,   294,   429,   708,   709,   294,   430,
     1436     432,   294,     2,   585,   597,   731,     2,     2,   249,     2,
     1437     460,     0,   458,   457,   456,   141,     2,     2,   251,     2,
     1438       2,   250,     2,   281,     2,   282,     0,   280,     0,     0,
     1439       0,     0,     0,     0,     0,     0,     0,   569,   608,     0,
     1440     455,     2,   563,   572,   662,   565,   566,   535,   294,     2,
     1441     602,   611,   604,   605,     0,   276,   294,   294,   340,   295,
     1442       0,   295,     0,   294,   736,   740,   738,   536,   294,   547,
     1443     255,   263,   309,     0,     2,   537,   294,   501,   337,   338,
     1444     283,   352,   359,     0,   294,     0,   751,   400,     0,   478,
     1445     502,   252,   253,   522,   294,   437,     0,   294,   237,     0,
     1446       2,   239,     0,   295,     0,   257,     2,   258,   278,     0,
     1447       0,     2,   294,   547,   294,   488,   490,   489,     0,     0,
     1448     753,     0,   294,     0,   294,   492,   294,   562,   560,   561,
     1449     559,     0,   554,   557,     0,     0,   294,    55,   294,    69,
     1450      50,   294,    61,   294,   294,    53,    54,     2,   127,     0,
     1451       0,   449,     0,   448,   730,   121,   294,    17,     0,    29,
     1452      30,    35,     2,     0,    35,   111,   112,   113,   114,   115,
     1453     116,   117,   118,   119,   120,   110,     0,    51,    52,     0,
    14551454       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1456        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1457      109,     2,   649,   455,   646,   550,   550,   654,   483,   295,
    1458        2,   588,   589,     0,   600,   601,     0,     2,   743,   746,
    1459      112,   295,     0,     2,   711,   296,   715,   706,   707,   713,
    1460        0,     2,     2,   671,   550,   754,   620,   550,   550,   754,
    1461      550,   634,   550,   550,   685,   437,   668,   550,   550,   676,
    1462      683,   295,   432,   296,     0,     0,   295,   721,   296,   726,
    1463      754,   718,   295,   723,   754,   295,   295,   295,     0,   112,
    1464        0,    18,     5,     2,     0,    19,     0,   462,   752,     0,
    1465        0,   468,   242,     0,   295,     0,     0,     0,   548,   572,
    1466      576,   578,   608,   611,   615,   618,   571,   610,     0,   285,
    1467      661,     0,   295,   278,     0,     0,     0,     0,   276,     2,
    1468        0,   260,   539,   295,     0,     0,   295,     2,   366,   386,
    1469      375,     0,     0,   380,   374,   753,     0,     0,   399,     0,
    1470      296,     3,   417,     3,   421,   420,   594,     0,   534,   295,
    1471       63,     3,   295,   436,   296,     3,   430,   431,     2,     0,
    1472        0,     0,   488,   307,   295,   484,   486,     3,     2,     2,
    1473        0,   505,     3,     0,   557,   130,     0,     0,   223,     0,
    1474        0,     0,     2,     0,     0,    36,     0,     0,   112,   295,
    1475       20,     0,    21,     0,   695,   700,   451,   692,   550,   550,
    1476        0,   110,     3,     2,    27,     2,     0,    33,     0,     2,
    1477       25,     0,   107,   108,    74,    75,    76,    78,    79,    81,
    1478       82,    86,    87,    84,    85,    89,    90,    92,    94,    96,
    1479       98,   100,     0,     0,   755,   295,     0,     0,     0,   650,
    1480      651,   647,   648,   500,   499,   295,     0,   295,   717,   295,
    1481      722,   296,   295,   665,   295,   295,   708,   664,     2,   295,
    1482        0,     0,     0,     0,     0,     0,     0,     0,   686,     0,
    1483      672,   623,   639,   673,     2,   619,   626,   434,   621,   622,
    1484      435,     2,   633,   642,   635,   636,   669,   670,   684,   712,
    1485      716,   714,   754,   269,     2,   748,     2,   425,   720,   725,
    1486      426,     0,   404,     3,     3,     3,     3,   456,     3,     0,
    1487        2,   471,   467,   753,     0,   463,   470,     2,   466,   469,
    1488        0,   295,   243,   265,     3,   273,   275,     0,   456,     2,
    1489      574,   575,     2,   613,   614,     0,   662,   540,     3,   347,
    1490      346,   349,   348,   295,   541,     0,   542,   374,     0,     0,
    1491      295,   295,     0,     0,   695,   384,   387,   391,   550,   391,
    1492      390,   383,   376,   550,   378,   381,   295,   401,   395,   105,
    1493      402,   752,     0,     0,   439,   241,     0,     0,     3,     2,
    1494      671,   432,     0,   530,     0,   754,   492,     0,   295,   295,
    1495      295,     0,   554,   556,   131,     0,     0,   216,     0,     0,
    1496        0,   224,   225,    56,     0,    62,   295,     0,    60,    59,
    1497        0,     2,   129,     0,     0,     0,   696,   697,   693,   694,
    1498      461,    71,    72,   111,   116,     3,   110,     0,     0,     0,
    1499       24,    35,     3,     0,    32,   103,     0,     3,   653,   657,
    1500      660,   652,     3,   595,     3,   719,   724,     2,    63,   295,
    1501        3,     3,   296,     0,     3,   625,   629,   632,   641,   675,
    1502      679,   682,   295,     3,   624,   640,   674,   295,   295,   427,
    1503      295,   295,   749,     0,     0,     0,     0,   257,     0,   105,
    1504        0,     3,     3,     0,   464,     0,   460,     0,     0,   246,
    1505      295,     0,     0,   130,     0,     0,     0,     0,     0,   130,
    1506        0,     0,   110,   110,    18,     2,     0,     0,     3,   132,
    1507      133,     2,   144,   134,   135,   136,   137,   138,   139,   146,
    1508      148,     0,     0,     0,   286,   295,   295,   550,     0,   543,
    1509      295,   377,   379,     0,   393,   696,   388,   392,   389,   382,
    1510      386,   369,   400,     0,   582,     2,   667,   666,     0,   672,
    1511        2,   485,   487,   507,     3,   515,   516,     0,     2,   511,
    1512        3,     3,     0,     0,   559,   223,     0,     0,     0,   223,
    1513        0,     0,     3,    37,   112,   699,   703,   705,   698,   752,
    1514      110,     0,     3,   664,    42,     3,    40,     3,    34,     0,
    1515        3,   102,   104,     0,     2,   655,   656,     0,     0,   295,
    1516        0,     0,     0,     3,   641,     0,     2,   627,   628,     2,
    1517      643,     2,   677,   678,     0,     0,    63,     0,     3,     3,
    1518        3,     3,   412,   411,   415,     2,     2,   751,   750,   113,
    1519        0,     0,     0,     0,     3,   465,     3,     0,   244,   147,
    1520        3,   296,   295,     0,     0,     0,     0,     2,     0,   192,
    1521        0,   190,     0,     0,     0,     0,     0,     0,     0,   550,
    1522      112,     0,   152,   149,   295,     0,     0,   268,   280,     3,
    1523        3,   549,   616,   370,   385,   398,   295,   267,   295,     0,
    1524      518,   495,   295,     0,     0,   494,   509,     0,     0,     0,
    1525      217,     0,   226,    57,   110,     0,     2,   701,   702,     0,
    1526      117,   114,     0,     0,     0,     0,     0,     0,    23,     0,
    1527      658,   295,   583,   266,   727,   728,   729,     0,   680,   295,
    1528      295,   295,     3,     3,     0,   688,     0,     0,     0,     0,
    1529      295,   295,     3,   547,   472,   473,     0,     0,   247,   296,
    1530        0,     0,     0,     0,   295,   193,   191,   188,     0,   194,
    1531        0,     0,     0,     0,   198,   201,   199,   195,     0,   196,
    1532      130,    35,   145,   143,   245,     0,     0,   419,   423,   422,
    1533        0,   512,     2,   513,     2,   514,   508,   295,   229,     0,
    1534      227,     0,   229,     3,   664,   295,    31,   115,     2,    45,
    1535        2,    43,    41,    28,   113,    26,     3,   730,     3,     3,
    1536        3,     0,     0,   687,   689,   630,   644,   270,     2,   409,
    1537        3,   408,     0,   475,   472,   130,     0,     0,   130,     3,
    1538        0,   130,   189,     0,     2,     2,   210,   200,     0,     0,
    1539        0,   141,     0,   577,   617,     2,     0,     0,     2,   230,
    1540        0,     0,   218,     0,     0,     0,     3,     0,     0,     0,
    1541        0,     0,     0,   690,   691,   295,     0,   474,   153,     0,
    1542        0,     2,   166,   130,   155,     0,   183,     0,   130,     0,
    1543        2,   157,     0,     2,     0,     2,     2,     2,   197,    32,
    1544      295,   517,   519,   510,     0,     0,     0,     0,   115,    38,
    1545        0,     3,     3,   659,   631,   645,   681,   413,   130,   159,
    1546      162,     0,   161,   165,     3,   168,   167,     0,   130,   185,
    1547      130,     3,     0,   295,     0,   295,     0,     2,     0,     2,
    1548      140,     2,   231,   232,     0,   228,   219,     0,   704,     0,
    1549        0,   154,     0,     0,   164,   234,   169,     2,   236,   184,
    1550        0,   187,   173,   202,     3,   211,   215,   204,     3,     0,
    1551      295,     0,   295,     0,     0,     0,    39,    46,    44,   160,
    1552      163,   130,     0,   170,   295,   130,   130,     0,   174,     0,
    1553        0,   695,   212,   213,   214,     0,   203,     3,   205,     3,
    1554      295,   220,   233,   150,   171,   156,   130,   237,   186,   181,
    1555      179,   175,   158,   130,     0,   696,     0,     0,     0,     0,
    1556      151,   172,   182,   176,   180,   179,   177,     3,     3,     0,
    1557        0,   496,   178,   206,   208,     3,     3,   207,   209
     1455       0,     0,     0,     0,     0,     0,     0,     0,     0,   107,
     1456       2,   648,   454,   645,   549,   549,   653,   482,   294,     2,
     1457     587,   588,     0,   599,   600,     0,     2,   742,   745,   121,
     1458     294,     0,     2,   710,   295,   714,   705,   706,   712,     0,
     1459       2,     2,   670,   549,   753,   619,   549,   549,   753,   549,
     1460     633,   549,   549,   684,   436,   667,   549,   549,   675,   682,
     1461     294,   431,   295,     0,     0,   294,   720,   295,   725,   753,
     1462     717,   294,   722,   753,   294,   294,   294,     0,   121,     0,
     1463      18,     5,     2,     0,    19,     0,   461,   751,     0,     0,
     1464     467,   241,     0,   294,     0,     0,     0,   547,   571,   575,
     1465     577,   607,   610,   614,   617,   570,   609,     0,   284,   660,
     1466       0,   294,   277,     0,     0,     0,     0,   275,     2,     0,
     1467     259,   538,   294,     0,     0,   294,     2,   365,   385,   374,
     1468       0,     0,   379,   373,   752,     0,     0,   398,     0,   295,
     1469       3,   416,     3,   420,   419,   593,     0,   533,   294,    63,
     1470       3,   294,   435,   295,     3,   429,   430,     2,     0,     0,
     1471       0,   487,   306,   294,   483,   485,     3,     2,     2,     0,
     1472     504,     3,     0,   556,   129,     0,     0,   222,     0,     0,
     1473       0,     2,     0,     0,    36,     0,     0,   121,   294,    20,
     1474       0,    21,     0,   694,   699,   450,   691,   549,   549,     0,
     1475     108,     3,     2,    27,     2,     0,    33,     0,     2,    25,
     1476       0,   106,    73,    74,    75,    77,    78,    80,    81,    85,
     1477      86,    83,    84,    88,    89,    91,    93,    95,    97,    99,
     1478       0,     0,   754,   294,     0,     0,     0,   649,   650,   646,
     1479     647,   499,   498,   294,     0,   294,   716,   294,   721,   295,
     1480     294,   664,   294,   294,   707,   663,     2,   294,     0,     0,
     1481       0,     0,     0,     0,     0,     0,   685,     0,   671,   622,
     1482     638,   672,     2,   618,   625,   433,   620,   621,   434,     2,
     1483     632,   641,   634,   635,   668,   669,   683,   711,   715,   713,
     1484     753,   268,     2,   747,     2,   424,   719,   724,   425,     0,
     1485     403,     3,     3,     3,     3,   455,     3,     0,     2,   470,
     1486     466,   752,     0,   462,   469,     2,   465,   468,     0,   294,
     1487     242,   264,     3,   272,   274,     0,   455,     2,   573,   574,
     1488       2,   612,   613,     0,   661,   539,     3,   346,   345,   348,
     1489     347,   294,   540,     0,   541,   373,     0,     0,   294,   294,
     1490       0,     0,   694,   383,   386,   390,   549,   390,   389,   382,
     1491     375,   549,   377,   380,   294,   400,   394,   104,   401,   751,
     1492       0,     0,   438,   240,     0,     0,     3,     2,   670,   431,
     1493       0,   529,     0,   753,   491,     0,   294,   294,   294,     0,
     1494     553,   555,   130,     0,     0,   215,     0,     0,     0,   223,
     1495     224,    56,     0,    62,   294,     0,    60,    59,     0,     2,
     1496     128,     0,     0,     0,   695,   696,   692,   693,   460,    70,
     1497      71,   109,   125,     3,   108,     0,     0,     0,    24,    35,
     1498       3,     0,    32,   102,     0,     3,   652,   656,   659,   651,
     1499       3,   594,     3,   718,   723,     2,    63,   294,     3,     3,
     1500     295,     0,     3,   624,   628,   631,   640,   674,   678,   681,
     1501     294,     3,   623,   639,   673,   294,   294,   426,   294,   294,
     1502     748,     0,     0,     0,     0,   256,     0,   104,     0,     3,
     1503       3,     0,   463,     0,   459,     0,     0,   245,   294,     0,
     1504       0,   129,     0,     0,     0,     0,     0,   129,     0,     0,
     1505     108,   108,    18,     2,     0,     0,     3,   131,   132,     2,
     1506     143,   133,   134,   135,   136,   137,   138,   145,   147,     0,
     1507       0,     0,   285,   294,   294,   549,     0,   542,   294,   376,
     1508     378,     0,   392,   695,   387,   391,   388,   381,   385,   368,
     1509     399,     0,   581,     2,   666,   665,     0,   671,     2,   484,
     1510     486,   506,     3,   514,   515,     0,     2,   510,     3,     3,
     1511       0,     0,   558,   222,     0,     0,     0,   222,     0,     0,
     1512       3,    37,   121,   698,   702,   704,   697,   751,   108,     0,
     1513       3,   663,    42,     3,    40,     3,    34,     0,     3,   101,
     1514     103,     0,     2,   654,   655,     0,     0,   294,     0,     0,
     1515       0,     3,   640,     0,     2,   626,   627,     2,   642,     2,
     1516     676,   677,     0,     0,    63,     0,     3,     3,     3,     3,
     1517     411,   410,   414,     2,     2,   750,   749,   122,     0,     0,
     1518       0,     0,     3,   464,     3,     0,   243,   146,     3,   295,
     1519     294,     0,     0,     0,     0,     2,     0,   191,     0,   189,
     1520       0,     0,     0,     0,     0,     0,     0,   549,   121,     0,
     1521     151,   148,   294,     0,     0,   267,   279,     3,     3,   548,
     1522     615,   369,   384,   397,   294,   266,   294,     0,   517,   494,
     1523     294,     0,     0,   493,   508,     0,     0,     0,   216,     0,
     1524     225,    57,   108,     0,     2,   700,   701,     0,   126,   123,
     1525       0,     0,     0,     0,     0,     0,    23,     0,   657,   294,
     1526     582,   265,   726,   727,   728,     0,   679,   294,   294,   294,
     1527       3,     3,     0,   687,     0,     0,     0,     0,   294,   294,
     1528       3,   546,   471,   472,     0,     0,   246,   295,     0,     0,
     1529       0,     0,   294,   192,   190,   187,     0,   193,     0,     0,
     1530       0,     0,   197,   200,   198,   194,     0,   195,   129,    35,
     1531     144,   142,   244,     0,     0,   418,   422,   421,     0,   511,
     1532       2,   512,     2,   513,   507,   294,   228,     0,   226,     0,
     1533     228,     3,   663,   294,    31,   124,     2,    45,     2,    43,
     1534      41,    28,   122,    26,     3,   729,     3,     3,     3,     0,
     1535       0,   686,   688,   629,   643,   269,     2,   408,     3,   407,
     1536       0,   474,   471,   129,     0,     0,   129,     3,     0,   129,
     1537     188,     0,     2,     2,   209,   199,     0,     0,     0,   140,
     1538       0,   576,   616,     2,     0,     0,     2,   229,     0,     0,
     1539     217,     0,     0,     0,     3,     0,     0,     0,     0,     0,
     1540       0,   689,   690,   294,     0,   473,   152,     0,     0,     2,
     1541     165,   129,   154,     0,   182,     0,   129,     0,     2,   156,
     1542       0,     2,     0,     2,     2,     2,   196,    32,   294,   516,
     1543     518,   509,     0,     0,     0,     0,   124,    38,     0,     3,
     1544       3,   658,   630,   644,   680,   412,   129,   158,   161,     0,
     1545     160,   164,     3,   167,   166,     0,   129,   184,   129,     3,
     1546       0,   294,     0,   294,     0,     2,     0,     2,   139,     2,
     1547     230,   231,     0,   227,   218,     0,   703,     0,     0,   153,
     1548       0,     0,   163,   233,   168,     2,   235,   183,     0,   186,
     1549     172,   201,     3,   210,   214,   203,     3,     0,   294,     0,
     1550     294,     0,     0,     0,    39,    46,    44,   159,   162,   129,
     1551       0,   169,   294,   129,   129,     0,   173,     0,     0,   694,
     1552     211,   212,   213,     0,   202,     3,   204,     3,   294,   219,
     1553     232,   149,   170,   155,   129,   236,   185,   180,   178,   174,
     1554     157,   129,     0,   695,     0,     0,     0,     0,   150,   171,
     1555     181,   175,   179,   178,   176,     3,     3,     0,     0,   495,
     1556     177,   205,   207,     3,     3,   206,   208
    15581557};
    15591558
     
    15611560static const yytype_int16 yydefgoto[] =
    15621561{
    1563       -1,   819,   469,   302,    48,   135,   136,   303,   304,   305,
    1564      306,   766,   767,  1145,  1146,   307,   382,   309,   310,   311,
    1565      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
    1566     1040,   519,   984,   323,   985,   547,   954,  1067,  1543,  1069,
    1567     1070,  1071,  1072,  1544,  1073,  1074,  1460,  1461,  1422,  1423,
    1568     1424,  1522,  1523,  1527,  1528,  1563,  1564,  1075,  1380,  1076,
    1569     1077,  1314,  1315,  1316,  1504,  1078,   147,   960,   961,   962,
    1570     1400,  1484,  1496,  1497,   470,   471,   881,   882,  1048,    52,
    1571       53,    54,    55,    56,   348,   160,    59,    60,    61,    62,
    1572       63,   350,    65,    66,   266,    68,    69,   276,   352,   353,
    1573       72,    73,    74,    75,   120,    77,   206,   355,   121,    80,
    1574      122,    82,    83,   456,    84,   455,   690,   691,   692,   915,
    1575     1096,   916,    85,    86,   459,   457,   698,   861,   862,   358,
    1576      359,   701,   702,   703,   360,   361,   362,   363,   467,   341,
    1577      137,   138,   523,   325,   172,   647,   648,   649,   650,   651,
    1578       87,   123,    89,   490,   491,   946,   492,   279,   496,   326,
    1579       90,   139,   140,    91,  1337,  1118,  1119,  1120,  1121,    92,
    1580       93,   719,    94,   275,    95,    96,   189,  1042,   681,   413,
    1581      127,    97,   502,   503,   504,   190,   270,   192,   193,   194,
    1582      271,   100,   101,   102,   103,   104,   105,   106,   197,   198,
    1583      199,   200,   201,   831,   606,   607,   608,   609,   202,   611,
    1584      612,   613,   573,   574,   575,   576,   755,   107,   615,   616,
    1585      617,   618,   619,   620,   977,   757,   758,   759,   596,   366,
    1586      367,   368,   369,   327,   166,   109,   110,   111,   371,   696,
    1587      570
     1562      -1,   817,   468,   301,    47,   134,   135,   302,   303,   304,
     1563     305,   765,   766,  1143,  1144,   306,   381,   308,   309,   310,
     1564     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     1565    1038,   518,   982,   546,   322,   983,   952,  1065,  1541,  1067,
     1566    1068,  1069,  1070,  1542,  1071,  1072,  1458,  1459,  1420,  1421,
     1567    1422,  1520,  1521,  1525,  1526,  1561,  1562,  1073,  1378,  1074,
     1568    1075,  1312,  1313,  1314,  1502,  1076,   146,   958,   959,   960,
     1569    1398,  1482,  1494,  1495,   469,   470,   879,   880,  1046,    51,
     1570      52,    53,    54,    55,   347,   159,    58,    59,    60,    61,
     1571      62,   349,    64,    65,   265,    67,    68,   275,   351,   352,
     1572      71,    72,    73,    74,   119,    76,   205,   354,   120,    79,
     1573     121,    81,    82,   455,    83,   454,   689,   690,   691,   913,
     1574    1094,   914,    84,    85,   458,   456,   697,   859,   860,   357,
     1575     358,   700,   701,   702,   359,   360,   361,   362,   466,   340,
     1576     136,   137,   522,   324,   171,   646,   647,   648,   649,   650,
     1577      86,   122,    88,   489,   490,   944,   491,   278,   495,   325,
     1578      89,   138,   139,    90,  1335,  1116,  1117,  1118,  1119,    91,
     1579      92,   718,    93,   274,    94,    95,   188,  1040,   680,   412,
     1580     126,    96,   501,   502,   503,   189,   269,   191,   192,   193,
     1581     270,    99,   100,   101,   102,   103,   104,   105,   196,   197,
     1582     198,   199,   200,   829,   605,   606,   607,   608,   201,   610,
     1583     611,   612,   572,   573,   574,   575,   754,   106,   614,   615,
     1584     616,   617,   618,   619,   975,   756,   757,   758,   595,   365,
     1585     366,   367,   368,   326,   165,   108,   109,   110,   370,   695,
     1586     569
    15881587};
    15891588
    15901589/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15911590   STATE-NUM.  */
    1592 #define YYPACT_NINF -1414
     1591#define YYPACT_NINF -1315
    15931592static const yytype_int16 yypact[] =
    15941593{
    1595     4857,  9883, -1414,    35, -1414, -1414, -1414, -1414, -1414, -1414,
    1596    -1414,   142, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1597    -1414, -1414, -1414, -1414, -1414, -1414,    98,    98,    98,  1334,
    1598      684,   153,  7496,   290, -1414, -1414, -1414, -1414, -1414,   204,
    1599    -1414, -1414, -1414, -1414,   901,   229, -1414, -1414, -1414, -1414,
    1600     9565, -1414, -1414, -1414, -1414,   -15,   301, -1414,  1624, -1414,
    1601    -1414, -1414, -1414,   302,  1806,   471,   143,  7613, -1414, -1414,
    1602     9603,  1367, -1414, -1414, -1414,  1721,   510,  3394,  1032,  1137,
    1603     1721,  1303, -1414, -1414,  1174,  1520, -1414,  1721,  1532, -1414,
    1604      385, -1414,   421,   523, -1414, -1414, -1414, -1414,   460,   301,
    1605       98, -1414,    98, -1414, -1414, -1414, -1414, 10414,  1624, -1414,
    1606    -1414,  1624, -1414,   447, -1414, 10444, -1414, -1414,  2082, 10554,
    1607    -1414,   399,   399,   399, -1414, -1414, -1414,    98, -1414, -1414,
    1608    -1414,   544,   555,   575, -1414, -1414, -1414,   617, -1414, -1414,
    1609    -1414, -1414, -1414,   621,   629, -1414, -1414,    11,  9069,  3253,
    1610      578,   492,   499,   631,   635,   642,   647,  9853,  7015,   649,
    1611      656, -1414,  9713, -1414, -1414, -1414, -1414,   661, -1414,   193,
    1612     3453,  3453, -1414,   667,   251, -1414, -1414, -1414, -1414,   692,
    1613      327,   346,   368,    98,   673, -1414, -1414,  1806,  3136,   748,
    1614    -1414,    12, -1414,    98,    98,   301, -1414, -1414,    75, -1414,
    1615       98,    98, -1414,  3167,   711,   722,   399,  6806, -1414, -1414,
    1616      726,  9565, -1414, -1414,  1721, -1414, -1414, -1414,   301, -1414,
    1617     1624,   -15, -1414,  7963, -1414,   399,   399,   399,   301, -1414,
    1618     1334, -1414,  5769, -1414, -1414,   709,   399, -1414,   399, -1414,
    1619      204,  9069, -1414,   763, -1414,   684,   765,   399, -1414,  1334,
    1620      750,   766, -1414,  7496,   705, -1414, -1414, -1414,  9532, -1414,
    1621    -1414, 10864, -1414,   748,    63,  6244, 10554,  2082,  3167, -1414,
    1622       85, -1414, -1414, 10444,  1624,   804,  7644, -1414, -1414,   319,
    1623    -1414, 11778,   782,   851,  4657,   828,  4994, 11639, -1414,   839,
    1624    -1414, -1414, -1414, -1414, 11658, 11658,  8841,   844, -1414, -1414,
    1625    -1414, -1414, -1414, -1414,   869, -1414,   759,  2440,  9183,  4994,
    1626    -1414,   593,   571,   645,   313,   861,   842,   858,   843,   911,
    1627      -20, -1414, -1414,   876,   326, -1414,    83, -1414, -1414,  3253,
    1628    -1414, -1414,   139,   900, -1414,   422,   900,   905,   204, -1414,
    1629    -1414,   909, 10414, -1414,   912,   917,  9297, -1414, -1414,  1382,
    1630     2358,  8427,  6806,  1721, -1414,  1721,   399,   399, -1414, -1414,
    1631    -1414, -1414, -1414, -1414,   399, 10414,  1624, -1414, -1414, 10584,
    1632     1776, -1414, 10304, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1633      936, 11446,  4994, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1634    -1414, -1414, -1414, -1414, -1414, -1414, -1414,  2082, -1414,   836,
    1635      947,   962,   963,   923,   965,   970,   972,  3136, -1414, -1414,
    1636      959,   -15,   975, -1414, -1414,   978, -1414, -1414, -1414,  9532,
    1637    -1414, -1414, -1414, -1414, -1414,  3167, -1414,  9069,  9069, -1414,
    1638      399,  2082,  6926,  1624,  8543, -1414, -1414, -1414, -1414,  9532,
    1639       63, -1414, -1414,  1721,   301, -1414, -1414,  9532, -1414,  6689,
    1640    -1414, -1414,   399,   399,   271, 10023,   907,   977,   960,   988,
    1641      399, -1414, -1414, -1414, -1414, 10980, -1414,   500,  6556, -1414,
    1642      301,   990, -1414,  2082, 11860, 11504, -1414, -1414, -1414, -1414,
    1643      935,  3167, -1414,  8659,   748,  6228, -1414, -1414, -1414,  1482,
    1644      550,   876,   684,  7644,  1180, 10444, -1414,  7644, -1414, -1414,
    1645    -1414, -1414,   561, -1414,   997,   851,   -13,  8841, -1414, 10694,
    1646    -1414, -1414,  8841, -1414,  8955,  8841, -1414, -1414,   996, -1414,
    1647      585,  1003,   455,  1017, -1414, -1414,  9993,  6037, -1414,   419,
    1648    -1414, -1414, 11562, -1414,   469, 11562, -1414, -1414, -1414, -1414,
    1649    -1414, -1414, -1414, -1414, -1414, -1414,  6244,  6244, -1414, -1414,
    1650     4994,  4994,  4994,  4994,  4994,  4994,  4994,  4994,  4994,  4994,
    1651     4994,  4994,  4994,  4994,  4994,  4994,  4994,  4994,  3735,  6244,
    1652    -1414,   326,  1049, -1414, -1414,    98,    98, -1414, -1414,  9069,
    1653    -1414, -1414,   978,   705, -1414,   978, 11581, -1414, -1414, -1414,
    1654     3645,  6037,  1016,  1018, -1414, 10554, -1414, -1414,   661, -1414,
    1655     1020,  1157,  1025,  2611,    95,   876, -1414,    98,    98,   876,
    1656      134, -1414,    98,    98,   978, -1414, -1414,    98,    98, -1414,
    1657      900, 10724,  1624, 12005,    69,   227, 10724, -1414, 10864, -1414,
    1658      876, -1414, 10414, -1414,   218,  8079,  8079,  8079,  1624, -1414,
    1659     5555,  1012,   260,   936,   778,  1021,  1024, -1414,  1026,  3453,
    1660      343, -1414,  1115,  1624,  8079,   705,  2082,   705,   748,   534,
    1661      900, -1414, -1414,   596,   900, -1414, -1414, -1414,   851, -1414,
    1662      900,   301, 10980, -1414,   687,  1042,   700,  1043, -1414,  1044,
    1663      301, -1414, -1414,  9532,   301,  1041, 10694,  1045, -1414,  2066,
    1664    -1414,   408,   416,   684, -1414,   684,  1047,  4994, -1414,   684,
    1665    12005, -1414, -1414,  1053, -1414, -1414, -1414,   705, -1414, 11933,
    1666      917, -1414,  8079,   489,  8427, -1414, -1414,   661,  1055,  1056,
    1667     1482,  3284, -1414, -1414,  7644, -1414, -1414,  1038, -1414, -1414,
    1668     1064, -1414,  1038,  1070, 11778,  6244,    93,  1051,   138,  1074,
    1669     1058,  1075,   844,  1069,  1077, -1414,  1079,  1081, 10133,  6775,
    1670    -1414,  6244, -1414,   455,  1974, -1414, -1414, -1414,    98,    98,
    1671     6104,  6244,  1076, -1414, -1414,   936,   707, -1414,  6244, -1414,
    1672    -1414,   677, -1414, -1414, -1414, -1414, -1414,   593,   593,   571,
    1673      571,   645,   645,   645,   645,   313,   313,   861,   842,   858,
    1674      843,   911,  4994,   847, -1414, 10980,  1083,  1084,  1088,  1049,
    1675    -1414, -1414, -1414, -1414, -1414, 10980,   717,  8079, -1414, 10414,
    1676    -1414,  7135,  9411, -1414, 10304,  7015, -1414, -1414,  1157, 10980,
    1677      945,  1089,  1090,  1095,  1096,  1099,  1100,  1105, -1414,  4392,
    1678     2611, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1679    -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,   978, -1414,
    1680    -1414, -1414,   876, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1681    -1414,  1112, -1414,  1113,  1118, -1414, -1414,   -15,  1076,  5555,
    1682    -1414, -1414, -1414, 11446,  1116, -1414, -1414, -1414, -1414, -1414,
    1683      684,  6369,  1201, -1414, -1414, -1414, -1414,  1103,   -15, -1414,
    1684    -1414,   978, -1414, -1414,   978,   126,   978, -1414, -1414, -1414,
    1685    -1414, -1414, -1414,  9743, -1414,   301, -1414, -1414,   438,   452,
    1686    10584,  7255,  2372,  4994,  2870, -1414, -1414,  1127,    39,  1127,
    1687    -1414,   684, -1414,    98, -1414, -1414, 10163,   960, -1414, -1414,
    1688    -1414,   977,  1143,  1131, -1414, -1414,  1150,  1153, -1414,   489,
    1689     1995, -1414,   363, -1414,  3284,   876, -1414,  1160,  7644, 10834,
    1690     9069,  1161, -1414, -1414,  1151,  1162,  1156, -1414,  4994,   120,
    1691      279,  1163, -1414,  1166,   705,  1166,  6037,  6244, -1414, -1414,
    1692     1166,  1165, -1414,  1176,  1182,  1185,  1974, -1414, -1414, -1414,
    1693    11446, -1414, -1414, -1414, -1414,  1168,  6244,  1188,   705,  5555,
    1694    -1414, 11562, -1414,   705, -1414, -1414,  6244, -1414,   614,   900,
    1695    -1414, -1414, -1414, -1414, -1414, -1414, -1414,   936,   917,  9297,
    1696    -1414, -1414,  7375,  1187, -1414,   758,   900, -1414,   785,   797,
    1697      900, -1414,   399,  5912, -1414, -1414, -1414, 10980, 10980, -1414,
    1698     8543,  8543, -1414,  1186,  1189,  1191,  1199, -1414,  1206,   439,
    1699      119,  1076, -1414,   705, -1414,  3453, -1414,  6244,   480, -1414,
    1700     6655,  1211,  1212, 11388,  1213,  1217,    -6,    58,   117,  6244,
    1701     1221,   301,  6244,  6244,  1215,  1222,   610,  1203, -1414, -1414,
    1702    -1414,  1218, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1703    -1414,   684,  1226,  6244, -1414, 10980, 10980,    98,  1228, -1414,
    1704    10273, -1414, -1414,   864, -1414,  2870, -1414, -1414, -1414, -1414,
    1705     2066, -1414, -1414,  1230, -1414, -1414, -1414, -1414,  1231,  1995,
    1706    -1414, -1414,  1223, -1414,  1038, -1414, -1414,  2082,  1235, -1414,
    1707    -1414, -1414,   744,  1237, -1414,   138,  1245,  4994,  1232,   138,
    1708      138,  1250,  1246, -1414,  9993,   825,   900, -1414, -1414,  1026,
    1709     6244,  1251,  1168,   536,   161,  1261, -1414,  1246, -1414,  1254,
    1710     1261, -1414, -1414,  1257, -1414, -1414,   978,  1270,  1271,  6895,
    1711     1272,  1275,  1280, -1414, -1414,  1283, -1414, -1414,   978, -1414,
    1712    -1414, -1414, -1414,   978,  6244,  6244,   917,  1282, -1414, -1414,
    1713    -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1714     4994,  4994,  1284,  1286,  1261, -1414, -1414,   684, -1414, -1414,
    1715    -1414,  5291, 10834,  6244,  6244,  1335,  6244, -1414,  1263, -1414,
    1716     1267, -1414,  1281,  6244,  1288,  6244,  1039,  1290,    28,    98,
    1717     5165,   856, -1414, -1414,  6369,  1287,   488, -1414, -1414, -1414,
    1718    -1414, -1414, -1414, -1414, -1414, -1414, 11206, -1414,  8659,  1304,
    1719    -1414, -1414, 10834,   490,   498, -1414,  1301,  1306,   851,  1317,
    1720    -1414,   418, -1414, -1414,  6244,  1316, -1414, -1414,   978,  1314,
    1721    -1414, -1414,  1318,   589,   691,   705,  1320,  1322, -1414,  1329,
    1722    -1414, 10980, -1414, -1414, -1414, -1414, -1414,  1330, -1414, 10980,
    1723    10980, 10980, -1414, -1414,  1332, -1414,  1333,  1336,  1339,   517,
    1724     8195,  8311, -1414, -1414,   123, -1414,  1343,  1348, -1414,  8775,
    1725      755,   768,  1342,   770,  6525, -1414, -1414, -1414,   508, -1414,
    1726      777,  1352,  1353,   301,  1403,   933, -1414, -1414,  6244, -1414,
    1727    11388, 11562, -1414, -1414, -1414,  1359,  1364, -1414, -1414, -1414,
    1728     1363, -1414, -1414, -1414, -1414, -1414, -1414, 10834,   851,   273,
    1729    -1414,  1347,   851,  1168,   268, 10980, -1414, -1414, -1414, -1414,
    1730    -1414, -1414, -1414, -1414,  1365, -1414, -1414, -1414, -1414, -1414,
    1731    -1414,  1368,  1371, -1414, -1414, -1414, -1414, -1414, -1414, -1414,
    1732     1375, -1414,  1374, -1414, -1414, 11388,    91,  6244, 11388, -1414,
    1733     1385,  6244, -1414,   288,  1402,  1405, -1414, -1414,  1390,  1393,
    1734     1376, -1414,   882, -1414, -1414, -1414,  1624,  2082,  1388,   869,
    1735      884,  4994, -1414,   803,  1394,  6244, -1414,   705,   705,  1399,
    1736     1406,  1407,  1409, -1414, -1414,  8543,  1397, -1414,  1473,  4994,
    1737     1404, -1414, -1414, 11299, -1414,   811, -1414,  1395, 11388,  1401,
    1738    -1414, -1414,  1410, -1414,  1412, -1414,  1433,  1441, -1414,  1415,
    1739    10834, -1414, -1414, -1414,   851,   705,  1429,  1417,  1436, -1414,
    1740     1446,  1261,  1261, -1414, -1414, -1414, -1414, -1414, 11388,   278,
    1741    -1414,   910, -1414, -1414,  7730, -1414, -1414,  1435,  6244, -1414,
    1742     6244,  7730,   301, 10694,   301, 10694,  1462, -1414,  1463, -1414,
    1743    -1414,  1460,   869, -1414,   812, -1414, -1414,  6244, -1414,  1465,
    1744     1466, -1414,  4994,  4994, -1414, -1414,  1007,    37, -1414, -1414,
    1745     1447, -1414,  1007, -1414, -1414,  2485,   705, -1414, -1414,   301,
    1746    10694,   301, 10694,  1472,  1450,   705, -1414, -1414, -1414, -1414,
    1747    -1414, 11299,  1468,  1007,  7847,  6244, 11210,  1475,  1007,  1477,
    1748     2485,  2994, -1414, -1414, -1414,  1495, -1414, -1414, -1414, -1414,
    1749     9069, -1414, -1414, -1414, 11077, -1414, 11299, -1414, -1414,  1476,
    1750    10984, -1414, -1414, 11210,   301,  2994,   301,  1502,  1506,   813,
    1751    -1414, 11077, -1414, -1414, -1414, 10984, -1414, -1414, -1414,   301,
    1752      301, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414
     1594    5006,  8237, -1315,    89, -1315, -1315, -1315, -1315, -1315, -1315,
     1595   -1315,   194, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
     1596   -1315, -1315, -1315, -1315, -1315, -1315,   314,   314,   314,   792,
     1597     787,   234,  7780,   219, -1315, -1315, -1315, -1315, -1315,   257,
     1598   -1315, -1315, -1315,   912,   264, -1315, -1315, -1315, -1315,  6920,
     1599   -1315, -1315, -1315, -1315,   120,   272, -1315,   823, -1315, -1315,
     1600   -1315, -1315,   302,  1619,   420,   112,  3706, -1315, -1315,  9405,
     1601    1262, -1315, -1315, -1315,   675,   440,  7333,  1133,  1444,   675,
     1602    1669, -1315, -1315,   482,   771, -1315,   675,  1807, -1315,   386,
     1603   -1315,   507,   517, -1315, -1315, -1315, -1315,   426,   272,   314,
     1604   -1315,   314, -1315, -1315, -1315, -1315,  8871,   823, -1315, -1315,
     1605     823, -1315,   415, -1315,  8985, -1315, -1315,  1777,  9099, -1315,
     1606     428,   428,   428, -1315, -1315, -1315,   314, -1315, -1315, -1315,
     1607     454,   468,   490, -1315, -1315, -1315,   500, -1315, -1315, -1315,
     1608   -1315, -1315,   504,   509, -1315, -1315,    76,  8833,  2235,   669,
     1609     439,   450,   519,   522,   537,   567,  8121,  7182,   529,   581,
     1610   -1315,  9443, -1315, -1315, -1315, -1315,   595, -1315,   216,  3771,
     1611    3771, -1315,   603,   313, -1315, -1315, -1315, -1315,   605,   316,
     1612     320,   345,   314,   589, -1315, -1315,  1619,  2809,   664, -1315,
     1613      49, -1315,   314,   314,   272, -1315, -1315,    87, -1315,   314,
     1614     314, -1315,  3249,   632,   636,   428,  7093, -1315, -1315,   646,
     1615    6920, -1315, -1315,   675, -1315, -1315, -1315,   272, -1315,   823,
     1616     120, -1315,  7972, -1315,   428,   428,   428,   272, -1315,   792,
     1617   -1315,  5155, -1315, -1315,   635,   428, -1315,   428, -1315,   257,
     1618    8833, -1315,   657, -1315,   787,   660,   428, -1315,   792,   679,
     1619     704, -1315,  7780,   574, -1315, -1315, -1315,  9296, -1315, -1315,
     1620    6389, -1315,   664,    74,  5169,  9099,  1777,  3249, -1315,    97,
     1621   -1315, -1315,  8985,   823,   708,  9849, -1315, -1315,   539, -1315,
     1622   10667,   680,   762, 10451,   751, 10470, 10528, -1315,   764, -1315,
     1623   -1315, -1315, -1315, 10547, 10547,  8605,   778, -1315, -1315, -1315,
     1624   -1315, -1315, -1315,   801, -1315,   969,  2181,  8947, 10470, -1315,
     1625     339,   731,   846,   265,   890,   795,   797,   810,   836,    33,
     1626   -1315, -1315,   812,   497, -1315,    59, -1315, -1315,  2235, -1315,
     1627   -1315,   588,   835, -1315,   622,   835,   847,   257, -1315, -1315,
     1628     863,  8871, -1315,   854,   878,  9061, -1315, -1315,   765,  1714,
     1629    8320,  7093,   675, -1315,   675,   428,   428, -1315, -1315, -1315,
     1630   -1315, -1315, -1315,   428,  8871,   823, -1315, -1315,  9213,   843,
     1631   -1315,  8757, -1315, -1315, -1315, -1315, -1315, -1315, -1315,   886,
     1632    3575, 10470, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
     1633   -1315, -1315, -1315, -1315, -1315, -1315,  1777, -1315,   793,   865,
     1634     884,   894,   869,   902,   905,   909,  2809, -1315, -1315,   918,
     1635     120,   935, -1315, -1315,   927, -1315, -1315, -1315,  9296, -1315,
     1636   -1315, -1315, -1315, -1315,  3249, -1315,  8833,  8833, -1315,   428,
     1637    1777,  7213,   823,  8393, -1315, -1315, -1315, -1315,  9296,    74,
     1638   -1315, -1315,   675,   272, -1315, -1315,  9296, -1315,  6557, -1315,
     1639   -1315,   428,   428,   295,  9519,   937,   942,   934,   955,   428,
     1640   -1315, -1315, -1315, -1315,  9927, -1315,   540,  6680, -1315,   272,
     1641     963, -1315,  1777, 10749,  5888, -1315, -1315, -1315, -1315,   899,
     1642    3249, -1315,  8466,   664,  7663, -1315, -1315, -1315,  1232,   551,
     1643     812,   787,  9849,   591,  8985, -1315,  9849, -1315, -1315, -1315,
     1644   -1315,   576, -1315,   980,   762,   283,  8605, -1315,  9699, -1315,
     1645   -1315,  8605, -1315,  8719,  8605, -1315, -1315,   987, -1315,   599,
     1646     996,   706,   999, -1315, -1315,  6048,  6769, -1315,   137, -1315,
     1647   -1315,  6053, -1315,   286,  6053, -1315, -1315, -1315, -1315, -1315,
     1648   -1315, -1315, -1315, -1315, -1315, -1315,  5169, -1315, -1315, 10470,
     1649   10470, 10470, 10470, 10470, 10470, 10470, 10470, 10470, 10470, 10470,
     1650   10470, 10470, 10470, 10470, 10470, 10470, 10470,  4672,  5169, -1315,
     1651     497,  1307, -1315, -1315,   314,   314, -1315, -1315,  8833, -1315,
     1652   -1315,   927,   574, -1315,   927, 10393, -1315, -1315, -1315,  9329,
     1653    6769,  1002,  1007, -1315,  9099, -1315, -1315,   595, -1315,  1019,
     1654     941,  1024,  1647,   103,   812, -1315,   314,   314,   812,   133,
     1655   -1315,   314,   314,   927, -1315, -1315,   314,   314, -1315,   835,
     1656    9781,   823, 10894,   412,   469,  9781, -1315,  6389, -1315,   812,
     1657   -1315,  8871, -1315,   191,  5383,  5383,  5383,   823, -1315,  4873,
     1658     979,   513,   886,   151,  1028,  1030, -1315,  1036,  3771,   531,
     1659   -1315,  1124,   823,  5383,   574,  1777,   574,   664,   782,   835,
     1660   -1315, -1315,   802,   835, -1315, -1315, -1315,   762, -1315,   835,
     1661     272,  9927, -1315,   606,  1050,   616,  1051, -1315,  1052,   272,
     1662   -1315, -1315,  9296,   272,  1054,  9699,  1053, -1315,  1508, -1315,
     1663     360,   367,   787, -1315,   787,  1056, 10470, -1315,   787, 10894,
     1664   -1315, -1315,  1059, -1315, -1315, -1315,   574, -1315, 10822,   878,
     1665   -1315,  5383,   769,  8320, -1315, -1315,   595,  1057,  1058,  1232,
     1666    3288, -1315, -1315,  9849, -1315, -1315,  1065, -1315, -1315,  1066,
     1667   -1315,  1065,  1064, 10667,  5169,   121,  1034,   100,  1074,  1071,
     1668    1075,   778,  1072,  1078, -1315,  1080,  1082,  9557,  6889, -1315,
     1669    5169, -1315,   706,  2222, -1315, -1315, -1315,   314,   314,  5021,
     1670    5169,  1079, -1315, -1315,   886,   619, -1315,  5169, -1315, -1315,
     1671     971, -1315, -1315, -1315, -1315,   339,   339,   731,   731,   846,
     1672     846,   846,   846,   265,   265,   890,   795,   797,   810,   836,
     1673   10470,   975, -1315,  9927,  1084,  1086,  1087,  1307, -1315, -1315,
     1674   -1315, -1315, -1315,  9927,   639,  5383, -1315,  8871, -1315,  7302,
     1675    9175, -1315,  8757,  7182, -1315, -1315,   941,  9927,   923,  1093,
     1676    1097,  1098,  1101,  1104,  1109,  1110, -1315,  3448,  1647, -1315,
     1677   -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
     1678   -1315, -1315, -1315, -1315, -1315, -1315,   927, -1315, -1315, -1315,
     1679     812, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,  1111,
     1680   -1315,  1115,  1116, -1315, -1315,   120,  1079,  4873, -1315, -1315,
     1681   -1315,  3575,  1113, -1315, -1315, -1315, -1315, -1315,   787,  6479,
     1682    1200, -1315, -1315, -1315, -1315,  1100,   120, -1315, -1315,   927,
     1683   -1315, -1315,   927,   146,   927, -1315, -1315, -1315, -1315, -1315,
     1684   -1315,  9481, -1315,   272, -1315, -1315,   380,   387,  9213,  7422,
     1685    1947, 10470,  2081, -1315, -1315,  1121,    77,  1121, -1315,   787,
     1686   -1315,   314, -1315, -1315,  9630,   934, -1315, -1315, -1315,   942,
     1687    1122,  1117, -1315, -1315,  1129,  1130, -1315,   769,  2444, -1315,
     1688     476, -1315,  3288,   812, -1315,  1135,  9849,  9811,  8833,  1136,
     1689   -1315, -1315,  1127,  1137,  1131, -1315, 10470,   134,   293,  1138,
     1690   -1315,  1142,   574,  1142,  6769,  5169, -1315, -1315,  1142,  1139,
     1691   -1315,  1150,  1152,  1153,  2222, -1315, -1315, -1315,  3575, -1315,
     1692   -1315, -1315, -1315,  1156,  5169,  1140,   574,  4873, -1315,  6053,
     1693   -1315,   574, -1315, -1315,  5169, -1315,   842,   835, -1315, -1315,
     1694   -1315, -1315, -1315, -1315, -1315,   886,   878,  9061, -1315, -1315,
     1695    7542,  1163, -1315,   882,   835, -1315,   892,   926,   835, -1315,
     1696     428,  4553, -1315, -1315, -1315,  9927,  9927, -1315,  8393,  8393,
     1697   -1315,  1161,  1164,  1169,  1172, -1315,  1171,   527,    41,  1079,
     1698   -1315,   574, -1315,  3771, -1315,  5169,   423, -1315,  6649,  1175,
     1699    1177, 10335,  1178,  1181,     9,    73,    48,  5169,  1182,   272,
     1700    5169,  5169,  1132,  1180,   489,  1162, -1315, -1315, -1315,  1184,
     1701   -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,   787,
     1702    1183,  5169, -1315,  9927,  9927,   314,  1186, -1315,  9668, -1315,
     1703   -1315,   984, -1315,  2081, -1315, -1315, -1315, -1315,  1508, -1315,
     1704   -1315,  1188, -1315, -1315, -1315, -1315,  1191,  2444, -1315, -1315,
     1705    1185, -1315,  1065, -1315, -1315,  1777,  1194, -1315, -1315, -1315,
     1706     640,  1198, -1315,   100,  1201, 10470,  1195,   100,   100,  1213,
     1707    1214, -1315,  6048,   959,   835, -1315, -1315,  1036,  5169,  1217,
     1708    1156,   654,    46,  1216, -1315,  1214, -1315,  1222,  1216, -1315,
     1709   -1315,  1226, -1315, -1315,   927,  1229,  1230,  7062,  1231,  1235,
     1710    1237, -1315, -1315,  1242, -1315, -1315,   927, -1315, -1315, -1315,
     1711   -1315,   927,  5169,  5169,   878,  1244, -1315, -1315, -1315, -1315,
     1712   -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 10470, 10470,
     1713    1246,  1253,  1216, -1315, -1315,   787, -1315, -1315, -1315,  4813,
     1714    9811,  5169,  5169,  1321,  5169, -1315,  1239, -1315,  1247, -1315,
     1715    1248,  5169,  1250,  5169,   986,  1252,    81,   314,  9367,  1069,
     1716   -1315, -1315,  6479,  1261,   436, -1315, -1315, -1315, -1315, -1315,
     1717   -1315, -1315, -1315, -1315, 10153, -1315,  8466,  1268, -1315, -1315,
     1718    9811,   437,   451, -1315,  1270,  1271,   762,  1280, -1315,   352,
     1719   -1315, -1315,  5169,  1281, -1315, -1315,   927,  1277, -1315, -1315,
     1720    1284,   301,   375,   574,  1285,  1288, -1315,  1290, -1315,  9927,
     1721   -1315, -1315, -1315, -1315, -1315,  1291, -1315,  9927,  9927,  9927,
     1722   -1315, -1315,  1293, -1315,  1295,  1298,  1299,   590,  8088,  8204,
     1723   -1315, -1315,   304, -1315,  1302,  1303, -1315,  8539,   652,   671,
     1724    1308,   690,  6255, -1315, -1315, -1315,   471, -1315,   711,  1310,
     1725    1311,   272,  1363,  1043, -1315, -1315,  5169, -1315, 10335,  6053,
     1726   -1315, -1315, -1315,  1317,  1318, -1315, -1315, -1315,  1316, -1315,
     1727   -1315, -1315, -1315, -1315, -1315,  9811,   762,   155, -1315,  1300,
     1728     762,  1156,   297,  9927, -1315, -1315, -1315, -1315, -1315, -1315,
     1729   -1315, -1315,  1314, -1315, -1315, -1315, -1315, -1315, -1315,  1323,
     1730    1324, -1315, -1315, -1315, -1315, -1315, -1315, -1315,  1329, -1315,
     1731    1330, -1315, -1315, 10335,   135,  5169, 10335, -1315,  1333,  5169,
     1732   -1315,   281,  1344,  1348, -1315, -1315,  1340,  1343,  1331, -1315,
     1733     988, -1315, -1315, -1315,   823,  1777,  1338,   801,   995, 10470,
     1734   -1315,   713,  1349,  5169, -1315,   574,   574,  1350,  1355,  1356,
     1735    1358, -1315, -1315,  8393,  1359, -1315,  1430, 10470,  1360, -1315,
     1736   -1315, 10246, -1315,   722, -1315,  1347, 10335,  1352, -1315, -1315,
     1737    1366, -1315,  1370, -1315,  1385,  1386, -1315,  1354,  9811, -1315,
     1738   -1315, -1315,   762,   574,  1382,  1364,  1381, -1315,  1389,  1216,
     1739    1216, -1315, -1315, -1315, -1315, -1315, 10335,   197, -1315,  1000,
     1740   -1315, -1315,  7897, -1315, -1315,  1368,  5169, -1315,  5169,  7897,
     1741     272,  9699,   272,  9699,  1391, -1315,  1392, -1315, -1315,  1390,
     1742     801, -1315,   776, -1315, -1315,  5169, -1315,  1394,  1395, -1315,
     1743   10470, 10470, -1315, -1315,  1077,    85, -1315, -1315,  1372, -1315,
     1744    1077, -1315, -1315,  2494,   574, -1315, -1315,   272,  9699,   272,
     1745    9699,  1403,  1383,   574, -1315, -1315, -1315, -1315, -1315, 10246,
     1746    1401,  1077,  5739,  5169, 10157,  1402,  1077,  1408,  2494,  2404,
     1747   -1315, -1315, -1315,  1409, -1315, -1315, -1315, -1315,  8833, -1315,
     1748   -1315, -1315, 10024, -1315, 10246, -1315, -1315,  1388,  9931, -1315,
     1749   -1315, 10157,   272,  2404,   272,  1413,  1414,   857, -1315, 10024,
     1750   -1315, -1315, -1315,  9931, -1315, -1315, -1315,   272,   272, -1315,
     1751   -1315, -1315, -1315, -1315, -1315, -1315, -1315
    17531752};
    17541753
     
    17561755static const yytype_int16 yypgoto[] =
    17571756{
    1758    -1414,  4377,  3077, -1414,  1645, -1414,   305,   958,   -11, -1414,
    1759      552,  -530,  -487,  -944,  -142,  3604,     0, -1414,  1277,   511,
    1760      529,   298,   549,  1057,  1060,  1054,  1062,  1065, -1414,  -211,
    1761     -327,  5116,  -961,  -725,  -952, -1414,  -200,  -594,   572, -1414,
    1762     1379, -1414,   397, -1413, -1414, -1414,   129, -1414, -1160,  -935,
    1763      246, -1414, -1414, -1414, -1414,    68, -1131, -1414, -1414, -1414,
    1764    -1414, -1414, -1414,   321, -1152,    33, -1414,  -696, -1414,   506,
    1765      296, -1414,   169, -1414,  -339, -1414, -1414, -1414,   558,  -728,
    1766    -1414, -1414,    19,  -974,   177,  2303, -1414, -1414, -1414,   -91,
    1767    -1414,   166,   269,  -194,  1705,  3615, -1414, -1414,    36,   224,
    1768      628,  -235,  1694, -1414,  1557, -1414, -1414,   200,  2163, -1414,
    1769     2278,   185, -1414, -1414, -1414,  -607, -1414,   956,   957,   545,
    1770      725,  -320, -1414, -1414, -1414,   950,   719,  -493, -1414,  -472,
    1771     -355,  1296, -1414, -1414,  -899,  -946,   440,   524,  1067,   168,
    1772    -1414,  1040,   317,  -281,  -198,  -141,   672,   781, -1414,  1005,
    1773    -1414,  2834,    55,  -450,   932, -1414, -1414,   712, -1414,  -228,
    1774    -1414,   104, -1414, -1414, -1414, -1285,   420, -1414, -1414, -1414,
    1775     1178, -1414,    31, -1414, -1414,  -862,   -94, -1364,  -152,  1641,
    1776    -1414,  3733, -1414,   927, -1414,  -170,   493,  -184,  -183,  -181,
    1777        7,   -42,   -36,   -33,  1610,     4,    10,    14,  -143,  -177,
    1778     -172,  -162,  -161,  -319,  -513,  -508,  -498,  -547,  -310,  -528,
    1779    -1414, -1414,  -511,  1101,  1102,  1110,  1575,  4802,  -565,  -560,
    1780     -559,  -541,  -551, -1414,  -506,  -744,  -736,  -732,  -593,  -267,
    1781     -227, -1414, -1414,   624,   294,   -85, -1414,  3753,    44,  -634,
    1782     -173
     1757   -1315,  4470,  3041, -1315,    39, -1315,  2507,   957,  -207, -1315,
     1758     461,  -523,  -489,  -955,  -200,  5636,     0, -1315,    72,   572,
     1759     580,   245,   566,   964,   967,   968,   966,   976, -1315,  1601,
     1760    -609,  5067,  -949, -1315,  -712,  -938,   430,  -728,   512, -1315,
     1761    1697, -1315,   311, -1200, -1315, -1315,    43, -1315, -1142, -1154,
     1762     154, -1315, -1315, -1315, -1315,   -26, -1161, -1315, -1315, -1315,
     1763   -1315, -1315, -1315,   231, -1202,    53, -1315,  -908, -1315,   416,
     1764     205, -1315,    78, -1315,  -367, -1315, -1315, -1315,   470,  -824,
     1765   -1315, -1315,    13,  -940,   465,  2639, -1315, -1315, -1315,  -107,
     1766   -1315,   102,   269,  -201,  1635,  4179, -1315, -1315,     5,   449,
     1767     756,  -259,  1489, -1315,  1725, -1315, -1315,    52,  2057, -1315,
     1768    2147,   612, -1315, -1315, -1315,  -616, -1315,   866,   867,   456,
     1769     631,   158, -1315, -1315, -1315,   858,   633,  -514, -1315,  -544,
     1770    -359,  1913, -1315, -1315,  -928,  -991,  1380,  1398,   990,   324,
     1771   -1315,   171,   457,  -332,  -192,  -147,   584,   695, -1315,   919,
     1772   -1315,  2794,  1328,  -442,   850, -1315, -1315,   625, -1315,  -238,
     1773   -1315,   -94, -1315, -1315, -1315, -1246,   330, -1315, -1315, -1315,
     1774    1091, -1315,    35, -1315, -1315,  -834,   -97, -1314,  -130,  1985,
     1775   -1315,  3026, -1315,   844, -1315,  -170,  1212,  -183,  -173,  -167,
     1776       7,   -35,   -34,   -33,   936,    18,    55,    61,  -143,  -159,
     1777    -156,  -153,  -151,  -323,  -535,  -528,  -526,  -542,  -318,  -520,
     1778   -1315, -1315,  -512,  1006,  1009,  1011,  2067,  4895,  -560,  -543,
     1779    -538,  -536,  -484, -1315,  -481,  -740,  -737,  -736,  -586,  -304,
     1780    -339, -1315, -1315,   856,   707,   -88, -1315,  3848,    29,  -599,
     1781    -291
    17831782};
    17841783
     
    17861785   positive, shift that token.  If negative, reduce the rule which
    17871786   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1788 #define YYTABLE_NINF -526
     1787#define YYTABLE_NINF -525
    17891788static const yytype_int16 yytable[] =
    17901789{
    1791       50,   115,   151,   400,   401,   771,   402,    99,   152,   973,
    1792      403,   153,   429,   454,   874,   404,   756,   974,   408,  1080,
    1793      116,   975,   262,   441,   269,   405,   406,   744,   850,   384,
    1794      385,   605,    50,    51,  1142,   982,    70,   411,   833,    99,
    1795      610,   825,   826,   727,   149,   409,   499,   732,   154,  1150,
    1796       50,    31,  1398,   836,   155,  1462,   832,   163,   156,   843,
    1797      827,   800,   282,   145,   188,    51,  1208,   211,    70,   528,
    1798       50,   195,   343,   824,   218,   567,  1200,   228,    31,   597,
    1799      671,  -235,  -235,   400,   401,  1184,   402,   926,   821,   221,
    1800      403,  1318,   170,   822,   168,   404,   520,   737,   408,  1194,
    1801      680,  1217,  1218,   823,   738,   405,   406,   115,   684,   426,
    1802      568,   476,   478,  1550,    31,   115,   171,   124,   268,   273,
    1803      283,   254,   217,   412,    31,   409,  1209,   410,   715,  1462,
    1804     1210,  1182,  1183,  1561,    31,  1419,  1420,    31,   629,   244,
    1805     1565,   955,   633,   865,   866,   151,   675,   677,   308,   149,
    1806      412,   152,  -235,  1079,   153,  1481,   163,   115,   346,   168,
    1807     1319,   884,   211,   863,   863,   863,    64,   472,   973,   374,
    1808      722,   204,   477,    31,   217,   528,   974,    57,   117,  1260,
    1809      975,   853,   863,   920,   420,   854,   412,   188,   188,  1212,
    1810     1211,   154,   328,   578,   482,   163,   412,   155,    64,   579,
    1811       78,   156,   528,   268,   834,  1421,   602,   821,   528,    57,
    1812      956,    50,   822,   669,   731,  1190,   716,   217,   163,   938,
    1813      293,   205,   823,   211,    71,   151,   179,   674,   676,  1127,
    1814      444,   152,    78,   746,   153,  1213,  1087,   666,  -113,  -113,
    1815      863,   308,  1191,   841,   212,   602,  1263,   222,   580,   958,
    1816      412,   125,   216,    50,  -113,   437,    71,   589,   825,   826,
    1817       99,   273,   144,  1466,   667,  1026,   273,   268,   268,   836,
    1818      118,  1152,   506,   115,  1264,   163,   263,   827,   217,   264,
    1819      864,   864,   864,  1025,   464,   328,    51,   343,  1001,    70,
    1820     1013,   214,  1184,   610,   108,   108,   308,  1103,   804,   864,
    1821     1090,   146,  1343,   658,   216,   821,   113,   520,   308,   378,
    1822      822,   666,   520,   148,  1004,   520,   217,   437,   725,   161,
    1823      823,   217,  1199,  1508,   572,   379,   108,   477,   472,   149,
    1824     1200,   673,  1419,  1420,   448,   863,   374,   678,   667,   855,
    1825     -470,   157,   115,   856,   905,  1184,   346,   216,   472,   569,
    1826      603,   621,   168,   461,   597,   528,   472,   864,  1537,   597,
    1827     1539,  1466,  1080,   810,   108,   626,  1466,   388,   793,   626,
    1828      930,  -470,   115,  -470,  1492,   833,   260,  -470,  -113,   825,
    1829      826,   685,  1401,   389,   161,  1405,  1466,   579,   440,  1128,
    1830      599,  1182,  1183,  1466,   715,  1551,  1129,   268,   827,  -113,
    1831      442,  1191,  1430,   557,   558,   859,   217,   188,   216,     8,
    1832        9,    10,    11,    12,   374,   173,   850,   324,   183,    64,
    1833       43,   252,  1566,   876,   473,   268,   340,   308,   308,  1247,
    1834       57,   268,   837,  1251,   626,   571,   840,   412,    31,   559,
    1835      560,   343,   484,   391,    46,    47,   216,   443,   494,   501,
    1836      495,   216,   864,    78,   877,   115,   644,   857,    78,   392,
    1837      878,   860,   393,  1451,  1452,  1214,    34,  1170,  1172,  1184,
    1838     1138,   328,   328,   268,   203,   855,   431,    71,   394,  1110,
    1839      435,   268,   716,   626,   395,    50,   929,   217,   374,   721,
    1840     1200,   112,    99,    98,   736,   115,  1079,  1200,  1114,   499,
    1841      396,   249,    41,    42,  1148,  1259,   888,   308,   875,   115,
    1842      324,  1024,   308,  -291,   308,   308,  1457,   179,    51,   917,
    1843      610,    70,   754,  -521,   921,    98,   115,   346,  1341,   217,
    1844      763,   583,   923,   412,   630,  1342,   216,   150,   634,   328,
    1845      922,   112,   435,    98,  1026,   489,   919,   108,   924,    43,
    1846     1200,  -106,    41,    42,   921,  -106,   715,   191,   328,   466,
    1847       98,  1521,   886,    98,   753,   522,   412,  1526,   923,   254,
    1848     1091,   572,   572,    46,    47,   214,  1381,   161,   265,   308,
    1849      769,   995,  1006,    43,  1092,   473,  1094,   810,  1546,  1138,
    1850      626,   346,   472,  1553,   920,   621,  1197,  1097,   939,  1097,
    1851      602,   603,   331,   603,  1197,   473,  1332,    46,    47,   332,
    1852      706,   588,  1198,   473,  1334,   594,   707,   216,   935,    78,
    1853     1324,   626,  1333,   328,   751,  1024,   626,   812,   621,  1367,
    1854     1335,  1126,   626,  1368,   627,   626,   626,   626,   631,    78,
    1855     1382,   340,    98,   889,   716,   412,  -113,    78,  -113,   713,
    1856      217,    64,  -113,   -10,   626,    98,   268,   895,  1039,   216,
    1857      723,   112,    57,   343,  -444,   851,   724,  -113,  -113,  1037,
    1858      599,   733,    41,    42,   165,  1181,   810,   734,   217,  1029,
    1859      399,   191,   288,   217,  -445,    78,   115,   254,   330,   914,
    1860     1084,   553,   554,    41,    42,   750,   324,   324,   214,   231,
    1861     1348,   751,   929,   232,    98,   892,   236,   412,   238,    71,
    1862     1379,   550,   626,   940,   621,   247,    98,   551,   552,   515,
    1863      721,   721,  1122,  1154,   689,   412,   278,   959,   400,   401,
    1864      280,   402,  1044,   555,   556,   403,  1498,   118,   281,   165,
    1865      404,   333,   597,  1498,   408,   334,    98,   929,   115,   346,
    1866      405,   406,   335,   754,   754,   217,   112,   336,   141,   142,
    1867      480,   372,   489,   112,   324,   373,   489,    41,    42,   217,
    1868      377,   409,  1111,   113,    41,    42,   522,   112,   522,   108,
    1869      216,   522,   386,   324,   522,  1151,   973,  1429,    41,    42,
    1870      852,  1392,   994,   991,   974,   340,  1547,   899,   975,   572,
    1871     1249,   390,  1350,   751,   715,   398,   867,   626,   216,   626,
    1872      901,  1009,   410,   216,   626,   346,   751,   990,   603,   743,
    1873      427,   883,    98,   991,   739,   343,   740,  1003,  1174,   741,
    1874      603,   428,   747,   707,   764,   436,  1039,   743,   433,   770,
    1875      743,   451,   231,   604,   529,   530,   531,   443,   324,   473,
    1876      112,   812,   141,   142,  1245,   781,   782,   783,   784,   808,
    1877      579,    41,    42,  1292,  1293,  1375,   217,  1166,   532,   412,
    1878      533,   751,   534,   535,  1500,   473,  1501,  -368,  1376,  -397,
    1879     1378,   308,   462,    78,   751,   216,   751,  1383,   466,   870,
    1880      849,   505,   716,   751,  1169,   594,   602,   436,   463,   216,
    1881      191,   858,   501,   626,  1195,   704,  1171,   810,   602,    78,
    1882      115,   346,   914,  1447,   914,   713,   929,    70,   485,  1444,
    1883      524,  1467,  1514,  1571,   214,   666,   115,   751,  1515,   579,
    1884      917,  1548,   165,   293,  1256,  1370,   412,   509,   214,   940,
    1885      940,   529,   530,   531,   721,   254,   330,   412,   514,   115,
    1886      308,   528,   667,   561,   562,   689,   526,   919,    49,   114,
    1887      885,   563,   887,   751,   996,   532,   346,   533,  1115,   534,
    1888     1321,   716,   565,    37,   330,   412,   754,    40,    98,   929,
    1889      929,   231,   604,   236,    41,    42,   564,   114,   114,   705,
    1890       49,  1388,  1389,   489,   328,    43,   216,  1439,   991,  1533,
    1891     1444,  1445,    49,  1300,  1301,   566,  1303,   569,    49,   346,
    1892       44,   339,   934,  1308,  -441,  1310,    49,   340,   587,    46,
    1893       47,   694,    49,  1240,   590,    49,  1493,  1494,    49,    -3,
    1894      626,   626,   420,   662,   412,   214,     2,   208,     4,     5,
    1895        6,     7,   114,   114,   482,   330,   412,    64,   639,  1138,
    1896      308,  1419,  1420,   851,   834,   330,   602,   659,    57,     8,
    1897        9,    10,    11,    12,   777,   778,    49,   217,   668,    49,
    1898      143,   231,   660,   661,  1446,   663,    49,   713,  1005,   693,
    1899      664,    78,   665,   808,   779,   780,  1202,   670,    31,   259,
    1900      115,   697,  1459,   695,   820,   914,   604,  1311,  1312,  1313,
    1901      914,    35,   699,    36,  -239,    71,   735,    49,   748,   940,
    1902      785,   786,   704,   752,   959,    49,    34,   268,   959,   959,
    1903       49,  1349,  1351,  1352,   243,   246,  1116,   760,   813,   -12,
    1904      814,   524,   817,   524,   626,   343,   524,   828,   -13,   524,
    1905     -292,   872,   873,    43,   880,    49,    49,     8,     9,    10,
    1906       11,    12,   900,   902,   724,   907,   903,   910,   571,   346,
    1907      412,    49,   928,  -418,    -3,  1519,  1459,    46,    47,    49,
    1908     -525,   943,   808,   950,   964,   108,    31,  1425,    49,   340,
    1909      952,    49,   918,   957,   963,   965,   967,   968,   114,   969,
    1910      929,   970,   986,   998,   999,   689,   705,   216,  1000,  1015,
    1911     1016,   273,   115,   114,    34,  1017,  1018,   114,   929,  1019,
    1912     1020,    49,   114,   820,   604,  1021,   473,   489,  1117,   324,
    1913      115,   221,  1032,  -406,   308,    49,    49,    57,  -405,    37,
    1914     1081,  1046,    49,    40,  1083,   704,   443,  1339,   626,    49,
    1915       41,    42,   115,   108,   913,   704,   112,  1105,   141,   240,
    1916       78,    43,   112,  1104,   141,   142,   217,    41,    42,   704,
    1917       70,  1115,  1106,    41,    42,  1107,   818,   751,   602,  1131,
    1918     1113,  1123,  1124,  1125,    71,    46,    47,  1134,   849,  1130,
    1919      980,   929,   929,   241,  1140,   458,  1135,    49,   242,   728,
    1920      626,   626,  1136,  1144,   729,  1137,   743,  1164,  1144,   273,
    1921     1143,  1187,  1185,  1442,   308,  1186,  -293,    49,    49,  1188,
    1922      693,   820,  1559,     8,     9,    10,    11,    12,  1189,   705,
    1923     1203,  1204,  1206,   604,    49,   713,  1207,  1399,    49,   705,
    1924     1215,  1399,  1219,    -3,  1220,  1222,  1227,   115,  1232,   645,
    1925     1202,  1237,    31,   705,   108,  1235,   400,   401,  1144,   402,
    1926     1241,  1246,   494,   403,   217,    49,  1115,  1248,   404,   689,
    1927     1253,   408,  1254,  1261,  1250,    49,  1268,  1270,   405,   406,
    1928       34,     2,   208,     4,     5,     6,     7,  1265,   212,   222,
    1929     1272,  1273,  1302,    49,  1274,   666,   216,  1275,   409,    49,
    1930       64,    49,  1276,  1278,  1285,  1305,  1294,   268,  1295,  1306,
    1931      230,    57,  1323,   808,   713,  1093,   131,   918,   132,   133,
    1932      134,  1532,   667,  1307,  1330,   626,  1336,    41,    42,  1116,
    1933     1309,   646,  1317,  1338,    78,   214,   114,  1340,  1344,  1346,
    1934     1347,    49,  1353,  1482,  1354,   175,    35,   604,    36,    49,
    1935      115,  1355,  1357,    49,  1363,  1364,  1365,    49,    71,  1366,
    1936      114,  1377,   114,  1068,    37,  1373,   176,   177,    40,  1115,
    1937     1374,  1384,  1385,  1313,   115,    41,    42,   704,   704,  1393,
    1938      473,   115,   645,   115,  1394,   115,   442,  1395,   255,  1402,
    1939     1413,    57,  1405,  1414,   216,  -407,  1417,   114,   151,   340,
    1940      645,   373,   114,   645,   152,  1428,   108,   153,  1432,  1436,
    1941     1202,  1434,  1437,  1443,    78,  1531,  1448,  1202,  1438,  1453,
    1942      115,  1117,   115,  1368,  1116,  1458,  1454,  1455,   108,  1456,
    1943     1472,  1463,  1474,   443,   115,   704,   704,  1468,    71,  1476,
    1944     1531,  1531,   726,  1470,   730,  -294,   108,  1478,   163,  1485,
    1945      308,   114,     8,     9,    10,    11,    12,  1480,    49,  1486,
    1946      693,   705,   705,  1487,    37,  1531,  1488,    76,    40,    49,
    1947     1202,    49,   374,   511,  1441,    41,    42,  1499,  1144,  1144,
    1948     1144,    31,  1509,  1511,   418,  1513,    43,  1517,  1518,  1525,
    1949       49,  1540,  1541,  1545,   328,   548,   549,  1554,   918,    76,
    1950     1552,   720,   112,   918,   141,   142,    49,   438,   108,    34,
    1951       46,    47,   114,    41,    42,  1556,  1117,   446,  1562,   705,
    1952      705,    49,  1569,   114,    49,   114,  1570,  1116,  1221,   789,
    1953      787,  1322,  1520,   548,   788,  1205,   743,   224,   790,  1431,
    1954      473,   108,   791,  1572,   245,  1387,  1252,   473,  1403,  1226,
    1955     1502,    57,   908,   909,  1098,  1234,  1102,    49,    57,   931,
    1956      806,   114,  1139,   114,  1045,   879,   945,   114,  1112,   548,
    1957      164,   953,  1331,   718,    78,   114,     0,   126,   129,   130,
    1958        0,    78,   796,   797,   196,   521,  1328,   219,    49,    49,
    1959      229,   798,     0,     0,   871,     0,     0,     0,    71,     0,
    1960      473,     0,    49,     0,     0,    71,    37,     0,   176,   177,
    1961       40,    57,     0,   178,     0,    67,   119,    41,    42,  1117,
    1962        0,   704,  1144,  1144,   693,   354,     0,     0,     0,   704,
    1963      704,   704,     0,     0,    78,     2,   208,     4,     5,     6,
    1964        7,     0,     0,   925,   108,   927,     0,    67,     0,   458,
    1965        0,   256,  1505,   257,  1505,     0,     0,     0,    71,     0,
    1966     1483,     0,     0,   178,     0,   162,   178,     0,   108,   164,
    1967     1329,   215,     0,     0,     0,   108,   414,     0,     0,     0,
    1968        0,   234,   375,   422,     0,   223,    49,     0,     0,  1505,
    1969        0,  1505,     0,     0,     0,   704,     0,     0,    49,   450,
    1970       35,     0,    36,     0,     0,   705,  1068,     0,   164,     0,
    1971        0,     0,   178,   705,   705,   705,     0,     0,     0,   324,
    1972       76,  1534,   261,   215,     0,    76,     0,     0,   108,     0,
    1973     1542,   164,     0,   682,   397,     0,     0,   774,   775,   776,
    1974        0,   645,     0,   445,   416,   417,     0,     0,   114,   421,
    1975        0,   423,   424,     0,     0,   414,     0,     0,    37,   708,
    1976      176,   177,    40,     0,   329,     0,   215,     0,     0,    41,
    1977       42,    49,   261,   351,     0,   178,     0,     0,     0,   705,
    1978       49,     0,    49,     0,     0,     0,     0,     0,    37,   114,
    1979      185,   186,    40,     0,     0,   377,   521,     0,     0,    41,
    1980       42,   521,  1391,   407,   521,     0,     0,     0,     0,   577,
    1981       43,     0,    49,     0,     0,     0,     0,   581,   425,   224,
    1982      584,   430,   432,   646,     0,   187,   162,   215,     0,   178,
    1983     1049,     0,   114,     0,    46,    47,   178,     0,     0,     0,
    1984        0,     0,     0,     0,     0,     0,     0,   449,   645,   375,
    1985        0,   452,     0,   453,     0,     0,   114,  1418,     0,   645,
    1986     1426,   114,   460,     0,     0,   215,     0,     0,    67,     0,
    1987      215,  1099,     0,   474,     0,     0,     0,     0,   898,     0,
    1988        0,     0,     0,   481,   414,   500,    76,     0,   422,     0,
    1989        0,   432,     0,     0,     8,     9,    10,    11,    12,     0,
    1990        0,   354,     0,     0,   178,  1465,    76,     0,     0,     0,
    1991     1469,   114,     0,     0,    76,     8,     9,    10,    11,    12,
    1992        0,   178,     0,    31,     0,   178,     0,   375,     0,     0,
    1993      646,     0,   354,   480,     0,     0,     0,     0,     0,     0,
    1994     1491,     0,     0,     0,    31,     0,     0,   981,     0,   114,
    1995      354,    34,    76,     0,     0,   215,     0,   261,     0,     0,
    1996      897,   595,     0,    49,     0,   414,     0,   623,    49,   904,
    1997        0,     0,    34,   906,     0,     0,     0,     0,    43,     0,
    1998      628,     0,     0,     0,   628,    49,     0,   261,   178,     0,
    1999        0,     0,     0,   753,   354,   412,     0,     0,     0,    43,
    2000        0,   997,    46,    47,     0,     0,     0,  1506,     0,  1506,
    2001        0,  1002,     0,     0,   939,     0,   602,     0,     0,     0,
    2002        0,     0,     0,    46,    47,  1014,  1560,     0,     0,     0,
    2003        0,  1049,  1560,     0,   474,     0,   215,     0,     0,     0,
    2004        0,     0,     0,  1560,  1506,     0,  1506,  1560,    37,   351,
    2005      185,   186,    40,   215,   474,     0,   577,   577,   354,    41,
    2006       42,     0,   474,     0,    37,   114,   185,   186,    40,     0,
    2007       43,     0,     0,    79,     0,    41,    42,     0,   215,     0,
    2008      700,     0,     0,   432,     0,   912,    43,   412,    49,     0,
    2009        0,     0,     0,   913,    46,    47,     0,     0,   714,     0,
    2010       67,   267,   354,   354,   354,    79,     0,     0,   432,     0,
    2011       46,    47,   432,     0,     0,     0,     0,     0,     0,     0,
    2012        0,   354,     0,     0,     0,     0,   801,   802,     0,     0,
    2013        0,   114,   114,   114,     0,     0,     0,     0,     0,   354,
    2014        0,   261,   351,   225,   890,   178,     0,  1298,   893,     0,
    2015       76,     0,     0,     0,     0,   835,     0,     0,   838,   839,
    2016        0,   842,     0,   844,   845,     0,     0,     0,   846,   847,
    2017        0,     0,     0,     0,     0,     0,    76,   178,     0,   354,
    2018        0,     0,     0,     0,     0,     0,     0,   799,    81,   645,
    2019        0,     0,     0,   178,  1089,     0,   548,     0,     0,   215,
    2020        0,     0,     0,     0,     0,   628,   811,     0,   178,     0,
    2021        0,     0,     0,    58,    58,     0,   354,     0,   830,     0,
    2022       81,     0,     0,     0,     0,     0,     0,   215,     0,     0,
    2023        0,   356,   215,  1179,  1180,     0,   595,   511,     0,     0,
    2024        0,   595,     0,     0,     0,    58,     0,   628,     0,     0,
    2025      351,   351,   351,     0,     0,     0,     0,     0,   226,     0,
    2026        0,     0,   354,     0,    49,    49,     0,     0,     0,   351,
    2027        0,     0,   354,     0,   354,   114,   114,     0,     0,   224,
    2028       58,     0,   354,    58,   577,     0,   354,   700,     0,   178,
    2029        0,  1229,  1230,     0,     0,     0,     0,     0,   474,     0,
    2030        0,     0,     0,     0,   215,     0,     0,     0,     0,   978,
    2031      979,     0,     0,   114,     0,     0,     0,     0,   215,     0,
    2032        0,     0,     0,     0,   474,     0,    79,   351,     0,     0,
    2033        0,    79,     0,     0,     0,     0,   944,     0,   500,   432,
    2034       37,     0,   185,   186,    40,     0,   357,     0,    76,     0,
    2035     1216,    41,    42,     0,    37,     0,   185,   186,    40,     0,
    2036        0,     0,    43,   261,   714,    41,    42,     0,     0,   976,
    2037        0,   349,     0,    49,   114,     0,    43,   601,   354,   602,
    2038        0,     0,     0,   114,     0,     0,    46,    47,     0,     0,
    2039        0,   912,     0,   412,     0,     0,     0,     0,    49,    49,
    2040       46,    47,     0,   414,     0,     0,     0,     0,     0,     0,
    2041      700,     0,     0,     0,     0,   215,     0,     0,     0,     0,
    2042      700,     0,   351,    49,   628,   225,     0,  1012,     0,   628,
    2043      811,     0,     0,   354,   700,     0,    58,     0,     0,     0,
    2044        0,    81,     0,     0,  1023,     0,    81,   536,   537,   538,
    2045      539,   540,   541,   542,   543,   544,   545,     0,   178,     0,
    2046        0,     0,     0,     0,     0,     0,    58,    37,     0,   185,
    2047      186,    40,     0,     0,  1100,     0,     0,  1356,    41,    42,
    2048        0,   546,     0,  1155,     0,  1358,  1359,  1360,     0,    43,
    2049        0,     0,    79,     0,   354,   354,    67,   354,   354,     0,
    2050     1167,     0,     0,     0,  1530,     0,   412,   356,     0,     0,
    2051        0,     0,    79,    46,    47,     0,     0,    76,   628,     0,
    2052       79,     0,     0,     0,     0,   261,   714,     0,     0,  1095,
    2053        0,     8,     9,    10,    11,    12,     0,     0,   356,     0,
    2054      226,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2055        0,  1406,   354,   354,     0,  1109,   356,     0,    79,     0,
    2056       31,     0,     0,   432,   119,     0,     0,     0,     0,     0,
    2057        0,     0,     0,     0,     0,     0,     0,     0,   414,     0,
    2058        0,   351,     0,     0,     0,     0,     0,     0,    34,     0,
    2059        0,     0,     0,    37,     0,   185,   186,    40,     0,     0,
    2060      356,     0,  1386,     0,    41,    42,     0,    81,     0,     0,
    2061        0,     0,     0,     0,     0,    43,   215,     0,     0,     0,
    2062     1257,     0,   357,     0,   595,     0,   354,    81,     0,     0,
    2063      601,     0,   602,     0,     0,    81,     0,   430,  1231,    46,
    2064       47,     0,   700,   700,     0,   351,   351,   349,     0,     0,
    2065        0,     0,     0,   357,     0,     0,     0,     0,     0,     0,
    2066        0,     0,     0,     0,   356,  1201,     0,     0,     0,   224,
    2067        0,   357,     0,    81,     0,     0,     0,     0,     0,     0,
    2068        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2069        0,    76,     0,     0,     0,     0,     0,     0,    58,     0,
    2070      700,   700,     0,   354,     0,   354,     0,     0,   356,   356,
    2071      356,     0,     0,     0,     0,   357,     0,     0,     0,     0,
    2072        0,     0,     0,     0,     0,     0,     0,   356,     0,     0,
    2073        0,     0,     0,     0,     0,     0,     0,     0,   354,     0,
    2074      349,     0,     0,     0,    88,   356,   354,   354,   354,   628,
    2075        0,     0,     0,     0,     0,     0,    79,   354,   354,     0,
    2076        0,  1503,     0,  1507,     0,     0,     0,     0,     0,     0,
    2077     1320,    76,     0,     0,   714,   178,    88,     0,     0,   357,
    2078        0,     0,    79,     0,     0,   356,     0,     0,     0,     0,
    2079        8,     9,    10,    11,    12,     0,     0,     0,  1536,     0,
    2080     1538,     0,     0,     0,   349,   215,     0,     0,     0,     0,
    2081        0,     0,   354,     0,   227,     0,     0,  1299,     0,    31,
    2082        0,     0,   356,   357,   357,   357,     0,     0,     0,     0,
    2083        0,     0,     0,     0,     0,   261,     0,     0,     0,    67,
    2084        0,     0,   357,  1567,     0,  1568,     0,    34,   349,   349,
    2085      349,   700,    37,   714,   185,   186,    40,   119,  1575,  1576,
    2086      357,     0,     0,    41,    42,     0,     0,   349,   356,     0,
    2087        0,    81,     0,     0,    43,     0,     0,     0,   356,     0,
    2088      356,     0,   354,     0,     0,   225,   700,     0,   356,   912,
    2089        0,   412,   356,     0,   700,   700,   700,    81,    46,    47,
    2090      357,     0,   364,   215,     0,   351,   351,     0,     0,     0,
    2091        0,     0,     0,     0,     8,     9,    10,    11,    12,  1201,
    2092        0,     0,     0,     0,     0,   349,     0,     0,     0,     0,
    2093        0,    76,     0,     0,     0,     0,     0,   357,    76,     0,
    2094        0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
    2095        0,   178,   119,     0,    79,     0,     0,     0,     0,     0,
    2096      700,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2097        0,    34,     0,     0,     0,     0,    37,     0,   185,   186,
    2098       40,     0,     0,   357,   356,     0,     0,    41,    42,     0,
    2099        0,    76,     0,   357,     0,   357,     0,    88,    43,     0,
    2100      226,     0,    88,   357,     0,     0,     0,   357,     0,     0,
    2101        0,     0,     0,  1530,     0,   412,     0,     0,     0,     0,
    2102      349,     0,    46,    47,     0,     0,     0,     0,   349,     0,
    2103      351,     0,     0,     0,     0,     0,     0,     0,     0,   356,
    2104        0,   169,     0,   174,     0,     0,   180,   181,   182,     0,
    2105      184,     0,     0,     0,     0,   119,     8,     9,    10,    11,
    2106       12,     0,     0,     0,     0,   235,     0,     0,     0,    81,
    2107        0,     0,     0,     0,     0,     0,     0,   250,   251,  1201,
    2108        0,     0,     0,     0,     0,    31,  1201,     8,     9,    10,
    2109       11,    12,     0,     0,    58,     0,   227,     0,     0,   357,
    2110      356,   356,     0,   356,   356,     0,     0,     0,     0,     0,
    2111        0,     0,     0,    34,     0,     0,    31,     0,    37,     0,
    2112      185,   186,    40,    79,     0,     0,     0,     0,     0,    41,
    2113       42,     0,     0,     0,     0,     0,     0,     0,     0,  1201,
    2114       43,     0,     0,     0,    34,     0,  1555,     0,     0,    37,
    2115        0,   185,   186,    40,   357,   187,     0,     0,   356,   356,
    2116       41,    42,    58,    88,    46,    47,     0,     0,     0,     0,
    2117        0,    43,     0,     8,     9,    10,    11,    12,   364,   349,
    2118        0,     0,     0,    88,     0,     0,   267,     0,     0,     0,
    2119        0,    88,     0,     0,     0,    46,    47,     0,     0,     0,
    2120        0,     0,    31,     0,     8,     9,    10,    11,    12,   364,
    2121        0,     0,     0,     0,     0,   357,   357,     0,   357,   357,
    2122        0,     0,     0,     0,     0,     0,     0,   364,     0,    88,
    2123       34,     0,   356,    31,     0,    37,     0,     0,    81,    40,
    2124        0,     0,     0,   349,   349,     0,    41,    42,     0,     0,
    2125        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2126        0,    34,     0,    58,     0,     0,    37,     0,     0,     0,
    2127       40,   364,    44,   357,   357,   225,     0,    41,    42,     0,
    2128        0,    46,    47,     0,     0,     0,     0,     0,    43,     0,
    2129        0,     0,     0,     0,     0,     0,     0,    79,     0,     0,
    2130        0,     0,     0,   720,     0,     0,     0,     0,     0,   356,
    2131        0,   356,    46,    47,     8,     9,    10,    11,    12,    13,
    2132       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2133       24,    25,   592,     0,   600,   364,     0,     0,     0,     0,
    2134        0,     0,     0,    31,   356,   624,   625,   357,     0,     0,
    2135        0,     0,   356,   356,   356,     0,     0,     0,     0,     0,
    2136        0,     0,     0,   356,   356,     0,     0,     0,     0,     0,
    2137        0,    34,     0,     0,     0,     0,     0,    79,     0,   364,
    2138      364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
    2139      226,     0,     0,     0,     0,     0,     0,     0,   364,     0,
    2140      284,   285,     0,   286,     0,     0,     0,     0,     0,     0,
    2141        0,     0,    81,     0,    58,    58,   364,     0,   356,     0,
    2142        0,     0,     0,     0,   357,     0,   357,    88,     0,   287,
    2143        0,     0,     0,     0,     0,   288,     0,    58,     0,   289,
    2144        0,     0,   290,   291,   292,   293,    41,    42,     0,   294,
    2145      295,     0,     0,    88,     0,    58,   364,    43,     0,   357,
    2146        0,     0,     0,     0,     0,     0,     0,   357,   357,   357,
    2147        0,     0,   296,     0,   380,     0,     0,   381,   357,   357,
    2148        0,    46,    47,   298,   299,   300,   301,     0,   356,     0,
    2149        0,     0,    81,   364,     0,     0,     0,     0,     0,     0,
    2150        0,     0,     0,   349,   349,     0,     0,     0,     0,     0,
    2151        0,     0,    58,     0,     0,     0,     0,    58,     0,     0,
    2152        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2153        0,     0,     0,   357,     0,     0,     0,    79,     0,   364,
    2154        0,     0,     0,     0,    79,     0,     0,     0,     0,   364,
    2155       58,   364,     0,     0,     0,     0,   227,     0,     0,   364,
    2156        0,     0,     0,   364,     0,     8,     9,    10,    11,    12,
    2157       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2158       23,    24,    25,  -295,     0,    26,    27,    28,     0,     0,
    2159        0,     0,   213,     0,    31,     0,     0,    79,     0,     0,
    2160        0,     0,   233,   357,   237,     0,   239,     0,     0,     0,
    2161        0,     0,     0,   248,     0,     0,     0,     0,     0,     0,
    2162        0,     0,    34,     0,     0,    88,     0,    37,   349,   337,
    2163      338,    40,     0,  -295,     0,     0,     0,     0,    41,    42,
    2164        0,     0,     0,     0,   213,     0,   237,   239,   248,    43,
    2165        0,     0,    81,    58,     0,   364,     0,     0,     0,    81,
    2166        0,     0,     0,     0,   635,     0,   339,     0,     0,   128,
    2167      128,   128,     0,    46,    47,     0,     0,    58,     0,     0,
    2168        0,     0,   284,   285,    58,   286,     0,   213,   932,     0,
    2169      933,     0,     0,     0,     0,     0,     0,   936,   937,     0,
    2170        0,     0,   942,     0,     0,     0,     0,     0,     0,     0,
    2171      364,   287,    81,   167,   947,     0,     0,   288,     0,   951,
    2172        0,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2173      220,   294,   295,     0,     0,     0,     0,    58,     0,    43,
    2174        0,     0,     0,   128,     0,   128,     0,     0,   213,   987,
    2175      237,   239,   248,     0,   296,     0,   380,     0,     0,     0,
    2176        0,     0,   792,    46,    47,   298,   299,   300,   301,     0,
    2177      277,   364,   364,     0,   364,   364,     0,     0,   167,     0,
    2178        0,     0,   274,     0,     0,     0,   213,     0,     0,     0,
    2179        0,   213,     0,     0,    88,     0,     0,     0,   508,     0,
    2180      510,   513,     0,     0,     0,     0,   498,     0,   516,   517,
    2181        0,   167,     0,     0,     0,     0,     0,     0,     0,     0,
    2182        0,   370,   510,   510,     0,   376,   128,     0,     0,   364,
    2183      364,     0,     0,     0,   128,     0,   128,   128,     0,     0,
    2184        0,   128,     0,   128,   128,     0,     0,     0,     0,     0,
    2185     1033,  1034,  1035,  1036,   213,  1038,     0,     0,     0,     0,
    2186      510,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2187        0,  1082,     0,     0,   167,     0,   213,     0,     0,     0,
    2188        0,   237,   239,     0,     0,  1088,   220,     0,     0,   248,
    2189        0,     0,     0,     0,     0,     0,   510,     0,     0,     0,
    2190        0,     0,     0,   364,   167,     0,     0,     0,     0,     0,
    2191        0,     0,     0,   128,     0,     0,     0,     0,     0,     0,
    2192        0,     0,     0,     0,     0,  1108,     0,     0,     0,   376,
    2193        0,     0,   213,     0,     0,     0,   167,     0,     0,     0,
    2194        0,     0,     0,     0,     0,     0,   227,     0,     0,     0,
    2195      213,     0,     0,     0,     0,   213,     0,   213,     0,   525,
    2196        0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
    2197        0,   167,  1141,     0,   213,     0,     0,   213,   213,  1149,
    2198      364,     0,   364,     0,  1153,   213,     0,     0,     0,  1157,
    2199        0,  1158,     0,     0,     0,  1160,     0,  1161,  1162,   213,
    2200        0,  1165,     0,     0,     0,     0,   213,     0,     0,   598,
    2201     1177,     0,     0,     0,   622,   364,     0,     0,     0,     0,
    2202        0,     0,     0,   364,   364,   364,     0,     0,  1192,  1193,
    2203        0,     0,     0,     0,   364,   364,     0,     0,     0,     0,
    2204        0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
    2205        0,     0,     0,     0,     0,  1223,     0,     0,  1225,     0,
    2206        0,     0,     0,     0,   510,   510,   510,   510,   510,   510,
    2207      510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
    2208      510,   510,     0,     0,     0,     0,     0,     0,     0,   364,
    2209      167,   167,     0,     0,     0,     0,     0,   370,     0,     0,
    2210        0,  1239,     0,     0,     0,     0,     0,  1243,  1244,     0,
    2211        0,     0,     0,     0,     0,     0,     0,     0,   525,  1255,
    2212      213,     0,     0,     0,     0,     0,     0,     0,     0,  1262,
    2213        0,     0,  1266,     0,  1267,     0,     0,  1269,     0,     0,
    2214        0,     0,     0,     0,     0,     0,   717,     0,   213,     0,
    2215     1277,     0,     0,   213,     0,     0,     0,     0,   167,   364,
    2216        0,     0,     0,  1284,     0,  1286,  1287,  1288,  1289,     0,
    2217      525,     0,   525,     0,     0,   525,     0,   167,   525,     0,
    2218        0,  1296,     0,  1297,     0,     0,     0,   174,     0,     0,
    2219      370,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2220        0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
    2221        0,   510,     0,     0,     0,    88,  1325,  1326,   128,   128,
    2222        0,     0,     0,     0,     0,   213,     0,     0,     0,     0,
    2223        0,     0,     0,     0,     0,     0,     0,     0,     0,   213,
    2224        0,     0,   167,     0,     0,     0,     0,   128,     0,     0,
    2225      128,   128,     0,   128,   370,   128,   128,     0,   816,   498,
    2226      128,   128,     0,     0,     0,     0,     0,     0,    88,  1361,
    2227     1362,     0,     0,     0,   510,     0,     0,     0,     0,  1372,
    2228        0,     0,     0,     0,   598,     0,     0,     0,     0,   598,
    2229        0,     0,     0,     0,     0,     0,     0,     0,   370,   370,
    2230      370,     0,     0,     0,     0,     0,   510,     0,     0,  1022,
    2231        0,     0,     8,     9,    10,    11,    12,   370,     0,     0,
    2232        0,     0,     0,     0,   213,     0,     0,     0,     0,     0,
    2233     1404,     0,   158,     0,     0,     0,   213,     0,     0,   284,
    2234      285,    31,   286,  1409,     0,  1410,  1411,  1412,     0,   525,
    2235        0,     0,     0,     0,     0,   213,     0,  1416,     0,     0,
    2236        0,     0,     0,     0,     0,     0,  1427,     0,   287,    34,
    2237        0,     0,     0,     0,   288,   370,     0,   941,   289,     0,
    2238      253,   290,   291,   292,   293,    41,    42,     0,   294,   295,
    2239      258,     0,     0,  1450,     0,     0,    43,     0,     0,     0,
    2240        0,   128,   128,     0,     0,     0,     0,     0,     0,     0,
    2241        0,   296,   717,   380,     0,     0,     0,     0,     0,     0,
    2242      345,    47,   298,   299,   300,   301,     0,   510,     0,     0,
    2243        0,     0,     0,     0,     0,     0,     0,     0,  1489,  1490,
    2244        0,     0,     0,     0,     0,     0,   158,     0,     0,     0,
    2245        0,  1495,     0,     0,     0,     0,     0,     0,  1495,     0,
    2246      387,     0,     0,     0,     0,     0,     0,     0,     0,   213,
    2247      370,     0,   510,     0,   622,     0,     0,     0,   370,     0,
    2248        0,     0,     0,   419,     0,     0,     0,     0,     0,     0,
    2249        0,  1529,     0,     0,     0,  1535,     0,   434,     0,     0,
    2250        0,   213,     0,     0,     0,     0,   439,     0,     0,     0,
    2251      510,     0,     0,     0,     0,     0,   447,     0,     0,     0,
    2252        0,     0,     0,   510,  1557,     0,  1558,     0,     0,     0,
    2253        0,     0,     0,     0,     0,     0,     0,   213,     0,     0,
    2254        0,   465,     0,     0,     0,     0,   475,     0,   213,     0,
    2255        0,     0,     0,     0,  1573,  1574,     0,     0,     0,   483,
    2256        0,   128,  1577,  1578,   510,   493,   128,   497,     0,     0,
    2257        0,     0,     0,     0,   717,     0,     0,     0,     0,     0,
    2258        0,     0,     0,     0,   527,     0,     0,     0,     0,   525,
    2259        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2260        0,     0,     0,     0,   284,   285,     0,   286,     0,     0,
    2261        0,     0,     0,   167,     0,     0,     0,     0,     0,     0,
    2262      213,     0,     0,     0,     0,     0,   586,     0,     0,   370,
    2263        0,   591,     0,   287,   213,     0,     0,     0,     0,   288,
    2264        0,   510,     0,   289,     0,     0,   290,   291,   292,   293,
    2265       41,    42,     0,   294,   295,     0,     0,     0,     0,     0,
    2266      636,    43,     0,     0,   637,   638,     0,   640,     0,     0,
    2267        0,     0,   598,     0,   652,   653,   507,   654,   655,     0,
    2268      656,     0,   657,     0,     0,    46,    47,   298,   299,   300,
    2269      301,     0,     0,   370,   370,     0,     0,     0,     0,   586,
    2270        0,     0,     0,     0,   510,   510,     0,   672,     0,     0,
    2271        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2272        0,     0,     0,     0,     0,     0,   213,     0,     0,     0,
    2273      128,     0,   683,     0,     0,     0,     0,     0,     0,     0,
    2274        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2275        0,     0,     0,   525,     0,     0,     0,     0,   709,     0,
    2276        0,     0,     0,     0,   712,     0,     0,  -520,     0,   465,
    2277        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    2278       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2279       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2280       29,     0,     0,    30,     0,   749,    31,    32,     0,     0,
    2281        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2282      768,     0,   717,     0,   213,     0,     0,     0,     0,     0,
    2283        0,    33,     0,     0,    34,     0,    35,     0,    36,    37,
    2284        0,    38,    39,    40,     0,     0,     0,     0,     0,     0,
    2285       41,    42,     0,     0,     0,     0,     0,     0,   795,     0,
    2286        0,    43,   128,     0,   220,     0,     0,   805,     0,   342,
    2287      365,     0,     0,     0,   807,     0,    44,     0,    45,     0,
    2288      815,     0,     0,     0,     0,    46,    47,     0,     0,   829,
    2289        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2290        0,   717,     0,   415,     0,     0,     0,     0,     0,     0,
    2291      415,     0,     0,     0,     0,   510,     0,     0,     0,     0,
    2292        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2293      869,     0,     0,   510,     0,     0,     0,     0,     0,     0,
    2294        0,   284,   285,     0,   286,     0,     0,     0,     0,     0,
    2295        0,     0,     0,   370,   370,     0,     0,     0,     0,     0,
    2296        0,     0,   220,     0,     0,     0,   815,     0,     0,     0,
    2297      287,     0,     0,     0,   911,     0,   288,     0,     0,     0,
    2298      289,     0,   415,   290,   291,   292,   293,    41,    42,     0,
    2299      294,   295,     0,     0,     0,     0,     0,     0,    43,     0,
    2300        0,     0,     0,     0,     0,   253,   510,   510,     0,     0,
    2301        0,     0,     0,   296,     0,   948,   949,     0,     0,     0,
    2302        0,     0,    46,    47,   298,   299,   300,   301,     0,   966,
    2303        0,     0,     0,     0,     0,     0,   415,     0,     0,     0,
    2304        0,     0,     0,     0,   415,   582,     0,   415,   585,     0,
    2305      988,     0,   989,     0,     0,     0,   993,     0,   365,     0,
    2306        0,     0,   614,     0,     0,     0,     0,     0,     0,     0,
    2307        0,     0,     0,     0,     0,     0,     0,     0,   370,     0,
    2308      213,   632,     0,     0,   342,     8,     9,    10,    11,    12,
    2309       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2310       23,    24,    25,  -295,     0,    26,    27,    28,     0,     0,
    2311        0,   415,     0,     0,    31,   415,     0,     0,     0,     0,
    2312        0,  1027,     0,     0,     0,     0,     0,     0,  1028,     0,
    2313        0,     0,     0,     0,     0,     0,   525,     0,   525,     0,
    2314        0,  1030,    34,  1031,     0,     0,   365,    37,     0,   337,
    2315      338,    40,     0,  -295,     0,     0,     0,  1043,    41,    42,
    2316        0,     0,     0,     0,  1047,     0,     0,     0,     0,    43,
    2317        0,     0,     0,   525,   322,   525,  1085,     0,     0,  1086,
    2318        0,     0,     0,     0,   347,     0,   339,     0,     0,     0,
    2319        0,     0,   415,    46,    47,   365,   383,   383,     0,     0,
    2320        0,     0,     0,   167,   207,     2,   208,     4,     5,     6,
    2321        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2322       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2323        0,    26,    27,    28,   415,     0,     0,     0,   342,   365,
    2324       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2325        0,     0,     0,     0,     0,     0,     0,     0,   591,     0,
    2326        0,     0,     0,     0,     0,     0,     0,   322,    34,     0,
    2327       35,     0,    36,     0,     0,   209,    39,     0,     0,     0,
    2328        0,     0,     0,   415,   415,     0,     0,     0,     0,     0,
    2329        0,   479,     0,     0,  1159,    43,     0,     0,     0,     0,
    2330        0,     0,   809,   365,     0,     0,     0,     0,     0,     0,
    2331        0,     0,   210,   614,     0,   614,   614,     0,     0,    46,
    2332       47,     0,   614,     0,     0,     0,     0,     0,     0,     0,
    2333        0,     0,   848,   365,     0,     0,     0,     0,   365,     0,
    2334        0,     0,     0,     0,     0,     0,     0,   365,   365,   365,
    2335        0,     0,   527,     0,     0,     0,     0,     0,  1224,     0,
    2336        0,     0,     0,     0,     0,     0,   365,     0,     0,     0,
    2337        0,   415,   891,     0,     0,   415,   894,     0,     0,     0,
    2338        0,     0,   896,     0,     0,     0,     0,     0,     0,     0,
    2339        0,     0,  1236,     0,     0,     0,     0,  1238,     0,     0,
    2340        0,   415,     0,     0,     0,  1242,     0,   383,     0,     0,
    2341        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2342        0,     0,     0,     0,   365,   614,     0,     0,     0,     0,
    2343        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2344        0,  1271,     0,     0,     0,     0,     0,     0,     0,     0,
    2345        0,     0,     0,  1279,     0,     0,  1280,     0,  1281,     0,
    2346      342,   365,     0,     0,     0,   415,   415,     0,     0,     0,
    2347        0,     0,  1290,  1291,     0,     0,     0,     0,     0,     0,
    2348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2349        0,     0,     0,     0,  1304,     0,     0,     0,     0,     0,
    2350        0,   711,   284,   285,     0,   286,     0,     0,     0,     0,
    2351        0,   415,     0,     0,     0,     0,     0,     0,     0,   365,
    2352        0,     0,     0,     0,     0,     0,   809,   365,     0,     0,
    2353      614,   287,   614,     0,     0,     0,     0,   288,     0,     0,
    2354      745,   289,   614,  1345,   290,   291,   292,   293,    41,    42,
    2355        0,   294,   295,   762,     0,     0,     0,     0,   745,    43,
    2356        0,   745,     0,     0,     0,     0,     0,     0,     0,     0,
    2357        0,     0,   772,   773,   296,     0,   380,     0,     0,     0,
    2358        0,   761,     0,    46,    47,   298,   299,   300,   301,     0,
    2359        0,     0,     0,     0,     0,   794,     0,     0,     0,     0,
    2360        0,     0,     0,     0,     0,   803,     0,     0,     0,     0,
    2361        0,     0,   347,     0,     0,   809,     0,   762,     0,  1396,
    2362        0,  1397,   342,   365,   415,     0,   415,     0,     0,     0,
    2363      415,     0,     0,     0,     0,  1407,     0,  1408,     0,     0,
    2364        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2365        0,   614,   614,     0,     0,  1415,     0,     0,     0,     0,
    2366        0,     0,     0,     0,     0,     0,   868,     0,     0,     0,
    2367        0,  1433,  1435,     0,     0,   383,     0,     0,   365,     0,
    2368        0,     0,  1440,     0,     0,  1242,     0,     0,   415,     8,
    2369        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2370       19,    20,    21,    22,    23,    24,    25,  -295,  1464,     0,
    2371      415,  1156,     0,     0,     0,     0,     0,  1471,    31,     0,
    2372     1473,   365,  1475,  1477,  1479,     0,     0,   415,  1168,     0,
    2373      614,   614,  1173,     0,     0,     0,     0,     0,     0,     0,
    2374        0,     0,   365,   365,     0,     0,    34,     0,     0,     0,
    2375        0,     0,     0,     0,     0,     0,     0,  -295,     0,     0,
    2376        0,     0,     0,     0,  1510,     0,  1512,     0,  1242,     0,
    2377        0,     0,     0,     0,     0,   762,     0,   972,     0,     0,
    2378        0,     0,     0,     0,  1524,     0,     0,   983,     0,     0,
    2379        0,     0,     0,     0,   992,     0,     0,     0,     0,     0,
    2380        0,     0,     0,     0,     0,   415,     0,   415,     0,     0,
    2381        0,     0,   415,     0,     0,     0,     0,     0,     0,     0,
    2382        0,   614,     0,     0,     0,     0,     0,     0,     0,  1175,
    2383        0,     0,     8,     9,    10,    11,    12,  1010,  1011,     0,
    2384        0,   347,     0,     0,     0,     0,   809,   415,  1258,     0,
    2385        0,     0,     0,     0,     0,   347,     0,     0,     0,   284,
    2386      285,    31,   286,     0,     0,     0,     0,     0,     0,     0,
    2387        0,   365,     0,     0,     0,     0,     0,     0,     0,     0,
    2388        0,     0,     0,     0,     0,     0,     0,     0,   287,    34,
    2389        0,     0,     0,     0,   288,  1041,     0,     0,   289,   383,
    2390        0,   290,   291,   292,   293,    41,    42,     0,   294,   295,
    2391        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
    2392        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2393        0,   296,   342,   380,     0,     0,     0,   347,     0,     0,
    2394     1176,    47,   298,   299,   300,   301,     0,     0,     0,     0,
    2395      365,     2,   208,     4,     5,     6,     7,     8,     9,    10,
    2396       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2397       21,    22,    23,    24,    25,     0,   322,    26,    27,    28,
    2398        0,     0,     0,     0,   284,   285,    31,   286,     0,     0,
    2399        0,     0,  1132,  1133,     0,     0,     0,     0,     0,     0,
    2400        0,     0,   365,   365,     0,     0,   383,     0,     0,     0,
    2401        0,     0,   983,   287,    34,  1147,    35,   745,    36,   288,
    2402        0,    38,    39,   289,     0,     0,   290,   291,   292,   293,
    2403       41,    42,     0,   294,   295,     0,     0,     0,  1163,     0,
    2404        0,    43,     0,     0,     0,     0,     0,     0,     0,  1178,
    2405        0,   284,   285,     0,   286,     0,   296,     0,   344,     0,
    2406        0,     0,     0,   761,     0,   345,    47,   298,   299,   300,
    2407      301,   383,     0,  1196,     0,     0,     0,     0,     0,     0,
    2408      287,     0,     0,     0,     0,     0,   288,     0,   983,   983,
    2409      289,     0,     0,   290,   291,   292,   293,    41,    42,     0,
    2410      294,   295,     0,     0,     0,     0,     0,     0,    43,  1228,
    2411        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2412        0,     0,     0,   296,     0,   380,     0,   365,   980,     0,
    2413        0,     0,    46,    47,   298,   299,   300,   301,     0,     0,
    2414        0,     1,     2,     3,     4,     5,     6,     7,     8,     9,
    2415       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2416       20,    21,    22,    23,    24,    25,   983,     0,    26,    27,
    2417       28,    29,     0,     0,    30,     0,     0,    31,    32,     0,
    2418        0,     0,     0,     0,     0,   868,     0,     0,     0,     0,
    2419        0,   284,   285,     0,   286,     0,     0,     0,     0,     0,
    2420     1282,  1283,    33,     0,     0,    34,     0,    35,     0,    36,
    2421       37,     0,    38,    39,    40,     0,     0,   415,     0,     0,
    2422      287,    41,    42,     0,     0,     0,   288,     0,     0,     0,
    2423      289,     0,    43,   290,   291,   292,   293,    41,    42,     0,
    2424      294,   295,   415,   415,     0,     0,     0,    44,    43,    45,
    2425        0,     0,     0,  -524,     0,     0,    46,    47,     0,     0,
    2426        0,     0,     0,   296,     0,   380,     0,   415,     0,     0,
    2427        0,     0,    46,    47,   298,   299,   300,   301,     0,     0,
    2428      983,     0,     1,     2,   208,     4,     5,     6,     7,     8,
    2429        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2430       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2431       27,    28,    29,     0,     0,    30,   284,   285,    31,  1050,
    2432     1051,     0,  1052,     0,     0,  1053,  1054,  1055,  1056,  1057,
    2433     1058,  1059,  1060,     0,     0,     0,  1061,     0,     0,     0,
    2434     1062,  1063,     0,    33,  1390,   287,    34,   745,    35,     0,
    2435       36,  1064,     0,    38,    39,   289,     0,     0,   290,   291,
    2436      292,   293,    41,    42,     0,   294,   295,     0,     0,     0,
    2437        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2438        0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
    2439     1065,     0,     0,   173,     0,     0,     0,    46,    47,   298,
    2440      299,   300,   301,     0,     0,     0,     0,  1066,     0,     0,
    2441        0,  -130,     0,     0,     0,     0,     0,     0,     0,     0,
    2442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2443        0,  1449,     0,     0,     0,     0,     0,     0,     1,     2,
    2444      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2445       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2446       23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
    2447        0,    30,   284,   285,    31,   286,     8,     9,    10,    11,
     1790      49,   114,   453,   399,   428,    69,   953,    98,   150,   151,
     1791     152,   770,   971,   400,   115,   972,   973,   407,   261,   401,
     1792     268,   498,   383,   384,   743,   628,   604,   402,   440,   632,
     1793     403,   609,    49,   404,   848,   405,  1148,    69,  1182,    98,
     1794     755,   596,   831,   148,   408,  1078,  1140,   980,   872,    49,
     1795     726,   670,    77,    50,   731,  1077,   162,   823,   410,   798,
     1796     830,   153,   824,   187,   825,   819,   210,   144,   342,    49,
     1797     194,   679,   820,   217,   821,   505,   227,   924,   167,   683,
     1798     822,  1206,   220,   399,    77,    50,  1192,   928,    31,  1396,
     1799     861,   861,   861,   400,   674,   676,   177,   407,   154,   401,
     1800    1180,  1181,    63,  1460,   155,   425,   114,   402,  1198,   861,
     1801     403,  1215,  1216,   404,   114,   405,    31,   267,   272,   834,
     1802    1210,   863,   864,   714,   408,   841,    31,   281,   566,  -234,
     1803    -234,  1261,   475,   477,    63,   447,    31,  1188,   409,   882,
     1804     203,  1207,    31,   167,  1316,  1208,   177,   307,   148,   177,
     1805     471,   150,   151,   152,   460,   162,   114,   345,   253,  1262,
     1806     411,   210,   730,   567,  1189,   721,  1211,   861,   373,   577,
     1807     971,   123,    31,   972,   973,   578,   327,  1460,   715,  1417,
     1808    1418,   745,   292,   476,   819,   282,   187,   187,   411,  1258,
     1809     204,   820,  1479,   821,   162,   177,   419,   936,   411,   724,
     1810    -234,   142,   267,   527,   153,  1209,   481,   918,   411,   111,
     1811      49,   956,   832,  1317,   601,  1245,   527,   162,   668,  1249,
     1812      41,    42,   210,   111,  1197,   140,   141,   169,   527,   443,
     1813     145,   150,   151,   152,    41,    42,   665,   527,   954,   436,
     1814     307,   154,   839,  1125,   601,  1182,   802,   155,   762,  1419,
     1815     808,   170,    49,   588,   242,   245,  1085,    69,   177,    98,
     1816     272,   861,   868,   666,  1399,   272,   267,   267,  1024,   327,
     1817     117,  1506,   114,   823,   162,   862,   862,   862,   824,  1464,
     1818     825,   819,  1150,   342,   609,   999,  1023,   463,   820,  1088,
     1819     821,  1002,   857,  1490,   862,   307,  1011,   735,  1182,   657,
     1820     476,   436,  1092,   124,    77,    50,  1535,   307,  1537,    77,
     1821     665,   471,   177,   835,  1341,   903,   596,   838,   160,   177,
     1822    1189,   596,   568,   571,  1548,  1417,  1418,   672,   148,  1212,
     1823    1101,   471,   377,   677,   834,   373,   167,   666,   855,   471,
     1824    1519,   114,   858,   143,  1559,   345,  1524,  1124,   378,   602,
     1825     620,  1563,   862,    31,    63,   556,   557,   510,   111,   472,
     1826    1180,  1181,  1198,  1549,   625,   527,   147,  1544,   625,    41,
     1827      42,   114,  1551,   111,   598,   259,   156,  1464,   831,   547,
     1828     548,   178,  1464,   160,    41,    42,   172,   177,  1078,   714,
     1829    1564,   558,   559,   736,   823,  1428,   267,   768,  1077,   824,
     1830     737,   825,  1464,  1126,   177,   684,   187,  -122,   177,  1464,
     1831    1127,   578,  1346,   373,  1403,   457,   323,   547,   182,  -122,
     1832    -122,   848,  1182,   202,   267,   339,   307,   307,  -122,   387,
     1833     267,   262,   390,   625,   263,  -122,   392,   342,     8,     9,
     1834      10,    11,    12,  -290,   715,   388,   862,   111,   391,    70,
     1835    1449,  1450,   393,   547,   114,   327,   327,   549,    41,    42,
     1836     893,   394,  1339,   550,   551,    56,   116,    31,  1004,  1340,
     1837      77,   177,   267,   808,   498,   430,   919,   395,  1379,   434,
     1838     267,    70,   625,   921,    49,  1455,  1348,   373,   720,    69,
     1839      77,    98,   920,  1136,   114,    34,   919,    56,    77,   922,
     1840    1146,   873,   248,   921,  1112,  1022,   307,   251,   114,   323,
     1841     609,   307,  1089,   307,   307,   213,  1247,  -520,   915,  1090,
     1842     472,   753,  1198,   327,   851,   114,   345,   886,   852,  1198,
     1843     957,   211,  1168,  1170,   221,   253,    77,    50,  1257,  1195,
     1844     472,   434,   327,   439,   488,   917,   264,  1024,   472,   330,
     1845     714,   645,  1195,  1330,   111,  1196,   140,   239,   884,  1027,
     1846     331,   287,   808,   -10,   521,    41,    42,  1332,  1322,  1331,
     1847     571,   571,    41,    42,  1377,   471,   160,  -443,   307,  1290,
     1848    1291,   853,  1198,  1333,   712,   854,    63,   750,   853,   625,
     1849     345,   240,  1108,  -469,   620,   810,   241,   483,   514,  -444,
     1850     602,   933,   602,  1380,   500,   715,   570,   327,   411,   277,
     1851     587,   874,  1136,   279,   593,    45,    46,   918,   280,  1022,
     1852     625,   772,   773,   774,  -469,   625,  -469,   620,   177,   332,
     1853    -469,   625,   333,   626,   625,   625,   625,   630,  1496,  -105,
     1854     339,   371,   875,  -105,   643,  1496,   111,   334,   876,   849,
     1855     705,  1427,  1109,   625,   598,   267,   706,    41,    42,   342,
     1856     177,   722,   725,   111,   729,   140,   141,   723,   493,  1179,
     1857     494,   442,   178,  1035,    41,    42,   177,   335,   215,     2,
     1858     207,     4,     5,     6,     7,   114,   732,   441,   912,   629,
     1859     372,   177,   733,   633,  1082,   323,   323,   579,  1545,   411,
     1860     727,    70,  1365,   596,   376,   728,  1366,   107,   107,   749,
     1861    1120,   625,   938,   620,   389,   750,   897,    56,   385,   720,
     1862     720,   397,   750,   688,  1042,   519,   899,   399,   409,   988,
     1863     215,   582,   750,   411,    77,   989,   117,   400,  1498,   107,
     1864    1499,   426,   407,   401,    35,   427,    36,   114,   345,  1001,
     1865    1243,   402,   753,   753,   403,   706,   578,   404,   432,   405,
     1866      77,   488,  1373,   323,  -122,   488,  -122,   450,   750,   408,
     1867    -122,  -367,   177,   215,  -396,   521,   107,   521,   253,   329,
     1868     521,  1374,   323,   521,   472,  -122,  -122,   750,   971,   504,
     1869    1444,   972,   973,   808,   339,  1546,  1390,   571,   714,   213,
     1870    1376,   779,   780,   781,   782,   625,   750,   625,  1457,  1007,
     1871     472,   461,   625,   345,   869,   752,   602,   411,   810,  1172,
     1872     342,  1381,   484,  1445,    45,    46,   230,   750,   602,  1442,
     1873     231,   979,  1465,   235,   215,   237,   462,    37,   750,   175,
     1874     176,    40,   246,   111,   292,   140,   141,   323,    41,    42,
     1875     712,   552,   553,   715,    41,    42,   673,   675,   806,   111,
     1876     508,   140,   141,   923,   130,   925,   131,   132,   133,   457,
     1877      41,    42,   215,   513,   372,    41,    42,   215,   937,   307,
     1878     601,  1517,  1457,   527,    69,   244,  1512,    45,    46,   847,
     1879     525,   887,  1513,   411,   593,    37,  1193,   175,   176,    40,
     1880     856,   625,   253,   329,   411,   164,    41,    42,   114,   345,
     1881     912,   890,   912,   411,   562,    37,   957,   175,   176,    40,
     1882     957,   957,   213,   665,   114,   563,    41,    42,   915,  1368,
     1883     565,    77,   715,    70,   554,   555,   519,   938,   938,   564,
     1884     177,   519,   720,   568,   519,   850,   338,   114,   307,    56,
     1885     666,  1152,   376,   411,   688,   917,  -440,    48,   113,   107,
     1886    1113,   865,   215,   738,   345,   739,   589,  1569,   740,   230,
     1887     164,   746,   586,   578,   753,   658,   881,   327,   419,   661,
     1888     411,    63,   560,   561,    37,   163,   113,   113,    40,    48,
     1889      -3,  1164,   488,   411,   659,    41,    42,   791,   638,   195,
     1890      48,  1167,   218,   601,   660,   228,    48,   345,   481,   329,
     1891     411,   712,   662,    37,    48,   663,   339,    40,  1238,   664,
     1892      48,    43,  1531,    48,    41,    42,    48,   667,   625,   625,
     1893      45,    46,   832,   329,   601,  1169,   849,   601,   258,  1337,
     1894     113,   113,   645,   215,  1309,  1310,  1311,   669,   307,  1047,
     1895     816,   693,   601,  1200,   528,   529,   530,   500,   694,    45,
     1896      46,  1347,  1349,  1350,    48,   696,   435,    48,  1254,   698,
     1897     411,   442,  1136,  1095,    48,  1095,  1003,  -238,   531,   547,
     1898     532,   806,   533,   534,   163,   215,   992,   989,   114,   734,
     1899    1097,   750,   994,   912,   329,   411,   -12,   374,   912,   747,
     1900      77,  1386,  1387,  1437,   989,    48,   751,   938,   230,   759,
     1901     235,  1442,  1443,    48,   811,   267,  1491,  1492,    48,   812,
     1902     510,  1417,  1418,   163,   775,   776,   783,   784,   435,  1397,
     1903     342,   815,   625,  1397,   777,   778,   826,     2,   207,     4,
     1904       5,     6,     7,    48,    48,   -13,   163,   870,   213,   645,
     1905     472,   523,   871,   878,   528,   529,   530,   345,   444,    48,
     1906     898,   900,   213,   164,   901,   908,   955,    48,   905,  -417,
     1907     806,   926,  -524,   941,   950,   948,    48,   339,   531,    48,
     1908     532,   723,   533,  1319,   961,   963,   113,   962,   966,   965,
     1909     967,   107,   968,   688,   996,   984,   997,   998,   230,   272,
     1910     114,   113,    35,  1013,    36,   113,   215,  1014,  1015,    48,
     1911     113,  1016,    97,   220,  1017,   488,  1115,   323,   114,  1018,
     1912    1019,  1030,   307,    48,    48,  -405,  -404,    69,  1044,  1079,
     1913      48,  1081,  1102,  1103,   215,  1480,   625,    48,   911,   215,
     1914     114,  1104,  1105,   750,    97,  1111,  1121,  1122,  1123,  1217,
     1915    1047,  1132,  1141,  1113,  1128,   149,   978,   177,   213,   712,
     1916    1133,    97,  1134,  1135,   374,    -3,     2,   207,     4,     5,
     1917       6,     7,  1138,  1162,    77,   190,   847,  1183,    97,  1185,
     1918    1184,    97,  1186,  1187,  1201,    48,  1202,  1204,   625,   625,
     1919    1205,  1213,  1218,  1225,  1220,   229,  1230,   272,  1440,    -3,
     1920    1557,  1235,   307,  1233,    37,    48,    48,  1200,    40,  1239,
     1921     692,   215,  1244,  1246,   493,    41,    42,     8,     9,    10,
     1922      11,    12,    48,  1251,    63,   215,    48,  1248,    70,  1259,
     1923    1252,    35,  1263,    36,  1266,   114,  1268,   644,   712,  1270,
     1924    1271,   719,   374,  1272,    56,   399,    31,  1273,  1113,  1274,
     1925      45,    46,  1276,    48,    77,   400,  1283,   688,  1292,   407,
     1926      97,   401,   523,    48,   523,  1293,  1296,   523,  1300,   402,
     1927     523,  1303,   403,    97,    34,   404,  1321,   405,  1328,  1304,
     1928    1305,    48,  1307,   665,  1315,  1334,   408,    48,  1336,    48,
     1929    1338,  1066,  1344,  1342,   216,   267,  1345,  1351,   398,   190,
     1930    1352,   806,  1353,  1355,   472,  1361,  1530,  1362,  1363,  1364,
     1931     666,   243,  1114,   625,  1371,  1372,   570,  1375,   411,  1382,
     1932    1383,   215,    97,  1311,   113,    45,    46,  1391,  1392,    48,
     1933    1393,  1403,  1400,   177,    97,  1411,  1412,    48,   114,  -406,
     1934    1430,    48,  1415,  1426,  1432,    48,   216,  -291,   113,  1434,
     1935     113,  1113,  1435,  1441,     8,     9,    10,    11,    12,   442,
     1936    1451,  1446,   114,  1436,    97,  1452,  1453,  1200,  1454,   114,
     1937     644,   114,  1456,   114,  1200,  1366,  1470,  1461,   479,  1466,
     1938    1472,  1474,  1476,    31,  1468,   113,  1478,   339,   644,   216,
     1939     113,   644,  1483,   150,   151,   152,  1484,    70,  1485,  1486,
     1940    1497,  1507,  1509,  1529,  1523,  1511,  1515,  1516,   114,  1115,
     1941     114,    34,  1538,    56,    77,  1539,  1543,  1550,  1552,  1554,
     1942    1560,    77,   114,  1567,  1568,  1219,   785,  1200,  1529,  1529,
     1943     786,   788,   787,  1320,  1518,  1429,   162,  1570,   307,   113,
     1944      97,   692,   789,  1385,  1250,  1401,    48,  1500,  1096,  1224,
     1945     216,   906,   907,  1529,  1232,   214,   929,    48,  1100,    48,
     1946     373,   603,  1137,  1203,   472,   233,  1043,   327,   877,  1110,
     1947    1329,   472,   804,   943,    77,   717,   794,   951,    48,   795,
     1948      37,   796,   184,   185,    40,     0,   107,     0,   216,     0,
     1949       0,    41,    42,   216,    48,     0,     0,     0,     0,     0,
     1950     113,     0,     0,     0,  1115,     0,     0,   214,     0,    48,
     1951       0,   113,    48,   113,     0,     0,     0,   910,   190,   411,
     1952       0,     0,   215,     0,   472,   911,    45,    46,     0,     0,
     1953       0,  1298,  1299,     0,  1301,    66,   118,     0,     0,     0,
     1954       0,  1306,     0,  1308,     0,    48,     0,     0,   213,   113,
     1955     214,   113,     0,     0,   107,   113,     0,     8,     9,    10,
     1956      11,    12,     0,   113,   211,   221,     0,    66,     0,     0,
     1957       0,    70,  -292,     0,     0,     0,    48,    48,   216,     8,
     1958       9,    10,    11,    12,   161,     0,    31,    56,     0,     0,
     1959      48,    37,     0,   184,   185,    40,    97,     0,     0,     0,
     1960     603,     0,    41,    42,   222,  1114,     0,  1115,    31,     0,
     1961       0,   214,     0,     0,    34,     0,     0,     0,  1439,    37,
     1962       0,   184,   185,    40,     0,    75,     0,     0,   186,     0,
     1963      41,    42,     0,     0,  1066,     0,    34,    45,    46,     0,
     1964    1503,   260,  1503,     0,     0,     0,   442,     0,     0,   214,
     1965       0,    70,   174,     0,   214,   107,   600,    75,   601,   216,
     1966       0,     0,   441,     0,     0,    45,    46,    56,     0,   499,
     1967       0,     0,     0,    48,     0,     0,     0,  1503,     0,  1503,
     1968     692,     0,     0,   328,     0,    48,    37,     0,   184,   185,
     1969      40,   260,   350,     0,   223,   254,     0,    41,    42,     0,
     1970    1114,   216,     0,     0,     0,  1423,     0,   323,     0,     0,
     1971    -293,   215,   818,     0,   603,     0,     0,     8,     9,    10,
     1972      11,    12,   406,   600,     0,   601,     0,     0,   644,     0,
     1973    1389,     0,    45,    46,     0,   113,     0,   424,     0,   214,
     1974     429,   431,     0,     0,   703,   161,    31,     0,     0,    37,
     1975       0,   184,   185,    40,     0,     0,     0,     0,    48,     0,
     1976      41,    42,   704,     0,     0,     0,   448,    48,     0,    48,
     1977     451,     0,   452,     0,    34,     0,   113,     0,     0,     0,
     1978       0,   459,   353,     0,     0,  1416,   266,    66,  1424,     0,
     1979       0,   417,   473,     0,     0,    45,    46,     0,     0,    48,
     1980     916,     0,   480,  1114,     0,     0,     0,   107,     0,   215,
     1981     431,    70,     0,     0,   437,     0,     0,     0,    70,   113,
     1982     214,     0,   216,     0,   445,     0,     0,    56,     0,   107,
     1983       0,   818,   603,  1463,    56,   644,     0,   214,  1467,     0,
     1984       0,     0,     0,   113,   692,     0,   644,   107,   113,     0,
     1985     216,     0,     0,     0,     0,   216,   449,     0,     0,     0,
     1986       0,     0,   214,     0,     0,     0,     0,     0,  1489,     0,
     1987       0,    70,     0,     0,     0,     0,   260,    75,     0,     0,
     1988     594,     0,    75,     0,     0,     0,   622,    56,     0,     0,
     1989       0,     0,   520,     0,     0,     0,     0,     0,   113,   627,
     1990       0,     0,     0,   627,     0,     0,   260,     0,     0,   107,
     1991       0,   125,   128,   129,     0,     0,     0,     0,     0,    37,
     1992       0,   184,   185,    40,     0,     0,     0,   216,   818,     0,
     1993      41,    42,     0,     0,     0,     0,   113,     0,     0,     0,
     1994     603,   216,   107,     0,     0,     0,     0,     0,     0,     0,
     1995      48,   703,     0,   473,  1558,    48,   910,    78,   411,     0,
     1996    1558,     0,     0,     0,     0,    45,    46,     0,   350,   704,
     1997       0,  1558,    48,   473,     0,  1558,   223,     0,     0,     0,
     1998       0,   473,     0,   214,   255,     0,   256,     0,     0,    78,
     1999       0,     8,     9,    10,    11,    12,     0,     0,     0,   699,
     2000       0,     0,   431,     0,     0,     0,     0,     0,     0,     0,
     2001       0,   214,     0,     0,     0,     0,   214,   713,     0,    66,
     2002      31,     0,  1091,     0,   916,     0,   224,   431,     0,     0,
     2003       0,   431,     0,     0,     0,     0,     0,   216,     0,     0,
     2004     681,     0,     0,    75,     0,   107,     0,    80,    34,     0,
     2005       0,     0,   113,    37,   603,   184,   185,    40,   353,     0,
     2006     260,   350,     0,    75,    41,    42,   707,   396,     0,   107,
     2007       0,    75,     0,   703,     0,    48,   107,   415,   416,    80,
     2008       0,     0,   420,   703,   422,   423,     0,     0,   214,   353,
     2009     910,   704,   411,     0,     0,     0,     0,   703,     0,    45,
     2010      46,   704,   214,   520,     0,     0,   797,   353,   520,    75,
     2011       0,   520,     0,     0,   355,   704,   225,     0,   113,   113,
     2012     113,     0,   499,     0,   627,   809,     0,     0,     0,   107,
     2013       0,     0,     8,     9,    10,    11,    12,   828,     0,     0,
     2014       0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2015       0,   353,     0,     0,     0,   594,     0,   413,     0,     0,
     2016     594,    31,     0,     0,   421,     0,   627,     0,     0,   350,
     2017     350,   350,     0,     0,    31,     0,   644,     0,   535,   536,
     2018     537,   538,   539,   540,   541,   542,   543,   544,   350,    34,
     2019       0,     0,     0,     0,     0,     0,     0,   927,   214,     0,
     2020       0,     0,    34,     0,   356,   916,   699,    37,     0,    78,
     2021     916,    40,   545,     0,    78,   353,     0,   473,    41,    42,
     2022       0,     0,     0,     0,     0,     0,     0,  1504,     0,  1504,
     2023       0,   752,     0,   411,     0,     0,   413,     0,   216,     0,
     2024      45,    46,     0,   473,    43,     0,   350,     0,     0,     0,
     2025       0,    48,    48,    45,    46,   942,     0,     0,   431,   353,
     2026     353,   353,   113,   113,  1504,     0,  1504,   895,     0,     0,
     2027       0,     0,     0,     0,     0,     0,   902,     0,   353,     0,
     2028     904,     0,   260,   713,     0,     0,     0,     0,   974,     0,
     2029     576,   993,     0,     0,     0,     0,   353,     0,   580,    80,
     2030     113,   583,     0,     0,    80,   703,   703,    75,   224,     0,
     2031       0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
     2032       0,     0,     0,   704,   704,     0,     0,     0,   699,     0,
     2033       0,     0,     0,    75,     0,     0,   353,     0,   699,     0,
     2034     350,     0,   627,    31,     0,  1010,     0,   627,   809,     0,
     2035       0,     0,   699,     0,     8,     9,    10,    11,    12,     0,
     2036      48,   113,  1021,   703,   703,   413,     0,     0,  1037,   421,
     2037     113,    34,     0,   353,     0,    78,    37,     0,   184,   185,
     2038      40,   704,   704,    31,     0,    48,    48,    41,    42,     0,
     2039     355,     0,     0,     0,     0,    78,     0,     0,   225,   214,
     2040       0,     0,     0,    78,     0,     0,     0,     0,   112,     0,
     2041      48,    34,   927,  1528,    66,   411,     0,     0,   353,     0,
     2042       0,   355,    45,    46,     0,     0,     0,   216,   353,     0,
     2043     353,     0,     0,     0,     0,   223,   627,     0,   353,   355,
     2044       0,    78,   353,   260,   713,     0,   413,  1093,     0,     0,
     2045       0,     0,     0,   937,     0,   601,     0,   927,     0,   799,
     2046     800,     0,    45,    46,     0,    80,    37,     0,   184,   185,
     2047      40,     0,     0,  1107,     0,     0,     0,    41,    42,     0,
     2048     356,   431,   118,   355,   896,    80,     0,     0,   833,     0,
     2049       0,   836,   837,    80,   840,  1149,   842,   843,     0,   350,
     2050    1087,   844,   845,  1528,    75,   411,     0,     0,     0,     0,
     2051       0,   356,    45,    46,  1326,     0,     0,     0,     0,     0,
     2052       0,     0,     0,     0,     0,   216,     0,     0,     0,   356,
     2053       0,    80,  1327,     0,   353,     0,     0,   576,   576,    57,
     2054      57,     0,   594,     0,     0,     0,  1037,   355,     0,   703,
     2055       0,     0,     0,     0,     0,   429,     0,   703,   703,   703,
     2056     699,   699,     0,   350,   350,     0,     0,   704,     0,     0,
     2057       0,    57,     0,   356,     0,   704,   704,   704,     0,     0,
     2058       0,     0,     0,  1199,     0,     0,     0,     0,   214,   353,
     2059       0,   355,   355,   355,     0,     0,     0,     0,     0,     0,
     2060       0,     0,     0,     0,     0,    57,   995,     0,    57,     0,
     2061     355,     0,     0,     0,     0,     0,  1000,     0,   699,   699,
     2062       0,     0,     0,   703,     0,   888,   927,     0,   355,   891,
     2063    1012,     0,     0,     0,     0,     0,     0,   356,     0,    78,
     2064     479,   704,   976,   977,     0,     0,     0,     0,     0,     0,
     2065     353,   353,     0,   353,   353,     0,  1214,     0,     0,     0,
     2066     465,     0,     0,     0,     0,    78,     0,   627,   355,     0,
     2067       0,     0,     0,    75,     0,     0,     0,     0,     0,     0,
     2068       0,   356,   356,   356,     0,     0,   214,     0,     0,   927,
     2069     927,     0,   713,     0,    87,     0,   348,     0,     0,     0,
     2070     356,     0,     0,     0,     0,   355,     0,     0,   353,   353,
     2071       0,     0,     0,     0,     0,     0,     0,     0,   356,     8,
     2072       9,    10,    11,    12,     0,     0,    87,     0,     0,    80,
     2073       0,     0,     0,     0,     0,  1297,     0,     0,     0,     0,
     2074       0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
     2075     355,     0,     0,   260,     0,    80,     0,    66,   356,     0,
     2076     355,    57,   355,   226,   576,     0,     0,   224,     0,   699,
     2077     355,   713,     0,     0,   355,   118,    34,     0,     0,     0,
     2078       0,    37,   353,   184,   185,    40,     0,     0,     0,     0,
     2079       0,    57,    41,    42,     0,   356,     0,     0,     0,     0,
     2080       0,     0,     0,     0,   699,     0,  1098,     0,     0,     0,
     2081       0,     0,   699,   699,   699,     0,     0,     0,   186,     0,
     2082       0,     0,     0,   350,   350,   223,     0,    45,    46,     0,
     2083       0,     0,     0,     0,     0,     0,    78,  1199,  1177,  1178,
     2084     356,     0,     0,     0,     0,     0,     0,    75,     0,     0,
     2085     356,   363,   356,     0,     0,     0,     0,   225,     0,   353,
     2086     356,   353,     0,     0,   356,     0,   355,     0,     0,     0,
     2087     118,     0,     0,     0,   112,     0,     0,     0,   699,     0,
     2088       0,     0,     0,   413,     0,     0,     0,     0,     0,     0,
     2089       0,     0,     0,     0,   353,     0,  1227,  1228,     0,     0,
     2090     927,     0,   353,   353,   353,     0,     0,     0,  1384,     0,
     2091       0,     0,     0,   353,   353,     0,     0,     0,   927,     0,
     2092     742,   355,     0,     0,     0,     0,    80,    75,     0,     0,
     2093       0,     0,     0,     0,     0,   763,     0,     0,   742,     0,
     2094     769,   742,     0,     0,     0,     0,    87,     0,   350,     0,
     2095       0,    87,   127,   127,   127,     0,   356,     0,     0,     0,
     2096       0,     0,     0,  1153,     0,     0,     0,     0,   353,     0,
     2097    1229,     0,   348,   118,     0,     0,     0,     0,     0,     0,
     2098    1165,     0,   355,   355,     0,   355,   355,     0,     0,   465,
     2099       0,   927,   927,     0,   168,     0,   173,  1199,     0,   179,
     2100     180,   181,     0,   183,  1199,    78,     0,     0,     0,     0,
     2101       0,   356,     0,     0,     0,     0,     0,     0,   234,     0,
     2102       0,     0,     0,    57,     0,   127,     0,   127,     0,     0,
     2103     249,   250,     0,     0,     0,     0,     0,     0,   353,     0,
     2104     355,   355,     0,     0,     0,   226,     0,     0,     0,     0,
     2105       0,     0,   276,     0,     0,     0,     0,  1199,   413,     0,
     2106       0,   883,     0,   885,  1553,   348,     0,  1501,     0,  1505,
     2107       0,     0,   356,   356,     0,   356,   356,     0,     0,     0,
     2108       0,     0,  1354,     0,     0,     0,     0,    75,     0,     0,
     2109    1356,  1357,  1358,     0,    75,    80,     0,     0,     0,     0,
     2110    1255,     0,  1318,     0,  1534,     0,  1536,     0,   127,     0,
     2111       0,     0,    87,   932,   355,     0,   127,     0,   127,   127,
     2112       0,     0,     0,   127,     0,   127,   127,   363,     0,   348,
     2113     356,   356,    87,     0,     0,     0,     0,     0,     0,     0,
     2114      87,     0,     0,     0,     0,     0,     0,    75,     0,  1565,
     2115       0,  1566,     0,     0,     0,     0,  1404,   224,   363,     8,
     2116       9,    10,    11,    12,  1573,  1574,     0,     0,     0,     0,
     2117       0,     0,     0,   348,   348,   348,   363,     0,    87,    78,
     2118       0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
     2119       0,   355,   348,   355,     0,   127,     0,     0,     8,     9,
     2120      10,    11,    12,     0,   356,     0,     0,     0,     0,     0,
     2121       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2122     363,    37,     0,   184,   185,    40,   355,    31,     0,     0,
     2123       0,     0,    41,    42,   355,   355,   355,     0,     0,     0,
     2124       0,     0,     0,     0,     0,   355,   355,   225,     0,     0,
     2125     348,     0,     0,     0,     0,    34,     0,     0,   266,    78,
     2126      37,     0,     0,     0,    40,     0,     0,    45,    46,    80,
     2127       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
     2128       0,   356,     0,   356,   363,   591,     0,   599,     0,     0,
     2129       0,     0,     0,     0,     0,     0,     0,   719,   623,   624,
     2130     355,     0,     0,     0,     0,     0,    45,    46,     0,     0,
     2131       0,     0,     0,     0,     0,     0,   356,     0,     0,     0,
     2132       0,     0,     0,     0,   356,   356,   356,     0,   363,   363,
     2133     363,     0,     0,     0,     0,   356,   356,     0,     0,     0,
     2134       0,     0,     0,     0,   348,     0,     0,   363,     0,    80,
     2135       0,     0,   348,     0,     0,  1020,     0,     0,     8,     9,
     2136      10,    11,    12,     0,     0,   363,     0,     0,     0,  1129,
     2137     355,     0,     0,     0,     0,     0,    87,     0,     0,     0,
     2138       0,     0,     0,     0,     0,   283,   284,    31,   285,     0,
     2139     356,     0,     0,  1142,     0,     0,   742,     0,  1142,     0,
     2140       0,     0,    87,     0,     0,   363,     0,     0,     0,     0,
     2141       0,     0,     0,     0,   286,    34,     0,     0,    57,    78,
     2142     287,     0,     0,     0,   288,     0,    78,   289,   290,   291,
     2143     292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
     2144       0,     0,   363,     0,     0,     0,     0,     0,  1142,     0,
     2145       0,     0,     0,     0,     0,     0,     0,   295,     0,   379,
     2146     356,     0,     0,     0,     0,     0,   344,    46,   297,   298,
     2147     299,   300,     0,     0,     0,     0,     0,     0,     0,    78,
     2148       0,     0,     0,     0,     0,     0,    57,   363,     0,     0,
     2149       0,     0,     0,     0,     0,     0,     0,   363,     0,   363,
     2150     127,   127,     0,   348,   226,     0,     0,   363,     0,    80,
     2151       0,   363,   283,   284,     0,   285,    80,     0,     0,     0,
     2152       0,     0,     0,     0,     0,     0,     0,     0,     0,   127,
     2153       0,     0,   127,   127,     0,   127,     0,   127,   127,     0,
     2154       0,   286,   127,   127,     0,     0,     0,   640,     0,   140,
     2155     141,   288,     0,     0,   289,   641,   291,   292,    41,    42,
     2156       0,   293,   294,     0,     0,     0,     0,   348,   348,    80,
     2157       0,     0,     0,    87,     0,     0,     0,     0,     0,     0,
     2158       0,     0,     0,     0,   295,     0,   642,    57,   643,   380,
     2159       0,     0,     0,    45,    46,   297,   298,   299,   300,     0,
     2160       0,     0,     0,   363,     0,     0,     0,     0,     0,   206,
     2161       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    24482162      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    24492163      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2450        0,   287,    34,     0,    35,    31,    36,   288,     0,    38,
    2451       39,   289,     0,  1516,   290,   291,   292,   293,    41,    42,
    2452        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2453        0,     0,     0,    34,     0,     0,     0,     0,   112,     0,
    2454       38,    39,     0,     0,   296,     0,  1065,     0,     0,    41,
    2455       42,     0,     0,    46,    47,   298,   299,   300,   301,     0,
    2456        0,     0,     0,     0,     0,     0,   322,  -130,     1,     2,
    2457      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2458       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2459       23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
    2460        0,    30,   284,   285,    31,   286,     0,     0,     0,     8,
    2461        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2462       19,    20,    21,    22,    23,    24,    25,  -296,     0,     0,
    2463        0,   287,    34,     0,    35,     0,    36,   288,    31,    38,
    2464       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2465        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2466        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
    2467        0,     0,     0,     0,   296,     0,    45,  -296,     0,     0,
    2468        0,     0,     0,    46,    47,   298,   299,   300,   301,     2,
    2469      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2470       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2471       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2472        0,     0,   284,   285,    31,   286,     8,     9,    10,    11,
    2473       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2474       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2475        0,   287,    34,     0,    35,    31,    36,   288,     0,    38,
    2476       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2477        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2478        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
    2479       38,    39,     0,     0,   296,     0,   971,     0,     0,     0,
    2480        0,   761,     0,   345,    47,   298,   299,   300,   301,     2,
    2481      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2482       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2483       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2484        0,     0,   284,   285,    31,   286,     8,     9,    10,    11,
    2485       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2486       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2487        0,   287,    34,     0,    35,    31,    36,   288,     0,    38,
    2488       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2489        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2490        0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
    2491      209,    39,     0,     0,   296,     0,   971,     0,     0,     0,
    2492        0,   761,     0,    46,    47,   298,   299,   300,   301,     2,
    2493      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2494       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2495       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2496        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
     2164       0,   930,     0,   931,     0,    31,     0,     0,     0,     0,
     2165     934,   935,     0,     0,     0,   940,     0,     0,   363,     0,
     2166       0,     0,     0,     0,     0,     0,     0,   945,  1142,  1142,
     2167    1142,     0,   949,    34,     0,    35,     0,    36,    37,     0,
     2168     208,    39,    40,   127,   127,     0,     0,     0,     0,    41,
     2169      42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2170       0,     0,   985,     0,     0,     0,     0,     0,   283,   284,
     2171       0,   285,     0,     0,     0,    43,     0,   209,     0,   363,
     2172     363,     0,   363,   363,    45,    46,   742,     0,     0,     0,
     2173       0,     0,     0,     0,     0,     0,     0,   286,    57,    57,
     2174       0,     0,    87,   287,     0,     0,     0,   288,     0,     0,
     2175     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2176       0,    57,     0,     0,     0,     0,     0,     0,     0,     0,
     2177       0,     0,     0,     0,     0,     0,     0,   363,   363,    57,
     2178     295,     0,   379,     0,     0,   380,     0,     0,     0,    45,
     2179      46,   297,   298,   299,   300,     0,     0,   166,     0,     0,
     2180       0,     0,  1031,  1032,  1033,  1034,     0,  1036,     0,     0,
     2181       0,     0,  1142,  1142,   219,     0,     0,     0,     0,     0,
     2182       0,     0,     0,  1080,     0,     0,     0,   348,   348,     0,
     2183       0,     0,     0,     0,     0,     0,    57,  1086,     0,     0,
     2184       0,    57,   127,     0,     0,     0,     0,   127,     0,     0,
     2185    1481,   363,     0,     0,     0,     0,     0,     0,     0,     0,
     2186       0,     0,   166,     0,     0,     0,   273,     0,     0,     0,
     2187       0,     0,     0,     0,    57,     0,     0,  1106,     0,     0,
    24972188       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2189       0,     0,     0,     0,   226,   166,     0,     0,     0,     0,
     2190       0,     0,     0,     0,     0,   369,     0,     0,     0,   375,
     2191       0,  1532,     0,     0,     0,     0,    87,     0,     0,     0,
     2192    1540,     0,     0,     0,  1139,     0,     0,     0,   363,     0,
     2193     363,  1147,     0,     0,     0,     0,  1151,     0,     0,     0,
     2194       0,  1155,     0,  1156,     0,     0,     0,  1158,     0,  1159,
     2195    1160,     0,   348,  1163,     0,     0,     0,     0,   166,     0,
     2196       0,     0,  1175,   363,     0,     0,     0,     0,     0,     0,
     2197     219,   363,   363,   363,     0,     0,     0,    57,     0,     0,
     2198    1190,  1191,   363,   363,     0,     0,     0,     0,   166,     0,
     2199       0,     0,     0,     0,     0,     0,    87,     0,     0,     0,
     2200       0,    57,     0,     0,     0,     0,     0,  1221,    57,     0,
     2201    1223,   127,     0,   375,     0,     0,     0,     0,     0,     0,
     2202     166,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2203       0,     0,     0,     0,     0,     0,     0,   363,     0,     0,
     2204       0,     0,     0,   524,     0,     0,     0,     0,     0,     0,
     2205       0,     0,     0,  1237,     0,   166,     0,     0,     0,  1241,
     2206    1242,    57,     0,     0,     0,     0,     0,     0,     0,     0,
     2207       0,  1253,     0,     0,     0,     0,     0,     0,     0,     0,
     2208       0,  1260,     0,     0,  1264,     0,  1265,     0,     0,  1267,
     2209       0,     0,     0,   597,     0,     0,     0,     0,   621,     0,
     2210       0,     0,  1275,     0,     0,     0,     0,   363,     0,     0,
     2211       0,     0,     0,     0,     0,  1282,     0,  1284,  1285,  1286,
     2212    1287,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2213       0,     0,     0,  1294,     0,  1295,     0,     0,     0,   173,
     2214       0,     0,     0,   127,     0,   212,     0,     0,     0,     0,
     2215       0,     0,     0,     0,     0,   232,    87,   236,     0,   238,
     2216       0,     0,     0,    87,     0,     0,   247,     0,  1323,  1324,
     2217       0,     0,     0,     0,   166,   166,     0,     0,     0,     0,
     2218       0,   369,     0,     0,     0,     0,     0,     0,     0,     0,
     2219       0,     0,     0,     0,     0,     0,     0,   212,     0,   236,
     2220     238,   247,   524,     0,     0,     0,     0,     0,     0,     0,
     2221       0,     0,     0,     0,     0,     0,    87,     0,     0,     0,
     2222       0,  1359,  1360,     0,     0,     0,     0,     0,     0,     0,
     2223     716,  1370,     0,     0,     0,     0,     0,     0,     0,     0,
     2224     212,     0,   166,     0,     0,     0,     0,     0,     0,     0,
     2225       0,     0,     0,     0,   524,     0,   524,     0,     0,   524,
     2226       0,   166,   524,     0,     0,     0,     0,     0,     0,     0,
     2227       0,     0,     0,     0,   369,     0,     0,     0,     0,     0,
     2228       0,     0,  1402,     0,     0,     0,     0,     0,     0,     0,
     2229       0,     0,     0,     0,     0,  1407,     0,  1408,  1409,  1410,
     2230       0,   212,     0,   236,   238,   247,     0,     0,     0,  1414,
     2231       0,     0,     0,     0,     0,     0,     0,     0,  1425,     0,
     2232       0,     0,     0,     0,     0,     0,   166,     0,     0,     0,
     2233       0,     0,     0,     0,     0,     0,     0,     0,   369,   212,
     2234       0,     0,   814,     0,   212,  1448,     0,     0,     0,     0,
     2235       0,     0,     0,     0,     0,     0,     0,     0,     0,   497,
     2236       0,     0,     0,     0,     0,     0,     0,     0,   597,     0,
     2237       0,     0,     0,   597,     0,     0,     0,     0,     0,     0,
     2238       0,     0,   369,   369,   369,     0,     0,     0,     0,     0,
     2239    1487,  1488,     0,     0,     0,     0,     0,     0,     0,     0,
     2240       0,   369,     0,  1493,     0,     0,     0,   212,     0,     0,
     2241    1493,     0,     0,     0,   157,     0,     0,     0,     0,     0,
     2242       0,     0,     0,     0,     0,     0,     0,     0,     0,   212,
     2243       0,     0,     0,   524,   236,   238,     0,     0,     0,     0,
     2244       0,     0,   247,  1527,     0,     0,     0,  1533,     0,     0,
     2245       0,     0,     0,     0,     0,     0,     0,     0,     0,   369,
     2246    1173,   939,   252,     8,     9,    10,    11,    12,     0,     0,
     2247       0,     0,   257,     0,     0,     0,  1555,     0,  1556,     0,
     2248       0,     0,     0,     0,     0,   212,     0,     0,     0,     0,
     2249     283,   284,    31,   285,     0,     0,   716,     0,     0,     0,
     2250       0,     0,     0,   212,     0,     0,  1571,  1572,   212,     0,
     2251     212,     0,     0,     0,  1575,  1576,     0,     0,     0,   286,
     2252      34,     0,     0,     0,     0,   287,     0,   212,   157,   288,
     2253     212,   212,   289,   290,   291,   292,    41,    42,   212,   293,
     2254     294,     0,   386,     0,     0,     0,     0,     0,     0,     0,
     2255       0,     0,   212,   369,     0,     0,     0,   621,     0,   212,
     2256       0,   369,   295,     0,   379,   418,     0,     0,     0,     0,
     2257       0,  1174,    46,   297,   298,   299,   300,     0,     0,   433,
     2258       0,     0,     0,     0,     0,     0,     0,     0,   438,     0,
     2259       0,     0,     0,     0,     0,     0,     0,     0,   446,     0,
     2260       0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
     2261     284,     0,   285,     0,     0,     0,     0,     0,     0,     0,
     2262       0,     0,     0,   464,     0,     0,     0,     0,   474,     0,
     2263       0,     0,     0,     0,     0,     0,     0,     0,   286,     0,
     2264       0,   482,     0,     0,   287,     0,     0,   492,   288,   496,
     2265       0,   289,   290,   291,   292,    41,    42,   716,   293,   294,
     2266       0,     0,     0,     0,     0,     0,   526,     0,     0,     0,
     2267       0,     0,   524,   212,     0,     0,     0,     0,     0,     0,
     2268       0,   295,     0,   379,     0,     0,     0,     0,     0,   790,
     2269      45,    46,   297,   298,   299,   300,   166,     0,     0,     0,
     2270       0,   212,     0,     0,     0,     0,   212,     0,   585,     0,
     2271       0,     0,   369,   590,     0,     0,   206,     2,   207,     4,
     2272       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2273      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2274      25,     0,   635,    26,    27,    28,   636,   637,     0,   639,
     2275       0,     0,    31,     0,     0,   597,   651,   652,     0,   653,
     2276     654,     0,   655,     0,   656,     0,     0,     0,     0,     0,
     2277       0,     0,     0,     0,     0,     0,   369,   369,   212,     0,
     2278      34,   585,    35,     0,    36,     0,     0,   208,    39,   671,
     2279       0,     0,   212,     0,     0,     0,     0,     0,     0,     0,
    24982280       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2499        0,   287,    34,     0,    35,     0,    36,   288,     0,    38,
    2500       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2501        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2502        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2503        0,     0,     0,     0,   296,     0,   344,     0,     0,     0,
    2504        0,     0,     0,   345,    47,   298,   299,   300,   301,     2,
    2505      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2506       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2507       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2508        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
    2509        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2510        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2511        0,   287,    34,     0,    35,     0,    36,   288,     0,   209,
    2512       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2513        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2514        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2515        0,     0,     0,     0,   296,     0,  1007,     0,     0,     0,
    2516        0,     0,     0,  1008,    47,   298,   299,   300,   301,     2,
    2517      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2518       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2519       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2520        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
    2521        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,   287,    34,     0,    35,     0,    36,   288,     0,    38,
    2524       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2525        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2526        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2527        0,     0,     0,     0,   296,     0,   971,     0,     0,     0,
    2528        0,     0,     0,   345,    47,   298,   299,   300,   301,     2,
    2529      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2530       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2531       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2532        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
    2533        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2534        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2535        0,   287,    34,     0,    35,     0,    36,   288,     0,   209,
    2536       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2537        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2538        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2539        0,     0,     0,     0,   296,     0,   380,     0,     0,     0,
    2540        0,     0,     0,    46,    47,   298,   299,   300,   301,     1,
     2281     283,   284,   497,   285,   682,     0,     0,     0,     0,     0,
     2282       0,     0,     0,     0,   209,     0,     0,     0,     0,     0,
     2283       0,    45,    46,     0,     0,     0,   524,     0,     0,   286,
     2284     708,     0,     0,     0,     0,   287,   711,     0,     0,   288,
     2285       0,   464,   289,   290,   291,   292,    41,    42,     0,   293,
     2286     294,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2287       0,     0,     0,     0,     0,     0,   212,     0,     0,     0,
     2288       0,     0,   295,     0,   379,     0,     0,   748,   212,   760,
     2289       0,    45,    46,   297,   298,   299,   300,     0,     0,     0,
     2290       0,     0,   767,     0,     0,   716,  -519,   212,     0,     1,
    25412291       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    25422292      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    25432293      22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
    2544        0,     0,    30,     0,     0,    31,    32,     0,     0,     0,
     2294     793,     0,    30,     0,     0,    31,    32,   219,     0,   803,
     2295       0,   341,   364,     0,     0,     0,   805,     0,   283,   284,
     2296       0,   285,   813,     0,     0,     0,     0,     0,     0,     0,
     2297      33,   827,     0,    34,     0,    35,     0,    36,    37,     0,
     2298      38,    39,    40,     0,   716,   414,     0,   286,     0,    41,
     2299      42,     0,   414,   287,     0,     0,     0,   288,     0,     0,
     2300     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2301       0,     0,   867,     0,     0,    43,     0,    44,     0,     0,
     2302       0,   212,     0,     0,    45,    46,     0,     0,     0,     0,
     2303     295,     0,   379,     0,     0,   978,   369,   369,     0,    45,
     2304      46,   297,   298,   299,   300,   219,     0,     0,   813,     0,
     2305       0,     0,     0,   212,     0,     0,   909,     0,     0,     0,
     2306       0,     0,     0,     0,   414,     8,     9,    10,    11,    12,
     2307      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2308      23,    24,    25,  -294,     0,     0,     0,   252,     0,   212,
     2309       0,     0,     0,     0,    31,     0,     0,   946,   947,     0,
     2310     212,     0,     0,     0,     0,     0,   283,   284,     0,   285,
     2311       0,   964,     0,     0,   321,     0,     0,     0,   414,     0,
     2312       0,     0,    34,     0,   346,     0,   414,   581,     0,   414,
     2313     584,     0,   986,  -294,   987,   286,   382,   382,   991,     0,
     2314     364,   287,     0,     0,   613,   288,     0,     0,   289,   290,
     2315     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2316       0,   369,     0,   631,     0,     0,   341,     0,     0,     0,
     2317       0,     0,   212,     0,     0,     0,     0,     0,   295,     0,
     2318     379,     0,     0,     0,     0,     0,   212,    45,    46,   297,
     2319     298,   299,   300,   414,     0,     0,     0,   414,     0,     0,
     2320       0,     0,  1025,     0,     0,     0,     0,   321,     0,  1026,
     2321       0,     0,     0,     0,     0,     0,     0,     0,     0,   524,
     2322       0,   524,  1028,     0,  1029,     0,     0,     0,   364,     0,
     2323       0,   478,     0,     0,     0,     0,     0,     0,  1041,     0,
     2324       0,     0,     0,     0,     0,  1045,     0,     0,     0,     0,
     2325       0,     0,     0,     0,     0,     0,   524,  1083,   524,     0,
     2326    1084,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2327       0,     0,     0,     0,   414,     0,     0,   364,   212,     0,
     2328       0,     0,     0,     0,     0,     0,   166,     2,   207,     4,
     2329       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2330      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2331      25,     0,     0,    26,    27,    28,   414,     0,     0,     0,
     2332     341,   364,    31,     0,     0,     0,     0,     0,     0,     0,
     2333       0,     0,     0,     0,     0,     0,     0,     0,     0,   590,
     2334       0,     0,     0,     0,     0,     0,     0,   382,     0,     0,
     2335      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
     2336       0,     0,     0,     0,     0,   414,   414,     0,     0,     0,
     2337       0,     0,     0,     0,     0,  1157,   212,     0,     0,     0,
     2338       0,     0,     0,     0,   807,   364,     0,     0,     0,     0,
     2339       0,     0,     0,  -402,   678,   613,     0,   613,   613,     0,
     2340       0,    45,    46,     0,   613,     0,     0,     0,     0,     0,
     2341       0,     0,     0,     0,   846,   364,     0,     0,     0,     0,
     2342     364,     0,     0,     0,     0,     0,     0,     0,     0,   364,
     2343     364,   364,     0,   526,     0,     0,     0,     0,     0,  1222,
     2344       0,   710,     0,     0,     0,     0,     0,     0,   364,     0,
     2345       0,     0,     0,   414,   889,     0,     0,   414,   892,     0,
     2346       0,     0,     0,     0,   894,     0,     0,     0,     0,     0,
     2347       0,     0,     0,  1234,     0,     0,     0,     0,  1236,     0,
     2348     744,     0,     0,   414,     0,     0,  1240,     0,     0,     0,
     2349       0,     0,     0,   761,     0,     0,     0,     0,   744,     0,
     2350       0,   744,     0,     0,     0,     0,   364,   613,     0,     0,
     2351       0,     0,     0,   771,     0,     0,     0,     0,     0,     0,
     2352       0,     0,  1269,     0,     0,     0,     0,     0,     0,     0,
     2353       0,     0,     0,     0,  1277,   792,     0,  1278,     0,  1279,
     2354       0,     0,   341,   364,     0,   801,     0,   414,   414,     0,
     2355       0,     0,   346,  1288,  1289,     0,     0,   761,     0,     0,
     2356       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2357       0,     0,     0,     0,     0,  1302,     0,     0,     0,     0,
     2358       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2359       0,     0,   414,     0,     0,     0,     0,     0,     0,     0,
     2360     364,     0,     0,     0,     0,     0,   866,   807,   364,     0,
     2361       0,   613,     0,   613,     0,   382,     0,     0,     0,     0,
     2362       0,     0,     0,   613,  1343,     0,     0,     0,     0,     0,
     2363       0,     0,   212,     0,     0,     0,     0,     0,     0,     0,
     2364       0,     0,     1,     2,   207,     4,     5,     6,     7,     8,
     2365       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2366      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2367      27,    28,    29,     0,     0,    30,     0,     0,    31,     0,
     2368       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2369       0,     0,     0,     0,     0,     0,   807,     0,     0,     0,
     2370    1394,     0,  1395,   341,   364,   414,    34,   414,    35,     0,
     2371      36,   414,     0,    38,    39,   761,  1405,   970,  1406,     0,
     2372       0,     0,     0,     0,     0,     0,     0,   981,     0,     0,
     2373       0,     0,   613,   613,   990,     0,  1413,     0,     0,     0,
     2374       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2375      44,     0,  1431,  1433,     0,     0,     0,    45,    46,   364,
     2376       0,     0,     0,  1438,     0,     0,  1240,     0,     0,   414,
     2377       0,     0,     0,     0,     0,     0,  1008,  1009,     0,     0,
     2378     346,     0,     0,     0,     0,     0,     0,     0,     0,  1462,
     2379       0,   414,  1154,     0,   346,     0,     0,     0,  1469,     0,
     2380       0,  1471,   364,  1473,  1475,  1477,     0,     0,   414,  1166,
     2381       0,   613,   613,  1171,     0,     0,     0,     0,     0,   507,
     2382       0,   509,   512,   364,   364,   283,   284,     0,   285,   515,
     2383     516,     0,     0,     0,  1039,     0,     0,     0,   382,     0,
     2384       0,     0,     0,   509,   509,  1508,     0,  1510,     0,  1240,
     2385       0,     0,     0,     0,   286,     0,     0,     0,     0,     0,
     2386     287,     0,     0,     0,   288,  1522,     0,   289,   290,   291,
     2387     292,    41,    42,     0,   293,   294,   346,     0,     0,     0,
     2388       0,   509,     0,     0,     0,     0,   414,     0,   414,     0,
     2389       0,     0,     0,   414,     0,     0,     0,   295,     0,   379,
     2390       0,     0,   613,     0,     0,     0,   709,    46,   297,   298,
     2391     299,   300,     0,     0,     0,   321,     0,   509,     0,     0,
     2392       0,     0,     0,     0,     0,     0,     0,   807,   414,  1256,
     2393       0,  1130,  1131,     0,     0,     0,     0,     0,     0,     0,
     2394       0,     0,     0,     0,     0,   382,     0,     0,     0,     0,
     2395       0,   981,   364,     0,  1145,     0,   744,     0,     8,     9,
     2396      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2397      20,    21,    22,    23,    24,    25,  -294,  1161,    26,    27,
     2398      28,     0,     0,     0,     0,     0,     0,    31,  1176,     0,
     2399     283,   284,     0,   285,     0,     0,     0,     0,     0,     0,
     2400       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2401     382,     0,  1194,   341,     0,    34,     0,     0,     0,   286,
     2402       0,     0,    38,    39,     0,   640,  -294,   981,   981,   288,
     2403       0,   364,   289,   290,   291,   292,    41,    42,     0,   293,
     2404     294,     0,     0,     0,     0,     0,     0,     0,  1226,     0,
     2405       0,     0,     0,     0,     0,     0,     0,   634,     0,   338,
     2406       0,     0,   295,     0,   764,     0,    45,    46,     0,     0,
     2407       0,    45,    46,   297,   298,   299,   300,     0,     0,     0,
     2408       0,     0,     0,   364,   364,   509,   509,   509,   509,   509,
     2409     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
     2410     509,   509,   509,     0,     0,   981,     0,     0,     0,     0,
     2411       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2412       0,     0,     0,     0,   866,     0,     0,     0,     0,     0,
     2413       0,     0,     0,     0,     0,     0,     0,     0,     0,  1280,
     2414    1281,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2415       0,     0,     0,     0,     0,     0,     0,     0,     1,     2,
     2416     207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2417      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2418      23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
     2419       0,    30,   283,   284,    31,   285,     0,     0,     0,     0,
     2420       0,     0,     0,     0,     0,     0,     0,     0,   364,     0,
     2421       0,     0,     0,     0,     0,     0,     0,     0,     0,   981,
     2422       0,   286,    34,     0,    35,     0,    36,   287,     0,    38,
     2423      39,   288,   509,     0,   289,   290,   291,   292,    41,    42,
     2424       0,   293,   294,     0,     0,     0,     0,     0,     0,     0,
     2425       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2426       0,     0,     0,     0,   295,     0,  1063,     0,     0,     0,
     2427       0,     0,     0,    45,    46,   297,   298,   299,   300,     0,
     2428       0,     0,     0,  1388,     0,     0,   744,  -129,     0,     0,
     2429       0,     0,     0,     0,     0,   509,     0,     0,   414,     8,
     2430       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2431      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2432      27,    28,     0,   414,   414,     0,   509,     0,    31,     0,
     2433       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2434       0,     0,     0,     0,     0,     0,     0,     0,   414,     0,
     2435       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2436       0,     0,     0,   208,    39,     0,     0,     0,     0,     0,
     2437    1447,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2438       0,     0,     1,     2,   207,     4,     5,     6,     7,     8,
     2439       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2440      19,    20,    21,    22,    23,    24,    25,    45,    46,    26,
     2441      27,    28,    29,     0,     0,    30,   283,   284,    31,  1048,
     2442    1049,     0,  1050,     0,     0,  1051,  1052,  1053,  1054,  1055,
     2443    1056,  1057,  1058,     0,     0,     0,  1059,     0,     0,     0,
     2444    1060,  1061,     0,    33,     0,   286,    34,   509,    35,     0,
     2445      36,  1062,  1514,    38,    39,   288,     0,     0,   289,   290,
     2446     291,   292,    41,    42,     0,   293,   294,     8,     9,    10,
     2447      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2448      21,    22,    23,    24,    25,  -295,     0,     0,   295,     0,
     2449    1063,     0,   509,   172,     0,     0,    31,    45,    46,   297,
     2450     298,   299,   300,     0,     0,   321,     0,  1064,     0,     0,
     2451       0,  -129,     0,     0,     0,     0,     0,     0,     0,     0,
     2452       0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
     2453     509,     0,     0,     0,     0,  -295,     0,     0,     0,     0,
     2454       0,     0,     0,   509,     0,     0,     0,     0,     0,     0,
     2455       0,     0,     1,     2,   207,     4,     5,     6,     7,     8,
     2456       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2457      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2458      27,    28,    29,     0,   509,    30,   283,   284,    31,   285,
     2459       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2460      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2461      26,    27,    28,     0,     0,   286,    34,     0,    35,    31,
     2462      36,   287,     0,    38,    39,   288,     0,     0,   289,   290,
     2463     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2464       0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
     2465       0,     0,   111,     0,    38,    39,     0,     0,   295,     0,
     2466      44,   509,     0,    41,    42,     0,     0,    45,    46,   297,
     2467     298,   299,   300,     2,   207,     4,     5,     6,     7,     8,
     2468       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2469      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2470      27,    28,     0,     0,     0,     0,   283,   284,    31,   285,
     2471       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2472       0,     0,     0,     0,   509,   509,     0,     0,     0,     0,
     2473       0,     0,     0,     0,     0,   286,    34,     0,    35,     0,
     2474      36,   287,     0,    38,    39,   288,     0,     0,   289,   290,
     2475     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2476       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2477       0,     0,     0,     0,     0,     0,     0,     0,   295,     0,
     2478     343,     0,     0,     0,     0,   760,     0,   344,    46,   297,
     2479     298,   299,   300,     2,   207,     4,     5,     6,     7,     8,
     2480       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2481      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2482      27,    28,     0,     0,     0,     0,   283,   284,    31,   285,
     2483       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2484      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2485      26,    27,    28,     0,     0,   286,    34,     0,    35,    31,
     2486      36,   287,     0,    38,    39,   288,     0,     0,   289,   290,
     2487     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2488       0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
     2489       0,     0,    37,     0,    38,    39,    40,     0,   295,     0,
     2490     969,     0,     0,    41,    42,   760,     0,   344,    46,   297,
     2491     298,   299,   300,     0,     0,     0,     0,     0,     0,     0,
     2492       0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
     2493       0,   158,     0,     0,     0,   509,     0,     0,    45,    46,
     2494       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2495       0,     0,     0,   509,     0,     0,     0,     0,     0,     0,
     2496       0,     0,     0,     0,     0,     0,     2,   207,     4,     5,
     2497       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2498      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2499       0,     0,    26,    27,    28,     0,     0,     0,     0,   283,
     2500     284,    31,   285,     8,     9,    10,    11,    12,    13,    14,
     2501      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2502      25,     0,     0,    26,    27,    28,   509,   509,   286,    34,
     2503       0,    35,    31,    36,   287,     0,    38,    39,   288,     0,
     2504       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2505       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2506      34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
     2507       0,   295,     0,   969,     0,     0,     0,     0,   760,     0,
     2508      45,    46,   297,   298,   299,   300,     2,   207,     4,     5,
     2509       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2510      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2511       0,     0,    26,    27,    28,     0,     0,     0,     0,   283,
     2512     284,    31,   285,     8,     9,    10,    11,    12,    13,    14,
     2513      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2514      25,     0,     0,    26,    27,    28,     0,     0,   286,    34,
     2515       0,    35,    31,    36,   287,     0,    38,    39,   288,     0,
     2516       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2517       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2518      34,     0,     0,     0,     0,     0,     0,   208,    39,     0,
     2519       0,   295,     0,   343,     0,     0,     0,     0,     0,     0,
     2520     344,    46,   297,   298,   299,   300,     2,   207,     4,     5,
     2521       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2522      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2523       0,     0,    26,    27,    28,     0,     0,     0,     0,   283,
     2524     284,    31,   285,     8,     9,    10,    11,    12,    13,    14,
     2525      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2526      25,     0,     0,     0,     0,     0,     0,     0,   286,    34,
     2527       0,    35,    31,    36,   287,     0,   208,    39,   288,     0,
     2528       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2529       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2530      34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2531       0,   295,     0,  1005,     0,     0,     0,     0,     0,     0,
     2532    1006,    46,   297,   298,   299,   300,     2,   207,     4,     5,
     2533       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2534      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2535       0,     0,    26,    27,    28,     0,     0,     0,     0,   283,
     2536     284,    31,   285,     0,     0,     0,     0,     0,     0,     0,
     2537       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2538       0,     0,     0,     0,     0,     0,     0,     0,   286,    34,
     2539       0,    35,     0,    36,   287,     0,    38,    39,   288,     0,
     2540       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    25452541       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25462542       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2547       33,     0,     0,    34,     0,    35,     0,    36,    37,     0,
    2548       38,    39,    40,     0,     0,     0,     0,     0,     0,    41,
    2549       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2550       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2551        0,     0,     0,     0,     0,    44,     0,    45,     0,     0,
    2552        0,     0,     0,     0,    46,    47,   207,     2,   208,     4,
     2543       0,   295,     0,   969,     0,     0,     0,     0,     0,     0,
     2544     344,    46,   297,   298,   299,   300,     2,   207,     4,     5,
     2545       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2546      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2547       0,     0,    26,    27,    28,     0,     0,     0,     0,   283,
     2548     284,    31,   285,     0,     0,     0,     0,     0,     0,     0,
     2549       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2550       0,     0,     0,     0,     0,     0,     0,     0,   286,    34,
     2551       0,    35,     0,    36,   287,     0,   208,    39,   288,     0,
     2552       0,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2553       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2554       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2555       0,   295,     0,   379,     0,     0,     0,     0,     0,     0,
     2556      45,    46,   297,   298,   299,   300,     1,     2,     3,     4,
    25532557       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25542558      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2555       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2556        0,     0,    31,     0,     8,     9,    10,    11,    12,    13,
    2557       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2558       24,    25,     0,     0,    26,    27,    28,   486,   487,   488,
    2559       34,     0,    35,    31,    36,    37,     0,   209,    39,    40,
     2559      25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
     2560       0,     0,    31,    32,     0,     0,     0,     0,     0,     0,
     2561       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2562       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2563      34,     0,    35,     0,    36,    37,     0,    38,    39,    40,
    25602564       0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2561        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2562        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2563        0,     0,    44,     0,   210,     0,     0,     0,     0,     0,
    2564        0,    46,    47,     1,     2,   208,     4,     5,     6,     7,
    2565        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2566       18,    19,    20,    21,    22,    23,    24,    25,  -295,     0,
    2567       26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
    25682565       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25692566       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2570        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2571        0,    36,     0,     0,    38,    39,     0,     0,  -295,     0,
     2567       0,     0,    43,     0,    44,     0,     0,     0,  -523,     0,
     2568       0,    45,    46,     1,     2,     3,     4,     5,     6,     7,
     2569       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2570      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2571      26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
     2572      32,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25722573       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2573        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
     2574       0,     0,     0,     0,    33,     0,     0,    34,     0,    35,
     2575       0,    36,    37,     0,    38,    39,    40,     0,     0,     0,
     2576       0,     0,     0,    41,    42,     0,     0,     0,     0,     0,
    25742577       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2575        0,    45,     0,     0,     0,     0,     0,     0,    46,    47,
    2576        1,     2,   208,     4,     5,     6,     7,     8,     9,    10,
     2578       0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
     2579       0,    44,     0,     0,     0,     0,     0,     0,    45,    46,
     2580       1,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    25772581      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2578       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2582      21,    22,    23,    24,    25,  -294,     0,    26,    27,    28,
    25792583      29,     0,     0,    30,     0,     0,    31,     0,     0,     0,
    25802584       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25812585       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25822586       0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
    2583        0,    38,    39,     0,     0,     0,     0,     0,     0,     0,
     2587       0,    38,    39,     0,     0,  -294,     2,   207,     4,     5,
     2588       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2589      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2590       0,     0,    26,    27,    28,     0,     0,     0,    44,     0,
     2591       0,    31,     0,     0,     0,    45,    46,     0,     0,     0,
    25842592       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2585        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
    2586        0,     0,     0,     0,     0,     0,     0,     0,    45,     0,
    2587        0,     0,     0,     0,     0,    46,    47,     2,   208,     4,
     2593       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2594       0,    35,     0,    36,    37,     0,   208,    39,    40,     0,
     2595       0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
     2596       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2597       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2598       0,    43,     0,   209,     0,     0,     0,     0,     0,     0,
     2599      45,    46,     2,   207,     4,     5,     6,     7,     8,     9,
     2600      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2601      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2602      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     2603       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2604      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2605       0,    26,    27,    28,     0,    34,     0,    35,     0,    36,
     2606      31,     0,    38,    39,     0,     0,     0,     0,     0,     0,
     2607       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2608       0,     0,     0,     0,  1367,     0,     0,     0,    34,     0,
     2609       0,     0,     0,    37,     0,   336,   337,    40,     0,   678,
     2610       0,     0,     0,     0,    41,    42,    45,    46,     2,   207,
     2611       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2612      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2613      24,    25,   338,     0,    26,    27,    28,     0,     0,    45,
     2614      46,     0,     0,    31,     0,     0,     0,     8,     9,    10,
     2615      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2616      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2617       0,    34,     0,    35,     0,    36,    31,     0,    38,    39,
     2618       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2619       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2620    1369,     0,     0,     0,    34,     0,     0,     0,     0,   111,
     2621       0,    38,    39,     0,     0,   678,     0,     0,     0,     0,
     2622      41,    42,    45,    46,     2,   207,     4,     5,     6,     7,
     2623       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2624      18,    19,    20,    21,    22,    23,    24,    25,    44,     0,
     2625      26,    27,    28,     0,     0,    45,    46,     0,     0,    31,
     2626       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2627       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2628       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2629       0,    36,     0,     0,   208,    39,     0,     2,   207,     4,
    25882630       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25892631      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    25902632      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2591        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2633       0,   271,    31,     0,     0,     0,     0,     0,    45,    46,
    25922634       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25932635       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2594       34,     0,    35,     0,    36,    37,     0,   209,    39,    40,
    2595        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2596        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
     2636      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
     2637       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
     2638      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2639      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2640       0,     0,     0,     0,   678,    31,     0,     0,     0,     0,
     2641       0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
    25972642       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2598        0,     0,    44,     0,   210,     0,     0,     0,     0,     0,
    2599        0,    46,    47,     2,   208,     4,     5,     6,     7,     8,
     2643       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2644      38,    39,     0,     2,   207,     4,     5,     6,     7,     8,
     2645       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2646      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2647      27,    28,     0,     0,     0,     0,     0,   592,    31,     0,
     2648       0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
     2649       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2650       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2651      36,     0,     0,   208,    39,     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,   283,   284,    31,   285,     0,     0,     0,     0,
     2655     209,     0,     0,     0,     0,     0,     0,    45,    46,     0,
     2656       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2657       0,   286,    34,     0,     0,     0,     0,   287,     0,    38,
     2658      39,   288,     0,     0,   289,   290,   291,   292,    41,    42,
     2659       0,   293,   294,     0,     0,     0,     0,     0,     0,     0,
     2660       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2661       0,     0,     0,     0,   295,     0,   517,     0,     0,   172,
     2662       0,     0,     0,    45,    46,   297,   298,   299,   300,     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,   283,   284,    31,   285,
     2666       0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
     2667      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2668      21,    22,    23,    24,    25,   286,    34,    26,    27,    28,
     2669       0,   640,     0,    38,    39,   288,    31,     0,   289,   290,
     2670     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2671       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2672       0,     0,     0,     0,    34,     0,     0,     0,   295,   -35,
     2673     741,    38,    39,     0,     0,     0,     0,    45,    46,   297,
     2674     298,   299,   300,     8,     9,    10,    11,    12,    13,    14,
     2675      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2676      25,     0,     0,    26,    27,    28,   634,     0,   338,     0,
     2677     283,   284,    31,   285,     0,    45,    46,     0,     0,     0,
     2678       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2679      17,    18,    19,    20,    21,    22,    23,    24,    25,   286,
     2680      34,    26,    27,    28,     0,   287,     0,    38,    39,   288,
     2681      31,     0,   289,   290,   291,   292,    41,    42,     0,   293,
     2682     294,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2683       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2684       0,     0,   295,     0,   296,    38,    39,     0,     0,     0,
     2685       0,    45,    46,   297,   298,   299,   300,     8,     9,    10,
     2686      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2687      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2688       0,     0,   258,     0,   283,   284,    31,   285,     0,    45,
     2689      46,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2690      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2691      23,    24,    25,   286,    34,    26,    27,    28,     0,   287,
     2692       0,    38,    39,   288,    31,     0,   289,   290,   291,   292,
     2693      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
     2694       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2695       0,     0,    34,     0,     0,     0,   295,     0,   158,    38,
     2696      39,     0,     0,     0,     0,    45,    46,   297,   298,   299,
     2697     300,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2698      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2699       0,    26,    27,    28,     0,     0,   158,     0,   283,   284,
     2700      31,   285,     0,    45,    46,     0,     0,     0,     0,     8,
     2701       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2702      19,    20,    21,    22,    23,    24,    25,   286,    34,    26,
     2703      27,    28,     0,   287,     0,    38,    39,   288,    31,     0,
     2704     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2705       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2706       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2707     295,     0,   592,   208,    39,     0,     0,     0,     0,    45,
     2708      46,   297,   298,   299,   300,     8,     9,    10,    11,    12,
     2709      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2710      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2711     271,     0,   283,   284,    31,   285,     0,    45,    46,     0,
     2712       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2713      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2714      25,   286,    34,    26,    27,    28,     0,   287,     0,    38,
     2715      39,   288,    31,     0,   289,   290,   291,   292,    41,    42,
     2716       0,   293,   294,     0,     0,     0,     0,     0,     0,     0,
     2717       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2718      34,     0,     0,     0,   295,     0,   379,    38,    39,     0,
     2719       0,     0,     0,    45,    46,   297,   298,   299,   300,   467,
     2720       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
     2721      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2722      22,    23,    24,    25,   338,     0,    26,    27,    28,     0,
     2723       0,    45,    46,     0,     0,    31,     0,     0,     0,     8,
     2724       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2725      19,    20,    21,    22,    23,    24,    25,  -294,     0,    26,
     2726      27,    28,     0,    34,     0,    35,     0,    36,    31,     0,
     2727      38,    39,     0,     0,     0,     0,     0,     8,     9,    10,
     2728      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2729      21,    22,    23,    24,    25,  -294,    34,    26,    27,    28,
     2730       0,    37,     0,   336,   337,    40,    31,  -294,     0,     0,
     2731      -3,     0,    41,    42,     0,     8,     9,    10,    11,    12,
     2732      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2733      23,    24,    25,     0,    34,    26,    27,    28,   634,    37,
     2734     338,   336,   337,    40,    31,  -294,     0,    45,    46,     0,
     2735      41,    42,     0,     8,     9,    10,    11,    12,    13,    14,
     2736      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2737      25,     0,    34,    26,    27,    28,     0,    37,   338,    38,
     2738      39,    40,    31,     0,     0,    45,    46,     0,    41,    42,
     2739       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2740      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2741      34,    26,    27,    28,    43,    37,    44,   208,    39,    40,
     2742      31,     0,     0,    45,    46,     0,    41,    42,     0,     8,
     2743       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2744      19,    20,    21,    22,    23,    24,    25,     0,    34,    26,
     2745      27,    28,    43,    37,   271,   336,   337,    40,    31,   685,
     2746       0,    45,    46,     0,    41,    42,     0,     8,     9,    10,
     2747      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2748      21,    22,    23,    24,    25,  -294,    34,    26,    27,    28,
     2749     634,     0,   338,    38,    39,     0,    31,     0,     0,    45,
     2750      46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2751       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2752       0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
     2753     686,    38,    39,     0,   687,  -294,     0,    45,    46,     0,
     2754       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2755      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2756      26,    27,    28,     0,     0,     0,     0,     0,   338,    31,
     2757     685,     0,     0,     0,     0,    45,    46,     0,     8,     9,
     2758      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2759      20,    21,    22,    23,    24,    25,     0,    34,    26,    27,
     2760      28,     0,     0,     0,    38,    39,     0,    31,   685,     8,
     2761       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2762      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2763      27,    28,     0,     0,     0,    34,     0,     0,    31,     0,
     2764       0,   686,    38,    39,     0,  1099,     0,     0,    45,    46,
     2765       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2766       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2767       0,     0,     0,    38,    39,     0,     0,     0,     0,   686,
     2768       0,     0,     0,  1231,     0,     0,    45,    46,     0,     0,
     2769       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2770      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2771     686,    26,    27,    28,     0,     0,     0,    45,    46,     0,
     2772      31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2773      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2774       0,    26,    27,    28,     0,     0,     0,     0,    34,     0,
     2775      31,     0,     0,     0,     0,    38,    39,     0,     0,     8,
     2776       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2777      19,    20,    21,    22,    23,    24,    25,     0,    34,    26,
     2778      27,    28,   485,   486,   487,    38,    39,     0,    31,     0,
     2779       0,     0,   592,     0,     0,     0,     0,     0,     0,    45,
     2780      46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2781       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2782       0,     0,    44,    38,    39,     0,     0,     0,     0,    45,
     2783      46,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2784      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2785      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2786       0,     0,     0,     0,     0,     0,    31,     0,   283,   284,
     2787       0,   285,  1049,     0,  1050,     0,     0,  1051,  1052,  1053,
     2788    1054,  1055,  1056,  1057,  1058,     0,     0,  1547,  1059,     0,
     2789       0,     0,  1060,  1061,    34,    33,    35,   286,    36,     0,
     2790       0,    38,    39,  1062,     0,     0,     0,   288,     0,     0,
     2791     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2792       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2793       0,     0,     0,     0,     0,     0,     0,  -415,     0,     0,
     2794     295,     0,   379,     0,     0,   172,     0,     0,     0,    45,
     2795      46,   297,   298,   299,   300,     0,     0,     0,     0,  1064,
     2796       0,   283,   284,  -129,   285,  1049,     0,  1050,     0,     0,
     2797    1051,  1052,  1053,  1054,  1055,  1056,  1057,  1058,     0,     0,
     2798       0,  1059,     0,     0,     0,  1060,  1061,     0,    33,     0,
     2799     286,     0,     0,     0,     0,     0,  1062,     0,     0,     0,
     2800     288,     0,     0,   289,   290,   291,   292,    41,    42,     0,
     2801     293,   294,     0,     0,     0,     0,     0,     0,     0,     0,
     2802       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2803       0,     0,     0,   295,     0,   379,     0,     0,   172,     0,
     2804       0,     0,    45,    46,   297,   298,   299,   300,     0,     0,
     2805       0,     0,  1064,     0,     0,     0,  -129,     2,   207,     4,
     2806       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2807      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2808      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2809       0,     0,    31,     0,   283,   284,     0,   285,  1049,     0,
     2810    1050,  1417,  1418,  1051,  1052,  1053,  1054,  1055,  1056,  1057,
     2811    1058,     0,     0,  1547,  1059,     0,     0,     0,  1060,  1061,
     2812      34,    33,    35,   286,    36,     0,     0,    38,    39,  1062,
     2813       0,     0,     0,   288,     0,     0,   289,   290,   291,   292,
     2814      41,    42,     0,   293,   294,     0,     0,     0,     0,  1325,
     2815       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2816       0,     0,     0,     0,     0,     0,   295,     0,   379,     0,
     2817       0,   172,     0,     0,     0,    45,    46,   297,   298,   299,
     2818     300,     0,     0,   283,   284,  1064,   285,  1049,     0,  1050,
     2819    1417,  1418,  1051,  1052,  1053,  1054,  1055,  1056,  1057,  1058,
     2820       0,     0,     0,  1059,     0,     0,     0,  1060,  1061,     0,
     2821      33,     0,   286,     0,     0,     0,     0,     0,  1062,     0,
     2822       0,     0,   288,     0,     0,   289,   290,   291,   292,    41,
     2823      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2824       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2825       0,     0,     0,     0,     0,   295,     0,   379,     0,     0,
     2826     172,     0,     0,     0,    45,    46,   297,   298,   299,   300,
     2827       0,     0,   283,   284,  1064,   285,  1049,     0,  1050,     0,
     2828       0,  1051,  1052,  1053,  1054,  1055,  1056,  1057,  1058,     0,
     2829       0,     0,  1059,     0,     0,     0,  1060,  1061,     0,    33,
     2830       0,   286,     0,     0,     0,     0,     0,  1062,     0,     0,
     2831       0,   288,     0,     0,   289,   290,   291,   292,    41,    42,
     2832       0,   293,   294,     0,     0,     0,     0,     0,     0,     0,
     2833     283,   284,     0,   285,     0,     0,     0,     0,     0,     0,
     2834       0,     0,     0,     0,   295,     0,   379,     0,     0,   172,
     2835       0,     0,     0,    45,    46,   297,   298,   299,   300,   286,
     2836       0,     0,     0,  1064,     0,   287,     0,     0,     0,   288,
     2837       0,     0,   289,   290,   291,   292,    41,    42,     0,   293,
     2838     294,     0,     0,     0,     0,     0,     0,     0,   283,   284,
     2839       0,   285,     0,     0,     0,     0,     0,     0,     0,     0,
     2840       0,     0,   295,     0,   379,     0,     0,   283,   284,     0,
     2841     285,   344,    46,   297,   298,   299,   300,   286,     0,     0,
     2842       0,     0,     0,   287,     0,     0,     0,   288,     0,     0,
     2843     289,   290,   291,   292,    41,    42,   286,   293,   294,     0,
     2844       0,     0,   287,     0,     0,     0,   288,     0,     0,   289,
     2845     290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
     2846     506,     0,     0,     0,     0,   283,   284,     0,   285,    45,
     2847      46,   297,   298,   299,   300,     0,     0,     0,     0,   295,
     2848       0,     0,     0,     0,   283,   284,     0,   285,    45,    46,
     2849     297,   298,   299,   300,   286,     0,     0,     0,     0,     0,
     2850     287,     0,     0,     0,   288,     0,     0,   289,   290,   291,
     2851     292,    41,    42,   286,   293,   294,     0,     0,     0,   287,
     2852       0,     0,     0,   288,     0,     0,   289,   290,   291,   292,
     2853      41,    42,     0,   293,   294,     0,     0,   511,     0,     0,
     2854       0,     0,     0,     0,     0,     0,    45,    46,   297,   298,
     2855     299,   300,     0,     0,     0,     0,   514,     0,     0,     0,
     2856       0,     0,     0,     0,     0,    45,    46,   297,   298,   299,
     2857     300,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2858      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2859      21,    22,    23,    24,    25,     0,     0,     0,     0,     0,
     2860       0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
     2861       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2862       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2863       0,     0,     0,     0,    34,     0,    35,     0,    36,    37,
     2864       0,   175,   176,    40,     0,     0,     0,     0,     0,     0,
     2865      41,    42,   206,     2,   207,     4,     5,     6,     7,     8,
    26002866       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26012867      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     
    26042870       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26052871       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2606       36,     0,     0,    38,    39,     0,     0,     0,     0,     0,
    2607        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2608        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2609        0,     0,     0,     0,     0,     0,     0,     0,     0,  -403,
    2610      679,     0,     0,     0,     0,     0,     0,    46,    47,     2,
    2611      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2612       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2613       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2614        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2615        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2616        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2617        0,     0,    34,     0,    35,     0,    36,     0,     0,    38,
    2618       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2619        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
    2620        0,  1369,     0,     0,     0,     0,     0,     0,     0,     0,
    2621        0,     0,     0,     0,     0,     0,   679,     0,     0,     0,
    2622        0,     0,     0,    46,    47,     2,   208,     4,     5,     6,
    2623        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2624       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2625        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2626       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2627        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2628        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2629       35,     0,    36,     0,     0,    38,    39,     0,     0,     0,
    2630        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2631        0,     0,     0,     0,     0,    43,     0,  1371,     0,     0,
    2632        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2633        0,     0,   679,     0,     0,     0,     0,     0,     0,    46,
    2634       47,     2,   208,     4,     5,     6,     7,     8,     9,    10,
    2635       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2636       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2637        0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
    2638        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2639        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2640        0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
    2641        0,   209,    39,     0,     0,     0,     0,     0,     0,     0,
    2642        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2643        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
    2644        0,     0,     0,     0,     0,     0,     0,     0,   272,     0,
    2645        0,     0,     0,     0,     0,    46,    47,     2,   208,     4,
    2646        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2647       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2648       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2649        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2650        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2651        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2652       34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
    2653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2654        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2655        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2656        0,     0,     0,     0,   679,     0,     0,     0,     0,     0,
    2657        0,    46,    47,     2,   208,     4,     5,     6,     7,     8,
    2658        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2659       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2660       27,    28,     0,     0,     0,     0,     0,     0,    31,     0,
    2661        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2662        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2663        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2664       36,     0,     0,    38,    39,     0,     0,     0,     0,     0,
    2665        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2666        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2667        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2668      593,     0,     0,     0,     0,     0,     0,    46,    47,     2,
    2669      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2670       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2671       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2672        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2673        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2674        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2675        0,     0,    34,     0,    35,     0,    36,     0,     0,   209,
    2676       39,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2677       17,    18,    19,    20,    21,    22,    23,    24,    25,    43,
    2678        0,    26,    27,    28,     0,     0,     0,     0,   284,   285,
    2679       31,   286,     0,     0,     0,     0,   210,     0,     0,     0,
    2680        0,     0,     0,    46,    47,     0,     0,     0,     0,     0,
    2681        0,     0,     0,     0,     0,     0,     0,   287,    34,     0,
    2682        0,     0,     0,   288,     0,    38,    39,   289,     0,     0,
    2683      290,   291,   292,   293,    41,    42,     0,   294,   295,     0,
    2684        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
    2685        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2686      296,     0,   518,     0,     0,   173,     0,     0,     0,    46,
    2687       47,   298,   299,   300,   301,     8,     9,    10,    11,    12,
    2688       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2689       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2690        0,     0,   284,   285,    31,   286,     0,     0,     0,     0,
    2691        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2692        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2693        0,   287,    34,     0,     0,     0,     0,   641,     0,    38,
    2694       39,   289,     0,     0,   290,   291,   292,   293,    41,    42,
    2695        0,   294,   295,     0,     0,     0,     0,     0,     0,    43,
    2696        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2697        0,     0,     0,     0,   296,   -35,   742,     0,     0,     0,
    2698        0,     0,     0,    46,    47,   298,   299,   300,   301,     8,
    2699        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2700       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2701       27,    28,     0,     0,     0,     0,   284,   285,    31,   286,
    2702        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2703        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2704        0,     0,     0,     0,     0,   287,    34,     0,     0,     0,
    2705        0,   288,     0,    38,    39,   289,     0,     0,   290,   291,
    2706      292,   293,    41,    42,     0,   294,   295,     0,     0,     0,
    2707        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2708        0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
    2709      297,     0,     0,     0,     0,     0,     0,    46,    47,   298,
    2710      299,   300,   301,     8,     9,    10,    11,    12,    13,    14,
    2711       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2712       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2713      284,   285,    31,   286,     0,     0,     0,     0,     0,     0,
    2714        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2715        0,     0,     0,     0,     0,     0,     0,     0,     0,   287,
    2716       34,     0,     0,     0,     0,   288,     0,    38,    39,   289,
    2717        0,     0,   290,   291,   292,   293,    41,    42,     0,   294,
    2718      295,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2719        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2720        0,     0,   296,     0,   159,     0,     0,     0,     0,     0,
    2721        0,    46,    47,   298,   299,   300,   301,     8,     9,    10,
    2722       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2723       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2724        0,     0,     0,     0,   284,   285,    31,   286,     0,     0,
    2725        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2726        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2727        0,     0,     0,   287,    34,     0,     0,     0,     0,   288,
    2728        0,    38,    39,   289,     0,     0,   290,   291,   292,   293,
    2729       41,    42,     0,   294,   295,     0,     0,     0,     0,     0,
    2730        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
    2731        0,     0,     0,     0,     0,     0,   296,     0,   593,     0,
    2732        0,     0,     0,     0,     0,    46,    47,   298,   299,   300,
    2733      301,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2734       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2735        0,    26,    27,    28,     0,     0,     0,     0,   284,   285,
    2736       31,   286,     0,     0,     0,     0,     0,     0,     0,     0,
    2737        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2738        0,     0,     0,     0,     0,     0,     0,   287,    34,     0,
    2739        0,     0,     0,   288,     0,    38,    39,   289,     0,     0,
    2740      290,   291,   292,   293,    41,    42,     0,   294,   295,     0,
    2741        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
    2742        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2743      296,     0,   380,     0,     0,     0,     0,     0,     0,    46,
    2744       47,   298,   299,   300,   301,   468,     2,   208,     4,     5,
     2872      36,     0,     0,   208,    39,   467,     2,   207,     4,     5,
    27452873       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    27462874      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    27472875       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2748        0,    31,     0,     0,     0,     8,     9,    10,    11,    12,
    2749       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2750       23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
    2751        0,    35,     0,    36,    31,     0,    38,    39,     0,     0,
    2752        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2753       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2754       25,     0,    34,    26,    27,    28,     0,    37,     0,    38,
    2755       39,    40,    31,     0,     0,     0,    -3,     0,    41,    42,
    2756        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
     2876       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
    27572877       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2758       34,     0,     0,     0,    44,    37,   159,    38,    39,    40,
    2759        0,     0,     0,    46,    47,     0,    41,    42,     0,     0,
    2760        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2761        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2762        0,     0,    44,     0,    45,     0,     0,     0,     0,     0,
    2763        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2764       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2765       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2766        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2767       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2768       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2769       34,     0,    31,     0,     0,    37,     0,   209,    39,    40,
    2770        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2771        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2772       34,     0,     0,     0,     0,    37,     0,   337,   338,    40,
    2773        0,     0,    44,     0,   272,     0,    41,    42,     0,     0,
    2774        0,    46,    47,     0,     0,     0,     0,    43,     0,     0,
    2775        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2776        0,     0,   635,     0,   339,     0,     0,     0,     0,     0,
    2777        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2778       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2779       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2780        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2781       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2782       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2783       34,     0,    31,     0,     0,    37,     0,   337,   338,    40,
    2784        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2785        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2786       34,     0,     0,     0,     0,   112,     0,    38,    39,     0,
    2787        0,     0,     0,     0,   339,     0,    41,    42,     0,     0,
    2788        0,    46,    47,     0,     0,     0,     0,    43,     0,     0,
    2789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2790        0,     0,     0,     0,    45,     0,     0,     0,     0,     0,
    2791        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2792       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2793       25,  -295,     0,    26,    27,    28,     0,     0,     0,     0,
    2794        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2795       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2796       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2797       34,     0,    31,   686,     0,     0,     0,    38,    39,     0,
    2798        0,  -295,     0,     0,     0,     0,     0,     0,     0,     0,
    2799        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2800       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2801        0,     0,   635,     0,   339,     0,     0,     0,     0,     0,
    2802        0,    46,    47,     0,     0,     0,     0,    43,     0,     0,
    2803        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2804        0,     0,     0,     0,   687,     0,     0,     0,   688,     0,
    2805        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2806       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2807       25,  -295,     0,    26,    27,    28,     0,     0,     0,     0,
    2808        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2809       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2810       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2811       34,     0,    31,   686,     0,     0,     0,    38,    39,     0,
    2812        0,  -295,     0,     0,     0,     0,     0,     0,     0,     0,
    2813        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2814       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2815        0,     0,     0,     0,   339,     0,     0,     0,     0,     0,
    2816        0,    46,    47,     0,     0,     0,     0,    43,     0,     0,
    2817        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2818        0,     0,     0,     0,   687,     0,     0,     0,  1101,     0,
    2819        0,    46,    47,     8,     9,    10,    11,    12,    13,    14,
    2820       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2821       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2822        0,     0,    31,   686,     8,     9,    10,    11,    12,    13,
     2878       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2879       0,    35,     0,    36,     0,     0,    38,    39,     2,   207,
     2880       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    28232881      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    28242882      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2825       34,     0,     0,    31,     0,     0,     0,    38,    39,     0,
    2826        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2827        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2828        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2829        0,     0,     0,     0,   687,     0,     0,     0,  1233,     0,
    2830        0,    46,    47,     0,     0,     0,     0,     0,    43,     0,
    2831        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2832        0,     0,     0,   635,     0,   339,     0,     0,     0,     0,
    2833        0,     0,    46,    47,     8,     9,    10,    11,    12,    13,
    2834       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2835       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2836        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2837       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2838       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2839        0,    34,     0,    31,     0,     0,     0,     0,    38,    39,
    2840        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2841        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2842        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2843        0,     0,     0,     0,     0,   259,     0,     0,     0,     0,
    2844        0,     0,    46,    47,     0,     0,     0,     0,    43,     0,
    2845        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2846        0,     0,     0,     0,     0,   159,     0,     0,     0,     0,
    2847        0,     0,    46,    47,     8,     9,    10,    11,    12,    13,
    2848       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2849       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2850        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2851       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2852       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2853        0,    34,     0,    31,     0,     0,     0,     0,   209,    39,
    2854        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2855        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2856        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2857        0,     0,     0,     0,     0,   272,     0,     0,     0,     0,
    2858        0,     0,    46,    47,     0,     0,     0,     0,    43,     0,
    2859        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2860        0,     0,     0,     0,     0,   339,     0,     0,     0,     0,
    2861        0,     0,    46,    47,     8,     9,    10,    11,    12,    13,
    2862       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2863       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2864        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2865       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2866       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2867        0,    34,     0,    31,     0,     0,     0,     0,    38,    39,
    2868        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2869        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2870        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2871        0,     0,     0,     0,     0,   687,     0,     0,     0,     0,
    2872        0,     0,    46,    47,     0,     0,     0,     0,    43,     0,
    2873        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2874        0,     0,     0,     0,     0,   593,     0,     0,     0,     0,
    2875        0,     0,    46,    47,     8,     9,    10,    11,    12,    13,
    2876       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2877       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2878        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2879       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2880       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2881        0,    34,     0,    31,     0,     0,     0,     0,    38,    39,
    2882        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2883        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2884        0,    34,     0,     0,     0,     0,     0,     0,   209,    39,
    2885        0,     0,     0,     0,     0,    45,     0,     0,     0,     0,
    2886        0,     0,    46,    47,     0,     0,     0,     0,    43,     0,
     2883       0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
    28872884       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28882885       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2889        0,     0,    46,    47,     2,   208,     4,     5,     6,     7,
    2890        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2891       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2892       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2893        0,   284,   285,     0,   286,  1051,     0,  1052,     0,     0,
    2894     1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,     0,     0,
    2895     1549,  1061,     0,     0,     0,  1062,  1063,    34,    33,    35,
    2896      287,    36,     0,     0,    38,    39,  1064,     0,     0,     0,
    2897      289,     0,     0,   290,   291,   292,   293,    41,    42,     0,
    2898      294,   295,     0,     0,     0,     0,     0,     0,    43,     0,
    2899        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2900     -416,     0,     0,   296,     0,   380,     0,     0,   173,     0,
    2901        0,     0,    46,    47,   298,   299,   300,   301,     0,     0,
    2902        0,     0,  1066,     0,   284,   285,  -130,   286,  1051,     0,
    2903     1052,     0,     0,  1053,  1054,  1055,  1056,  1057,  1058,  1059,
    2904     1060,     0,     0,     0,  1061,     0,     0,     0,  1062,  1063,
    2905        0,    33,     0,   287,     0,     0,     0,     0,     0,  1064,
    2906        0,     0,     0,   289,     0,     0,   290,   291,   292,   293,
    2907       41,    42,     0,   294,   295,     0,     0,     0,     0,     0,
    2908        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
    2909        0,     0,     0,     0,     0,     0,   296,     0,   380,     0,
    2910        0,   173,     0,     0,     0,    46,    47,   298,   299,   300,
    2911      301,     0,     0,     0,     0,  1066,     0,     0,     0,  -130,
    2912        2,   208,     4,     5,     6,     7,     8,     9,    10,    11,
     2886       0,    34,     0,    35,     0,    36,     0,     0,   208,    39
     2887};
     2888
     2889#define yypact_value_is_default(yystate) \
     2890  ((yystate) == (-1315))
     2891
     2892#define yytable_value_is_error(yytable_value) \
     2893  YYID (0)
     2894
     2895static const yytype_int16 yycheck[] =
     2896{
     2897       0,     1,   240,   186,   205,     0,   734,     0,    43,    43,
     2898      43,   534,   752,   186,     1,   752,   752,   187,   106,   186,
     2899     117,   280,   169,   170,   513,   364,   349,   186,   220,   368,
     2900     186,   349,    32,   186,   620,   186,   991,    32,  1029,    32,
     2901     521,   345,   602,    43,   187,   879,   984,   759,   647,    49,
     2902     492,   418,     0,     0,   496,   879,    49,   600,   188,   571,
     2903     602,    43,   600,    63,   600,   600,    66,    32,   156,    69,
     2904      63,   438,   600,    66,   600,   282,    69,   693,    49,   446,
     2905     600,    72,    69,   266,    32,    32,  1041,   696,    39,  1335,
     2906     634,   635,   636,   266,   426,   427,    57,   267,    43,   266,
     2907    1028,  1029,     0,  1417,    43,   202,   106,   266,  1048,   653,
     2908     266,  1060,  1061,   266,   114,   266,    39,   117,   118,   603,
     2909      72,   635,   636,   482,   267,   609,    39,    51,    95,    44,
     2910      45,    85,   262,   263,    32,   229,    39,    96,    64,   653,
     2911      28,   132,    39,   114,    63,    72,   107,   147,   148,   110,
     2912     257,   186,   186,   186,   248,   148,   156,   157,   109,   113,
     2913     111,   161,   494,   130,   123,   488,   118,   711,   161,   110,
     2914     910,    82,    39,   910,   910,   116,   147,  1491,   482,    44,
     2915      45,   513,    82,   109,   719,   109,   186,   187,   111,  1138,
     2916      78,   719,  1438,   719,   187,   156,   109,   711,   111,   490,
     2917     115,    30,   202,    82,   186,   132,   109,   688,   111,    72,
     2918     210,   111,   109,   132,   111,  1123,    82,   210,   410,  1127,
     2919      83,    84,   222,    72,  1048,    74,    75,   107,    82,   222,
     2920      11,   266,   266,   266,    83,    84,   406,    82,   117,   210,
     2921     240,   186,   109,   109,   111,  1236,   578,   186,   111,   114,
     2922     589,   131,   252,   341,    83,    84,   110,   252,   219,   252,
     2923     260,   805,   111,   406,   109,   265,   266,   267,   828,   240,
     2924       1,  1473,   272,   816,   267,   634,   635,   636,   816,  1421,
     2925     816,   816,   994,   371,   602,   797,   828,   252,   816,   905,
     2926     816,   805,   631,    96,   653,   295,   816,   504,  1289,   396,
     2927     109,   272,   911,   109,   252,   252,  1508,   307,  1510,   257,
     2928     480,   418,   273,   604,  1252,   682,   620,   608,    49,   280,
     2929     123,   625,   131,   323,  1524,    44,    45,   424,   328,  1057,
     2930     929,   438,   116,   430,   818,   328,   307,   480,   629,   446,
     2931    1494,   341,   633,   109,  1544,   345,  1500,   956,   132,   349,
     2932     350,  1551,   711,    39,   252,    90,    91,   285,    72,   257,
     2933    1288,  1289,  1302,  1524,   364,    82,   109,  1521,   368,    83,
     2934      84,   371,  1526,    72,   345,   106,   112,  1519,   938,   307,
     2935     308,    57,  1524,   114,    83,    84,   114,   348,  1222,   748,
     2936    1551,   126,   127,   110,   937,   114,   396,   111,  1222,   937,
     2937     117,   937,  1544,   110,   365,   110,   406,   110,   369,  1551,
     2938     117,   116,   111,   406,   117,   244,   147,   345,   116,   115,
     2939     116,  1007,  1413,     3,   424,   156,   426,   427,   131,   116,
     2940     430,   107,   116,   433,   110,   131,   116,   525,    10,    11,
     2941      12,    13,    14,     3,   748,   132,   805,    72,   132,     0,
     2942    1405,  1406,   132,   381,   454,   426,   427,   118,    83,    84,
     2943     667,   116,   110,   124,   125,     0,     1,    39,   807,   117,
     2944     418,   432,   472,   812,   733,   206,   116,   132,  1302,   210,
     2945     480,    32,   482,   116,   484,  1413,   111,   480,   488,   484,
     2946     438,   484,   132,   974,   494,    67,   116,    32,   446,   132,
     2947     989,   648,   116,   116,   946,   828,   506,     0,   508,   240,
     2948     828,   511,   132,   513,   514,    66,  1125,     0,   688,   132,
     2949     418,   521,  1462,   494,   112,   525,   526,   657,   116,  1469,
     2950     737,    66,  1016,  1017,    69,   109,   484,   484,  1137,   116,
     2951     438,   272,   513,   219,   275,   688,   131,  1107,   446,   110,
     2952     909,   380,   116,   116,    72,   132,    74,    75,   655,   850,
     2953     110,    72,   901,   109,   295,    83,    84,   116,   132,   132,
     2954     570,   571,    83,    84,  1302,   682,   307,   109,   578,  1188,
     2955    1189,   112,  1522,   132,   482,   116,   484,   116,   112,   589,
     2956     590,   109,   116,    80,   594,   590,   114,   273,   109,   109,
     2957     600,   708,   602,   132,   280,   909,   109,   578,   111,   109,
     2958     341,    80,  1093,   109,   345,   118,   119,  1098,   109,   942,
     2959     620,   549,   550,   551,   111,   625,   113,   627,   589,   110,
     2960     117,   631,   110,   364,   634,   635,   636,   368,  1462,   112,
     2961     371,   112,   111,   116,   113,  1469,    72,   110,   117,   620,
     2962     110,  1379,   943,   653,   625,   655,   116,    83,    84,   747,
     2963     621,   110,   491,    72,   493,    74,    75,   116,   129,  1028,
     2964     131,   222,   348,   865,    83,    84,   637,   110,    66,     4,
     2965       5,     6,     7,     8,     9,   685,   110,   222,   688,   365,
     2966     109,   652,   116,   369,   886,   426,   427,   109,  1522,   111,
     2967     109,   252,   112,  1007,   109,   114,   116,     0,     1,   110,
     2968     948,   711,   712,   713,   109,   116,   110,   252,   115,   719,
     2969     720,   132,   116,   454,   871,   295,   110,   910,    64,   110,
     2970     118,   109,   116,   111,   682,   116,   467,   910,  1466,    32,
     2971    1468,   109,   912,   910,    69,   109,    71,   747,   748,   110,
     2972     110,   910,   752,   753,   910,   116,   116,   910,   112,   910,
     2973     708,   492,   110,   494,   110,   496,   112,   132,   116,   912,
     2974     116,   114,   733,   161,   114,   506,    69,   508,   109,   110,
     2975     511,   110,   513,   514,   682,   131,   132,   116,  1528,   109,
     2976    1399,  1528,  1528,  1132,   525,  1523,  1319,   797,  1157,   350,
     2977     110,   556,   557,   558,   559,   805,   116,   807,  1417,   809,
     2978     708,   132,   812,   813,   643,   109,   816,   111,   813,  1020,
     2979     908,   110,   114,   110,   118,   119,    70,   116,   828,   116,
     2980      74,   759,   110,    77,   222,    79,   132,    72,   116,    74,
     2981      75,    76,    86,    72,    82,    74,    75,   578,    83,    84,
     2982     748,   120,   121,  1157,    83,    84,   426,   427,   589,    72,
     2983     109,    74,    75,   692,    72,   694,    74,    75,    76,   698,
     2984      83,    84,   260,   109,   109,    83,    84,   265,   109,   879,
     2985     111,  1490,  1491,    82,   879,   114,   110,   118,   119,   620,
     2986     112,   109,   116,   111,   625,    72,  1043,    74,    75,    76,
     2987     631,   901,   109,   110,   111,    49,    83,    84,   908,   909,
     2988     910,   109,   912,   111,   119,    72,  1123,    74,    75,    76,
     2989    1127,  1128,   473,  1093,   924,   128,    83,    84,  1098,  1288,
     2990      94,   879,  1236,   484,    88,    89,   506,   937,   938,   129,
     2991     901,   511,   942,   131,   514,   621,   111,   947,   948,   484,
     2992    1093,   109,   109,   111,   685,  1098,   109,     0,     1,   252,
     2993     947,   637,   350,   506,   964,   508,   112,   110,   511,   213,
     2994     114,   514,   109,   116,   974,   110,   652,   948,   109,   110,
     2995     111,   879,    92,    93,    72,    49,    29,    30,    76,    32,
     2996     112,   109,   723,   111,   110,    83,    84,   567,   112,    63,
     2997      43,   109,    66,   111,   110,    69,    49,  1007,   109,   110,
     2998     111,   909,   110,    72,    57,   110,   747,    76,  1115,   110,
     2999      63,   109,  1503,    66,    83,    84,    69,   109,  1028,  1029,
     3000     118,   119,   109,   110,   111,   109,  1007,   111,   111,  1246,
     3001      83,    84,   871,   431,    58,    59,    60,   112,  1048,   878,
     3002     109,   114,   111,  1048,    85,    86,    87,   733,   116,   118,
     3003     119,  1261,  1262,  1263,   107,   131,   210,   110,   109,   114,
     3004     111,   622,  1553,   915,   117,   917,   807,   114,   109,  1007,
     3005     111,   812,   113,   114,   148,   473,   115,   116,  1088,   109,
     3006     919,   116,   117,  1093,   110,   111,   117,   161,  1098,   112,
     3007    1048,    58,    59,   115,   116,   148,   110,  1107,   352,   110,
     3008     354,   116,   117,   156,   112,  1115,   116,   117,   161,   112,
     3009    1048,    44,    45,   187,   552,   553,   560,   561,   272,  1336,
     3010    1218,   112,  1132,  1340,   554,   555,   112,     4,     5,     6,
     3011       7,     8,     9,   186,   187,   117,   210,   117,   699,   978,
     3012    1048,   295,   116,    29,    85,    86,    87,  1157,   222,   202,
     3013     110,   110,   713,   307,   112,   112,   132,   210,   114,   110,
     3014     901,   115,   115,   115,   110,   109,   219,   908,   109,   222,
     3015     111,   116,   113,   114,   110,   110,   229,   116,   110,   117,
     3016     110,   484,   110,   924,   110,   116,   110,   110,   442,  1199,
     3017    1200,   244,    69,   110,    71,   248,   594,   110,   110,   252,
     3018     253,   110,     0,  1200,   110,   946,   947,   948,  1218,   110,
     3019     110,   110,  1222,   266,   267,   110,   110,  1222,   115,    29,
     3020     273,   131,   110,   116,   622,  1442,  1236,   280,   117,   627,
     3021    1240,   112,   112,   116,    32,   110,   110,   110,   117,   117,
     3022    1079,   112,   112,  1240,   116,    43,   114,  1218,   809,  1157,
     3023     110,    49,   110,   110,   328,   132,     4,     5,     6,     7,
     3024       8,     9,   116,   110,  1222,    63,  1007,   116,    66,   110,
     3025     116,    69,   110,   112,   109,   328,   109,   109,  1288,  1289,
     3026     109,   109,   112,   110,   132,    33,   110,  1297,  1395,   115,
     3027    1538,   110,  1302,   115,    72,   348,   349,  1302,    76,   115,
     3028     454,   699,   114,   112,   129,    83,    84,    10,    11,    12,
     3029      13,    14,   365,   110,  1222,   713,   369,   132,   879,   112,
     3030     116,    69,   116,    71,   112,  1335,   110,   380,  1236,   110,
     3031     110,   109,   406,   112,   879,  1528,    39,   112,  1335,   112,
     3032     118,   119,   110,   396,  1302,  1528,   112,  1088,   112,  1529,
     3033     148,  1528,   506,   406,   508,   112,  1195,   511,    47,  1528,
     3034     514,   132,  1528,   161,    67,  1528,   115,  1528,   110,   132,
     3035     132,   424,   132,  1553,   132,   115,  1529,   430,   117,   432,
     3036     110,   879,   115,   112,    66,  1395,   112,   112,   186,   187,
     3037     112,  1132,   112,   112,  1302,   112,  1503,   112,   110,   110,
     3038    1553,    83,   947,  1413,   112,   112,   109,   109,   111,   109,
     3039     109,   809,   210,    60,   467,   118,   119,   110,   110,   472,
     3040     114,   117,   132,  1394,   222,   112,   112,   480,  1438,   110,
     3041      96,   484,   112,   110,    96,   488,   118,     3,   491,   109,
     3042     493,  1438,   109,   115,    10,    11,    12,    13,    14,  1010,
     3043     110,   112,  1462,   132,   252,   110,   110,  1462,   110,  1469,
     3044     513,  1471,    42,  1473,  1469,   116,   110,   117,   266,   132,
     3045     110,    96,    96,    39,   132,   528,   132,  1218,   531,   161,
     3046     533,   534,   110,  1528,  1528,  1528,   132,  1048,   117,   110,
     3047     132,   110,   110,  1503,   132,   115,   112,   112,  1508,  1240,
     3048    1510,    67,   109,  1048,  1462,   132,   115,   115,   110,   110,
     3049     132,  1469,  1522,   110,   110,  1064,   562,  1522,  1528,  1529,
     3050     563,   565,   564,  1222,  1491,  1381,  1529,  1563,  1538,   582,
     3051     328,   685,   566,  1312,  1128,  1340,   589,  1469,   917,  1079,
     3052     222,   685,   685,  1553,  1098,    66,   698,   600,   925,   602,
     3053    1553,   349,   978,  1051,  1462,    76,   871,  1538,   649,   944,
     3054    1240,  1469,   582,   723,  1522,   484,   570,   733,   621,   570,
     3055      72,   570,    74,    75,    76,    -1,   879,    -1,   260,    -1,
     3056      -1,    83,    84,   265,   637,    -1,    -1,    -1,    -1,    -1,
     3057     643,    -1,    -1,    -1,  1335,    -1,    -1,   118,    -1,   652,
     3058      -1,   654,   655,   656,    -1,    -1,    -1,   109,   406,   111,
     3059      -1,    -1,  1010,    -1,  1522,   117,   118,   119,    -1,    -1,
     3060      -1,  1201,  1202,    -1,  1204,     0,     1,    -1,    -1,    -1,
     3061      -1,  1211,    -1,  1213,    -1,   688,    -1,    -1,  1199,   692,
     3062     161,   694,    -1,    -1,   947,   698,    -1,    10,    11,    12,
     3063      13,    14,    -1,   706,  1199,  1200,    -1,    32,    -1,    -1,
     3064      -1,  1222,     3,    -1,    -1,    -1,   719,   720,   350,    10,
     3065      11,    12,    13,    14,    49,    -1,    39,  1222,    -1,    -1,
     3066     733,    72,    -1,    74,    75,    76,   484,    -1,    -1,    -1,
     3067     488,    -1,    83,    84,    69,  1240,    -1,  1438,    39,    -1,
     3068      -1,   222,    -1,    -1,    67,    -1,    -1,    -1,  1394,    72,
     3069      -1,    74,    75,    76,    -1,     0,    -1,    -1,   109,    -1,
     3070      83,    84,    -1,    -1,  1222,    -1,    67,   118,   119,    -1,
     3071    1471,   106,  1473,    -1,    -1,    -1,  1297,    -1,    -1,   260,
     3072      -1,  1302,    55,    -1,   265,  1048,   109,    32,   111,   431,
     3073      -1,    -1,  1297,    -1,    -1,   118,   119,  1302,    -1,   280,
     3074      -1,    -1,    -1,   816,    -1,    -1,    -1,  1508,    -1,  1510,
     3075     924,    -1,    -1,   148,    -1,   828,    72,    -1,    74,    75,
     3076      76,   156,   157,    -1,    69,    98,    -1,    83,    84,    -1,
     3077    1335,   473,    -1,    -1,    -1,  1375,    -1,  1538,    -1,    -1,
     3078       3,  1199,   600,    -1,   602,    -1,    -1,    10,    11,    12,
     3079      13,    14,   187,   109,    -1,   111,    -1,    -1,   871,    -1,
     3080    1318,    -1,   118,   119,    -1,   878,    -1,   202,    -1,   350,
     3081     205,   206,    -1,    -1,   464,   210,    39,    -1,    -1,    72,
     3082      -1,    74,    75,    76,    -1,    -1,    -1,    -1,   901,    -1,
     3083      83,    84,   464,    -1,    -1,    -1,   231,   910,    -1,   912,
     3084     235,    -1,   237,    -1,    67,    -1,   919,    -1,    -1,    -1,
     3085      -1,   246,   157,    -1,    -1,  1373,   109,   252,  1376,    -1,
     3086      -1,   194,   257,    -1,    -1,   118,   119,    -1,    -1,   942,
     3087     688,    -1,   267,  1438,    -1,    -1,    -1,  1200,    -1,  1297,
     3088     275,  1462,    -1,    -1,   217,    -1,    -1,    -1,  1469,   962,
     3089     431,    -1,   594,    -1,   227,    -1,    -1,  1462,    -1,  1222,
     3090      -1,   719,   720,  1421,  1469,   978,    -1,   448,  1426,    -1,
     3091      -1,    -1,    -1,   986,  1088,    -1,   989,  1240,   991,    -1,
     3092     622,    -1,    -1,    -1,    -1,   627,   231,    -1,    -1,    -1,
     3093      -1,    -1,   473,    -1,    -1,    -1,    -1,    -1,  1456,    -1,
     3094      -1,  1522,    -1,    -1,    -1,    -1,   341,   252,    -1,    -1,
     3095     345,    -1,   257,    -1,    -1,    -1,   351,  1522,    -1,    -1,
     3096      -1,    -1,   295,    -1,    -1,    -1,    -1,    -1,  1041,   364,
     3097      -1,    -1,    -1,   368,    -1,    -1,   371,    -1,    -1,  1302,
     3098      -1,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    72,
     3099      -1,    74,    75,    76,    -1,    -1,    -1,   699,   816,    -1,
     3100      83,    84,    -1,    -1,    -1,    -1,  1079,    -1,    -1,    -1,
     3101     828,   713,  1335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3102    1093,   671,    -1,   418,  1542,  1098,   109,     0,   111,    -1,
     3103    1548,    -1,    -1,    -1,    -1,   118,   119,    -1,   433,   671,
     3104      -1,  1559,  1115,   438,    -1,  1563,   351,    -1,    -1,    -1,
     3105      -1,   446,    -1,   594,    99,    -1,   101,    -1,    -1,    32,
     3106      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,   464,
     3107      -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3108      -1,   622,    -1,    -1,    -1,    -1,   627,   482,    -1,   484,
     3109      39,    -1,   910,    -1,   912,    -1,    69,   492,    -1,    -1,
     3110      -1,   496,    -1,    -1,    -1,    -1,    -1,   809,    -1,    -1,
     3111     443,    -1,    -1,   418,    -1,  1438,    -1,     0,    67,    -1,
     3112      -1,    -1,  1195,    72,   942,    74,    75,    76,   433,    -1,
     3113     525,   526,    -1,   438,    83,    84,   469,   182,    -1,  1462,
     3114      -1,   446,    -1,   793,    -1,  1218,  1469,   192,   193,    32,
     3115      -1,    -1,   197,   803,   199,   200,    -1,    -1,   699,   464,
     3116     109,   793,   111,    -1,    -1,    -1,    -1,   817,    -1,   118,
     3117     119,   803,   713,   506,    -1,    -1,   571,   482,   511,   484,
     3118      -1,   514,    -1,    -1,   157,   817,    69,    -1,  1261,  1262,
     3119    1263,    -1,   733,    -1,   589,   590,    -1,    -1,    -1,  1522,
     3120      -1,    -1,    10,    11,    12,    13,    14,   602,    -1,    -1,
     3121      -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3122      -1,   526,    -1,    -1,    -1,   620,    -1,   190,    -1,    -1,
     3123     625,    39,    -1,    -1,   197,    -1,   631,    -1,    -1,   634,
     3124     635,   636,    -1,    -1,    39,    -1,  1319,    -1,    97,    98,
     3125      99,   100,   101,   102,   103,   104,   105,   106,   653,    67,
     3126      -1,    -1,    -1,    -1,    -1,    -1,    -1,   696,   809,    -1,
     3127      -1,    -1,    67,    -1,   157,  1093,   671,    72,    -1,   252,
     3128    1098,    76,   131,    -1,   257,   590,    -1,   682,    83,    84,
     3129      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1471,    -1,  1473,
     3130      -1,   109,    -1,   111,    -1,    -1,   269,    -1,  1010,    -1,
     3131     118,   119,    -1,   708,   109,    -1,   711,    -1,    -1,    -1,
     3132      -1,  1394,  1395,   118,   119,   720,    -1,    -1,   723,   634,
     3133     635,   636,  1405,  1406,  1508,    -1,  1510,   670,    -1,    -1,
     3134      -1,    -1,    -1,    -1,    -1,    -1,   679,    -1,   653,    -1,
     3135     683,    -1,   747,   748,    -1,    -1,    -1,    -1,   753,    -1,
     3136     323,   790,    -1,    -1,    -1,    -1,   671,    -1,   331,   252,
     3137    1443,   334,    -1,    -1,   257,  1025,  1026,   682,   351,    -1,
     3138      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
     3139      -1,    -1,    -1,  1025,  1026,    -1,    -1,    -1,   793,    -1,
     3140      -1,    -1,    -1,   708,    -1,    -1,   711,    -1,   803,    -1,
     3141     805,    -1,   807,    39,    -1,   810,    -1,   812,   813,    -1,
     3142      -1,    -1,   817,    -1,    10,    11,    12,    13,    14,    -1,
     3143    1503,  1504,   827,  1083,  1084,   398,    -1,    -1,   867,   402,
     3144    1513,    67,    -1,   748,    -1,   418,    72,    -1,    74,    75,
     3145      76,  1083,  1084,    39,    -1,  1528,  1529,    83,    84,    -1,
     3146     433,    -1,    -1,    -1,    -1,   438,    -1,    -1,   351,  1010,
     3147      -1,    -1,    -1,   446,    -1,    -1,    -1,    -1,     1,    -1,
     3148    1553,    67,   911,   109,   879,   111,    -1,    -1,   793,    -1,
     3149      -1,   464,   118,   119,    -1,    -1,    -1,  1199,   803,    -1,
     3150     805,    -1,    -1,    -1,    -1,   810,   901,    -1,   813,   482,
     3151      -1,   484,   817,   908,   909,    -1,   479,   912,    -1,    -1,
     3152      -1,    -1,    -1,   109,    -1,   111,    -1,   956,    -1,   574,
     3153     575,    -1,   118,   119,    -1,   418,    72,    -1,    74,    75,
     3154      76,    -1,    -1,   938,    -1,    -1,    -1,    83,    84,    -1,
     3155     433,   946,   947,   526,   671,   438,    -1,    -1,   603,    -1,
     3156      -1,   606,   607,   446,   609,   994,   611,   612,    -1,   964,
     3157     903,   616,   617,   109,   879,   111,    -1,    -1,    -1,    -1,
     3158      -1,   464,   118,   119,  1234,    -1,    -1,    -1,    -1,    -1,
     3159      -1,    -1,    -1,    -1,    -1,  1297,    -1,    -1,    -1,   482,
     3160      -1,   484,  1234,    -1,   909,    -1,    -1,   570,   571,     0,
     3161       1,    -1,  1007,    -1,    -1,    -1,  1045,   590,    -1,  1269,
     3162      -1,    -1,    -1,    -1,    -1,  1020,    -1,  1277,  1278,  1279,
     3163    1025,  1026,    -1,  1028,  1029,    -1,    -1,  1269,    -1,    -1,
     3164      -1,    32,    -1,   526,    -1,  1277,  1278,  1279,    -1,    -1,
     3165      -1,    -1,    -1,  1048,    -1,    -1,    -1,    -1,  1199,   964,
     3166      -1,   634,   635,   636,    -1,    -1,    -1,    -1,    -1,    -1,
     3167      -1,    -1,    -1,    -1,    -1,    66,   793,    -1,    69,    -1,
     3168     653,    -1,    -1,    -1,    -1,    -1,   803,    -1,  1083,  1084,
     3169      -1,    -1,    -1,  1343,    -1,   658,  1125,    -1,   671,   662,
     3170     817,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,   682,
     3171    1528,  1343,   757,   758,    -1,    -1,    -1,    -1,    -1,    -1,
     3172    1025,  1026,    -1,  1028,  1029,    -1,  1059,    -1,    -1,    -1,
     3173     253,    -1,    -1,    -1,    -1,   708,    -1,  1132,   711,    -1,
     3174      -1,    -1,    -1,  1048,    -1,    -1,    -1,    -1,    -1,    -1,
     3175      -1,   634,   635,   636,    -1,    -1,  1297,    -1,    -1,  1188,
     3176    1189,    -1,  1157,    -1,     0,    -1,   157,    -1,    -1,    -1,
     3177     653,    -1,    -1,    -1,    -1,   748,    -1,    -1,  1083,  1084,
     3178      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,    10,
     3179      11,    12,    13,    14,    -1,    -1,    32,    -1,    -1,   682,
     3180      -1,    -1,    -1,    -1,    -1,  1200,    -1,    -1,    -1,    -1,
     3181      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
     3182     793,    -1,    -1,  1218,    -1,   708,    -1,  1222,   711,    -1,
     3183     803,   222,   805,    69,   797,    -1,    -1,   810,    -1,  1234,
     3184     813,  1236,    -1,    -1,   817,  1240,    67,    -1,    -1,    -1,
     3185      -1,    72,  1157,    74,    75,    76,    -1,    -1,    -1,    -1,
     3186      -1,   252,    83,    84,    -1,   748,    -1,    -1,    -1,    -1,
     3187      -1,    -1,    -1,    -1,  1269,    -1,   921,    -1,    -1,    -1,
     3188      -1,    -1,  1277,  1278,  1279,    -1,    -1,    -1,   109,    -1,
     3189      -1,    -1,    -1,  1288,  1289,  1200,    -1,   118,   119,    -1,
     3190      -1,    -1,    -1,    -1,    -1,    -1,   879,  1302,  1025,  1026,
     3191     793,    -1,    -1,    -1,    -1,    -1,    -1,  1222,    -1,    -1,
     3192     803,   157,   805,    -1,    -1,    -1,    -1,   810,    -1,  1234,
     3193     813,  1236,    -1,    -1,   817,    -1,   909,    -1,    -1,    -1,
     3194    1335,    -1,    -1,    -1,   467,    -1,    -1,    -1,  1343,    -1,
     3195      -1,    -1,    -1,   916,    -1,    -1,    -1,    -1,    -1,    -1,
     3196      -1,    -1,    -1,    -1,  1269,    -1,  1083,  1084,    -1,    -1,
     3197    1399,    -1,  1277,  1278,  1279,    -1,    -1,    -1,  1311,    -1,
     3198      -1,    -1,    -1,  1288,  1289,    -1,    -1,    -1,  1417,    -1,
     3199     513,   964,    -1,    -1,    -1,    -1,   879,  1302,    -1,    -1,
     3200      -1,    -1,    -1,    -1,    -1,   528,    -1,    -1,   531,    -1,
     3201     533,   534,    -1,    -1,    -1,    -1,   252,    -1,  1413,    -1,
     3202      -1,   257,    26,    27,    28,    -1,   909,    -1,    -1,    -1,
     3203      -1,    -1,    -1,   996,    -1,    -1,    -1,    -1,  1343,    -1,
     3204    1085,    -1,   433,  1438,    -1,    -1,    -1,    -1,    -1,    -1,
     3205    1013,    -1,  1025,  1026,    -1,  1028,  1029,    -1,    -1,   582,
     3206      -1,  1490,  1491,    -1,    53,    -1,    55,  1462,    -1,    58,
     3207      59,    60,    -1,    62,  1469,  1048,    -1,    -1,    -1,    -1,
     3208      -1,   964,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,
     3209      -1,    -1,    -1,   484,    -1,    99,    -1,   101,    -1,    -1,
     3210      89,    90,    -1,    -1,    -1,    -1,    -1,    -1,  1413,    -1,
     3211    1083,  1084,    -1,    -1,    -1,   351,    -1,    -1,    -1,    -1,
     3212      -1,    -1,   126,    -1,    -1,    -1,    -1,  1522,  1091,    -1,
     3213      -1,   654,    -1,   656,  1529,   526,    -1,  1470,    -1,  1472,
     3214      -1,    -1,  1025,  1026,    -1,  1028,  1029,    -1,    -1,    -1,
     3215      -1,    -1,  1269,    -1,    -1,    -1,    -1,  1462,    -1,    -1,
     3216    1277,  1278,  1279,    -1,  1469,  1048,    -1,    -1,    -1,    -1,
     3217    1133,    -1,  1217,    -1,  1507,    -1,  1509,    -1,   182,    -1,
     3218      -1,    -1,   418,   706,  1157,    -1,   190,    -1,   192,   193,
     3219      -1,    -1,    -1,   197,    -1,   199,   200,   433,    -1,   590,
     3220    1083,  1084,   438,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3221     446,    -1,    -1,    -1,    -1,    -1,    -1,  1522,    -1,  1552,
     3222      -1,  1554,    -1,    -1,    -1,    -1,  1343,  1200,   464,    10,
     3223      11,    12,    13,    14,  1567,  1568,    -1,    -1,    -1,    -1,
     3224      -1,    -1,    -1,   634,   635,   636,   482,    -1,   484,  1222,
     3225      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
     3226      -1,  1234,   653,  1236,    -1,   269,    -1,    -1,    10,    11,
     3227      12,    13,    14,    -1,  1157,    -1,    -1,    -1,    -1,    -1,
     3228      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3229     526,    72,    -1,    74,    75,    76,  1269,    39,    -1,    -1,
     3230      -1,    -1,    83,    84,  1277,  1278,  1279,    -1,    -1,    -1,
     3231      -1,    -1,    -1,    -1,    -1,  1288,  1289,  1200,    -1,    -1,
     3232     711,    -1,    -1,    -1,    -1,    67,    -1,    -1,   109,  1302,
     3233      72,    -1,    -1,    -1,    76,    -1,    -1,   118,   119,  1222,
     3234      -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3235      -1,  1234,    -1,  1236,   590,   344,    -1,   346,    -1,    -1,
     3236      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   357,   358,
     3237    1343,    -1,    -1,    -1,    -1,    -1,   118,   119,    -1,    -1,
     3238      -1,    -1,    -1,    -1,    -1,    -1,  1269,    -1,    -1,    -1,
     3239      -1,    -1,    -1,    -1,  1277,  1278,  1279,    -1,   634,   635,
     3240     636,    -1,    -1,    -1,    -1,  1288,  1289,    -1,    -1,    -1,
     3241      -1,    -1,    -1,    -1,   805,    -1,    -1,   653,    -1,  1302,
     3242      -1,    -1,   813,    -1,    -1,     7,    -1,    -1,    10,    11,
     3243      12,    13,    14,    -1,    -1,   671,    -1,    -1,    -1,   962,
     3244    1413,    -1,    -1,    -1,    -1,    -1,   682,    -1,    -1,    -1,
     3245      -1,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     3246    1343,    -1,    -1,   986,    -1,    -1,   989,    -1,   991,    -1,
     3247      -1,    -1,   708,    -1,    -1,   711,    -1,    -1,    -1,    -1,
     3248      -1,    -1,    -1,    -1,    66,    67,    -1,    -1,   879,  1462,
     3249      72,    -1,    -1,    -1,    76,    -1,  1469,    79,    80,    81,
     3250      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3251      -1,    -1,   748,    -1,    -1,    -1,    -1,    -1,  1041,    -1,
     3252      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3253    1413,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,
     3254     122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1522,
     3255      -1,    -1,    -1,    -1,    -1,    -1,   947,   793,    -1,    -1,
     3256      -1,    -1,    -1,    -1,    -1,    -1,    -1,   803,    -1,   805,
     3257     574,   575,    -1,   964,   810,    -1,    -1,   813,    -1,  1462,
     3258      -1,   817,    37,    38,    -1,    40,  1469,    -1,    -1,    -1,
     3259      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   603,
     3260      -1,    -1,   606,   607,    -1,   609,    -1,   611,   612,    -1,
     3261      -1,    66,   616,   617,    -1,    -1,    -1,    72,    -1,    74,
     3262      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3263      -1,    86,    87,    -1,    -1,    -1,    -1,  1028,  1029,  1522,
     3264      -1,    -1,    -1,   879,    -1,    -1,    -1,    -1,    -1,    -1,
     3265      -1,    -1,    -1,    -1,   109,    -1,   111,  1048,   113,   114,
     3266      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
     3267      -1,    -1,    -1,   909,    -1,    -1,    -1,    -1,    -1,     3,
     3268       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3269      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3270      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3271      -1,   700,    -1,   702,    -1,    39,    -1,    -1,    -1,    -1,
     3272     709,   710,    -1,    -1,    -1,   714,    -1,    -1,   964,    -1,
     3273      -1,    -1,    -1,    -1,    -1,    -1,    -1,   726,  1261,  1262,
     3274    1263,    -1,   731,    67,    -1,    69,    -1,    71,    72,    -1,
     3275      74,    75,    76,   757,   758,    -1,    -1,    -1,    -1,    83,
     3276      84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3277      -1,    -1,   761,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3278      -1,    40,    -1,    -1,    -1,   109,    -1,   111,    -1,  1025,
     3279    1026,    -1,  1028,  1029,   118,   119,  1319,    -1,    -1,    -1,
     3280      -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,  1199,  1200,
     3281      -1,    -1,  1048,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3282      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3283      -1,  1222,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3284      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1083,  1084,  1240,
     3285     109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,
     3286     119,   120,   121,   122,   123,    -1,    -1,    49,    -1,    -1,
     3287      -1,    -1,   861,   862,   863,   864,    -1,   866,    -1,    -1,
     3288      -1,    -1,  1405,  1406,    66,    -1,    -1,    -1,    -1,    -1,
     3289      -1,    -1,    -1,   882,    -1,    -1,    -1,  1288,  1289,    -1,
     3290      -1,    -1,    -1,    -1,    -1,    -1,  1297,   896,    -1,    -1,
     3291      -1,  1302,   916,    -1,    -1,    -1,    -1,   921,    -1,    -1,
     3292    1443,  1157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3293      -1,    -1,   114,    -1,    -1,    -1,   118,    -1,    -1,    -1,
     3294      -1,    -1,    -1,    -1,  1335,    -1,    -1,   936,    -1,    -1,
     3295      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3296      -1,    -1,    -1,    -1,  1200,   147,    -1,    -1,    -1,    -1,
     3297      -1,    -1,    -1,    -1,    -1,   157,    -1,    -1,    -1,   161,
     3298      -1,  1504,    -1,    -1,    -1,    -1,  1222,    -1,    -1,    -1,
     3299    1513,    -1,    -1,    -1,   983,    -1,    -1,    -1,  1234,    -1,
     3300    1236,   990,    -1,    -1,    -1,    -1,   995,    -1,    -1,    -1,
     3301      -1,  1000,    -1,  1002,    -1,    -1,    -1,  1006,    -1,  1008,
     3302    1009,    -1,  1413,  1012,    -1,    -1,    -1,    -1,   210,    -1,
     3303      -1,    -1,  1021,  1269,    -1,    -1,    -1,    -1,    -1,    -1,
     3304     222,  1277,  1278,  1279,    -1,    -1,    -1,  1438,    -1,    -1,
     3305    1039,  1040,  1288,  1289,    -1,    -1,    -1,    -1,   240,    -1,
     3306      -1,    -1,    -1,    -1,    -1,    -1,  1302,    -1,    -1,    -1,
     3307      -1,  1462,    -1,    -1,    -1,    -1,    -1,  1066,  1469,    -1,
     3308    1069,  1085,    -1,   265,    -1,    -1,    -1,    -1,    -1,    -1,
     3309     272,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3310      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1343,    -1,    -1,
     3311      -1,    -1,    -1,   295,    -1,    -1,    -1,    -1,    -1,    -1,
     3312      -1,    -1,    -1,  1112,    -1,   307,    -1,    -1,    -1,  1118,
     3313    1119,  1522,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3314      -1,  1130,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3315      -1,  1140,    -1,    -1,  1143,    -1,  1145,    -1,    -1,  1148,
     3316      -1,    -1,    -1,   345,    -1,    -1,    -1,    -1,   350,    -1,
     3317      -1,    -1,  1161,    -1,    -1,    -1,    -1,  1413,    -1,    -1,
     3318      -1,    -1,    -1,    -1,    -1,  1174,    -1,  1176,  1177,  1178,
     3319    1179,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3320      -1,    -1,    -1,  1192,    -1,  1194,    -1,    -1,    -1,  1198,
     3321      -1,    -1,    -1,  1217,    -1,    66,    -1,    -1,    -1,    -1,
     3322      -1,    -1,    -1,    -1,    -1,    76,  1462,    78,    -1,    80,
     3323      -1,    -1,    -1,  1469,    -1,    -1,    87,    -1,  1227,  1228,
     3324      -1,    -1,    -1,    -1,   426,   427,    -1,    -1,    -1,    -1,
     3325      -1,   433,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,   120,
     3327     121,   122,   454,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3328      -1,    -1,    -1,    -1,    -1,    -1,  1522,    -1,    -1,    -1,
     3329      -1,  1280,  1281,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3330     482,  1290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3331     161,    -1,   494,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3332      -1,    -1,    -1,    -1,   506,    -1,   508,    -1,    -1,   511,
     3333      -1,   513,   514,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3334      -1,    -1,    -1,    -1,   526,    -1,    -1,    -1,    -1,    -1,
     3335      -1,    -1,  1341,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3336      -1,    -1,    -1,    -1,    -1,  1354,    -1,  1356,  1357,  1358,
     3337      -1,   222,    -1,   224,   225,   226,    -1,    -1,    -1,  1368,
     3338      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1377,    -1,
     3339      -1,    -1,    -1,    -1,    -1,    -1,   578,    -1,    -1,    -1,
     3340      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   590,   260,
     3341      -1,    -1,   594,    -1,   265,  1404,    -1,    -1,    -1,    -1,
     3342      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   280,
     3343      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   620,    -1,
     3344      -1,    -1,    -1,   625,    -1,    -1,    -1,    -1,    -1,    -1,
     3345      -1,    -1,   634,   635,   636,    -1,    -1,    -1,    -1,    -1,
     3346    1449,  1450,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3347      -1,   653,    -1,  1462,    -1,    -1,    -1,   328,    -1,    -1,
     3348    1469,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,
     3349      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,
     3350      -1,    -1,    -1,   685,   355,   356,    -1,    -1,    -1,    -1,
     3351      -1,    -1,   363,  1502,    -1,    -1,    -1,  1506,    -1,    -1,
     3352      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   711,
     3353       7,   713,    92,    10,    11,    12,    13,    14,    -1,    -1,
     3354      -1,    -1,   102,    -1,    -1,    -1,  1535,    -1,  1537,    -1,
     3355      -1,    -1,    -1,    -1,    -1,   406,    -1,    -1,    -1,    -1,
     3356      37,    38,    39,    40,    -1,    -1,   748,    -1,    -1,    -1,
     3357      -1,    -1,    -1,   424,    -1,    -1,  1565,  1566,   429,    -1,
     3358     431,    -1,    -1,    -1,  1573,  1574,    -1,    -1,    -1,    66,
     3359      67,    -1,    -1,    -1,    -1,    72,    -1,   448,   158,    76,
     3360     451,   452,    79,    80,    81,    82,    83,    84,   459,    86,
     3361      87,    -1,   172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3362      -1,    -1,   473,   805,    -1,    -1,    -1,   809,    -1,   480,
     3363      -1,   813,   109,    -1,   111,   195,    -1,    -1,    -1,    -1,
     3364      -1,   118,   119,   120,   121,   122,   123,    -1,    -1,   209,
     3365      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   218,    -1,
     3366      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,
     3367      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,
     3368      38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3369      -1,    -1,    -1,   253,    -1,    -1,    -1,    -1,   258,    -1,
     3370      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
     3371      -1,   271,    -1,    -1,    72,    -1,    -1,   277,    76,   279,
     3372      -1,    79,    80,    81,    82,    83,    84,   909,    86,    87,
     3373      -1,    -1,    -1,    -1,    -1,    -1,   296,    -1,    -1,    -1,
     3374      -1,    -1,   924,   594,    -1,    -1,    -1,    -1,    -1,    -1,
     3375      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3376     118,   119,   120,   121,   122,   123,   948,    -1,    -1,    -1,
     3377      -1,   622,    -1,    -1,    -1,    -1,   627,    -1,   338,    -1,
     3378      -1,    -1,   964,   343,    -1,    -1,     3,     4,     5,     6,
     3379       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3380      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3381      27,    -1,   372,    30,    31,    32,   376,   377,    -1,   379,
     3382      -1,    -1,    39,    -1,    -1,  1007,   386,   387,    -1,   389,
     3383     390,    -1,   392,    -1,   394,    -1,    -1,    -1,    -1,    -1,
     3384      -1,    -1,    -1,    -1,    -1,    -1,  1028,  1029,   699,    -1,
     3385      67,   411,    69,    -1,    71,    -1,    -1,    74,    75,   419,
     3386      -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3387      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3388      37,    38,   733,    40,   444,    -1,    -1,    -1,    -1,    -1,
     3389      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3390      -1,   118,   119,    -1,    -1,    -1,  1088,    -1,    -1,    66,
     3391     470,    -1,    -1,    -1,    -1,    72,   476,    -1,    -1,    76,
     3392      -1,   481,    79,    80,    81,    82,    83,    84,    -1,    86,
     3393      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3394      -1,    -1,    -1,    -1,    -1,    -1,   797,    -1,    -1,    -1,
     3395      -1,    -1,   109,    -1,   111,    -1,    -1,   517,   809,   116,
     3396      -1,   118,   119,   120,   121,   122,   123,    -1,    -1,    -1,
     3397      -1,    -1,   532,    -1,    -1,  1157,     0,   828,    -1,     3,
     3398       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3399      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3400      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
     3401     570,    -1,    36,    -1,    -1,    39,    40,  1199,    -1,   579,
     3402      -1,   156,   157,    -1,    -1,    -1,   586,    -1,    37,    38,
     3403      -1,    40,   592,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3404      64,   601,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
     3405      74,    75,    76,    -1,  1236,   190,    -1,    66,    -1,    83,
     3406      84,    -1,   197,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3407      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3408      -1,    -1,   642,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3409      -1,   942,    -1,    -1,   118,   119,    -1,    -1,    -1,    -1,
     3410     109,    -1,   111,    -1,    -1,   114,  1288,  1289,    -1,   118,
     3411     119,   120,   121,   122,   123,  1297,    -1,    -1,   678,    -1,
     3412      -1,    -1,    -1,   974,    -1,    -1,   686,    -1,    -1,    -1,
     3413      -1,    -1,    -1,    -1,   269,    10,    11,    12,    13,    14,
     3414      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3415      25,    26,    27,    28,    -1,    -1,    -1,   717,    -1,  1010,
     3416      -1,    -1,    -1,    -1,    39,    -1,    -1,   727,   728,    -1,
     3417    1021,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
     3418      -1,   741,    -1,    -1,   147,    -1,    -1,    -1,   323,    -1,
     3419      -1,    -1,    67,    -1,   157,    -1,   331,   332,    -1,   334,
     3420     335,    -1,   762,    78,   764,    66,   169,   170,   768,    -1,
     3421     345,    72,    -1,    -1,   349,    76,    -1,    -1,    79,    80,
     3422      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3423      -1,  1413,    -1,   368,    -1,    -1,   371,    -1,    -1,    -1,
     3424      -1,    -1,  1093,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3425     111,    -1,    -1,    -1,    -1,    -1,  1107,   118,   119,   120,
     3426     121,   122,   123,   398,    -1,    -1,    -1,   402,    -1,    -1,
     3427      -1,    -1,   832,    -1,    -1,    -1,    -1,   240,    -1,   839,
     3428      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1471,
     3429      -1,  1473,   852,    -1,   854,    -1,    -1,    -1,   433,    -1,
     3430      -1,   264,    -1,    -1,    -1,    -1,    -1,    -1,   868,    -1,
     3431      -1,    -1,    -1,    -1,    -1,   875,    -1,    -1,    -1,    -1,
     3432      -1,    -1,    -1,    -1,    -1,    -1,  1508,   887,  1510,    -1,
     3433     890,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3434      -1,    -1,    -1,    -1,   479,    -1,    -1,   482,  1199,    -1,
     3435      -1,    -1,    -1,    -1,    -1,    -1,  1538,     4,     5,     6,
     3436       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3437      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3438      27,    -1,    -1,    30,    31,    32,   521,    -1,    -1,    -1,
     3439     525,   526,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3440      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   969,
     3441      -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,
     3442      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3443      -1,    -1,    -1,    -1,    -1,   570,   571,    -1,    -1,    -1,
     3444      -1,    -1,    -1,    -1,    -1,  1005,  1297,    -1,    -1,    -1,
     3445      -1,    -1,    -1,    -1,   589,   590,    -1,    -1,    -1,    -1,
     3446      -1,    -1,    -1,   110,   111,   600,    -1,   602,   603,    -1,
     3447      -1,   118,   119,    -1,   609,    -1,    -1,    -1,    -1,    -1,
     3448      -1,    -1,    -1,    -1,   619,   620,    -1,    -1,    -1,    -1,
     3449     625,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   634,
     3450     635,   636,    -1,  1063,    -1,    -1,    -1,    -1,    -1,  1069,
     3451      -1,   474,    -1,    -1,    -1,    -1,    -1,    -1,   653,    -1,
     3452      -1,    -1,    -1,   658,   659,    -1,    -1,   662,   663,    -1,
     3453      -1,    -1,    -1,    -1,   669,    -1,    -1,    -1,    -1,    -1,
     3454      -1,    -1,    -1,  1103,    -1,    -1,    -1,    -1,  1108,    -1,
     3455     513,    -1,    -1,   688,    -1,    -1,  1116,    -1,    -1,    -1,
     3456      -1,    -1,    -1,   526,    -1,    -1,    -1,    -1,   531,    -1,
     3457      -1,   534,    -1,    -1,    -1,    -1,   711,   712,    -1,    -1,
     3458      -1,    -1,    -1,   546,    -1,    -1,    -1,    -1,    -1,    -1,
     3459      -1,    -1,  1152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3460      -1,    -1,    -1,    -1,  1164,   568,    -1,  1167,    -1,  1169,
     3461      -1,    -1,   747,   748,    -1,   578,    -1,   752,   753,    -1,
     3462      -1,    -1,   585,  1183,  1184,    -1,    -1,   590,    -1,    -1,
     3463      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3464      -1,    -1,    -1,    -1,    -1,  1205,    -1,    -1,    -1,    -1,
     3465      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3466      -1,    -1,   797,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3467     805,    -1,    -1,    -1,    -1,    -1,   639,   812,   813,    -1,
     3468      -1,   816,    -1,   818,    -1,   648,    -1,    -1,    -1,    -1,
     3469      -1,    -1,    -1,   828,  1254,    -1,    -1,    -1,    -1,    -1,
     3470      -1,    -1,  1553,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3471      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3472      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3473      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3474      31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,    -1,
     3475      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3476      -1,    -1,    -1,    -1,    -1,    -1,   901,    -1,    -1,    -1,
     3477    1330,    -1,  1332,   908,   909,   910,    67,   912,    69,    -1,
     3478      71,   916,    -1,    74,    75,   748,  1346,   750,  1348,    -1,
     3479      -1,    -1,    -1,    -1,    -1,    -1,    -1,   760,    -1,    -1,
     3480      -1,    -1,   937,   938,   767,    -1,  1366,    -1,    -1,    -1,
     3481      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3482     111,    -1,  1382,  1383,    -1,    -1,    -1,   118,   119,   964,
     3483      -1,    -1,    -1,  1393,    -1,    -1,  1396,    -1,    -1,   974,
     3484      -1,    -1,    -1,    -1,    -1,    -1,   809,   810,    -1,    -1,
     3485     813,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1419,
     3486      -1,   996,   997,    -1,   827,    -1,    -1,    -1,  1428,    -1,
     3487      -1,  1431,  1007,  1433,  1434,  1435,    -1,    -1,  1013,  1014,
     3488      -1,  1016,  1017,  1018,    -1,    -1,    -1,    -1,    -1,   283,
     3489      -1,   285,   286,  1028,  1029,    37,    38,    -1,    40,   293,
     3490     294,    -1,    -1,    -1,   867,    -1,    -1,    -1,   871,    -1,
     3491      -1,    -1,    -1,   307,   308,  1475,    -1,  1477,    -1,  1479,
     3492      -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     3493      72,    -1,    -1,    -1,    76,  1495,    -1,    79,    80,    81,
     3494      82,    83,    84,    -1,    86,    87,   909,    -1,    -1,    -1,
     3495      -1,   345,    -1,    -1,    -1,    -1,  1091,    -1,  1093,    -1,
     3496      -1,    -1,    -1,  1098,    -1,    -1,    -1,   109,    -1,   111,
     3497      -1,    -1,  1107,    -1,    -1,    -1,   118,   119,   120,   121,
     3498     122,   123,    -1,    -1,    -1,   948,    -1,   381,    -1,    -1,
     3499      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1132,  1133,  1134,
     3500      -1,   964,   965,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3501      -1,    -1,    -1,    -1,    -1,   978,    -1,    -1,    -1,    -1,
     3502      -1,   984,  1157,    -1,   987,    -1,   989,    -1,    10,    11,
    29133503      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2914       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2915        0,     0,     0,     0,     0,    31,     0,   284,   285,     0,
    2916      286,  1051,     0,  1052,  1419,  1420,  1053,  1054,  1055,  1056,
    2917     1057,  1058,  1059,  1060,     0,     0,  1549,  1061,     0,     0,
    2918        0,  1062,  1063,    34,    33,    35,   287,    36,     0,     0,
    2919       38,    39,  1064,     0,     0,     0,   289,     0,     0,   290,
    2920      291,   292,   293,    41,    42,     0,   294,   295,     0,     0,
    2921        0,     0,  1327,     0,    43,     0,     0,     0,     0,     0,
    2922        0,     0,     0,     0,     0,     0,     0,     0,     0,   296,
    2923        0,   380,     0,     0,   173,     0,     0,     0,    46,    47,
    2924      298,   299,   300,   301,     0,     0,   284,   285,  1066,   286,
    2925     1051,     0,  1052,  1419,  1420,  1053,  1054,  1055,  1056,  1057,
    2926     1058,  1059,  1060,     0,     0,     0,  1061,     0,     0,     0,
    2927     1062,  1063,     0,    33,     0,   287,     0,     0,     0,     0,
    2928        0,  1064,     0,     0,     0,   289,     0,     0,   290,   291,
    2929      292,   293,    41,    42,     0,   294,   295,     0,     0,     0,
    2930        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
    2931        0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
    2932      380,     0,     0,   173,     0,     0,     0,    46,    47,   298,
    2933      299,   300,   301,     0,     0,   284,   285,  1066,   286,  1051,
    2934        0,  1052,     0,     0,  1053,  1054,  1055,  1056,  1057,  1058,
    2935     1059,  1060,     0,     0,     0,  1061,     0,     0,     0,  1062,
    2936     1063,     0,    33,     0,   287,     0,     0,     0,     0,     0,
    2937     1064,     0,     0,     0,   289,     0,     0,   290,   291,   292,
    2938      293,    41,    42,     0,   294,   295,     0,     0,     0,     0,
    2939        0,     0,    43,   284,   285,     0,   286,     0,     0,     0,
    2940        0,     0,     0,     0,     0,     0,     0,   296,     0,   380,
    2941        0,     0,   173,     0,     0,     0,    46,    47,   298,   299,
    2942      300,   301,   287,     0,     0,     0,  1066,     0,   641,     0,
    2943      141,   142,   289,     0,     0,   290,   642,   292,   293,    41,
    2944       42,     0,   294,   295,     0,     0,     0,     0,     0,     0,
    2945       43,   284,   285,     0,   286,     0,     0,     0,     0,     0,
    2946        0,     0,     0,     0,     0,   296,     0,   643,     0,   644,
    2947      381,     0,     0,     0,    46,    47,   298,   299,   300,   301,
    2948      287,     0,     0,     0,     0,     0,   288,     0,     0,     0,
    2949      289,     0,     0,   290,   291,   292,   293,    41,    42,     0,
    2950      294,   295,     0,     0,     0,     0,     0,     0,    43,   284,
    2951      285,     0,   286,     0,     0,     0,     0,     0,     0,     0,
    2952        0,     0,     0,   296,     0,   380,     0,     0,   284,   285,
    2953        0,   286,   710,    47,   298,   299,   300,   301,   287,     0,
    2954        0,     0,     0,     0,   641,     0,     0,     0,   289,     0,
    2955        0,   290,   291,   292,   293,    41,    42,   287,   294,   295,
    2956        0,     0,     0,   288,     0,     0,    43,   289,     0,     0,
    2957      290,   291,   292,   293,    41,    42,     0,   294,   295,     0,
    2958        0,   296,     0,   765,     0,    43,   284,   285,     0,   286,
    2959       46,    47,   298,   299,   300,   301,     0,     0,     0,     0,
    2960      296,     0,   380,     0,     0,   284,   285,     0,   286,   345,
    2961       47,   298,   299,   300,   301,   287,     0,     0,     0,     0,
    2962        0,   288,     0,     0,     0,   289,     0,     0,   290,   291,
    2963      292,   293,    41,    42,   287,   294,   295,     0,     0,     0,
    2964      288,     0,     0,    43,   289,     0,     0,   290,   291,   292,
    2965      293,    41,    42,     0,   294,   295,     0,     0,   512,     0,
    2966        0,     0,    43,     0,     0,     0,     0,    46,    47,   298,
    2967      299,   300,   301,     0,     0,     0,     0,   515,     0,     0,
    2968        0,     0,     0,     0,     0,     0,    46,    47,   298,   299,
    2969      300,   301,     2,   208,     4,     5,     6,     7,     8,     9,
    2970       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2971       20,    21,    22,    23,    24,    25,     0,     0,     0,     0,
    2972        0,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    2973        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2974        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2975        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2976       37,     0,   176,   177,    40,     0,     0,     0,     0,     0,
    2977        0,    41,    42,   207,     2,   208,     4,     5,     6,     7,
    2978        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2979       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2980       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2981        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2982        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2983        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2984        0,    36,     0,     0,   209,    39,   468,     2,   208,     4,
     3504      22,    23,    24,    25,    26,    27,    28,  1010,    30,    31,
     3505      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,  1021,    -1,
     3506      37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
     3507      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3508    1043,    -1,  1045,  1218,    -1,    67,    -1,    -1,    -1,    66,
     3509      -1,    -1,    74,    75,    -1,    72,    78,  1060,  1061,    76,
     3510      -1,  1236,    79,    80,    81,    82,    83,    84,    -1,    86,
     3511      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1081,    -1,
     3512      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3513      -1,    -1,   109,    -1,   111,    -1,   118,   119,    -1,    -1,
     3514      -1,   118,   119,   120,   121,   122,   123,    -1,    -1,    -1,
     3515      -1,    -1,    -1,  1288,  1289,   549,   550,   551,   552,   553,
     3516     554,   555,   556,   557,   558,   559,   560,   561,   562,   563,
     3517     564,   565,   566,    -1,    -1,  1138,    -1,    -1,    -1,    -1,
     3518      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3519      -1,    -1,    -1,    -1,  1157,    -1,    -1,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1172,
     3521    1173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3522      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
    29853523       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    29863524      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2987       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2988        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2989        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2990        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2991       34,     0,    35,     0,    36,     0,     0,    38,    39,     2,
    2992      208,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2993       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2994       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2995        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2996        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2997        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2998        0,     0,    34,     0,    35,     0,    36,     0,     0,   209,
    2999       39
    3000 };
    3001 
    3002 #define yypact_value_is_default(yystate) \
    3003   ((yystate) == (-1414))
    3004 
    3005 #define yytable_value_is_error(yytable_value) \
    3006   YYID (0)
    3007 
    3008 static const yytype_int16 yycheck[] =
    3009 {
    3010        0,     1,    44,   187,   187,   535,   187,     0,    44,   753,
    3011      187,    44,   206,   241,   648,   187,   522,   753,   188,   881,
    3012        1,   753,   107,   221,   118,   187,   187,   514,   621,   170,
    3013      171,   350,    32,     0,   986,   760,     0,   189,   603,    32,
    3014      350,   601,   601,   493,    44,   188,   281,   497,    44,   993,
    3015       50,    39,  1337,   604,    44,  1419,   603,    50,    44,   610,
    3016      601,   572,    51,    32,    64,    32,    72,    67,    32,    82,
    3017       70,    64,   157,   601,    67,    95,  1050,    70,    39,   346,
    3018      419,    44,    45,   267,   267,  1031,   267,   694,   601,    70,
    3019      267,    63,   107,   601,    50,   267,   296,   110,   268,  1043,
    3020      439,  1062,  1063,   601,   117,   267,   267,   107,   447,   203,
    3021      130,   263,   264,  1526,    39,   115,   131,    82,   118,   119,
    3022      109,   109,    67,   111,    39,   268,   132,    64,   483,  1493,
    3023       72,  1030,  1031,  1546,    39,    44,    45,    39,   365,    84,
    3024     1553,   735,   369,   636,   637,   187,   427,   428,   148,   149,
    3025      111,   187,   115,   881,   187,  1440,   149,   157,   158,   115,
    3026      132,   654,   162,   635,   636,   637,     0,   258,   912,   162,
    3027      489,    28,   109,    39,   119,    82,   912,     0,     1,  1140,
    3028      912,   112,   654,   689,   109,   116,   111,   187,   188,    72,
    3029      132,   187,   148,   110,   109,   188,   111,   187,    32,   116,
    3030        0,   187,    82,   203,   109,   114,   111,   720,    82,    32,
    3031      117,   211,   720,   411,   495,    96,   483,   162,   211,   712,
    3032       82,    78,   720,   223,     0,   267,    58,   427,   428,   109,
    3033      223,   267,    32,   514,   267,   118,   110,   407,   115,   116,
    3034      712,   241,   123,   109,    67,   111,    85,    70,   109,   111,
    3035      111,   109,    67,   253,   131,   211,    32,   342,   818,   818,
    3036      253,   261,   109,  1423,   407,   830,   266,   267,   268,   820,
    3037        1,   996,   283,   273,   113,   268,   108,   818,   223,   111,
    3038      635,   636,   637,   830,   253,   241,   253,   372,   799,   253,
    3039      818,    67,  1238,   603,     0,     1,   296,   931,   579,   654,
    3040      907,    11,  1254,   397,   119,   818,     1,   507,   308,   116,
    3041      818,   481,   512,   109,   807,   515,   261,   273,   491,    50,
    3042      818,   266,  1050,  1475,   324,   132,    32,   109,   419,   329,
    3043     1304,   425,    44,    45,   230,   807,   329,   431,   481,   112,
    3044       80,   112,   342,   116,   683,  1291,   346,   162,   439,   131,
    3045      350,   351,   308,   249,   621,    82,   447,   712,  1510,   626,
    3046     1512,  1521,  1224,   590,    70,   365,  1526,   116,   568,   369,
    3047      697,   111,   372,   113,    96,   940,   107,   117,   110,   939,
    3048      939,   110,   109,   132,   115,   117,  1546,   116,   220,   110,
    3049      346,  1290,  1291,  1553,   749,  1526,   117,   397,   939,   131,
    3050      223,   123,   114,    90,    91,   632,   351,   407,   223,    10,
    3051       11,    12,    13,    14,   407,   114,  1009,   148,   116,   253,
    3052       94,     0,  1553,    80,   258,   425,   157,   427,   428,  1125,
    3053      253,   431,   605,  1129,   434,   109,   609,   111,    39,   126,
    3054      127,   526,   274,   116,   118,   119,   261,   223,   129,   281,
    3055      131,   266,   807,   253,   111,   455,   113,   630,   258,   132,
    3056      117,   634,   116,  1407,  1408,  1059,    67,  1018,  1019,  1415,
    3057      976,   427,   428,   473,     3,   112,   207,   253,   132,   116,
    3058      211,   481,   749,   483,   116,   485,   697,   432,   481,   489,
    3059     1464,    72,   485,     0,   505,   495,  1224,  1471,   948,   734,
    3060      132,   116,    83,    84,   991,  1139,   658,   507,   649,   509,
    3061      241,   830,   512,     3,   514,   515,  1415,   349,   485,   689,
    3062      830,   485,   522,     0,   116,    32,   526,   527,   110,   474,
    3063      111,   109,   116,   111,   366,   117,   351,    44,   370,   495,
    3064      132,    72,   273,    50,  1109,   276,   689,   253,   132,    94,
    3065     1524,   112,    83,    84,   116,   116,   911,    64,   514,   254,
    3066       67,  1496,   656,    70,   109,   296,   111,  1502,   116,   109,
    3067      132,   571,   572,   118,   119,   351,  1304,   308,   131,   579,
    3068      111,   792,   809,    94,   132,   419,   913,   814,  1523,  1095,
    3069      590,   591,   683,  1528,  1100,   595,   116,   917,   109,   919,
    3070      111,   601,   110,   603,   116,   439,   116,   118,   119,   110,
    3071      110,   342,   132,   447,   116,   346,   116,   432,   709,   419,
    3072      132,   621,   132,   579,   116,   944,   626,   591,   628,   112,
    3073      132,   958,   632,   116,   365,   635,   636,   637,   369,   439,
    3074      132,   372,   149,   109,   911,   111,   110,   447,   112,   483,
    3075      595,   485,   116,   109,   654,   162,   656,   668,   869,   474,
    3076      110,    72,   485,   748,   109,   621,   116,   131,   132,   867,
    3077      626,   110,    83,    84,    50,  1030,   903,   116,   623,   852,
    3078      187,   188,    72,   628,   109,   485,   686,   109,   110,   689,
    3079      888,   120,   121,    83,    84,   110,   427,   428,   474,    71,
    3080      111,   116,   913,    75,   211,   109,    78,   111,    80,   485,
    3081     1304,   118,   712,   713,   714,    87,   223,   124,   125,   109,
    3082      720,   721,   950,   109,   455,   111,   109,   738,   912,   912,
    3083      109,   912,   873,    88,    89,   912,  1464,   468,   109,   115,
    3084      912,   110,  1009,  1471,   914,   110,   253,   958,   748,   749,
    3085      912,   912,   110,   753,   754,   700,    72,   110,    74,    75,
    3086      267,   112,   493,    72,   495,   109,   497,    83,    84,   714,
    3087      109,   914,   945,   468,    83,    84,   507,    72,   509,   485,
    3088      595,   512,   115,   514,   515,   996,  1530,  1381,    83,    84,
    3089      622,  1321,   115,   116,  1530,   526,  1524,   110,  1530,   799,
    3090     1127,   109,   111,   116,  1159,   132,   638,   807,   623,   809,
    3091      110,   811,    64,   628,   814,   815,   116,   110,   818,   514,
    3092      109,   653,   329,   116,   507,   910,   509,   110,  1022,   512,
    3093      830,   109,   515,   116,   529,   211,  1047,   532,   112,   534,
    3094      535,   132,   214,   350,    85,    86,    87,   623,   579,   683,
    3095       72,   815,    74,    75,   110,   557,   558,   559,   560,   590,
    3096      116,    83,    84,  1190,  1191,   110,   811,   109,   109,   111,
    3097      111,   116,   113,   114,  1468,   709,  1470,   114,   110,   114,
    3098      110,   881,   132,   683,   116,   700,   116,   110,   583,   111,
    3099      621,   109,  1159,   116,   109,   626,   111,   273,   132,   714,
    3100      407,   632,   734,   903,  1045,   465,   109,  1134,   111,   709,
    3101      910,   911,   912,   110,   914,   749,  1127,   881,   114,   116,
    3102      296,   110,   110,   110,   700,  1095,   926,   116,   116,   116,
    3103     1100,  1525,   308,    82,   109,  1290,   111,   109,   714,   939,
    3104      940,    85,    86,    87,   944,   109,   110,   111,   109,   949,
    3105      950,    82,  1095,    92,    93,   686,   112,  1100,     0,     1,
    3106      655,   119,   657,   116,   117,   109,   966,   111,   949,   113,
    3107      114,  1238,   129,    72,   110,   111,   976,    76,   485,  1190,
    3108     1191,   353,   489,   355,    83,    84,   128,    29,    30,   465,
    3109       32,    58,    59,   724,   950,    94,   811,   115,   116,  1505,
    3110      116,   117,    44,  1203,  1204,    94,  1206,   131,    50,  1009,
    3111      109,   111,   707,  1213,   109,  1215,    58,   748,   109,   118,
    3112      119,   114,    64,  1117,   112,    67,   116,   117,    70,   112,
    3113     1030,  1031,   109,   110,   111,   811,     4,     5,     6,     7,
    3114        8,     9,    84,    85,   109,   110,   111,   881,   112,  1555,
    3115     1050,    44,    45,  1009,   109,   110,   111,   110,   881,    10,
    3116       11,    12,    13,    14,   553,   554,   108,  1012,   109,   111,
    3117       30,   443,   110,   110,  1401,   110,   118,   911,   809,   455,
    3118      110,   881,   110,   814,   555,   556,  1050,   112,    39,   111,
    3119     1090,   131,  1419,   116,   601,  1095,   603,    58,    59,    60,
    3120     1100,    69,   114,    71,   114,   881,   109,   149,   112,  1109,
    3121      561,   562,   672,   110,  1125,   157,    67,  1117,  1129,  1130,
    3122      162,  1263,  1264,  1265,    84,    85,   949,   110,   112,   117,
    3123      112,   507,   112,   509,  1134,  1220,   512,   112,   117,   515,
    3124        3,   117,   116,    94,    29,   187,   188,    10,    11,    12,
    3125       13,    14,   110,   110,   116,   114,   112,   112,   109,  1159,
    3126      111,   203,   115,   110,   132,  1492,  1493,   118,   119,   211,
    3127      115,   115,   903,   109,   116,   881,    39,  1377,   220,   910,
    3128      110,   223,   689,   132,   110,   110,   117,   110,   230,   110,
    3129     1401,   110,   116,   110,   110,   926,   672,  1012,   110,   110,
    3130      110,  1201,  1202,   245,    67,   110,   110,   249,  1419,   110,
    3131      110,   253,   254,   720,   721,   110,  1050,   948,   949,   950,
    3132     1220,  1202,   110,   110,  1224,   267,   268,  1050,   110,    72,
    3133       29,   115,   274,    76,   131,   795,  1012,  1248,  1238,   281,
    3134       83,    84,  1242,   949,   117,   805,    72,   116,    74,    75,
    3135     1050,    94,    72,   110,    74,    75,  1201,    83,    84,   819,
    3136     1224,  1242,   112,    83,    84,   112,   109,   116,   111,   964,
    3137      110,   110,   110,   117,  1050,   118,   119,   112,  1009,   116,
    3138      114,  1492,  1493,   109,   116,   245,   110,   329,   114,   109,
    3139     1290,  1291,   110,   988,   114,   110,   991,   110,   993,  1299,
    3140      112,   110,   116,  1397,  1304,   116,     3,   349,   350,   110,
    3141      686,   818,  1540,    10,    11,    12,    13,    14,   112,   795,
    3142      109,   109,   109,   830,   366,  1159,   109,  1338,   370,   805,
    3143      109,  1342,   117,   115,   112,   132,   110,  1337,   110,   381,
    3144     1304,   110,    39,   819,  1050,   115,  1530,  1530,  1043,  1530,
    3145      115,   114,   129,  1530,  1299,   397,  1337,   112,  1530,  1090,
    3146      110,  1531,   116,   112,   132,   407,   112,   110,  1530,  1530,
    3147       67,     4,     5,     6,     7,     8,     9,   116,  1201,  1202,
    3148      110,   110,    47,   425,   112,  1555,  1201,   112,  1531,   431,
    3149     1224,   433,   112,   110,   112,   132,   112,  1397,   112,   132,
    3150       33,  1224,   115,  1134,  1238,   912,    72,   914,    74,    75,
    3151       76,  1505,  1555,   132,   110,  1415,   115,    83,    84,  1242,
    3152      132,   381,   132,   117,  1224,  1201,   468,   110,   112,   115,
    3153      112,   473,   112,  1444,   112,    56,    69,   944,    71,   481,
    3154     1440,   112,   112,   485,   112,   112,   110,   489,  1224,   110,
    3155      492,   109,   494,   881,    72,   112,    74,    75,    76,  1440,
    3156      112,   109,   109,    60,  1464,    83,    84,  1027,  1028,   110,
    3157     1304,  1471,   514,  1473,   110,  1475,  1299,   114,    99,   132,
    3158      112,  1304,   117,   112,  1299,   110,   112,   529,  1530,  1220,
    3159      532,   109,   534,   535,  1530,   110,  1202,  1530,    96,   109,
    3160     1464,    96,   109,   115,  1304,  1505,   112,  1471,   132,   110,
    3161     1510,  1242,  1512,   116,  1337,    42,   110,   110,  1224,   110,
    3162      110,   117,   110,  1299,  1524,  1085,  1086,   132,  1304,    96,
    3163     1530,  1531,   492,   132,   494,     3,  1242,    96,  1531,   110,
    3164     1540,   583,    10,    11,    12,    13,    14,   132,   590,   132,
    3165      926,  1027,  1028,   117,    72,  1555,   110,     0,    76,   601,
    3166     1524,   603,  1555,   286,  1396,    83,    84,   132,  1263,  1264,
    3167     1265,    39,   110,   110,   195,   115,    94,   112,   112,   132,
    3168      622,   109,   132,   115,  1540,   308,   309,   110,  1095,    32,
    3169      115,   109,    72,  1100,    74,    75,   638,   218,  1304,    67,
    3170      118,   119,   644,    83,    84,   110,  1337,   228,   132,  1085,
    3171     1086,   653,   110,   655,   656,   657,   110,  1440,  1066,   565,
    3172      563,  1224,  1493,   346,   564,  1053,  1321,    70,   566,  1383,
    3173     1464,  1337,   567,  1565,   114,  1314,  1130,  1471,  1342,  1081,
    3174     1471,  1464,   686,   686,   919,  1100,   927,   689,  1471,   699,
    3175      583,   693,   980,   695,   873,   650,   724,   699,   946,   382,
    3176       50,   734,  1242,   485,  1464,   707,    -1,    26,    27,    28,
    3177       -1,  1471,   571,   571,    64,   296,  1236,    67,   720,   721,
    3178       70,   571,    -1,    -1,   644,    -1,    -1,    -1,  1464,    -1,
    3179     1524,    -1,   734,    -1,    -1,  1471,    72,    -1,    74,    75,
    3180       76,  1524,    -1,    58,    -1,     0,     1,    83,    84,  1440,
    3181       -1,  1271,  1407,  1408,  1090,   158,    -1,    -1,    -1,  1279,
    3182     1280,  1281,    -1,    -1,  1524,     4,     5,     6,     7,     8,
    3183        9,    -1,    -1,   693,  1440,   695,    -1,    32,    -1,   699,
    3184       -1,   100,  1473,   102,  1475,    -1,    -1,    -1,  1524,    -1,
    3185     1445,    -1,    -1,   108,    -1,    50,   111,    -1,  1464,   149,
    3186     1236,    67,    -1,    -1,    -1,  1471,   191,    -1,    -1,    -1,
    3187       -1,    77,   162,   198,    -1,    70,   818,    -1,    -1,  1510,
    3188       -1,  1512,    -1,    -1,    -1,  1345,    -1,    -1,   830,   232,
    3189       69,    -1,    71,    -1,    -1,  1271,  1224,    -1,   188,    -1,
    3190       -1,    -1,   157,  1279,  1280,  1281,    -1,    -1,    -1,  1540,
    3191      253,  1506,   107,   119,    -1,   258,    -1,    -1,  1524,    -1,
    3192     1515,   211,    -1,   444,   183,    -1,    -1,   550,   551,   552,
    3193       -1,   873,    -1,   223,   193,   194,    -1,    -1,   880,   198,
    3194       -1,   200,   201,    -1,    -1,   270,    -1,    -1,    72,   470,
    3195       74,    75,    76,    -1,   149,    -1,   162,    -1,    -1,    83,
    3196       84,   903,   157,   158,    -1,   220,    -1,    -1,    -1,  1345,
    3197      912,    -1,   914,    -1,    -1,    -1,    -1,    -1,    72,   921,
    3198       74,    75,    76,    -1,    -1,   109,   507,    -1,    -1,    83,
    3199       84,   512,  1320,   188,   515,    -1,    -1,    -1,    -1,   324,
    3200       94,    -1,   944,    -1,    -1,    -1,    -1,   332,   203,   352,
    3201      335,   206,   207,   873,    -1,   109,   211,   223,    -1,   274,
    3202      880,    -1,   964,    -1,   118,   119,   281,    -1,    -1,    -1,
    3203       -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,   980,   329,
    3204       -1,   236,    -1,   238,    -1,    -1,   988,  1375,    -1,   991,
    3205     1378,   993,   247,    -1,    -1,   261,    -1,    -1,   253,    -1,
    3206      266,   921,    -1,   258,    -1,    -1,    -1,    -1,   672,    -1,
    3207       -1,    -1,    -1,   268,   399,   281,   419,    -1,   403,    -1,
    3208       -1,   276,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    3209       -1,   434,    -1,    -1,   349,  1423,   439,    -1,    -1,    -1,
    3210     1428,  1043,    -1,    -1,   447,    10,    11,    12,    13,    14,
    3211       -1,   366,    -1,    39,    -1,   370,    -1,   407,    -1,    -1,
    3212      980,    -1,   465,  1530,    -1,    -1,    -1,    -1,    -1,    -1,
    3213     1458,    -1,    -1,    -1,    39,    -1,    -1,   760,    -1,  1081,
    3214      483,    67,   485,    -1,    -1,   351,    -1,   342,    -1,    -1,
    3215      671,   346,    -1,  1095,    -1,   480,    -1,   352,  1100,   680,
    3216       -1,    -1,    67,   684,    -1,    -1,    -1,    -1,    94,    -1,
    3217      365,    -1,    -1,    -1,   369,  1117,    -1,   372,   433,    -1,
    3218       -1,    -1,    -1,   109,   527,   111,    -1,    -1,    -1,    94,
    3219       -1,   795,   118,   119,    -1,    -1,    -1,  1473,    -1,  1475,
    3220       -1,   805,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3221       -1,    -1,    -1,   118,   119,   819,  1544,    -1,    -1,    -1,
    3222       -1,  1081,  1550,    -1,   419,    -1,   432,    -1,    -1,    -1,
    3223       -1,    -1,    -1,  1561,  1510,    -1,  1512,  1565,    72,   434,
    3224       74,    75,    76,   449,   439,    -1,   571,   572,   591,    83,
    3225       84,    -1,   447,    -1,    72,  1197,    74,    75,    76,    -1,
    3226       94,    -1,    -1,     0,    -1,    83,    84,    -1,   474,    -1,
    3227      465,    -1,    -1,   468,    -1,   109,    94,   111,  1220,    -1,
    3228       -1,    -1,    -1,   117,   118,   119,    -1,    -1,   483,    -1,
    3229      485,   109,   635,   636,   637,    32,    -1,    -1,   493,    -1,
    3230      118,   119,   497,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3231       -1,   654,    -1,    -1,    -1,    -1,   575,   576,    -1,    -1,
    3232       -1,  1263,  1264,  1265,    -1,    -1,    -1,    -1,    -1,   672,
    3233       -1,   526,   527,    70,   659,   590,    -1,  1197,   663,    -1,
    3234      683,    -1,    -1,    -1,    -1,   604,    -1,    -1,   607,   608,
    3235       -1,   610,    -1,   612,   613,    -1,    -1,    -1,   617,   618,
    3236       -1,    -1,    -1,    -1,    -1,    -1,   709,   622,    -1,   712,
    3237       -1,    -1,    -1,    -1,    -1,    -1,    -1,   572,     0,  1321,
    3238       -1,    -1,    -1,   638,   905,    -1,  1009,    -1,    -1,   595,
    3239       -1,    -1,    -1,    -1,    -1,   590,   591,    -1,   653,    -1,
    3240       -1,    -1,    -1,     0,     1,    -1,   749,    -1,   603,    -1,
    3241       32,    -1,    -1,    -1,    -1,    -1,    -1,   623,    -1,    -1,
    3242       -1,   158,   628,  1027,  1028,    -1,   621,  1050,    -1,    -1,
    3243       -1,   626,    -1,    -1,    -1,    32,    -1,   632,    -1,    -1,
    3244      635,   636,   637,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3245       -1,    -1,   795,    -1,  1396,  1397,    -1,    -1,    -1,   654,
    3246       -1,    -1,   805,    -1,   807,  1407,  1408,    -1,    -1,   812,
    3247       67,    -1,   815,    70,   799,    -1,   819,   672,    -1,   734,
    3248       -1,  1085,  1086,    -1,    -1,    -1,    -1,    -1,   683,    -1,
    3249       -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,   758,
    3250      759,    -1,    -1,  1445,    -1,    -1,    -1,    -1,   714,    -1,
    3251       -1,    -1,    -1,    -1,   709,    -1,   253,   712,    -1,    -1,
    3252       -1,   258,    -1,    -1,    -1,    -1,   721,    -1,   734,   724,
    3253       72,    -1,    74,    75,    76,    -1,   158,    -1,   881,    -1,
    3254     1061,    83,    84,    -1,    72,    -1,    74,    75,    76,    -1,
    3255       -1,    -1,    94,   748,   749,    83,    84,    -1,    -1,   754,
    3256       -1,   158,    -1,  1505,  1506,    -1,    94,   109,   911,   111,
    3257       -1,    -1,    -1,  1515,    -1,    -1,   118,   119,    -1,    -1,
    3258       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,  1530,  1531,
    3259      118,   119,    -1,   918,    -1,    -1,    -1,    -1,    -1,    -1,
    3260      795,    -1,    -1,    -1,    -1,   811,    -1,    -1,    -1,    -1,
    3261      805,    -1,   807,  1555,   809,   352,    -1,   812,    -1,   814,
    3262      815,    -1,    -1,   966,   819,    -1,   223,    -1,    -1,    -1,
    3263       -1,   253,    -1,    -1,   829,    -1,   258,    97,    98,    99,
    3264      100,   101,   102,   103,   104,   105,   106,    -1,   903,    -1,
    3265       -1,    -1,    -1,    -1,    -1,    -1,   253,    72,    -1,    74,
    3266       75,    76,    -1,    -1,   923,    -1,    -1,  1271,    83,    84,
    3267       -1,   131,    -1,   998,    -1,  1279,  1280,  1281,    -1,    94,
    3268       -1,    -1,   419,    -1,  1027,  1028,   881,  1030,  1031,    -1,
    3269     1015,    -1,    -1,    -1,   109,    -1,   111,   434,    -1,    -1,
    3270       -1,    -1,   439,   118,   119,    -1,    -1,  1050,   903,    -1,
    3271      447,    -1,    -1,    -1,    -1,   910,   911,    -1,    -1,   914,
    3272       -1,    10,    11,    12,    13,    14,    -1,    -1,   465,    -1,
    3273      352,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3274       -1,  1345,  1085,  1086,    -1,   940,   483,    -1,   485,    -1,
    3275       39,    -1,    -1,   948,   949,    -1,    -1,    -1,    -1,    -1,
    3276       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1093,    -1,
    3277       -1,   966,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3278       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3279      527,    -1,  1313,    -1,    83,    84,    -1,   419,    -1,    -1,
    3280       -1,    -1,    -1,    -1,    -1,    94,  1012,    -1,    -1,    -1,
    3281     1135,    -1,   434,    -1,  1009,    -1,  1159,   439,    -1,    -1,
    3282      109,    -1,   111,    -1,    -1,   447,    -1,  1022,  1087,   118,
    3283      119,    -1,  1027,  1028,    -1,  1030,  1031,   434,    -1,    -1,
    3284       -1,    -1,    -1,   465,    -1,    -1,    -1,    -1,    -1,    -1,
    3285       -1,    -1,    -1,    -1,   591,  1050,    -1,    -1,    -1,  1202,
    3286       -1,   483,    -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,
     3525      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
     3526      -1,    36,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3527      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1413,    -1,
     3528      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1252,
     3529      -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3530      75,    76,   696,    -1,    79,    80,    81,    82,    83,    84,
     3531      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32873532      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3288       -1,  1224,    -1,    -1,    -1,    -1,    -1,    -1,   485,    -1,
    3289     1085,  1086,    -1,  1236,    -1,  1238,    -1,    -1,   635,   636,
    3290      637,    -1,    -1,    -1,    -1,   527,    -1,    -1,    -1,    -1,
    3291       -1,    -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,    -1,
    3292       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1271,    -1,
    3293      527,    -1,    -1,    -1,     0,   672,  1279,  1280,  1281,  1134,
    3294       -1,    -1,    -1,    -1,    -1,    -1,   683,  1290,  1291,    -1,
    3295       -1,  1472,    -1,  1474,    -1,    -1,    -1,    -1,    -1,    -1,
    3296     1219,  1304,    -1,    -1,  1159,  1220,    32,    -1,    -1,   591,
    3297       -1,    -1,   709,    -1,    -1,   712,    -1,    -1,    -1,    -1,
    3298       10,    11,    12,    13,    14,    -1,    -1,    -1,  1509,    -1,
    3299     1511,    -1,    -1,    -1,   591,  1201,    -1,    -1,    -1,    -1,
    3300       -1,    -1,  1345,    -1,    70,    -1,    -1,  1202,    -1,    39,
    3301       -1,    -1,   749,   635,   636,   637,    -1,    -1,    -1,    -1,
    3302       -1,    -1,    -1,    -1,    -1,  1220,    -1,    -1,    -1,  1224,
    3303       -1,    -1,   654,  1554,    -1,  1556,    -1,    67,   635,   636,
    3304      637,  1236,    72,  1238,    74,    75,    76,  1242,  1569,  1570,
    3305      672,    -1,    -1,    83,    84,    -1,    -1,   654,   795,    -1,
    3306       -1,   683,    -1,    -1,    94,    -1,    -1,    -1,   805,    -1,
    3307      807,    -1,  1415,    -1,    -1,   812,  1271,    -1,   815,   109,
    3308       -1,   111,   819,    -1,  1279,  1280,  1281,   709,   118,   119,
    3309      712,    -1,   158,  1299,    -1,  1290,  1291,    -1,    -1,    -1,
    3310       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,  1304,
    3311       -1,    -1,    -1,    -1,    -1,   712,    -1,    -1,    -1,    -1,
    3312       -1,  1464,    -1,    -1,    -1,    -1,    -1,   749,  1471,    -1,
    3313       -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    3314       -1,  1396,  1337,    -1,   881,    -1,    -1,    -1,    -1,    -1,
    3315     1345,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3316       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3317       76,    -1,    -1,   795,   911,    -1,    -1,    83,    84,    -1,
    3318       -1,  1524,    -1,   805,    -1,   807,    -1,   253,    94,    -1,
    3319      812,    -1,   258,   815,    -1,    -1,    -1,   819,    -1,    -1,
    3320       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3321      807,    -1,   118,   119,    -1,    -1,    -1,    -1,   815,    -1,
    3322     1415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   966,
    3323       -1,    54,    -1,    56,    -1,    -1,    59,    60,    61,    -1,
    3324       63,    -1,    -1,    -1,    -1,  1440,    10,    11,    12,    13,
    3325       14,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,   881,
    3326       -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,  1464,
    3327       -1,    -1,    -1,    -1,    -1,    39,  1471,    10,    11,    12,
    3328       13,    14,    -1,    -1,   881,    -1,   352,    -1,    -1,   911,
    3329     1027,  1028,    -1,  1030,  1031,    -1,    -1,    -1,    -1,    -1,
    3330       -1,    -1,    -1,    67,    -1,    -1,    39,    -1,    72,    -1,
    3331       74,    75,    76,  1050,    -1,    -1,    -1,    -1,    -1,    83,
    3332       84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1524,
    3333       94,    -1,    -1,    -1,    67,    -1,  1531,    -1,    -1,    72,
    3334       -1,    74,    75,    76,   966,   109,    -1,    -1,  1085,  1086,
    3335       83,    84,   949,   419,   118,   119,    -1,    -1,    -1,    -1,
    3336       -1,    94,    -1,    10,    11,    12,    13,    14,   434,   966,
    3337       -1,    -1,    -1,   439,    -1,    -1,   109,    -1,    -1,    -1,
    3338       -1,   447,    -1,    -1,    -1,   118,   119,    -1,    -1,    -1,
    3339       -1,    -1,    39,    -1,    10,    11,    12,    13,    14,   465,
    3340       -1,    -1,    -1,    -1,    -1,  1027,  1028,    -1,  1030,  1031,
    3341       -1,    -1,    -1,    -1,    -1,    -1,    -1,   483,    -1,   485,
    3342       67,    -1,  1159,    39,    -1,    72,    -1,    -1,  1050,    76,
    3343       -1,    -1,    -1,  1030,  1031,    -1,    83,    84,    -1,    -1,
    3344       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3345       -1,    67,    -1,  1050,    -1,    -1,    72,    -1,    -1,    -1,
    3346       76,   527,   109,  1085,  1086,  1202,    -1,    83,    84,    -1,
    3347       -1,   118,   119,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    3348       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1224,    -1,    -1,
    3349       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,  1236,
    3350       -1,  1238,   118,   119,    10,    11,    12,    13,    14,    15,
    3351       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3352       26,    27,   345,    -1,   347,   591,    -1,    -1,    -1,    -1,
    3353       -1,    -1,    -1,    39,  1271,   358,   359,  1159,    -1,    -1,
    3354       -1,    -1,  1279,  1280,  1281,    -1,    -1,    -1,    -1,    -1,
    3355       -1,    -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,    -1,
    3356       -1,    67,    -1,    -1,    -1,    -1,    -1,  1304,    -1,   635,
    3357      636,   637,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3358     1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,
    3359       37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    3360       -1,    -1,  1224,    -1,  1201,  1202,   672,    -1,  1345,    -1,
    3361       -1,    -1,    -1,    -1,  1236,    -1,  1238,   683,    -1,    66,
    3362       -1,    -1,    -1,    -1,    -1,    72,    -1,  1224,    -1,    76,
    3363       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3364       87,    -1,    -1,   709,    -1,  1242,   712,    94,    -1,  1271,
    3365       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1279,  1280,  1281,
    3366       -1,    -1,   109,    -1,   111,    -1,    -1,   114,  1290,  1291,
    3367       -1,   118,   119,   120,   121,   122,   123,    -1,  1415,    -1,
    3368       -1,    -1,  1304,   749,    -1,    -1,    -1,    -1,    -1,    -1,
    3369       -1,    -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,    -1,
    3370       -1,    -1,  1299,    -1,    -1,    -1,    -1,  1304,    -1,    -1,
    3371       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3372       -1,    -1,    -1,  1345,    -1,    -1,    -1,  1464,    -1,   795,
    3373       -1,    -1,    -1,    -1,  1471,    -1,    -1,    -1,    -1,   805,
    3374     1337,   807,    -1,    -1,    -1,    -1,   812,    -1,    -1,   815,
    3375       -1,    -1,    -1,   819,    -1,    10,    11,    12,    13,    14,
    3376       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3377       25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
    3378       -1,    -1,    67,    -1,    39,    -1,    -1,  1524,    -1,    -1,
    3379       -1,    -1,    77,  1415,    79,    -1,    81,    -1,    -1,    -1,
    3380       -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,
    3381       -1,    -1,    67,    -1,    -1,   881,    -1,    72,  1415,    74,
    3382       75,    76,    -1,    78,    -1,    -1,    -1,    -1,    83,    84,
    3383       -1,    -1,    -1,    -1,   119,    -1,   121,   122,   123,    94,
    3384       -1,    -1,  1464,  1440,    -1,   911,    -1,    -1,    -1,  1471,
    3385       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    26,
    3386       27,    28,    -1,   118,   119,    -1,    -1,  1464,    -1,    -1,
    3387       -1,    -1,    37,    38,  1471,    40,    -1,   162,   701,    -1,
    3388      703,    -1,    -1,    -1,    -1,    -1,    -1,   710,   711,    -1,
    3389       -1,    -1,   715,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3390      966,    66,  1524,    50,   727,    -1,    -1,    72,    -1,   732,
    3391       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3392       67,    86,    87,    -1,    -1,    -1,    -1,  1524,    -1,    94,
    3393       -1,    -1,    -1,   100,    -1,   102,    -1,    -1,   223,   762,
    3394      225,   226,   227,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3395       -1,    -1,   117,   118,   119,   120,   121,   122,   123,    -1,
    3396      127,  1027,  1028,    -1,  1030,  1031,    -1,    -1,   115,    -1,
    3397       -1,    -1,   119,    -1,    -1,    -1,   261,    -1,    -1,    -1,
    3398       -1,   266,    -1,    -1,  1050,    -1,    -1,    -1,   284,    -1,
    3399      286,   287,    -1,    -1,    -1,    -1,   281,    -1,   294,   295,
    3400       -1,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3401       -1,   158,   308,   309,    -1,   162,   183,    -1,    -1,  1085,
    3402     1086,    -1,    -1,    -1,   191,    -1,   193,   194,    -1,    -1,
    3403       -1,   198,    -1,   200,   201,    -1,    -1,    -1,    -1,    -1,
    3404      863,   864,   865,   866,   329,   868,    -1,    -1,    -1,    -1,
    3405      346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3406       -1,   884,    -1,    -1,   211,    -1,   351,    -1,    -1,    -1,
    3407       -1,   356,   357,    -1,    -1,   898,   223,    -1,    -1,   364,
    3408       -1,    -1,    -1,    -1,    -1,    -1,   382,    -1,    -1,    -1,
    3409       -1,    -1,    -1,  1159,   241,    -1,    -1,    -1,    -1,    -1,
    3410       -1,    -1,    -1,   270,    -1,    -1,    -1,    -1,    -1,    -1,
    3411       -1,    -1,    -1,    -1,    -1,   938,    -1,    -1,    -1,   266,
    3412       -1,    -1,   407,    -1,    -1,    -1,   273,    -1,    -1,    -1,
    3413       -1,    -1,    -1,    -1,    -1,    -1,  1202,    -1,    -1,    -1,
    3414      425,    -1,    -1,    -1,    -1,   430,    -1,   432,    -1,   296,
    3415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1224,    -1,
    3416       -1,   308,   985,    -1,   449,    -1,    -1,   452,   453,   992,
    3417     1236,    -1,  1238,    -1,   997,   460,    -1,    -1,    -1,  1002,
    3418       -1,  1004,    -1,    -1,    -1,  1008,    -1,  1010,  1011,   474,
    3419       -1,  1014,    -1,    -1,    -1,    -1,   481,    -1,    -1,   346,
    3420     1023,    -1,    -1,    -1,   351,  1271,    -1,    -1,    -1,    -1,
    3421       -1,    -1,    -1,  1279,  1280,  1281,    -1,    -1,  1041,  1042,
    3422       -1,    -1,    -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,
    3423       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1304,    -1,
    3424       -1,    -1,    -1,    -1,    -1,  1068,    -1,    -1,  1071,    -1,
    3425       -1,    -1,    -1,    -1,   550,   551,   552,   553,   554,   555,
    3426      556,   557,   558,   559,   560,   561,   562,   563,   564,   565,
    3427      566,   567,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1345,
    3428      427,   428,    -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,
    3429       -1,  1114,    -1,    -1,    -1,    -1,    -1,  1120,  1121,    -1,
    3430       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   455,  1132,
    3431      595,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1142,
    3432       -1,    -1,  1145,    -1,  1147,    -1,    -1,  1150,    -1,    -1,
    3433       -1,    -1,    -1,    -1,    -1,    -1,   483,    -1,   623,    -1,
    3434     1163,    -1,    -1,   628,    -1,    -1,    -1,    -1,   495,  1415,
    3435       -1,    -1,    -1,  1176,    -1,  1178,  1179,  1180,  1181,    -1,
    3436      507,    -1,   509,    -1,    -1,   512,    -1,   514,   515,    -1,
    3437       -1,  1194,    -1,  1196,    -1,    -1,    -1,  1200,    -1,    -1,
    3438      527,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3439       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1464,    -1,
    3440       -1,   697,    -1,    -1,    -1,  1471,  1229,  1230,   575,   576,
    3441       -1,    -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,
    3442       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   714,
    3443       -1,    -1,   579,    -1,    -1,    -1,    -1,   604,    -1,    -1,
    3444      607,   608,    -1,   610,   591,   612,   613,    -1,   595,   734,
    3445      617,   618,    -1,    -1,    -1,    -1,    -1,    -1,  1524,  1282,
    3446     1283,    -1,    -1,    -1,   760,    -1,    -1,    -1,    -1,  1292,
    3447       -1,    -1,    -1,    -1,   621,    -1,    -1,    -1,    -1,   626,
    3448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   635,   636,
    3449      637,    -1,    -1,    -1,    -1,    -1,   792,    -1,    -1,     7,
    3450       -1,    -1,    10,    11,    12,    13,    14,   654,    -1,    -1,
    3451       -1,    -1,    -1,    -1,   799,    -1,    -1,    -1,    -1,    -1,
    3452     1343,    -1,    45,    -1,    -1,    -1,   811,    -1,    -1,    37,
    3453       38,    39,    40,  1356,    -1,  1358,  1359,  1360,    -1,   686,
    3454       -1,    -1,    -1,    -1,    -1,   830,    -1,  1370,    -1,    -1,
    3455       -1,    -1,    -1,    -1,    -1,    -1,  1379,    -1,    66,    67,
    3456       -1,    -1,    -1,    -1,    72,   712,    -1,   714,    76,    -1,
    3457       93,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3458      103,    -1,    -1,  1406,    -1,    -1,    94,    -1,    -1,    -1,
    3459       -1,   758,   759,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3460       -1,   109,   749,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3461      118,   119,   120,   121,   122,   123,    -1,   913,    -1,    -1,
    3462       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1451,  1452,
    3463       -1,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,    -1,
    3464       -1,  1464,    -1,    -1,    -1,    -1,    -1,    -1,  1471,    -1,
    3465      173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   944,
    3466      807,    -1,   958,    -1,   811,    -1,    -1,    -1,   815,    -1,
    3467       -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
    3468       -1,  1504,    -1,    -1,    -1,  1508,    -1,   210,    -1,    -1,
    3469       -1,   976,    -1,    -1,    -1,    -1,   219,    -1,    -1,    -1,
    3470      996,    -1,    -1,    -1,    -1,    -1,   229,    -1,    -1,    -1,
    3471       -1,    -1,    -1,  1009,  1537,    -1,  1539,    -1,    -1,    -1,
    3472       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,    -1,
    3473       -1,   254,    -1,    -1,    -1,    -1,   259,    -1,  1023,    -1,
    3474       -1,    -1,    -1,    -1,  1567,  1568,    -1,    -1,    -1,   272,
    3475       -1,   918,  1575,  1576,  1050,   278,   923,   280,    -1,    -1,
    3476       -1,    -1,    -1,    -1,   911,    -1,    -1,    -1,    -1,    -1,
    3477       -1,    -1,    -1,    -1,   297,    -1,    -1,    -1,    -1,   926,
    3478       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3479       -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
    3480       -1,    -1,    -1,   950,    -1,    -1,    -1,    -1,    -1,    -1,
    3481     1095,    -1,    -1,    -1,    -1,    -1,   339,    -1,    -1,   966,
    3482       -1,   344,    -1,    66,  1109,    -1,    -1,    -1,    -1,    72,
    3483       -1,  1127,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3484       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3485      373,    94,    -1,    -1,   377,   378,    -1,   380,    -1,    -1,
    3486       -1,    -1,  1009,    -1,   387,   388,   109,   390,   391,    -1,
    3487      393,    -1,   395,    -1,    -1,   118,   119,   120,   121,   122,
    3488      123,    -1,    -1,  1030,  1031,    -1,    -1,    -1,    -1,   412,
    3489       -1,    -1,    -1,    -1,  1190,  1191,    -1,   420,    -1,    -1,
    3490       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3491       -1,    -1,    -1,    -1,    -1,    -1,  1201,    -1,    -1,    -1,
    3492     1087,    -1,   445,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    -1,    -1,  1090,    -1,    -1,    -1,    -1,   471,    -1,
    3495       -1,    -1,    -1,    -1,   477,    -1,    -1,     0,    -1,   482,
    3496        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3497       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3498       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3499       33,    -1,    -1,    36,    -1,   518,    39,    40,    -1,    -1,
    3500       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3501      533,    -1,  1159,    -1,  1299,    -1,    -1,    -1,    -1,    -1,
    3502       -1,    64,    -1,    -1,    67,    -1,    69,    -1,    71,    72,
    3503       -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
    3504       83,    84,    -1,    -1,    -1,    -1,    -1,    -1,   571,    -1,
    3505       -1,    94,  1219,    -1,  1201,    -1,    -1,   580,    -1,   157,
    3506      158,    -1,    -1,    -1,   587,    -1,   109,    -1,   111,    -1,
    3507      593,    -1,    -1,    -1,    -1,   118,   119,    -1,    -1,   602,
    3508       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3509       -1,  1238,    -1,   191,    -1,    -1,    -1,    -1,    -1,    -1,
    3510      198,    -1,    -1,    -1,    -1,  1401,    -1,    -1,    -1,    -1,
    3511       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3512      643,    -1,    -1,  1419,    -1,    -1,    -1,    -1,    -1,    -1,
    3513       -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    3514       -1,    -1,    -1,  1290,  1291,    -1,    -1,    -1,    -1,    -1,
    3515       -1,    -1,  1299,    -1,    -1,    -1,   679,    -1,    -1,    -1,
    3516       66,    -1,    -1,    -1,   687,    -1,    72,    -1,    -1,    -1,
    3517       76,    -1,   270,    79,    80,    81,    82,    83,    84,    -1,
    3518       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    3519       -1,    -1,    -1,    -1,    -1,   718,  1492,  1493,    -1,    -1,
    3520       -1,    -1,    -1,   109,    -1,   728,   729,    -1,    -1,    -1,
    3521       -1,    -1,   118,   119,   120,   121,   122,   123,    -1,   742,
    3522       -1,    -1,    -1,    -1,    -1,    -1,   324,    -1,    -1,    -1,
    3523       -1,    -1,    -1,    -1,   332,   333,    -1,   335,   336,    -1,
    3524      763,    -1,   765,    -1,    -1,    -1,   769,    -1,   346,    -1,
    3525       -1,    -1,   350,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3526       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1415,    -1,
    3527     1555,   369,    -1,    -1,   372,    10,    11,    12,    13,    14,
    3528       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3529       25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
    3530       -1,   399,    -1,    -1,    39,   403,    -1,    -1,    -1,    -1,
    3531       -1,   834,    -1,    -1,    -1,    -1,    -1,    -1,   841,    -1,
    3532       -1,    -1,    -1,    -1,    -1,    -1,  1473,    -1,  1475,    -1,
    3533       -1,   854,    67,   856,    -1,    -1,   434,    72,    -1,    74,
    3534       75,    76,    -1,    78,    -1,    -1,    -1,   870,    83,    84,
    3535       -1,    -1,    -1,    -1,   877,    -1,    -1,    -1,    -1,    94,
    3536       -1,    -1,    -1,  1510,   148,  1512,   889,    -1,    -1,   892,
    3537       -1,    -1,    -1,    -1,   158,    -1,   111,    -1,    -1,    -1,
    3538       -1,    -1,   480,   118,   119,   483,   170,   171,    -1,    -1,
    3539       -1,    -1,    -1,  1540,     3,     4,     5,     6,     7,     8,
    3540        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3541       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3542       -1,    30,    31,    32,   522,    -1,    -1,    -1,   526,   527,
    3543       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3544       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   971,    -1,
    3545       -1,    -1,    -1,    -1,    -1,    -1,    -1,   241,    67,    -1,
    3546       69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
    3547       -1,    -1,    -1,   571,   572,    -1,    -1,    -1,    -1,    -1,
    3548       -1,   265,    -1,    -1,  1007,    94,    -1,    -1,    -1,    -1,
    3549       -1,    -1,   590,   591,    -1,    -1,    -1,    -1,    -1,    -1,
    3550       -1,    -1,   111,   601,    -1,   603,   604,    -1,    -1,   118,
    3551      119,    -1,   610,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3552       -1,    -1,   620,   621,    -1,    -1,    -1,    -1,   626,    -1,
    3553       -1,    -1,    -1,    -1,    -1,    -1,    -1,   635,   636,   637,
    3554       -1,    -1,  1065,    -1,    -1,    -1,    -1,    -1,  1071,    -1,
    3555       -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,    -1,    -1,
    3556       -1,   659,   660,    -1,    -1,   663,   664,    -1,    -1,    -1,
    3557       -1,    -1,   670,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3558       -1,    -1,  1105,    -1,    -1,    -1,    -1,  1110,    -1,    -1,
    3559       -1,   689,    -1,    -1,    -1,  1118,    -1,   381,    -1,    -1,
    3560       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3561       -1,    -1,    -1,    -1,   712,   713,    -1,    -1,    -1,    -1,
    3562       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3563       -1,  1154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3564       -1,    -1,    -1,  1166,    -1,    -1,  1169,    -1,  1171,    -1,
    3565      748,   749,    -1,    -1,    -1,   753,   754,    -1,    -1,    -1,
    3566       -1,    -1,  1185,  1186,    -1,    -1,    -1,    -1,    -1,    -1,
    3567       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3568       -1,    -1,    -1,    -1,  1207,    -1,    -1,    -1,    -1,    -1,
    3569       -1,   475,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
    3570       -1,   799,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   807,
    3571       -1,    -1,    -1,    -1,    -1,    -1,   814,   815,    -1,    -1,
    3572      818,    66,   820,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3573      514,    76,   830,  1256,    79,    80,    81,    82,    83,    84,
    3574       -1,    86,    87,   527,    -1,    -1,    -1,    -1,   532,    94,
    3575       -1,   535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3576       -1,    -1,   546,   547,   109,    -1,   111,    -1,    -1,    -1,
    3577       -1,   116,    -1,   118,   119,   120,   121,   122,   123,    -1,
    3578       -1,    -1,    -1,    -1,    -1,   569,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    -1,    -1,   579,    -1,    -1,    -1,    -1,
    3580       -1,    -1,   586,    -1,    -1,   903,    -1,   591,    -1,  1332,
    3581       -1,  1334,   910,   911,   912,    -1,   914,    -1,    -1,    -1,
    3582      918,    -1,    -1,    -1,    -1,  1348,    -1,  1350,    -1,    -1,
    3583       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3584       -1,   939,   940,    -1,    -1,  1368,    -1,    -1,    -1,    -1,
    3585       -1,    -1,    -1,    -1,    -1,    -1,   640,    -1,    -1,    -1,
    3586       -1,  1384,  1385,    -1,    -1,   649,    -1,    -1,   966,    -1,
    3587       -1,    -1,  1395,    -1,    -1,  1398,    -1,    -1,   976,    10,
    3588       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3589       21,    22,    23,    24,    25,    26,    27,    28,  1421,    -1,
    3590      998,   999,    -1,    -1,    -1,    -1,    -1,  1430,    39,    -1,
    3591     1433,  1009,  1435,  1436,  1437,    -1,    -1,  1015,  1016,    -1,
    3592     1018,  1019,  1020,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3593       -1,    -1,  1030,  1031,    -1,    -1,    67,    -1,    -1,    -1,
    3594       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,
    3595       -1,    -1,    -1,    -1,  1477,    -1,  1479,    -1,  1481,    -1,
    3596       -1,    -1,    -1,    -1,    -1,   749,    -1,   751,    -1,    -1,
    3597       -1,    -1,    -1,    -1,  1497,    -1,    -1,   761,    -1,    -1,
    3598       -1,    -1,    -1,    -1,   768,    -1,    -1,    -1,    -1,    -1,
    3599       -1,    -1,    -1,    -1,    -1,  1093,    -1,  1095,    -1,    -1,
    3600       -1,    -1,  1100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3601       -1,  1109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,
    3602       -1,    -1,    10,    11,    12,    13,    14,   811,   812,    -1,
    3603       -1,   815,    -1,    -1,    -1,    -1,  1134,  1135,  1136,    -1,
    3604       -1,    -1,    -1,    -1,    -1,   829,    -1,    -1,    -1,    37,
    3605       38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3606       -1,  1159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3607       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
    3608       -1,    -1,    -1,    -1,    72,   869,    -1,    -1,    76,   873,
    3609       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3610       -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
    3611       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3612       -1,   109,  1220,   111,    -1,    -1,    -1,   911,    -1,    -1,
    3613      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
    3614     1238,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3615       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3616       23,    24,    25,    26,    27,    -1,   950,    30,    31,    32,
    3617       -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
    3618       -1,    -1,   966,   967,    -1,    -1,    -1,    -1,    -1,    -1,
    3619       -1,    -1,  1290,  1291,    -1,    -1,   980,    -1,    -1,    -1,
    3620       -1,    -1,   986,    66,    67,   989,    69,   991,    71,    72,
    3621       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3622       83,    84,    -1,    86,    87,    -1,    -1,    -1,  1012,    -1,
    3623       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1023,
    3624       -1,    37,    38,    -1,    40,    -1,   109,    -1,   111,    -1,
    3625       -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,   122,
    3626      123,  1045,    -1,  1047,    -1,    -1,    -1,    -1,    -1,    -1,
    3627       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,  1062,  1063,
    3628       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3629       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,  1083,
    3630       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3631       -1,    -1,    -1,   109,    -1,   111,    -1,  1415,   114,    -1,
    3632       -1,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
    3633       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3634       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3635       22,    23,    24,    25,    26,    27,  1140,    -1,    30,    31,
    3636       32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,    -1,
    3637       -1,    -1,    -1,    -1,    -1,  1159,    -1,    -1,    -1,    -1,
    3638       -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    3639     1174,  1175,    64,    -1,    -1,    67,    -1,    69,    -1,    71,
    3640       72,    -1,    74,    75,    76,    -1,    -1,  1505,    -1,    -1,
    3641       66,    83,    84,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    3642       76,    -1,    94,    79,    80,    81,    82,    83,    84,    -1,
    3643       86,    87,  1530,  1531,    -1,    -1,    -1,   109,    94,   111,
    3644       -1,    -1,    -1,   115,    -1,    -1,   118,   119,    -1,    -1,
    3645       -1,    -1,    -1,   109,    -1,   111,    -1,  1555,    -1,    -1,
    3646       -1,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
    3647     1254,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3533      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3534      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
     3535      -1,    -1,    -1,  1316,    -1,    -1,  1319,   132,    -1,    -1,
     3536      -1,    -1,    -1,    -1,    -1,   759,    -1,    -1,  1503,    10,
    36483537      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    36493538      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3539      31,    32,    -1,  1528,  1529,    -1,   790,    -1,    39,    -1,
     3540      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3541      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1553,    -1,
     3542      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3543      -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
     3544    1403,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3545      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3546      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3547      21,    22,    23,    24,    25,    26,    27,   118,   119,    30,
    36503548      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
    36513549      41,    -1,    43,    -1,    -1,    46,    47,    48,    49,    50,
    36523550      51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,
    3653       61,    62,    -1,    64,  1318,    66,    67,  1321,    69,    -1,
     3551      61,    62,    -1,    64,    -1,    66,    67,   911,    69,    -1,
     3552      71,    72,  1485,    74,    75,    76,    -1,    -1,    79,    80,
     3553      81,    82,    83,    84,    -1,    86,    87,    10,    11,    12,
     3554      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3555      23,    24,    25,    26,    27,    28,    -1,    -1,   109,    -1,
     3556     111,    -1,   956,   114,    -1,    -1,    39,   118,   119,   120,
     3557     121,   122,   123,    -1,    -1,  1538,    -1,   128,    -1,    -1,
     3558      -1,   132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3559      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
     3560     994,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,
     3561      -1,    -1,    -1,  1007,    -1,    -1,    -1,    -1,    -1,    -1,
     3562      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3563      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3564      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3565      31,    32,    33,    -1,  1048,    36,    37,    38,    39,    40,
     3566      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3567      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3568      30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
    36543569      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    36553570      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3656       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
     3571      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3572      -1,    -1,    72,    -1,    74,    75,    -1,    -1,   109,    -1,
     3573     111,  1125,    -1,    83,    84,    -1,    -1,   118,   119,   120,
     3574     121,   122,   123,     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,  1188,  1189,    -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,
    36573584      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3658      111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,
    3659      121,   122,   123,    -1,    -1,    -1,    -1,   128,    -1,    -1,
    3660       -1,   132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3585     111,    -1,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     3586     121,   122,   123,     4,     5,     6,     7,     8,     9,    10,
     3587      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3588      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3589      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3590      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3591      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3592      30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
     3593      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3594      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3596      -1,    -1,    72,    -1,    74,    75,    76,    -1,   109,    -1,
     3597     111,    -1,    -1,    83,    84,   116,    -1,   118,   119,   120,
     3598     121,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3599      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3600      -1,   111,    -1,    -1,    -1,  1399,    -1,    -1,   118,   119,
    36613601      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3662       -1,  1405,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
    3663        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3664       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3665       25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
    3666       -1,    36,    37,    38,    39,    40,    10,    11,    12,    13,
    3667       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3668       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3669       -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
    3670       75,    76,    -1,  1487,    79,    80,    81,    82,    83,    84,
    3671       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3672       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,
    3673       74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,    83,
    3674       84,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
    3675       -1,    -1,    -1,    -1,    -1,    -1,  1540,   132,     3,     4,
    3676        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3677       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3678       25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
    3679       -1,    36,    37,    38,    39,    40,    -1,    -1,    -1,    10,
    3680       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3681       21,    22,    23,    24,    25,    26,    27,    28,    -1,    -1,
    3682       -1,    66,    67,    -1,    69,    -1,    71,    72,    39,    74,
    3683       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3684       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3685       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    3686       -1,    -1,    -1,    -1,   109,    -1,   111,    78,    -1,    -1,
    3687       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
    3688        5,     6,     7,     8,     9,    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,    37,    38,    39,    40,    10,    11,    12,    13,
    3692       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3693       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3694       -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
    3695       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3696       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3697       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
    3698       74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3699       -1,   116,    -1,   118,   119,   120,   121,   122,   123,     4,
    3700        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3701       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3702       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3703       -1,    -1,    37,    38,    39,    40,    10,    11,    12,    13,
    3704       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3705       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3706       -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
    3707       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3708       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3709       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
    3710       74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3711       -1,   116,    -1,   118,   119,   120,   121,   122,   123,     4,
    3712        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3713       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3714       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3715       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3602      -1,    -1,    -1,  1417,    -1,    -1,    -1,    -1,    -1,    -1,
     3603      -1,    -1,    -1,    -1,    -1,    -1,     4,     5,     6,     7,
     3604       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3605      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3606      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3607      38,    39,    40,    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,  1490,  1491,    66,    67,
     3610      -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
     3611      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3612      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3613      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3614      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,    -1,
     3615     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3616       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3617      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3618      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3619      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
     3620      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3621      27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
     3622      -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
     3623      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3624      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3625      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3626      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3627     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3628       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3629      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3630      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3631      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
     3632      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3633      27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3634      -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
     3635      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3636      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3637      67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3638      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3639     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3640       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3641      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3642      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3643      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3644      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3645      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3646      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3647      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    37163648      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37173649      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3718       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3719       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3720       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
     3650      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3651     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3652       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3653      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3654      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3655      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37213656      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3722       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3723       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
    3724        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3725       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3726       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3727       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3657      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3658      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3659      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    37283660      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37293661      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3730       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3731       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3732       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
     3662      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3663     118,   119,   120,   121,   122,   123,     3,     4,     5,     6,
     3664       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3665      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3666      27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
     3667      -1,    -1,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    37333668      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3734       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3735       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
    3736        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3737       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3738       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3739       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3669      -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,
     3670      67,    -1,    69,    -1,    71,    72,    -1,    74,    75,    76,
     3671      -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    37403672      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37413673      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3742       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3743       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3744       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3746       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3747       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     4,
    3748        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3749       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3750       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3751       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3753       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3754       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3755       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3756       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3757       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3758       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3759       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     3,
    3760        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3761       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3762       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
    3763       -1,    -1,    36,    -1,    -1,    39,    40,    -1,    -1,    -1,
    3764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3765       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3766       64,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
    3767       74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    3768       84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3769       94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3770       -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3771       -1,    -1,    -1,    -1,   118,   119,     3,     4,     5,     6,
    3772        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3773       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3774       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3775       -1,    -1,    39,    -1,    10,    11,    12,    13,    14,    15,
    3776       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3777       26,    27,    -1,    -1,    30,    31,    32,    33,    34,    35,
    3778       67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
    3779       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    3780       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3781       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    3782       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3674      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,   115,    -1,
    37833675      -1,   118,   119,     3,     4,     5,     6,     7,     8,     9,
    37843676      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3785       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
     3677      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    37863678      30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
     3679      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37873680      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3681      -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,
     3682      -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
     3683      -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,
    37883684      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3789       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3790       -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,    -1,
    3791       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3792       -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
    3793       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    37943686      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,
    37953687       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    37963688      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3797       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3689      23,    24,    25,    26,    27,    28,    -1,    30,    31,    32,
    37983690      33,    -1,    -1,    36,    -1,    -1,    39,    -1,    -1,    -1,
    37993691      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38003692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38013693      -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
    3802       -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3694      -1,    74,    75,    -1,    -1,    78,     4,     5,     6,     7,
     3695       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3696      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3697      -1,    -1,    30,    31,    32,    -1,    -1,    -1,   111,    -1,
     3698      -1,    39,    -1,    -1,    -1,   118,   119,    -1,    -1,    -1,
    38033699      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3804       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3805       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3806       -1,    -1,    -1,    -1,    -1,   118,   119,     4,     5,     6,
     3700      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3701      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3702      -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3705      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3706     118,   119,     4,     5,     6,     7,     8,     9,    10,    11,
     3707      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3708      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3709      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     3710      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3711      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3712      -1,    30,    31,    32,    -1,    67,    -1,    69,    -1,    71,
     3713      39,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
     3714      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3715      -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    67,    -1,
     3716      -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,   111,
     3717      -1,    -1,    -1,    -1,    83,    84,   118,   119,     4,     5,
     3718       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3719      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3720      26,    27,   111,    -1,    30,    31,    32,    -1,    -1,   118,
     3721     119,    -1,    -1,    39,    -1,    -1,    -1,    10,    11,    12,
     3722      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3723      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3724      -1,    67,    -1,    69,    -1,    71,    39,    -1,    74,    75,
     3725      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3726      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3727      96,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
     3728      -1,    74,    75,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3729      83,    84,   118,   119,     4,     5,     6,     7,     8,     9,
     3730      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3731      20,    21,    22,    23,    24,    25,    26,    27,   111,    -1,
     3732      30,    31,    32,    -1,    -1,   118,   119,    -1,    -1,    39,
     3733      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3734      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3736      -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,     6,
    38073737       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    38083738      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    38093739      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3810       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3740      -1,   111,    39,    -1,    -1,    -1,    -1,    -1,   118,   119,
    38113741      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38123742      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3813       67,    -1,    69,    -1,    71,    72,    -1,    74,    75,    76,
    3814       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    3815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
     3743      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3744       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3745      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3746      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3747      -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
     3748      -1,   118,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38163749      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3817       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3818       -1,   118,   119,     4,     5,     6,     7,     8,     9,    10,
     3750      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3751      74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
     3752      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3753      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3754      31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
     3755      -1,    -1,    -1,    -1,   118,   119,    -1,    -1,    -1,    -1,
     3756      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3757      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3758      71,    -1,    -1,    74,    75,    10,    11,    12,    13,    14,
     3759      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3760      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3761      -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3762     111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,    -1,
     3763      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3764      -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3765      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3766      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3767      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3768      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3769      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    10,
     3770      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3771      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3772      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3773      -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3774      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3775      23,    24,    25,    26,    27,    66,    67,    30,    31,    32,
     3776      -1,    72,    -1,    74,    75,    76,    39,    -1,    79,    80,
     3777      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3778      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3779      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,   109,   110,
     3780     111,    74,    75,    -1,    -1,    -1,    -1,   118,   119,   120,
     3781     121,   122,   123,    10,    11,    12,    13,    14,    15,    16,
     3782      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3783      27,    -1,    -1,    30,    31,    32,   109,    -1,   111,    -1,
     3784      37,    38,    39,    40,    -1,   118,   119,    -1,    -1,    -1,
     3785      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3786      19,    20,    21,    22,    23,    24,    25,    26,    27,    66,
     3787      67,    30,    31,    32,    -1,    72,    -1,    74,    75,    76,
     3788      39,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3789      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3790      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3791      -1,    -1,   109,    -1,   111,    74,    75,    -1,    -1,    -1,
     3792      -1,   118,   119,   120,   121,   122,   123,    10,    11,    12,
     3793      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3794      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3795      -1,    -1,   111,    -1,    37,    38,    39,    40,    -1,   118,
     3796     119,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3797      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3798      25,    26,    27,    66,    67,    30,    31,    32,    -1,    72,
     3799      -1,    74,    75,    76,    39,    -1,    79,    80,    81,    82,
     3800      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3801      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3802      -1,    -1,    67,    -1,    -1,    -1,   109,    -1,   111,    74,
     3803      75,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
     3804     123,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3805      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3806      -1,    30,    31,    32,    -1,    -1,   111,    -1,    37,    38,
     3807      39,    40,    -1,   118,   119,    -1,    -1,    -1,    -1,    10,
     3808      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3809      21,    22,    23,    24,    25,    26,    27,    66,    67,    30,
     3810      31,    32,    -1,    72,    -1,    74,    75,    76,    39,    -1,
     3811      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3812      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3813      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3814     109,    -1,   111,    74,    75,    -1,    -1,    -1,    -1,   118,
     3815     119,   120,   121,   122,   123,    10,    11,    12,    13,    14,
     3816      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3817      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3818     111,    -1,    37,    38,    39,    40,    -1,   118,   119,    -1,
     3819      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3820      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3821      27,    66,    67,    30,    31,    32,    -1,    72,    -1,    74,
     3822      75,    76,    39,    -1,    79,    80,    81,    82,    83,    84,
     3823      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3824      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3825      67,    -1,    -1,    -1,   109,    -1,   111,    74,    75,    -1,
     3826      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,     3,
     3827       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3828      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3829      24,    25,    26,    27,   111,    -1,    30,    31,    32,    -1,
     3830      -1,   118,   119,    -1,    -1,    39,    -1,    -1,    -1,    10,
     3831      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3832      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
     3833      31,    32,    -1,    67,    -1,    69,    -1,    71,    39,    -1,
     3834      74,    75,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3835      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3836      23,    24,    25,    26,    27,    28,    67,    30,    31,    32,
     3837      -1,    72,    -1,    74,    75,    76,    39,    78,    -1,    -1,
     3838     114,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
     3839      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3840      25,    26,    27,    -1,    67,    30,    31,    32,   109,    72,
     3841     111,    74,    75,    76,    39,    78,    -1,   118,   119,    -1,
     3842      83,    84,    -1,    10,    11,    12,    13,    14,    15,    16,
     3843      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3844      27,    -1,    67,    30,    31,    32,    -1,    72,   111,    74,
     3845      75,    76,    39,    -1,    -1,   118,   119,    -1,    83,    84,
     3846      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3847      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3848      67,    30,    31,    32,   109,    72,   111,    74,    75,    76,
     3849      39,    -1,    -1,   118,   119,    -1,    83,    84,    -1,    10,
     3850      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3851      21,    22,    23,    24,    25,    26,    27,    -1,    67,    30,
     3852      31,    32,   109,    72,   111,    74,    75,    76,    39,    40,
     3853      -1,   118,   119,    -1,    83,    84,    -1,    10,    11,    12,
     3854      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3855      23,    24,    25,    26,    27,    28,    67,    30,    31,    32,
     3856     109,    -1,   111,    74,    75,    -1,    39,    -1,    -1,   118,
     3857     119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3858      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3859      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
     3860     111,    74,    75,    -1,   115,    78,    -1,   118,   119,    -1,
     3861      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3862      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3863      30,    31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,
     3864      40,    -1,    -1,    -1,    -1,   118,   119,    -1,    10,    11,
     3865      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3866      22,    23,    24,    25,    26,    27,    -1,    67,    30,    31,
     3867      32,    -1,    -1,    -1,    74,    75,    -1,    39,    40,    10,
     3868      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3869      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3870      31,    32,    -1,    -1,    -1,    67,    -1,    -1,    39,    -1,
     3871      -1,   111,    74,    75,    -1,   115,    -1,    -1,   118,   119,
     3872      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3873      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3874      -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,   111,
     3875      -1,    -1,    -1,   115,    -1,    -1,   118,   119,    -1,    -1,
     3876      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3877      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3878     111,    30,    31,    32,    -1,    -1,    -1,   118,   119,    -1,
     3879      39,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3880      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3881      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    67,    -1,
     3882      39,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    10,
     3883      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3884      21,    22,    23,    24,    25,    26,    27,    -1,    67,    30,
     3885      31,    32,    33,    34,    35,    74,    75,    -1,    39,    -1,
     3886      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     3887     119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3888      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3889      -1,    -1,   111,    74,    75,    -1,    -1,    -1,    -1,   118,
     3890     119,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3891      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3892      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3893      -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    37,    38,
     3894      -1,    40,    41,    -1,    43,    -1,    -1,    46,    47,    48,
     3895      49,    50,    51,    52,    53,    -1,    -1,    56,    57,    -1,
     3896      -1,    -1,    61,    62,    67,    64,    69,    66,    71,    -1,
     3897      -1,    74,    75,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3898      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3899      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3900      -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
     3901     109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,
     3902     119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,   128,
     3903      -1,    37,    38,   132,    40,    41,    -1,    43,    -1,    -1,
     3904      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
     3905      -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,
     3906      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3907      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3908      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3909      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3910      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3911      -1,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
     3912      -1,    -1,   128,    -1,    -1,    -1,   132,     4,     5,     6,
     3913       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3914      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3915      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3916      -1,    -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,
     3917      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
     3918      53,    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,
     3919      67,    64,    69,    66,    71,    -1,    -1,    74,    75,    72,
     3920      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3921      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    96,
     3922      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3923      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3924      -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,   122,
     3925     123,    -1,    -1,    37,    38,   128,    40,    41,    -1,    43,
     3926      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
     3927      -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,
     3928      64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     3929      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3930      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3931      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3932      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3933     114,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
     3934      -1,    -1,    37,    38,   128,    40,    41,    -1,    43,    -1,
     3935      -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3936      -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
     3937      -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3938      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3939      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3940      37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
     3941      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3942      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    66,
     3943      -1,    -1,    -1,   128,    -1,    72,    -1,    -1,    -1,    76,
     3944      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3945      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3946      -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3947      -1,    -1,   109,    -1,   111,    -1,    -1,    37,    38,    -1,
     3948      40,   118,   119,   120,   121,   122,   123,    66,    -1,    -1,
     3949      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3950      79,    80,    81,    82,    83,    84,    66,    86,    87,    -1,
     3951      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3952      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3953     109,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,   118,
     3954     119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,   109,
     3955      -1,    -1,    -1,    -1,    37,    38,    -1,    40,   118,   119,
     3956     120,   121,   122,   123,    66,    -1,    -1,    -1,    -1,    -1,
     3957      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     3958      82,    83,    84,    66,    86,    87,    -1,    -1,    -1,    72,
     3959      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3960      83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,
     3961      -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,
     3962     122,   123,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     3963      -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
     3964     123,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3965      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3966      23,    24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,
     3967      -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
     3968      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3969      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3970      -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,
     3971      -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
     3972      83,    84,     3,     4,     5,     6,     7,     8,     9,    10,
    38193973      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    38203974      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     
    38233977      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38243978      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3825       71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    3826       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3827       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3828       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    3829      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,     4,
    3830        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3831       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3832       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3833       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    3834       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3835       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3836       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3837       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3838       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3839       -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3840       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3841       -1,    -1,    -1,   118,   119,     4,     5,     6,     7,     8,
    3842        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3843       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3844       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3845       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3846       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3848       69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
    3849       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3850       -1,    -1,    -1,    -1,    -1,    94,    -1,    96,    -1,    -1,
    3851       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3852       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,
    3853      119,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3854       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3855       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3856       -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
    3857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3858       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3859       -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
    3860       -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3861       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3862       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3863       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
    3864       -1,    -1,    -1,    -1,    -1,   118,   119,     4,     5,     6,
    3865        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3866       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3867       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3868       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3869       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3870       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3871       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    3872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3873       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3874       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3875       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3876       -1,   118,   119,     4,     5,     6,     7,     8,     9,    10,
    3877       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3878       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3879       31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
    3880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3881       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3882       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3883       71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    3884       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3885       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3886       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3887      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,     4,
    3888        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3889       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3890       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3891       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    3892       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3893       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3894       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3895       75,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3896       19,    20,    21,    22,    23,    24,    25,    26,    27,    94,
    3897       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    3898       39,    40,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3899       -1,    -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    -1,
    3900       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
    3901       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3902       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3903       -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
    3904       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3905      109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,
    3906      119,   120,   121,   122,   123,    10,    11,    12,    13,    14,
    3907       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3908       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3909       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3911       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3912       -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3913       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3914       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    3915       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3916       -1,    -1,    -1,    -1,   109,   110,   111,    -1,    -1,    -1,
    3917       -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    10,
    3918       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3919       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3920       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3921       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3922       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3923       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
    3924       -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3925       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3926       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    3927       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3928      111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,
    3929      121,   122,   123,    10,    11,    12,    13,    14,    15,    16,
    3930       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3931       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3932       37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    3933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3934       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3935       67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,
    3936       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3937       87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3938       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3939       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3940       -1,   118,   119,   120,   121,   122,   123,    10,    11,    12,
    3941       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3942       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3943       -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
    3944       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3945       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3946       -1,    -1,    -1,    66,    67,    -1,    -1,    -1,    -1,    72,
    3947       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3948       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3949       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3950       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    3951       -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
    3952      123,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3953       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3954       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    3955       39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3956       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3957       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
    3958       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3959       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3960       -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
    3961       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3962      109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,
    3963      119,   120,   121,   122,   123,     3,     4,     5,     6,     7,
     3979      71,    -1,    -1,    74,    75,     3,     4,     5,     6,     7,
    39643980       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    39653981      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    39663982      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3967       -1,    39,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3968       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3969       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    67,
    3970       -1,    69,    -1,    71,    39,    -1,    74,    75,    -1,    -1,
    3971       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3972       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3973       27,    -1,    67,    30,    31,    32,    -1,    72,    -1,    74,
    3974       75,    76,    39,    -1,    -1,    -1,   114,    -1,    83,    84,
    3975       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
     3983      -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39763984      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3977       67,    -1,    -1,    -1,   109,    72,   111,    74,    75,    76,
    3978       -1,    -1,    -1,   118,   119,    -1,    83,    84,    -1,    -1,
    3979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3980       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3981       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3982       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    3983       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3984       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3985       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    3986       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3987       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3988       67,    -1,    39,    -1,    -1,    72,    -1,    74,    75,    76,
    3989       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    3990       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3991       67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,
    3992       -1,    -1,   109,    -1,   111,    -1,    83,    84,    -1,    -1,
    3993       -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3994       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3995       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3996       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    3997       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3998       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3999       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    4000       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4001       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4002       67,    -1,    39,    -1,    -1,    72,    -1,    74,    75,    76,
    4003       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    4004       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4005       67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,
    4006       -1,    -1,    -1,    -1,   111,    -1,    83,    84,    -1,    -1,
    4007       -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4008       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4009       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    4010       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    4011       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4012       27,    28,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4013       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    4014       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4015       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4016       67,    -1,    39,    40,    -1,    -1,    -1,    74,    75,    -1,
    4017       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4018       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4019       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    4020       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    4021       -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4022       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4023       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,   115,    -1,
    4024       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    4025       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4026       27,    28,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4027       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    4028       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4029       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4030       67,    -1,    39,    40,    -1,    -1,    -1,    74,    75,    -1,
    4031       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4033       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    4034       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    4035       -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4036       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4037       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,   115,    -1,
    4038       -1,   118,   119,    10,    11,    12,    13,    14,    15,    16,
    4039       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4040       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4041       -1,    -1,    39,    40,    10,    11,    12,    13,    14,    15,
     3985      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3986      -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,     5,
     3987       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    40423988      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    40433989      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4044       67,    -1,    -1,    39,    -1,    -1,    -1,    74,    75,    -1,
    4045       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4046       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    4047       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4048       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,   115,    -1,
    4049       -1,   118,   119,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4050       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4051       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    4052       -1,    -1,   118,   119,    10,    11,    12,    13,    14,    15,
    4053       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4054       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4055       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    4056       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4057       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4058       -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,    75,
    4059       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4060       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4061       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4062       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4063       -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,
    4064       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4065       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4066       -1,    -1,   118,   119,    10,    11,    12,    13,    14,    15,
    4067       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4068       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4069       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    4070       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4071       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4072       -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,    75,
    4073       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4074       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4075       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4076       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4077       -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,
    4078       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4079       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4080       -1,    -1,   118,   119,    10,    11,    12,    13,    14,    15,
    4081       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4082       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4083       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    4084       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4085       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4086       -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,    75,
    4087       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4088       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4089       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4090       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4091       -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,
    4092       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4093       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4094       -1,    -1,   118,   119,    10,    11,    12,    13,    14,    15,
    4095       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4096       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4097       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    4098       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4099       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    4100       -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,    75,
    4101       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4102       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4103       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    4104       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    4105       -1,    -1,   118,   119,    -1,    -1,    -1,    -1,    94,    -1,
     3990      -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    41063991      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    41073992      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4108       -1,    -1,   118,   119,     4,     5,     6,     7,     8,     9,
    4109       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    4110       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    4111       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    4112       -1,    37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,
    4113       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    4114       56,    57,    -1,    -1,    -1,    61,    62,    67,    64,    69,
    4115       66,    71,    -1,    -1,    74,    75,    72,    -1,    -1,    -1,
    4116       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    4117       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
    4118       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4119      110,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
    4120       -1,    -1,   118,   119,   120,   121,   122,   123,    -1,    -1,
    4121       -1,    -1,   128,    -1,    37,    38,   132,    40,    41,    -1,
    4122       43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
    4123       53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,
    4124       -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,
    4125       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    4126       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    4127       -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4128       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    4129       -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,   122,
    4130      123,    -1,    -1,    -1,    -1,   128,    -1,    -1,    -1,   132,
    4131        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    4132       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    4133       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    4134       -1,    -1,    -1,    -1,    -1,    39,    -1,    37,    38,    -1,
    4135       40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
    4136       50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    -1,
    4137       -1,    61,    62,    67,    64,    69,    66,    71,    -1,    -1,
    4138       74,    75,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    4139       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    4140       -1,    -1,    96,    -1,    94,    -1,    -1,    -1,    -1,    -1,
    4141       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    4142       -1,   111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,
    4143      120,   121,   122,   123,    -1,    -1,    37,    38,   128,    40,
    4144       41,    -1,    43,    44,    45,    46,    47,    48,    49,    50,
    4145       51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,
    4146       61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,
    4147       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    4148       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    4149       -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
    4150       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    4151      111,    -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,
    4152      121,   122,   123,    -1,    -1,    37,    38,   128,    40,    41,
    4153       -1,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    4154       52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
    4155       62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    4156       72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
    4157       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    4158       -1,    -1,    94,    37,    38,    -1,    40,    -1,    -1,    -1,
    4159       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    4160       -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,
    4161      122,   123,    66,    -1,    -1,    -1,   128,    -1,    72,    -1,
    4162       74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
    4163       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    4164       94,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    4165       -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,   113,
    4166      114,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
    4167       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    4168       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    4169       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    37,
    4170       38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4171       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    37,    38,
    4172       -1,    40,   118,   119,   120,   121,   122,   123,    66,    -1,
    4173       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    4174       -1,    79,    80,    81,    82,    83,    84,    66,    86,    87,
    4175       -1,    -1,    -1,    72,    -1,    -1,    94,    76,    -1,    -1,
    4176       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    4177       -1,   109,    -1,   111,    -1,    94,    37,    38,    -1,    40,
    4178      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
    4179      109,    -1,   111,    -1,    -1,    37,    38,    -1,    40,   118,
    4180      119,   120,   121,   122,   123,    66,    -1,    -1,    -1,    -1,
    4181       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    4182       81,    82,    83,    84,    66,    86,    87,    -1,    -1,    -1,
    4183       72,    -1,    -1,    94,    76,    -1,    -1,    79,    80,    81,
    4184       82,    83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,
    4185       -1,    -1,    94,    -1,    -1,    -1,    -1,   118,   119,   120,
    4186      121,   122,   123,    -1,    -1,    -1,    -1,   109,    -1,    -1,
    4187       -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,
    4188      122,   123,     4,     5,     6,     7,     8,     9,    10,    11,
    4189       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4190       22,    23,    24,    25,    26,    27,    -1,    -1,    -1,    -1,
    4191       -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    4192       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4193       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4194       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    4195       72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
    4196       -1,    83,    84,     3,     4,     5,     6,     7,     8,     9,
    4197       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    4198       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    4199       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    4200       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4201       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4202       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    4203       -1,    71,    -1,    -1,    74,    75,     3,     4,     5,     6,
    4204        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    4205       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4206       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    4207       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4208       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4209       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4210       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,
    4211        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    4212       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4213       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    4214       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    4215       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4216       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4217       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    4218       75
     3993      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75
    42193994};
    42203995
     
    42274002      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    42284003      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    4229       76,    83,    84,    94,   109,   111,   118,   119,   137,   140,
    4230      149,   198,   212,   213,   214,   215,   216,   217,   218,   219,
    4231      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
    4232      231,   232,   233,   234,   235,   236,   237,   238,   240,   241,
    4233      242,   243,   244,   245,   247,   255,   256,   283,   284,   285,
    4234      293,   296,   302,   303,   305,   307,   308,   314,   319,   323,
    4235      324,   325,   326,   327,   328,   329,   330,   350,   367,   368,
    4236      369,   370,    72,   139,   140,   149,   215,   217,   225,   227,
    4237      237,   241,   243,   284,    82,   109,   312,   313,   314,   312,
    4238      312,    72,    74,    75,    76,   138,   139,   273,   274,   294,
    4239      295,    74,    75,   274,   109,   305,    11,   199,   109,   149,
    4240      319,   324,   325,   326,   328,   329,   330,   112,   134,   111,
    4241      218,   225,   227,   323,   327,   366,   367,   370,   371,   135,
    4242      107,   131,   277,   114,   135,   173,    74,    75,   137,   272,
    4243      135,   135,   135,   116,   135,    74,    75,   109,   149,   309,
    4244      318,   319,   320,   321,   322,   323,   327,   331,   332,   333,
    4245      334,   335,   341,     3,    28,    78,   239,     3,     5,    74,
    4246      111,   149,   217,   228,   232,   235,   244,   285,   323,   327,
    4247      370,   215,   217,   227,   237,   241,   243,   284,   323,   327,
    4248       33,   233,   233,   228,   235,   135,   233,   228,   233,   228,
    4249       75,   109,   114,   274,   285,   114,   274,   233,   228,   116,
    4250      135,   135,     0,   134,   109,   173,   312,   312,   134,   111,
    4251      225,   227,   368,   272,   272,   131,   227,   109,   149,   309,
    4252      319,   323,   111,   149,   370,   306,   230,   314,   109,   290,
    4253      109,   109,    51,   109,    37,    38,    40,    66,    72,    76,
    4254       79,    80,    81,    82,    86,    87,   109,   111,   120,   121,
    4255      122,   123,   136,   140,   141,   142,   143,   148,   149,   150,
    4256      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
    4257      161,   162,   164,   166,   225,   276,   292,   366,   371,   227,
    4258      110,   110,   110,   110,   110,   110,   110,    74,    75,   111,
    4259      225,   272,   350,   368,   111,   118,   149,   164,   217,   218,
    4260      224,   227,   231,   232,   237,   240,   241,   243,   262,   263,
    4261      267,   268,   269,   270,   284,   350,   362,   363,   364,   365,
    4262      370,   371,   112,   109,   323,   327,   370,   109,   116,   132,
    4263      111,   114,   149,   164,   278,   278,   115,   134,   116,   132,
    4264      109,   116,   132,   116,   132,   116,   132,   312,   132,   319,
    4265      320,   321,   322,   332,   333,   334,   335,   227,   318,   331,
    4266       64,   311,   111,   312,   349,   350,   312,   312,   173,   134,
    4267      109,   312,   349,   312,   312,   227,   309,   109,   109,   226,
    4268      227,   225,   227,   112,   134,   225,   366,   371,   173,   134,
    4269      272,   277,   217,   232,   323,   327,   173,   134,   294,   227,
    4270      237,   132,   227,   227,   292,   248,   246,   258,   274,   257,
    4271      227,   294,   132,   132,   305,   134,   139,   271,     3,   135,
    4272      207,   208,   222,   224,   227,   134,   311,   109,   311,   164,
    4273      319,   227,   109,   134,   272,   114,    33,    34,    35,   225,
    4274      286,   287,   289,   134,   129,   131,   291,   134,   228,   234,
    4275      235,   272,   315,   316,   317,   109,   141,   109,   148,   109,
    4276      148,   151,   109,   148,   109,   109,   148,   148,   111,   164,
    4277      169,   173,   225,   275,   366,   370,   112,   134,    82,    85,
    4278       86,    87,   109,   111,   113,   114,    97,    98,    99,   100,
    4279      101,   102,   103,   104,   105,   106,   131,   168,   151,   151,
    4280      118,   124,   125,   120,   121,    88,    89,    90,    91,   126,
    4281      127,    92,    93,   119,   128,   129,    94,    95,   130,   131,
    4282      373,   109,   149,   345,   346,   347,   348,   349,   110,   116,
    4283      109,   349,   350,   109,   349,   350,   134,   109,   225,   368,
    4284      112,   134,   135,   111,   225,   227,   361,   362,   370,   371,
    4285      135,   109,   111,   149,   319,   336,   337,   338,   339,   340,
    4286      341,   342,   343,   344,   350,   351,   352,   353,   354,   355,
    4287      356,   149,   370,   227,   135,   135,   149,   225,   227,   363,
    4288      272,   225,   350,   363,   272,   109,   134,   134,   134,   112,
    4289      134,    72,    80,   111,   113,   140,   274,   278,   279,   280,
    4290      281,   282,   134,   134,   134,   134,   134,   134,   309,   110,
    4291      110,   110,   110,   110,   110,   110,   318,   331,   109,   277,
    4292      112,   207,   134,   309,   169,   276,   169,   276,   309,   111,
    4293      207,   311,   173,   134,   207,   110,    40,   111,   115,   225,
    4294      249,   250,   251,   366,   114,   116,   372,   131,   259,   114,
    4295      227,   264,   265,   266,   269,   270,   110,   116,   173,   134,
    4296      118,   164,   134,   224,   227,   263,   362,   370,   303,   304,
    4297      109,   149,   336,   110,   116,   373,   274,   286,   109,   114,
    4298      274,   276,   286,   110,   116,   109,   141,   110,   117,   275,
    4299      275,   275,   111,   139,   145,   164,   276,   275,   112,   134,
    4300      110,   116,   110,   109,   149,   349,   357,   358,   359,   360,
    4301      110,   116,   164,   111,   139,   111,   144,   145,   134,   111,
    4302      139,   144,   164,   164,   151,   151,   151,   152,   152,   153,
    4303      153,   154,   154,   154,   154,   155,   155,   156,   157,   158,
    4304      159,   160,   117,   169,   164,   134,   346,   347,   348,   227,
    4305      345,   312,   312,   164,   276,   134,   271,   134,   225,   350,
    4306      363,   227,   231,   112,   112,   134,   370,   112,   109,   134,
    4307      319,   337,   338,   339,   342,   352,   353,   354,   112,   134,
    4308      227,   336,   340,   351,   109,   312,   355,   373,   312,   312,
    4309      373,   109,   312,   355,   312,   312,   312,   312,   350,   225,
    4310      361,   371,   272,   112,   116,   112,   116,   373,   225,   363,
    4311      373,   260,   261,   262,   263,   260,   260,   272,   164,   134,
    4312      111,   274,   117,   116,   372,   278,    80,   111,   117,   282,
    4313       29,   209,   210,   272,   260,   139,   309,   139,   311,   109,
    4314      349,   350,   109,   349,   350,   141,   350,   173,   264,   110,
    4315      110,   110,   110,   112,   173,   207,   173,   114,   250,   251,
    4316      112,   134,   109,   117,   149,   252,   254,   318,   319,   331,
    4317      357,   116,   132,   116,   132,   274,   248,   274,   115,   162,
    4318      163,   258,   135,   135,   139,   222,   135,   135,   260,   109,
    4319      149,   370,   135,   115,   227,   287,   288,   135,   134,   134,
    4320      109,   135,   110,   316,   169,   170,   117,   132,   111,   141,
    4321      200,   201,   202,   110,   116,   110,   134,   117,   110,   110,
    4322      110,   111,   164,   358,   359,   360,   227,   357,   312,   312,
    4323      114,   151,   166,   164,   165,   167,   116,   135,   134,   134,
    4324      110,   116,   164,   134,   115,   162,   117,   264,   110,   110,
    4325      110,   345,   264,   110,   260,   225,   363,   111,   118,   149,
    4326      164,   164,   227,   342,   264,   110,   110,   110,   110,   110,
    4327      110,   110,     7,   227,   336,   340,   351,   134,   134,   373,
    4328      134,   134,   110,   135,   135,   135,   135,   277,   135,   162,
    4329      163,   164,   310,   134,   278,   280,   115,   134,   211,   274,
    4330       40,    41,    43,    46,    47,    48,    49,    50,    51,    52,
    4331       53,    57,    61,    62,    72,   111,   128,   170,   171,   172,
    4332      173,   174,   175,   177,   178,   190,   192,   193,   198,   212,
    4333      308,    29,   135,   131,   277,   134,   134,   110,   135,   173,
    4334      248,   132,   132,   319,   163,   227,   253,   254,   253,   274,
    4335      312,   115,   259,   372,   110,   116,   112,   112,   135,   227,
    4336      116,   373,   290,   110,   286,   215,   217,   225,   298,   299,
    4337      300,   301,   292,   110,   110,   117,   163,   109,   110,   117,
    4338      116,   139,   164,   164,   112,   110,   110,   110,   357,   279,
    4339      116,   135,   167,   112,   139,   146,   147,   164,   145,   135,
    4340      146,   162,   166,   135,   109,   349,   350,   135,   135,   134,
    4341      135,   135,   135,   164,   110,   135,   109,   349,   350,   109,
    4342      355,   109,   355,   350,   226,     7,   118,   135,   164,   264,
    4343      264,   263,   267,   267,   268,   116,   116,   110,   110,   112,
    4344       96,   123,   135,   135,   146,   278,   164,   116,   132,   212,
    4345      216,   227,   231,   109,   109,   171,   109,   109,    72,   132,
    4346       72,   132,    72,   118,   170,   109,   173,   165,   165,   117,
    4347      112,   143,   132,   135,   134,   135,   211,   110,   164,   264,
    4348      264,   312,   110,   115,   252,   115,   134,   110,   134,   135,
    4349      309,   115,   134,   135,   135,   110,   114,   200,   112,   163,
    4350      132,   200,   202,   110,   116,   135,   109,   349,   350,   372,
    4351      165,   112,   135,    85,   113,   116,   135,   135,   112,   135,
    4352      110,   134,   110,   110,   112,   112,   112,   135,   110,   134,
    4353      134,   134,   164,   164,   135,   112,   135,   135,   135,   135,
    4354      134,   134,   163,   163,   112,   112,   135,   135,   274,   227,
    4355      169,   169,    47,   169,   134,   132,   132,   132,   169,   132,
    4356      169,    58,    59,    60,   194,   195,   196,   132,    63,   132,
    4357      312,   114,   175,   115,   132,   135,   135,    96,   269,   270,
    4358      110,   299,   116,   132,   116,   132,   115,   297,   117,   141,
    4359      110,   110,   117,   167,   112,   134,   115,   112,   111,   147,
    4360      111,   147,   147,   112,   112,   112,   264,   112,   264,   264,
    4361      264,   135,   135,   112,   112,   110,   110,   112,   116,    96,
    4362      263,    96,   135,   112,   112,   110,   110,   109,   110,   170,
    4363      191,   212,   132,   110,   109,   109,   173,   196,    58,    59,
    4364      164,   171,   144,   110,   110,   114,   134,   134,   298,   141,
    4365      203,   109,   132,   203,   135,   117,   264,   134,   134,   135,
    4366      135,   135,   135,   112,   112,   134,   135,   112,   171,    44,
    4367       45,   114,   181,   182,   183,   169,   171,   135,   110,   170,
    4368      114,   183,    96,   134,    96,   134,   109,   109,   132,   115,
    4369      134,   272,   309,   115,   116,   117,   163,   110,   112,   164,
    4370      135,   146,   146,   110,   110,   110,   110,   267,    42,   163,
    4371      179,   180,   310,   117,   134,   171,   181,   110,   132,   171,
    4372      132,   134,   110,   134,   110,   134,    96,   134,    96,   134,
    4373      132,   298,   141,   139,   204,   110,   132,   117,   110,   135,
    4374      135,   171,    96,   116,   117,   135,   205,   206,   212,   132,
    4375      170,   170,   205,   173,   197,   225,   366,   173,   197,   110,
    4376      134,   110,   134,   115,   110,   116,   164,   112,   112,   163,
    4377      179,   182,   184,   185,   134,   132,   182,   186,   187,   135,
    4378      109,   149,   309,   357,   139,   135,   173,   197,   173,   197,
    4379      109,   132,   139,   171,   176,   115,   182,   212,   170,    56,
    4380      176,   189,   115,   182,   110,   227,   110,   135,   135,   292,
    4381      171,   176,   132,   188,   189,   176,   189,   173,   173,   110,
    4382      110,   110,   188,   135,   135,   173,   173,   135,   135
     4004      76,    83,    84,   109,   111,   118,   119,   137,   140,   149,
     4005     198,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     4006     221,   222,   223,   224,   225,   226,   227,   228,   229,   231,
     4007     232,   233,   234,   235,   236,   237,   238,   240,   241,   242,
     4008     243,   244,   245,   247,   255,   256,   283,   284,   285,   293,
     4009     296,   302,   303,   305,   307,   308,   314,   319,   323,   324,
     4010     325,   326,   327,   328,   329,   330,   350,   367,   368,   369,
     4011     370,    72,   139,   140,   149,   215,   217,   225,   227,   237,
     4012     241,   243,   284,    82,   109,   312,   313,   314,   312,   312,
     4013      72,    74,    75,    76,   138,   139,   273,   274,   294,   295,
     4014      74,    75,   274,   109,   305,    11,   199,   109,   149,   319,
     4015     324,   325,   326,   328,   329,   330,   112,   134,   111,   218,
     4016     225,   227,   323,   327,   366,   367,   370,   371,   135,   107,
     4017     131,   277,   114,   135,   173,    74,    75,   137,   272,   135,
     4018     135,   135,   116,   135,    74,    75,   109,   149,   309,   318,
     4019     319,   320,   321,   322,   323,   327,   331,   332,   333,   334,
     4020     335,   341,     3,    28,    78,   239,     3,     5,    74,   111,
     4021     149,   217,   228,   232,   235,   244,   285,   323,   327,   370,
     4022     215,   217,   227,   237,   241,   243,   284,   323,   327,    33,
     4023     233,   233,   228,   235,   135,   233,   228,   233,   228,    75,
     4024     109,   114,   274,   285,   114,   274,   233,   228,   116,   135,
     4025     135,     0,   134,   109,   173,   312,   312,   134,   111,   225,
     4026     227,   368,   272,   272,   131,   227,   109,   149,   309,   319,
     4027     323,   111,   149,   370,   306,   230,   314,   109,   290,   109,
     4028     109,    51,   109,    37,    38,    40,    66,    72,    76,    79,
     4029      80,    81,    82,    86,    87,   109,   111,   120,   121,   122,
     4030     123,   136,   140,   141,   142,   143,   148,   149,   150,   151,
     4031     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
     4032     162,   164,   167,   225,   276,   292,   366,   371,   227,   110,
     4033     110,   110,   110,   110,   110,   110,    74,    75,   111,   225,
     4034     272,   350,   368,   111,   118,   149,   164,   217,   218,   224,
     4035     227,   231,   232,   237,   240,   241,   243,   262,   263,   267,
     4036     268,   269,   270,   284,   350,   362,   363,   364,   365,   370,
     4037     371,   112,   109,   323,   327,   370,   109,   116,   132,   111,
     4038     114,   149,   164,   278,   278,   115,   134,   116,   132,   109,
     4039     116,   132,   116,   132,   116,   132,   312,   132,   319,   320,
     4040     321,   322,   332,   333,   334,   335,   227,   318,   331,    64,
     4041     311,   111,   312,   349,   350,   312,   312,   173,   134,   109,
     4042     312,   349,   312,   312,   227,   309,   109,   109,   226,   227,
     4043     225,   227,   112,   134,   225,   366,   371,   173,   134,   272,
     4044     277,   217,   232,   323,   327,   173,   134,   294,   227,   237,
     4045     132,   227,   227,   292,   248,   246,   258,   274,   257,   227,
     4046     294,   132,   132,   305,   134,   139,   271,     3,   135,   207,
     4047     208,   222,   224,   227,   134,   311,   109,   311,   164,   319,
     4048     227,   109,   134,   272,   114,    33,    34,    35,   225,   286,
     4049     287,   289,   134,   129,   131,   291,   134,   228,   234,   235,
     4050     272,   315,   316,   317,   109,   141,   109,   148,   109,   148,
     4051     151,   109,   148,   109,   109,   148,   148,   111,   164,   169,
     4052     173,   225,   275,   366,   370,   112,   134,    82,    85,    86,
     4053      87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
     4054     102,   103,   104,   105,   106,   131,   166,   151,   151,   118,
     4055     124,   125,   120,   121,    88,    89,    90,    91,   126,   127,
     4056      92,    93,   119,   128,   129,    94,    95,   130,   131,   373,
     4057     109,   149,   345,   346,   347,   348,   349,   110,   116,   109,
     4058     349,   350,   109,   349,   350,   134,   109,   225,   368,   112,
     4059     134,   135,   111,   225,   227,   361,   362,   370,   371,   135,
     4060     109,   111,   149,   319,   336,   337,   338,   339,   340,   341,
     4061     342,   343,   344,   350,   351,   352,   353,   354,   355,   356,
     4062     149,   370,   227,   135,   135,   149,   225,   227,   363,   272,
     4063     225,   350,   363,   272,   109,   134,   134,   134,   112,   134,
     4064      72,    80,   111,   113,   140,   274,   278,   279,   280,   281,
     4065     282,   134,   134,   134,   134,   134,   134,   309,   110,   110,
     4066     110,   110,   110,   110,   110,   318,   331,   109,   277,   112,
     4067     207,   134,   309,   169,   276,   169,   276,   309,   111,   207,
     4068     311,   173,   134,   207,   110,    40,   111,   115,   225,   249,
     4069     250,   251,   366,   114,   116,   372,   131,   259,   114,   227,
     4070     264,   265,   266,   269,   270,   110,   116,   173,   134,   118,
     4071     164,   134,   224,   227,   263,   362,   370,   303,   304,   109,
     4072     149,   336,   110,   116,   373,   274,   286,   109,   114,   274,
     4073     276,   286,   110,   116,   109,   141,   110,   117,   275,   275,
     4074     275,   111,   139,   145,   164,   276,   275,   112,   134,   110,
     4075     116,   110,   109,   149,   349,   357,   358,   359,   360,   110,
     4076     116,   164,   111,   139,   111,   144,   145,   134,   111,   139,
     4077     144,   164,   151,   151,   151,   152,   152,   153,   153,   154,
     4078     154,   154,   154,   155,   155,   156,   157,   158,   159,   160,
     4079     117,   169,   164,   134,   346,   347,   348,   227,   345,   312,
     4080     312,   164,   276,   134,   271,   134,   225,   350,   363,   227,
     4081     231,   112,   112,   134,   370,   112,   109,   134,   319,   337,
     4082     338,   339,   342,   352,   353,   354,   112,   134,   227,   336,
     4083     340,   351,   109,   312,   355,   373,   312,   312,   373,   109,
     4084     312,   355,   312,   312,   312,   312,   350,   225,   361,   371,
     4085     272,   112,   116,   112,   116,   373,   225,   363,   373,   260,
     4086     261,   262,   263,   260,   260,   272,   164,   134,   111,   274,
     4087     117,   116,   372,   278,    80,   111,   117,   282,    29,   209,
     4088     210,   272,   260,   139,   309,   139,   311,   109,   349,   350,
     4089     109,   349,   350,   141,   350,   173,   264,   110,   110,   110,
     4090     110,   112,   173,   207,   173,   114,   250,   251,   112,   134,
     4091     109,   117,   149,   252,   254,   318,   319,   331,   357,   116,
     4092     132,   116,   132,   274,   248,   274,   115,   162,   163,   258,
     4093     135,   135,   139,   222,   135,   135,   260,   109,   149,   370,
     4094     135,   115,   227,   287,   288,   135,   134,   134,   109,   135,
     4095     110,   316,   169,   170,   117,   132,   111,   141,   200,   201,
     4096     202,   110,   116,   110,   134,   117,   110,   110,   110,   111,
     4097     164,   358,   359,   360,   227,   357,   312,   312,   114,   151,
     4098     167,   164,   165,   168,   116,   135,   134,   134,   110,   116,
     4099     164,   134,   115,   162,   117,   264,   110,   110,   110,   345,
     4100     264,   110,   260,   225,   363,   111,   118,   149,   164,   164,
     4101     227,   342,   264,   110,   110,   110,   110,   110,   110,   110,
     4102       7,   227,   336,   340,   351,   134,   134,   373,   134,   134,
     4103     110,   135,   135,   135,   135,   277,   135,   162,   163,   164,
     4104     310,   134,   278,   280,   115,   134,   211,   274,    40,    41,
     4105      43,    46,    47,    48,    49,    50,    51,    52,    53,    57,
     4106      61,    62,    72,   111,   128,   170,   171,   172,   173,   174,
     4107     175,   177,   178,   190,   192,   193,   198,   212,   308,    29,
     4108     135,   131,   277,   134,   134,   110,   135,   173,   248,   132,
     4109     132,   319,   163,   227,   253,   254,   253,   274,   312,   115,
     4110     259,   372,   110,   116,   112,   112,   135,   227,   116,   373,
     4111     290,   110,   286,   215,   217,   225,   298,   299,   300,   301,
     4112     292,   110,   110,   117,   163,   109,   110,   117,   116,   139,
     4113     164,   164,   112,   110,   110,   110,   357,   279,   116,   135,
     4114     168,   112,   139,   146,   147,   164,   145,   135,   146,   162,
     4115     167,   135,   109,   349,   350,   135,   135,   134,   135,   135,
     4116     135,   164,   110,   135,   109,   349,   350,   109,   355,   109,
     4117     355,   350,   226,     7,   118,   135,   164,   264,   264,   263,
     4118     267,   267,   268,   116,   116,   110,   110,   112,    96,   123,
     4119     135,   135,   146,   278,   164,   116,   132,   212,   216,   227,
     4120     231,   109,   109,   171,   109,   109,    72,   132,    72,   132,
     4121      72,   118,   170,   109,   173,   165,   165,   117,   112,   143,
     4122     132,   135,   134,   135,   211,   110,   164,   264,   264,   312,
     4123     110,   115,   252,   115,   134,   110,   134,   135,   309,   115,
     4124     134,   135,   135,   110,   114,   200,   112,   163,   132,   200,
     4125     202,   110,   116,   135,   109,   349,   350,   372,   165,   112,
     4126     135,    85,   113,   116,   135,   135,   112,   135,   110,   134,
     4127     110,   110,   112,   112,   112,   135,   110,   134,   134,   134,
     4128     164,   164,   135,   112,   135,   135,   135,   135,   134,   134,
     4129     163,   163,   112,   112,   135,   135,   274,   227,   169,   169,
     4130      47,   169,   134,   132,   132,   132,   169,   132,   169,    58,
     4131      59,    60,   194,   195,   196,   132,    63,   132,   312,   114,
     4132     175,   115,   132,   135,   135,    96,   269,   270,   110,   299,
     4133     116,   132,   116,   132,   115,   297,   117,   141,   110,   110,
     4134     117,   168,   112,   134,   115,   112,   111,   147,   111,   147,
     4135     147,   112,   112,   112,   264,   112,   264,   264,   264,   135,
     4136     135,   112,   112,   110,   110,   112,   116,    96,   263,    96,
     4137     135,   112,   112,   110,   110,   109,   110,   170,   191,   212,
     4138     132,   110,   109,   109,   173,   196,    58,    59,   164,   171,
     4139     144,   110,   110,   114,   134,   134,   298,   141,   203,   109,
     4140     132,   203,   135,   117,   264,   134,   134,   135,   135,   135,
     4141     135,   112,   112,   134,   135,   112,   171,    44,    45,   114,
     4142     181,   182,   183,   169,   171,   135,   110,   170,   114,   183,
     4143      96,   134,    96,   134,   109,   109,   132,   115,   134,   272,
     4144     309,   115,   116,   117,   163,   110,   112,   164,   135,   146,
     4145     146,   110,   110,   110,   110,   267,    42,   163,   179,   180,
     4146     310,   117,   134,   171,   181,   110,   132,   171,   132,   134,
     4147     110,   134,   110,   134,    96,   134,    96,   134,   132,   298,
     4148     141,   139,   204,   110,   132,   117,   110,   135,   135,   171,
     4149      96,   116,   117,   135,   205,   206,   212,   132,   170,   170,
     4150     205,   173,   197,   225,   366,   173,   197,   110,   134,   110,
     4151     134,   115,   110,   116,   164,   112,   112,   163,   179,   182,
     4152     184,   185,   134,   132,   182,   186,   187,   135,   109,   149,
     4153     309,   357,   139,   135,   173,   197,   173,   197,   109,   132,
     4154     139,   171,   176,   115,   182,   212,   170,    56,   176,   189,
     4155     115,   182,   110,   227,   110,   135,   135,   292,   171,   176,
     4156     132,   188,   189,   176,   189,   173,   173,   110,   110,   110,
     4157     188,   135,   135,   173,   173,   135,   135
    43834158};
    43844159
     
    52174992
    52184993/* Line 1806 of yacc.c  */
    5219 #line 292 "parser.yy"
     4994#line 291 "parser.yy"
    52204995    {
    52214996                        typedefTable.enterScope();
     
    52265001
    52275002/* Line 1806 of yacc.c  */
    5228 #line 298 "parser.yy"
     5003#line 297 "parser.yy"
    52295004    {
    52305005                        typedefTable.leaveScope();
     
    52355010
    52365011/* Line 1806 of yacc.c  */
     5012#line 306 "parser.yy"
     5013    { (yyval.constant) = makeConstantInteger( *(yyvsp[(1) - (1)].tok) ); }
     5014    break;
     5015
     5016  case 5:
     5017
     5018/* Line 1806 of yacc.c  */
    52375019#line 307 "parser.yy"
    5238     { (yyval.constant) = makeConstantInteger( *(yyvsp[(1) - (1)].tok) ); }
    5239     break;
    5240 
    5241   case 5:
     5020    { (yyval.constant) = makeConstantFloat( *(yyvsp[(1) - (1)].tok) ); }
     5021    break;
     5022
     5023  case 6:
    52425024
    52435025/* Line 1806 of yacc.c  */
    52445026#line 308 "parser.yy"
    5245     { (yyval.constant) = makeConstantFloat( *(yyvsp[(1) - (1)].tok) ); }
    5246     break;
    5247 
    5248   case 6:
    5249 
    5250 /* Line 1806 of yacc.c  */
    5251 #line 309 "parser.yy"
    52525027    { (yyval.constant) = makeConstantChar( *(yyvsp[(1) - (1)].tok) ); }
    52535028    break;
     
    52565031
    52575032/* Line 1806 of yacc.c  */
     5033#line 333 "parser.yy"
     5034    { (yyval.constant) = makeConstantStr( *(yyvsp[(1) - (1)].tok) ); }
     5035    break;
     5036
     5037  case 17:
     5038
     5039/* Line 1806 of yacc.c  */
    52585040#line 334 "parser.yy"
    5259     { (yyval.constant) = makeConstantStr( *(yyvsp[(1) - (1)].tok) ); }
    5260     break;
    5261 
    5262   case 17:
    5263 
    5264 /* Line 1806 of yacc.c  */
    5265 #line 335 "parser.yy"
    52665041    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    52675042    break;
     
    52705045
    52715046/* Line 1806 of yacc.c  */
    5272 #line 342 "parser.yy"
     5047#line 341 "parser.yy"
    52735048    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    52745049    break;
     
    52775052
    52785053/* Line 1806 of yacc.c  */
    5279 #line 344 "parser.yy"
     5054#line 343 "parser.yy"
    52805055    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    52815056    break;
     
    52845059
    52855060/* Line 1806 of yacc.c  */
    5286 #line 346 "parser.yy"
     5061#line 345 "parser.yy"
    52875062    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    52885063    break;
     
    52915066
    52925067/* Line 1806 of yacc.c  */
    5293 #line 348 "parser.yy"
     5068#line 347 "parser.yy"
    52945069    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    52955070    break;
     
    52985073
    52995074/* Line 1806 of yacc.c  */
    5300 #line 358 "parser.yy"
    5301     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
     5075#line 357 "parser.yy"
     5076    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    53025077    break;
    53035078
     
    53055080
    53065081/* Line 1806 of yacc.c  */
    5307 #line 360 "parser.yy"
    5308     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
     5082#line 359 "parser.yy"
     5083    { (yyval.en) = new CompositeExprNode2( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    53095084    break;
    53105085
     
    53125087
    53135088/* Line 1806 of yacc.c  */
    5314 #line 364 "parser.yy"
     5089#line 363 "parser.yy"
    53155090    { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); }
    53165091    break;
     
    53195094
    53205095/* Line 1806 of yacc.c  */
    5321 #line 367 "parser.yy"
     5096#line 366 "parser.yy"
    53225097    { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); }
    53235098    break;
     
    53265101
    53275102/* Line 1806 of yacc.c  */
    5328 #line 370 "parser.yy"
    5329     { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
     5103#line 369 "parser.yy"
     5104    { (yyval.en) = new CompositeExprNode2( build_unary_ptr( OperatorNode::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    53305105    break;
    53315106
     
    53335108
    53345109/* Line 1806 of yacc.c  */
    5335 #line 372 "parser.yy"
    5336     { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
     5110#line 371 "parser.yy"
     5111    { (yyval.en) = new CompositeExprNode2( build_unary_ptr( OperatorNode::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    53375112    break;
    53385113
     
    53405115
    53415116/* Line 1806 of yacc.c  */
    5342 #line 374 "parser.yy"
     5117#line 373 "parser.yy"
    53435118    { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); }
    53445119    break;
     
    53475122
    53485123/* Line 1806 of yacc.c  */
    5349 #line 376 "parser.yy"
     5124#line 375 "parser.yy"
    53505125    {
    5351                         Token fn; fn.str = new std::string( "?{}" ); // location undefined
    5352                         (yyval.en) = new CompositeExprNode( new VarRefNode( fn ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) );
     5126                        Token fn;
     5127                        fn.str = new std::string( "?{}" ); // location undefined
     5128                        (yyval.en) = new CompositeExprNode2( build_func( new VarRefNode( fn ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) ) );
    53535129                }
    53545130    break;
     
    53865162/* Line 1806 of yacc.c  */
    53875163#line 400 "parser.yy"
    5388     { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
     5164    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode2( build_tuple( (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( (yyvsp[(5) - (9)].en) ) ) ) ); }
    53895165    break;
    53905166
     
    54565232/* Line 1806 of yacc.c  */
    54575233#line 437 "parser.yy"
    5458     { (yyval.en) = (yyvsp[(1) - (2)].op) == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( (yyvsp[(2) - (2)].en) ) )
    5459                                                                                         : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( (yyvsp[(1) - (2)].op) ), (yyvsp[(2) - (2)].en) ); }
     5234    {
     5235                        switch ( (yyvsp[(1) - (2)].op) ) {
     5236                          case OperatorNode::AddressOf:
     5237                                (yyval.en) = new CompositeExprNode2( build_addressOf( (yyvsp[(2) - (2)].en) ) );
     5238                                break;
     5239                          case OperatorNode::PointTo:
     5240                                (yyval.en) = new CompositeExprNode2( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
     5241                                break;
     5242                          default:
     5243                                assert( false );
     5244                        }
     5245                }
    54605246    break;
    54615247
     
    54635249
    54645250/* Line 1806 of yacc.c  */
    5465 #line 440 "parser.yy"
    5466     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5251#line 450 "parser.yy"
     5252    { (yyval.en) = new CompositeExprNode2( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    54675253    break;
    54685254
     
    54705256
    54715257/* Line 1806 of yacc.c  */
    5472 #line 442 "parser.yy"
    5473     { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5258#line 452 "parser.yy"
     5259    { (yyval.en) = new CompositeExprNode2( build_unary_ptr( OperatorNode::Incr, (yyvsp[(2) - (2)].en) ) ); }
    54745260    break;
    54755261
     
    54775263
    54785264/* Line 1806 of yacc.c  */
    5479 #line 444 "parser.yy"
    5480     { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5265#line 454 "parser.yy"
     5266    { (yyval.en) = new CompositeExprNode2( build_unary_ptr( OperatorNode::Decr, (yyvsp[(2) - (2)].en) ) ); }
    54815267    break;
    54825268
     
    54845270
    54855271/* Line 1806 of yacc.c  */
    5486 #line 446 "parser.yy"
     5272#line 456 "parser.yy"
    54875273    { (yyval.en) = new CompositeExprNode2( build_sizeOf( (yyvsp[(2) - (2)].en) ) ); }
    54885274    break;
     
    54915277
    54925278/* Line 1806 of yacc.c  */
    5493 #line 448 "parser.yy"
     5279#line 458 "parser.yy"
    54945280    { (yyval.en) = new CompositeExprNode2( build_sizeOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }
    54955281    break;
     
    54985284
    54995285/* Line 1806 of yacc.c  */
    5500 #line 450 "parser.yy"
     5286#line 460 "parser.yy"
    55015287    { (yyval.en) = new CompositeExprNode2( build_offsetOf( new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) ) ) ); }
    55025288    break;
     
    55055291
    55065292/* Line 1806 of yacc.c  */
    5507 #line 452 "parser.yy"
    5508     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
     5293#line 462 "parser.yy"
     5294    { (yyval.en) = new CompositeExprNode2( build_attr( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ) ); }
    55095295    break;
    55105296
     
    55125298
    55135299/* Line 1806 of yacc.c  */
    5514 #line 454 "parser.yy"
    5515     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
     5300#line 464 "parser.yy"
     5301    { (yyval.en) = new CompositeExprNode2( build_attr( new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }
    55165302    break;
    55175303
     
    55195305
    55205306/* Line 1806 of yacc.c  */
    5521 #line 456 "parser.yy"
    5522     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
     5307#line 466 "parser.yy"
     5308    { (yyval.en) = new CompositeExprNode2( build_attr( new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    55235309    break;
    55245310
     
    55265312
    55275313/* Line 1806 of yacc.c  */
    5528 #line 458 "parser.yy"
     5314#line 468 "parser.yy"
    55295315    { (yyval.en) = new CompositeExprNode2( build_alignOf( (yyvsp[(2) - (2)].en) ) ); }
    55305316    break;
     
    55335319
    55345320/* Line 1806 of yacc.c  */
    5535 #line 460 "parser.yy"
     5321#line 470 "parser.yy"
    55365322    { (yyval.en) = new CompositeExprNode2( build_alignOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }
    55375323    break;
     
    55405326
    55415327/* Line 1806 of yacc.c  */
    5542 #line 466 "parser.yy"
     5328#line 476 "parser.yy"
    55435329    { (yyval.op) = OperatorNode::PointTo; }
    55445330    break;
     
    55475333
    55485334/* Line 1806 of yacc.c  */
    5549 #line 467 "parser.yy"
     5335#line 477 "parser.yy"
    55505336    { (yyval.op) = OperatorNode::AddressOf; }
    55515337    break;
     
    55545340
    55555341/* Line 1806 of yacc.c  */
    5556 #line 469 "parser.yy"
    5557     { (yyval.op) = OperatorNode::And; }
     5342#line 483 "parser.yy"
     5343    { (yyval.op) = OperatorNode::UnPlus; }
    55585344    break;
    55595345
     
    55615347
    55625348/* Line 1806 of yacc.c  */
    5563 #line 473 "parser.yy"
    5564     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5349#line 484 "parser.yy"
     5350    { (yyval.op) = OperatorNode::UnMinus; }
    55655351    break;
    55665352
     
    55685354
    55695355/* Line 1806 of yacc.c  */
    5570 #line 474 "parser.yy"
    5571     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
     5356#line 485 "parser.yy"
     5357    { (yyval.op) = OperatorNode::Neg; }
    55725358    break;
    55735359
     
    55755361
    55765362/* Line 1806 of yacc.c  */
    5577 #line 475 "parser.yy"
    5578     { (yyval.en) = new OperatorNode( OperatorNode::Neg ); }
    5579     break;
    5580 
    5581   case 69:
    5582 
    5583 /* Line 1806 of yacc.c  */
    5584 #line 476 "parser.yy"
    5585     { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
     5363#line 486 "parser.yy"
     5364    { (yyval.op) = OperatorNode::BitNeg; }
     5365    break;
     5366
     5367  case 70:
     5368
     5369/* Line 1806 of yacc.c  */
     5370#line 492 "parser.yy"
     5371    { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }
    55865372    break;
    55875373
     
    55895375
    55905376/* Line 1806 of yacc.c  */
    5591 #line 482 "parser.yy"
     5377#line 494 "parser.yy"
    55925378    { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }
    55935379    break;
    55945380
    5595   case 72:
    5596 
    5597 /* Line 1806 of yacc.c  */
    5598 #line 484 "parser.yy"
    5599     { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }
     5381  case 73:
     5382
     5383/* Line 1806 of yacc.c  */
     5384#line 500 "parser.yy"
     5385    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56005386    break;
    56015387
     
    56035389
    56045390/* Line 1806 of yacc.c  */
    5605 #line 490 "parser.yy"
    5606     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5391#line 502 "parser.yy"
     5392    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56075393    break;
    56085394
     
    56105396
    56115397/* Line 1806 of yacc.c  */
    5612 #line 492 "parser.yy"
    5613     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5614     break;
    5615 
    5616   case 76:
    5617 
    5618 /* Line 1806 of yacc.c  */
    5619 #line 494 "parser.yy"
    5620     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5398#line 504 "parser.yy"
     5399    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5400    break;
     5401
     5402  case 77:
     5403
     5404/* Line 1806 of yacc.c  */
     5405#line 510 "parser.yy"
     5406    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56215407    break;
    56225408
     
    56245410
    56255411/* Line 1806 of yacc.c  */
    5626 #line 500 "parser.yy"
    5627     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5628     break;
    5629 
    5630   case 79:
    5631 
    5632 /* Line 1806 of yacc.c  */
    5633 #line 502 "parser.yy"
    5634     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5412#line 512 "parser.yy"
     5413    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5414    break;
     5415
     5416  case 80:
     5417
     5418/* Line 1806 of yacc.c  */
     5419#line 518 "parser.yy"
     5420    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56355421    break;
    56365422
     
    56385424
    56395425/* Line 1806 of yacc.c  */
    5640 #line 508 "parser.yy"
    5641     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5642     break;
    5643 
    5644   case 82:
    5645 
    5646 /* Line 1806 of yacc.c  */
    5647 #line 510 "parser.yy"
    5648     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5426#line 520 "parser.yy"
     5427    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5428    break;
     5429
     5430  case 83:
     5431
     5432/* Line 1806 of yacc.c  */
     5433#line 526 "parser.yy"
     5434    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56495435    break;
    56505436
     
    56525438
    56535439/* Line 1806 of yacc.c  */
    5654 #line 516 "parser.yy"
    5655     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5440#line 528 "parser.yy"
     5441    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56565442    break;
    56575443
     
    56595445
    56605446/* Line 1806 of yacc.c  */
    5661 #line 518 "parser.yy"
    5662     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5447#line 530 "parser.yy"
     5448    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56635449    break;
    56645450
     
    56665452
    56675453/* Line 1806 of yacc.c  */
    5668 #line 520 "parser.yy"
    5669     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5670     break;
    5671 
    5672   case 87:
    5673 
    5674 /* Line 1806 of yacc.c  */
    5675 #line 522 "parser.yy"
    5676     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5454#line 532 "parser.yy"
     5455    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5456    break;
     5457
     5458  case 88:
     5459
     5460/* Line 1806 of yacc.c  */
     5461#line 538 "parser.yy"
     5462    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56775463    break;
    56785464
     
    56805466
    56815467/* Line 1806 of yacc.c  */
    5682 #line 528 "parser.yy"
    5683     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5684     break;
    5685 
    5686   case 90:
    5687 
    5688 /* Line 1806 of yacc.c  */
    5689 #line 530 "parser.yy"
    5690     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5691     break;
    5692 
    5693   case 92:
    5694 
    5695 /* Line 1806 of yacc.c  */
    5696 #line 536 "parser.yy"
    5697     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5698     break;
    5699 
    5700   case 94:
    5701 
    5702 /* Line 1806 of yacc.c  */
    5703 #line 542 "parser.yy"
    5704     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5705     break;
    5706 
    5707   case 96:
    5708 
    5709 /* Line 1806 of yacc.c  */
    5710 #line 548 "parser.yy"
    5711     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5712     break;
    5713 
    5714   case 98:
    5715 
    5716 /* Line 1806 of yacc.c  */
    5717 #line 554 "parser.yy"
     5468#line 540 "parser.yy"
     5469    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5470    break;
     5471
     5472  case 91:
     5473
     5474/* Line 1806 of yacc.c  */
     5475#line 546 "parser.yy"
     5476    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5477    break;
     5478
     5479  case 93:
     5480
     5481/* Line 1806 of yacc.c  */
     5482#line 552 "parser.yy"
     5483    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5484    break;
     5485
     5486  case 95:
     5487
     5488/* Line 1806 of yacc.c  */
     5489#line 558 "parser.yy"
     5490    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5491    break;
     5492
     5493  case 97:
     5494
     5495/* Line 1806 of yacc.c  */
     5496#line 564 "parser.yy"
    57185497    { (yyval.en) = new CompositeExprNode2( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    57195498    break;
    57205499
    5721   case 100:
    5722 
    5723 /* Line 1806 of yacc.c  */
    5724 #line 560 "parser.yy"
     5500  case 99:
     5501
     5502/* Line 1806 of yacc.c  */
     5503#line 570 "parser.yy"
    57255504    { (yyval.en) = new CompositeExprNode2( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    57265505    break;
    57275506
     5507  case 101:
     5508
     5509/* Line 1806 of yacc.c  */
     5510#line 576 "parser.yy"
     5511    { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     5512    break;
     5513
    57285514  case 102:
    57295515
    57305516/* Line 1806 of yacc.c  */
    5731 #line 567 "parser.yy"
     5517#line 578 "parser.yy"
     5518    { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5519    break;
     5520
     5521  case 103:
     5522
     5523/* Line 1806 of yacc.c  */
     5524#line 580 "parser.yy"
    57325525    { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    57335526    break;
    57345527
    5735   case 103:
    5736 
    5737 /* Line 1806 of yacc.c  */
    5738 #line 569 "parser.yy"
    5739     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5740     break;
    5741 
    5742   case 104:
    5743 
    5744 /* Line 1806 of yacc.c  */
    5745 #line 571 "parser.yy"
    5746     { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
     5528  case 106:
     5529
     5530/* Line 1806 of yacc.c  */
     5531#line 591 "parser.yy"
     5532    { (yyval.en) = new CompositeExprNode2( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57475533    break;
    57485534
     
    57505536
    57515537/* Line 1806 of yacc.c  */
    5752 #line 582 "parser.yy"
    5753     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5538#line 593 "parser.yy"
     5539    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode2( build_binary_ptr( OperatorNode::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
    57545540    break;
    57555541
     
    57575543
    57585544/* Line 1806 of yacc.c  */
    5759 #line 584 "parser.yy"
    5760     { (yyval.en) = new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5761     break;
    5762 
    5763   case 109:
    5764 
    5765 /* Line 1806 of yacc.c  */
    5766 #line 586 "parser.yy"
    5767     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5545#line 598 "parser.yy"
     5546    { (yyval.en) = new NullExprNode; }
    57685547    break;
    57695548
     
    57715550
    57725551/* Line 1806 of yacc.c  */
    5773 #line 591 "parser.yy"
    5774     { (yyval.en) = new NullExprNode; }
     5552#line 603 "parser.yy"
     5553    { (yyval.op) = OperatorNode::Assign; }
     5554    break;
     5555
     5556  case 111:
     5557
     5558/* Line 1806 of yacc.c  */
     5559#line 604 "parser.yy"
     5560    { (yyval.op) = OperatorNode::MulAssn; }
    57755561    break;
    57765562
     
    57785564
    57795565/* Line 1806 of yacc.c  */
    5780 #line 599 "parser.yy"
    5781     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5566#line 605 "parser.yy"
     5567    { (yyval.op) = OperatorNode::DivAssn; }
    57825568    break;
    57835569
     
    57855571
    57865572/* Line 1806 of yacc.c  */
    5787 #line 601 "parser.yy"
    5788     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     5573#line 606 "parser.yy"
     5574    { (yyval.op) = OperatorNode::ModAssn; }
    57895575    break;
    57905576
     
    57925578
    57935579/* Line 1806 of yacc.c  */
    5794 #line 603 "parser.yy"
    5795     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
     5580#line 607 "parser.yy"
     5581    { (yyval.op) = OperatorNode::PlusAssn; }
    57965582    break;
    57975583
     
    57995585
    58005586/* Line 1806 of yacc.c  */
    5801 #line 605 "parser.yy"
    5802     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
     5587#line 608 "parser.yy"
     5588    { (yyval.op) = OperatorNode::MinusAssn; }
     5589    break;
     5590
     5591  case 116:
     5592
     5593/* Line 1806 of yacc.c  */
     5594#line 609 "parser.yy"
     5595    { (yyval.op) = OperatorNode::LSAssn; }
    58035596    break;
    58045597
     
    58065599
    58075600/* Line 1806 of yacc.c  */
     5601#line 610 "parser.yy"
     5602    { (yyval.op) = OperatorNode::RSAssn; }
     5603    break;
     5604
     5605  case 118:
     5606
     5607/* Line 1806 of yacc.c  */
    58085608#line 611 "parser.yy"
     5609    { (yyval.op) = OperatorNode::AndAssn; }
     5610    break;
     5611
     5612  case 119:
     5613
     5614/* Line 1806 of yacc.c  */
     5615#line 612 "parser.yy"
     5616    { (yyval.op) = OperatorNode::ERAssn; }
     5617    break;
     5618
     5619  case 120:
     5620
     5621/* Line 1806 of yacc.c  */
     5622#line 613 "parser.yy"
     5623    { (yyval.op) = OperatorNode::OrAssn; }
     5624    break;
     5625
     5626  case 121:
     5627
     5628/* Line 1806 of yacc.c  */
     5629#line 620 "parser.yy"
     5630    { (yyval.en) = new CompositeExprNode2( build_tuple() ); }
     5631    break;
     5632
     5633  case 122:
     5634
     5635/* Line 1806 of yacc.c  */
     5636#line 622 "parser.yy"
     5637    { (yyval.en) = new CompositeExprNode2( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5638    break;
     5639
     5640  case 123:
     5641
     5642/* Line 1806 of yacc.c  */
     5643#line 624 "parser.yy"
     5644    { (yyval.en) = new CompositeExprNode2( build_tuple( (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ) ); }
     5645    break;
     5646
     5647  case 124:
     5648
     5649/* Line 1806 of yacc.c  */
     5650#line 626 "parser.yy"
     5651    { (yyval.en) = new CompositeExprNode2( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( (yyvsp[(5) - (7)].en) ) ) ); }
     5652    break;
     5653
     5654  case 126:
     5655
     5656/* Line 1806 of yacc.c  */
     5657#line 632 "parser.yy"
    58095658    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    58105659    break;
    58115660
    5812   case 118:
    5813 
    5814 /* Line 1806 of yacc.c  */
    5815 #line 615 "parser.yy"
    5816     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    5817     break;
    5818 
    5819   case 119:
    5820 
    5821 /* Line 1806 of yacc.c  */
    5822 #line 616 "parser.yy"
    5823     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    5824     break;
    5825 
    5826   case 120:
    5827 
    5828 /* Line 1806 of yacc.c  */
    5829 #line 617 "parser.yy"
    5830     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    5831     break;
    5832 
    5833   case 121:
    5834 
    5835 /* Line 1806 of yacc.c  */
    5836 #line 618 "parser.yy"
    5837     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    5838     break;
    5839 
    5840   case 122:
    5841 
    5842 /* Line 1806 of yacc.c  */
    5843 #line 619 "parser.yy"
    5844     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    5845     break;
    5846 
    5847   case 123:
    5848 
    5849 /* Line 1806 of yacc.c  */
    5850 #line 620 "parser.yy"
    5851     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    5852     break;
    5853 
    5854   case 124:
    5855 
    5856 /* Line 1806 of yacc.c  */
    5857 #line 621 "parser.yy"
    5858     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    5859     break;
    5860 
    5861   case 125:
    5862 
    5863 /* Line 1806 of yacc.c  */
    5864 #line 622 "parser.yy"
    5865     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    5866     break;
    5867 
    5868   case 126:
    5869 
    5870 /* Line 1806 of yacc.c  */
    5871 #line 623 "parser.yy"
    5872     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5873     break;
    5874 
    5875   case 127:
    5876 
    5877 /* Line 1806 of yacc.c  */
    5878 #line 624 "parser.yy"
    5879     { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
     5661  case 128:
     5662
     5663/* Line 1806 of yacc.c  */
     5664#line 638 "parser.yy"
     5665    { (yyval.en) = new CompositeExprNode2( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    58805666    break;
    58815667
     
    58835669
    58845670/* Line 1806 of yacc.c  */
    5885 #line 631 "parser.yy"
    5886     { (yyval.en) = new CompositeExprNode2( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5887     break;
    5888 
    5889   case 130:
    5890 
    5891 /* Line 1806 of yacc.c  */
    5892 #line 636 "parser.yy"
     5671#line 643 "parser.yy"
    58935672    { (yyval.en) = 0; }
    58945673    break;
    58955674
    5896   case 134:
    5897 
    5898 /* Line 1806 of yacc.c  */
    5899 #line 645 "parser.yy"
     5675  case 133:
     5676
     5677/* Line 1806 of yacc.c  */
     5678#line 652 "parser.yy"
    59005679    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    59015680    break;
    59025681
    5903   case 140:
    5904 
    5905 /* Line 1806 of yacc.c  */
    5906 #line 652 "parser.yy"
     5682  case 139:
     5683
     5684/* Line 1806 of yacc.c  */
     5685#line 659 "parser.yy"
    59075686    {
    59085687                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
    5909                         (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    5910                                 (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ), 0 );
     5688                        (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode2( build_func( new VarRefNode( fn ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ) ), 0 );
    59115689                }
    59125690    break;
    59135691
    5914   case 141:
    5915 
    5916 /* Line 1806 of yacc.c  */
    5917 #line 662 "parser.yy"
     5692  case 140:
     5693
     5694/* Line 1806 of yacc.c  */
     5695#line 668 "parser.yy"
    59185696    {
    59195697                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    59215699    break;
    59225700
     5701  case 141:
     5702
     5703/* Line 1806 of yacc.c  */
     5704#line 675 "parser.yy"
     5705    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
     5706    break;
     5707
    59235708  case 142:
    59245709
    59255710/* Line 1806 of yacc.c  */
    5926 #line 669 "parser.yy"
    5927     { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    5928     break;
    5929 
    5930   case 143:
    5931 
    5932 /* Line 1806 of yacc.c  */
    5933 #line 676 "parser.yy"
     5711#line 682 "parser.yy"
    59345712    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    59355713    break;
    59365714
     5715  case 144:
     5716
     5717/* Line 1806 of yacc.c  */
     5718#line 688 "parser.yy"
     5719    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5720    break;
     5721
    59375722  case 145:
    59385723
    59395724/* Line 1806 of yacc.c  */
    5940 #line 682 "parser.yy"
    5941     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5725#line 693 "parser.yy"
     5726    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    59425727    break;
    59435728
     
    59455730
    59465731/* Line 1806 of yacc.c  */
    5947 #line 687 "parser.yy"
    5948     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5949     break;
    5950 
    5951   case 147:
    5952 
    5953 /* Line 1806 of yacc.c  */
    5954 #line 689 "parser.yy"
     5732#line 695 "parser.yy"
    59555733    {   // mark all fields in list
    59565734                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     
    59605738    break;
    59615739
    5962   case 148:
    5963 
    5964 /* Line 1806 of yacc.c  */
    5965 #line 695 "parser.yy"
     5740  case 147:
     5741
     5742/* Line 1806 of yacc.c  */
     5743#line 701 "parser.yy"
    59665744    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    59675745    break;
    59685746
     5747  case 150:
     5748
     5749/* Line 1806 of yacc.c  */
     5750#line 708 "parser.yy"
     5751    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5752    break;
     5753
    59695754  case 151:
    59705755
    59715756/* Line 1806 of yacc.c  */
    5972 #line 702 "parser.yy"
    5973     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5757#line 713 "parser.yy"
     5758    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    59745759    break;
    59755760
     
    59775762
    59785763/* Line 1806 of yacc.c  */
    5979 #line 707 "parser.yy"
    5980     { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
     5764#line 719 "parser.yy"
     5765    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59815766    break;
    59825767
     
    59845769
    59855770/* Line 1806 of yacc.c  */
    5986 #line 713 "parser.yy"
    5987     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5771#line 721 "parser.yy"
     5772    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    59885773    break;
    59895774
     
    59915776
    59925777/* Line 1806 of yacc.c  */
    5993 #line 715 "parser.yy"
    5994     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
     5778#line 723 "parser.yy"
     5779    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59955780    break;
    59965781
     
    59985783
    59995784/* Line 1806 of yacc.c  */
    6000 #line 717 "parser.yy"
    6001     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6002     break;
    6003 
    6004   case 156:
    6005 
    6006 /* Line 1806 of yacc.c  */
    6007 #line 719 "parser.yy"
     5785#line 725 "parser.yy"
    60085786    {
    60095787                        StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) );
     
    60175795    break;
    60185796
     5797  case 156:
     5798
     5799/* Line 1806 of yacc.c  */
     5800#line 735 "parser.yy"
     5801    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5802    break;
     5803
    60195804  case 157:
    60205805
    60215806/* Line 1806 of yacc.c  */
    6022 #line 729 "parser.yy"
    6023     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6024     break;
    6025 
    6026   case 158:
    6027 
    6028 /* Line 1806 of yacc.c  */
    6029 #line 731 "parser.yy"
     5807#line 737 "parser.yy"
    60305808    {
    60315809                        StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) );
     
    60345812    break;
    60355813
     5814  case 158:
     5815
     5816/* Line 1806 of yacc.c  */
     5817#line 747 "parser.yy"
     5818    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5819    break;
     5820
    60365821  case 159:
    60375822
    60385823/* Line 1806 of yacc.c  */
    6039 #line 741 "parser.yy"
    6040     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    6041     break;
    6042 
    6043   case 160:
    6044 
    6045 /* Line 1806 of yacc.c  */
    6046 #line 743 "parser.yy"
    6047     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5824#line 749 "parser.yy"
     5825    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5826    break;
     5827
     5828  case 161:
     5829
     5830/* Line 1806 of yacc.c  */
     5831#line 754 "parser.yy"
     5832    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); }
    60485833    break;
    60495834
     
    60515836
    60525837/* Line 1806 of yacc.c  */
    6053 #line 748 "parser.yy"
    6054     { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); }
     5838#line 756 "parser.yy"
     5839    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); }
    60555840    break;
    60565841
     
    60585843
    60595844/* Line 1806 of yacc.c  */
    6060 #line 750 "parser.yy"
    6061     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); }
     5845#line 760 "parser.yy"
     5846    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    60625847    break;
    60635848
     
    60655850
    60665851/* Line 1806 of yacc.c  */
    6067 #line 754 "parser.yy"
    6068     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    6069     break;
    6070 
    6071   case 165:
    6072 
    6073 /* Line 1806 of yacc.c  */
    6074 #line 755 "parser.yy"
     5852#line 761 "parser.yy"
    60755853    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    60765854    break;
    60775855
     5856  case 166:
     5857
     5858/* Line 1806 of yacc.c  */
     5859#line 767 "parser.yy"
     5860    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
     5861    break;
     5862
    60785863  case 167:
    60795864
    60805865/* Line 1806 of yacc.c  */
    6081 #line 761 "parser.yy"
    6082     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
     5866#line 771 "parser.yy"
     5867    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    60835868    break;
    60845869
     
    60865871
    60875872/* Line 1806 of yacc.c  */
    6088 #line 765 "parser.yy"
     5873#line 776 "parser.yy"
     5874    { (yyval.sn) = 0; }
     5875    break;
     5876
     5877  case 170:
     5878
     5879/* Line 1806 of yacc.c  */
     5880#line 782 "parser.yy"
    60895881    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    60905882    break;
    60915883
    6092   case 169:
    6093 
    6094 /* Line 1806 of yacc.c  */
    6095 #line 770 "parser.yy"
     5884  case 171:
     5885
     5886/* Line 1806 of yacc.c  */
     5887#line 784 "parser.yy"
     5888    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5889    break;
     5890
     5891  case 172:
     5892
     5893/* Line 1806 of yacc.c  */
     5894#line 789 "parser.yy"
    60965895    { (yyval.sn) = 0; }
    60975896    break;
    60985897
    6099   case 171:
    6100 
    6101 /* Line 1806 of yacc.c  */
    6102 #line 776 "parser.yy"
    6103     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    6104     break;
    6105 
    6106   case 172:
    6107 
    6108 /* Line 1806 of yacc.c  */
    6109 #line 778 "parser.yy"
    6110     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    6111     break;
    6112 
    6113   case 173:
    6114 
    6115 /* Line 1806 of yacc.c  */
    6116 #line 783 "parser.yy"
     5898  case 174:
     5899
     5900/* Line 1806 of yacc.c  */
     5901#line 795 "parser.yy"
     5902    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5903    break;
     5904
     5905  case 175:
     5906
     5907/* Line 1806 of yacc.c  */
     5908#line 797 "parser.yy"
     5909    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); }
     5910    break;
     5911
     5912  case 176:
     5913
     5914/* Line 1806 of yacc.c  */
     5915#line 799 "parser.yy"
     5916    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5917    break;
     5918
     5919  case 177:
     5920
     5921/* Line 1806 of yacc.c  */
     5922#line 801 "parser.yy"
     5923    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
     5924    break;
     5925
     5926  case 178:
     5927
     5928/* Line 1806 of yacc.c  */
     5929#line 806 "parser.yy"
     5930    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
     5931    break;
     5932
     5933  case 180:
     5934
     5935/* Line 1806 of yacc.c  */
     5936#line 812 "parser.yy"
    61175937    { (yyval.sn) = 0; }
    61185938    break;
    61195939
    6120   case 175:
    6121 
    6122 /* Line 1806 of yacc.c  */
    6123 #line 789 "parser.yy"
    6124     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    6125     break;
    6126 
    6127   case 176:
    6128 
    6129 /* Line 1806 of yacc.c  */
    6130 #line 791 "parser.yy"
    6131     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); }
    6132     break;
    6133 
    6134   case 177:
    6135 
    6136 /* Line 1806 of yacc.c  */
    6137 #line 793 "parser.yy"
    6138     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    6139     break;
    6140 
    6141   case 178:
    6142 
    6143 /* Line 1806 of yacc.c  */
    6144 #line 795 "parser.yy"
    6145     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    6146     break;
    6147 
    6148   case 179:
    6149 
    6150 /* Line 1806 of yacc.c  */
    6151 #line 800 "parser.yy"
     5940  case 181:
     5941
     5942/* Line 1806 of yacc.c  */
     5943#line 814 "parser.yy"
     5944    { (yyval.sn) = 0; }
     5945    break;
     5946
     5947  case 182:
     5948
     5949/* Line 1806 of yacc.c  */
     5950#line 819 "parser.yy"
     5951    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5952    break;
     5953
     5954  case 183:
     5955
     5956/* Line 1806 of yacc.c  */
     5957#line 821 "parser.yy"
     5958    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
     5959    break;
     5960
     5961  case 184:
     5962
     5963/* Line 1806 of yacc.c  */
     5964#line 823 "parser.yy"
     5965    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
     5966    break;
     5967
     5968  case 185:
     5969
     5970/* Line 1806 of yacc.c  */
     5971#line 828 "parser.yy"
     5972    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5973    break;
     5974
     5975  case 186:
     5976
     5977/* Line 1806 of yacc.c  */
     5978#line 830 "parser.yy"
     5979    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5980    break;
     5981
     5982  case 187:
     5983
     5984/* Line 1806 of yacc.c  */
     5985#line 835 "parser.yy"
     5986    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
     5987    break;
     5988
     5989  case 188:
     5990
     5991/* Line 1806 of yacc.c  */
     5992#line 839 "parser.yy"
     5993    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
     5994    break;
     5995
     5996  case 189:
     5997
     5998/* Line 1806 of yacc.c  */
     5999#line 842 "parser.yy"
     6000    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
     6001    break;
     6002
     6003  case 190:
     6004
     6005/* Line 1806 of yacc.c  */
     6006#line 846 "parser.yy"
     6007    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
     6008    break;
     6009
     6010  case 191:
     6011
     6012/* Line 1806 of yacc.c  */
     6013#line 849 "parser.yy"
    61526014    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    61536015    break;
    61546016
    6155   case 181:
    6156 
    6157 /* Line 1806 of yacc.c  */
    6158 #line 806 "parser.yy"
    6159     { (yyval.sn) = 0; }
    6160     break;
    6161 
    6162   case 182:
    6163 
    6164 /* Line 1806 of yacc.c  */
    6165 #line 808 "parser.yy"
    6166     { (yyval.sn) = 0; }
    6167     break;
    6168 
    6169   case 183:
    6170 
    6171 /* Line 1806 of yacc.c  */
    6172 #line 813 "parser.yy"
    6173     { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6174     break;
    6175 
    6176   case 184:
    6177 
    6178 /* Line 1806 of yacc.c  */
    6179 #line 815 "parser.yy"
    6180     { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    6181     break;
    6182 
    6183   case 185:
    6184 
    6185 /* Line 1806 of yacc.c  */
    6186 #line 817 "parser.yy"
    6187     { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    6188     break;
    6189 
    6190   case 186:
    6191 
    6192 /* Line 1806 of yacc.c  */
    6193 #line 822 "parser.yy"
    6194     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    6195     break;
    6196 
    6197   case 187:
    6198 
    6199 /* Line 1806 of yacc.c  */
    6200 #line 824 "parser.yy"
    6201     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    6202     break;
    6203 
    6204   case 188:
    6205 
    6206 /* Line 1806 of yacc.c  */
    6207 #line 829 "parser.yy"
    6208     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    6209     break;
    6210 
    6211   case 189:
    6212 
    6213 /* Line 1806 of yacc.c  */
    6214 #line 833 "parser.yy"
    6215     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    6216     break;
    6217 
    6218   case 190:
    6219 
    6220 /* Line 1806 of yacc.c  */
    6221 #line 836 "parser.yy"
    6222     { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    6223     break;
    6224 
    6225   case 191:
    6226 
    6227 /* Line 1806 of yacc.c  */
    6228 #line 840 "parser.yy"
    6229     { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    6230     break;
    6231 
    62326017  case 192:
    62336018
    62346019/* Line 1806 of yacc.c  */
    6235 #line 843 "parser.yy"
    6236     { (yyval.sn) = new StatementNode( StatementNode::Break ); }
     6020#line 853 "parser.yy"
     6021    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    62376022    break;
    62386023
     
    62406025
    62416026/* Line 1806 of yacc.c  */
    6242 #line 847 "parser.yy"
    6243     { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
     6027#line 855 "parser.yy"
     6028    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    62446029    break;
    62456030
     
    62476032
    62486033/* Line 1806 of yacc.c  */
    6249 #line 849 "parser.yy"
    6250     { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
     6034#line 857 "parser.yy"
     6035    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    62516036    break;
    62526037
     
    62546039
    62556040/* Line 1806 of yacc.c  */
    6256 #line 851 "parser.yy"
     6041#line 861 "parser.yy"
    62576042    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    62586043    break;
     
    62616046
    62626047/* Line 1806 of yacc.c  */
    6263 #line 855 "parser.yy"
    6264     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
     6048#line 863 "parser.yy"
     6049    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    62656050    break;
    62666051
     
    62686053
    62696054/* Line 1806 of yacc.c  */
    6270 #line 857 "parser.yy"
    6271     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
     6055#line 870 "parser.yy"
     6056    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    62726057    break;
    62736058
     
    62756060
    62766061/* Line 1806 of yacc.c  */
    6277 #line 864 "parser.yy"
     6062#line 872 "parser.yy"
    62786063    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    62796064    break;
     
    62826067
    62836068/* Line 1806 of yacc.c  */
    6284 #line 866 "parser.yy"
    6285     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6286     break;
    6287 
    6288   case 200:
    6289 
    6290 /* Line 1806 of yacc.c  */
    6291 #line 868 "parser.yy"
     6069#line 874 "parser.yy"
    62926070    {
    62936071                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    62966074    break;
    62976075
     6076  case 201:
     6077
     6078/* Line 1806 of yacc.c  */
     6079#line 885 "parser.yy"
     6080    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
     6081    break;
     6082
    62986083  case 202:
    62996084
    63006085/* Line 1806 of yacc.c  */
    6301 #line 879 "parser.yy"
     6086#line 887 "parser.yy"
     6087    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6088    break;
     6089
     6090  case 203:
     6091
     6092/* Line 1806 of yacc.c  */
     6093#line 889 "parser.yy"
    63026094    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    63036095    break;
    63046096
    6305   case 203:
    6306 
    6307 /* Line 1806 of yacc.c  */
    6308 #line 881 "parser.yy"
     6097  case 204:
     6098
     6099/* Line 1806 of yacc.c  */
     6100#line 891 "parser.yy"
    63096101    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    63106102    break;
    63116103
    6312   case 204:
    6313 
    6314 /* Line 1806 of yacc.c  */
    6315 #line 883 "parser.yy"
    6316     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6317     break;
    6318 
    63196104  case 205:
    63206105
    63216106/* Line 1806 of yacc.c  */
    6322 #line 885 "parser.yy"
    6323     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6107#line 896 "parser.yy"
     6108    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    63246109    break;
    63256110
     
    63276112
    63286113/* Line 1806 of yacc.c  */
    6329 #line 890 "parser.yy"
     6114#line 898 "parser.yy"
     6115    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
     6116    break;
     6117
     6118  case 207:
     6119
     6120/* Line 1806 of yacc.c  */
     6121#line 900 "parser.yy"
    63306122    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    63316123    break;
    63326124
    6333   case 207:
    6334 
    6335 /* Line 1806 of yacc.c  */
    6336 #line 892 "parser.yy"
     6125  case 208:
     6126
     6127/* Line 1806 of yacc.c  */
     6128#line 902 "parser.yy"
    63376129    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    63386130    break;
    63396131
    6340   case 208:
    6341 
    6342 /* Line 1806 of yacc.c  */
    6343 #line 894 "parser.yy"
    6344     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6345     break;
    6346 
    63476132  case 209:
    63486133
    63496134/* Line 1806 of yacc.c  */
    6350 #line 896 "parser.yy"
    6351     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6352     break;
    6353 
    6354   case 210:
    6355 
    6356 /* Line 1806 of yacc.c  */
    6357 #line 901 "parser.yy"
     6135#line 907 "parser.yy"
    63586136    {
    63596137                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    63626140    break;
    63636141
    6364   case 212:
    6365 
    6366 /* Line 1806 of yacc.c  */
    6367 #line 915 "parser.yy"
     6142  case 211:
     6143
     6144/* Line 1806 of yacc.c  */
     6145#line 921 "parser.yy"
    63686146    {
    63696147                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63726150    break;
    63736151
     6152  case 212:
     6153
     6154/* Line 1806 of yacc.c  */
     6155#line 926 "parser.yy"
     6156    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6157    break;
     6158
    63746159  case 213:
    63756160
    63766161/* Line 1806 of yacc.c  */
    6377 #line 920 "parser.yy"
    6378     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6379     break;
    6380 
    6381   case 214:
    6382 
    6383 /* Line 1806 of yacc.c  */
    6384 #line 922 "parser.yy"
     6162#line 928 "parser.yy"
    63856163    {
    63866164                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63896167    break;
    63906168
     6169  case 215:
     6170
     6171/* Line 1806 of yacc.c  */
     6172#line 937 "parser.yy"
     6173    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6174    break;
     6175
    63916176  case 216:
    63926177
    63936178/* Line 1806 of yacc.c  */
    6394 #line 931 "parser.yy"
    6395     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6179#line 939 "parser.yy"
     6180    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    63966181    break;
    63976182
     
    63996184
    64006185/* Line 1806 of yacc.c  */
    6401 #line 933 "parser.yy"
    6402     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6186#line 941 "parser.yy"
     6187    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    64036188    break;
    64046189
     
    64066191
    64076192/* Line 1806 of yacc.c  */
    6408 #line 935 "parser.yy"
    6409     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6193#line 943 "parser.yy"
     6194    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    64106195    break;
    64116196
     
    64136198
    64146199/* Line 1806 of yacc.c  */
    6415 #line 937 "parser.yy"
    6416     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
     6200#line 945 "parser.yy"
     6201    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    64176202    break;
    64186203
     
    64206205
    64216206/* Line 1806 of yacc.c  */
    6422 #line 939 "parser.yy"
    6423     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
     6207#line 950 "parser.yy"
     6208    { (yyval.flag) = false; }
    64246209    break;
    64256210
     
    64276212
    64286213/* Line 1806 of yacc.c  */
    6429 #line 944 "parser.yy"
    6430     { (yyval.flag) = false; }
     6214#line 952 "parser.yy"
     6215    { (yyval.flag) = true; }
    64316216    break;
    64326217
     
    64346219
    64356220/* Line 1806 of yacc.c  */
    6436 #line 946 "parser.yy"
    6437     { (yyval.flag) = true; }
    6438     break;
    6439 
    6440   case 223:
    6441 
    6442 /* Line 1806 of yacc.c  */
    6443 #line 951 "parser.yy"
     6221#line 957 "parser.yy"
    64446222    { (yyval.en) = 0; }
    64456223    break;
    64466224
     6225  case 225:
     6226
     6227/* Line 1806 of yacc.c  */
     6228#line 964 "parser.yy"
     6229    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6230    break;
     6231
    64476232  case 226:
    64486233
    64496234/* Line 1806 of yacc.c  */
    6450 #line 958 "parser.yy"
    6451     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6235#line 969 "parser.yy"
     6236    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    64526237    break;
    64536238
     
    64556240
    64566241/* Line 1806 of yacc.c  */
    6457 #line 963 "parser.yy"
    6458     { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
     6242#line 971 "parser.yy"
     6243    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    64596244    break;
    64606245
     
    64626247
    64636248/* Line 1806 of yacc.c  */
    6464 #line 965 "parser.yy"
    6465     { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
     6249#line 976 "parser.yy"
     6250    { (yyval.constant) = 0; }
    64666251    break;
    64676252
     
    64696254
    64706255/* Line 1806 of yacc.c  */
    6471 #line 970 "parser.yy"
    6472     { (yyval.constant) = 0; }
     6256#line 978 "parser.yy"
     6257    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    64736258    break;
    64746259
     
    64766261
    64776262/* Line 1806 of yacc.c  */
    6478 #line 972 "parser.yy"
    6479     { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
     6263#line 980 "parser.yy"
     6264    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    64806265    break;
    64816266
     
    64836268
    64846269/* Line 1806 of yacc.c  */
    6485 #line 974 "parser.yy"
    6486     { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
     6270#line 985 "parser.yy"
     6271    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    64876272    break;
    64886273
     
    64906275
    64916276/* Line 1806 of yacc.c  */
    6492 #line 979 "parser.yy"
    6493     { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
     6277#line 987 "parser.yy"
     6278    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    64946279    break;
    64956280
     
    64976282
    64986283/* Line 1806 of yacc.c  */
    6499 #line 981 "parser.yy"
    6500     { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    6501     break;
    6502 
    6503   case 234:
    6504 
    6505 /* Line 1806 of yacc.c  */
    6506 #line 988 "parser.yy"
     6284#line 994 "parser.yy"
    65076285    { (yyval.decl) = 0; }
    65086286    break;
    65096287
     6288  case 236:
     6289
     6290/* Line 1806 of yacc.c  */
     6291#line 1001 "parser.yy"
     6292    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6293    break;
     6294
    65106295  case 237:
    65116296
    65126297/* Line 1806 of yacc.c  */
    6513 #line 995 "parser.yy"
     6298#line 1006 "parser.yy"
     6299    { (yyval.decl) = 0; }
     6300    break;
     6301
     6302  case 240:
     6303
     6304/* Line 1806 of yacc.c  */
     6305#line 1013 "parser.yy"
    65146306    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    65156307    break;
    65166308
    6517   case 238:
    6518 
    6519 /* Line 1806 of yacc.c  */
    6520 #line 1000 "parser.yy"
    6521     { (yyval.decl) = 0; }
    6522     break;
    6523 
    6524   case 241:
    6525 
    6526 /* Line 1806 of yacc.c  */
    6527 #line 1007 "parser.yy"
    6528     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6309  case 245:
     6310
     6311/* Line 1806 of yacc.c  */
     6312#line 1027 "parser.yy"
     6313    {}
    65296314    break;
    65306315
     
    65326317
    65336318/* Line 1806 of yacc.c  */
    6534 #line 1021 "parser.yy"
     6319#line 1028 "parser.yy"
    65356320    {}
    65366321    break;
    65376322
    6538   case 247:
    6539 
    6540 /* Line 1806 of yacc.c  */
    6541 #line 1022 "parser.yy"
    6542     {}
    6543     break;
    6544 
    6545   case 255:
    6546 
    6547 /* Line 1806 of yacc.c  */
    6548 #line 1051 "parser.yy"
     6323  case 254:
     6324
     6325/* Line 1806 of yacc.c  */
     6326#line 1057 "parser.yy"
    65496327    {
    65506328                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65536331    break;
    65546332
    6555   case 256:
    6556 
    6557 /* Line 1806 of yacc.c  */
    6558 #line 1058 "parser.yy"
     6333  case 255:
     6334
     6335/* Line 1806 of yacc.c  */
     6336#line 1064 "parser.yy"
    65596337    {
    65606338                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65636341    break;
    65646342
    6565   case 257:
    6566 
    6567 /* Line 1806 of yacc.c  */
    6568 #line 1063 "parser.yy"
     6343  case 256:
     6344
     6345/* Line 1806 of yacc.c  */
     6346#line 1069 "parser.yy"
    65696347    {
    65706348                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    65736351    break;
    65746352
    6575   case 258:
    6576 
    6577 /* Line 1806 of yacc.c  */
    6578 #line 1073 "parser.yy"
     6353  case 257:
     6354
     6355/* Line 1806 of yacc.c  */
     6356#line 1079 "parser.yy"
    65796357    {
    65806358                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    65836361    break;
    65846362
    6585   case 259:
    6586 
    6587 /* Line 1806 of yacc.c  */
    6588 #line 1078 "parser.yy"
     6363  case 258:
     6364
     6365/* Line 1806 of yacc.c  */
     6366#line 1084 "parser.yy"
    65896367    {
    65906368                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    65936371    break;
    65946372
    6595   case 260:
    6596 
    6597 /* Line 1806 of yacc.c  */
    6598 #line 1083 "parser.yy"
     6373  case 259:
     6374
     6375/* Line 1806 of yacc.c  */
     6376#line 1089 "parser.yy"
    65996377    {
    66006378                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    66036381    break;
    66046382
    6605   case 261:
    6606 
    6607 /* Line 1806 of yacc.c  */
    6608 #line 1091 "parser.yy"
     6383  case 260:
     6384
     6385/* Line 1806 of yacc.c  */
     6386#line 1097 "parser.yy"
    66096387    {
    66106388                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66136391    break;
    66146392
    6615   case 262:
    6616 
    6617 /* Line 1806 of yacc.c  */
    6618 #line 1096 "parser.yy"
     6393  case 261:
     6394
     6395/* Line 1806 of yacc.c  */
     6396#line 1102 "parser.yy"
    66196397    {
    66206398                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66236401    break;
    66246402
    6625   case 263:
    6626 
    6627 /* Line 1806 of yacc.c  */
    6628 #line 1101 "parser.yy"
     6403  case 262:
     6404
     6405/* Line 1806 of yacc.c  */
     6406#line 1107 "parser.yy"
    66296407    {
    66306408                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66336411    break;
    66346412
    6635   case 264:
    6636 
    6637 /* Line 1806 of yacc.c  */
    6638 #line 1106 "parser.yy"
     6413  case 263:
     6414
     6415/* Line 1806 of yacc.c  */
     6416#line 1112 "parser.yy"
    66396417    {
    66406418                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66436421    break;
    66446422
    6645   case 265:
    6646 
    6647 /* Line 1806 of yacc.c  */
    6648 #line 1111 "parser.yy"
     6423  case 264:
     6424
     6425/* Line 1806 of yacc.c  */
     6426#line 1117 "parser.yy"
    66496427    {
    66506428                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    66536431    break;
    66546432
    6655   case 266:
    6656 
    6657 /* Line 1806 of yacc.c  */
    6658 #line 1119 "parser.yy"
     6433  case 265:
     6434
     6435/* Line 1806 of yacc.c  */
     6436#line 1125 "parser.yy"
    66596437    {
    66606438                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    66626440    break;
    66636441
    6664   case 267:
    6665 
    6666 /* Line 1806 of yacc.c  */
    6667 #line 1142 "parser.yy"
     6442  case 266:
     6443
     6444/* Line 1806 of yacc.c  */
     6445#line 1148 "parser.yy"
    66686446    {
    66696447                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    66716449    break;
    66726450
    6673   case 268:
    6674 
    6675 /* Line 1806 of yacc.c  */
    6676 #line 1146 "parser.yy"
     6451  case 267:
     6452
     6453/* Line 1806 of yacc.c  */
     6454#line 1152 "parser.yy"
    66776455    {
    66786456                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    66806458    break;
    66816459
     6460  case 268:
     6461
     6462/* Line 1806 of yacc.c  */
     6463#line 1159 "parser.yy"
     6464    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6465    break;
     6466
    66826467  case 269:
    66836468
    66846469/* Line 1806 of yacc.c  */
    6685 #line 1153 "parser.yy"
    6686     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6470#line 1163 "parser.yy"
     6471    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    66876472    break;
    66886473
     
    66906475
    66916476/* Line 1806 of yacc.c  */
    6692 #line 1157 "parser.yy"
    6693     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    6694     break;
    6695 
    6696   case 271:
    6697 
    6698 /* Line 1806 of yacc.c  */
    6699 #line 1162 "parser.yy"
     6477#line 1168 "parser.yy"
    67006478    {
    67016479                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67046482    break;
    67056483
    6706   case 272:
    6707 
    6708 /* Line 1806 of yacc.c  */
    6709 #line 1167 "parser.yy"
     6484  case 271:
     6485
     6486/* Line 1806 of yacc.c  */
     6487#line 1173 "parser.yy"
    67106488    {
    67116489                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67146492    break;
    67156493
    6716   case 273:
    6717 
    6718 /* Line 1806 of yacc.c  */
    6719 #line 1172 "parser.yy"
     6494  case 272:
     6495
     6496/* Line 1806 of yacc.c  */
     6497#line 1178 "parser.yy"
    67206498    {
    67216499                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    67246502    break;
    67256503
    6726   case 274:
    6727 
    6728 /* Line 1806 of yacc.c  */
    6729 #line 1183 "parser.yy"
     6504  case 273:
     6505
     6506/* Line 1806 of yacc.c  */
     6507#line 1189 "parser.yy"
    67306508    {
    67316509                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67346512    break;
    67356513
    6736   case 275:
    6737 
    6738 /* Line 1806 of yacc.c  */
    6739 #line 1188 "parser.yy"
     6514  case 274:
     6515
     6516/* Line 1806 of yacc.c  */
     6517#line 1194 "parser.yy"
    67406518    {
    67416519                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67446522    break;
    67456523
    6746   case 276:
    6747 
    6748 /* Line 1806 of yacc.c  */
    6749 #line 1193 "parser.yy"
     6524  case 275:
     6525
     6526/* Line 1806 of yacc.c  */
     6527#line 1199 "parser.yy"
    67506528    {
    67516529                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67546532    break;
    67556533
    6756   case 277:
    6757 
    6758 /* Line 1806 of yacc.c  */
    6759 #line 1198 "parser.yy"
     6534  case 276:
     6535
     6536/* Line 1806 of yacc.c  */
     6537#line 1204 "parser.yy"
    67606538    {
    67616539                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67646542    break;
    67656543
    6766   case 278:
    6767 
    6768 /* Line 1806 of yacc.c  */
    6769 #line 1203 "parser.yy"
     6544  case 277:
     6545
     6546/* Line 1806 of yacc.c  */
     6547#line 1209 "parser.yy"
    67706548    {
    67716549                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67746552    break;
    67756553
    6776   case 279:
    6777 
    6778 /* Line 1806 of yacc.c  */
    6779 #line 1212 "parser.yy"
     6554  case 278:
     6555
     6556/* Line 1806 of yacc.c  */
     6557#line 1218 "parser.yy"
    67806558    {
    67816559                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    67846562    break;
    67856563
    6786   case 280:
    6787 
    6788 /* Line 1806 of yacc.c  */
    6789 #line 1217 "parser.yy"
     6564  case 279:
     6565
     6566/* Line 1806 of yacc.c  */
     6567#line 1223 "parser.yy"
    67906568    {
    67916569                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    67946572    break;
    67956573
    6796   case 285:
    6797 
    6798 /* Line 1806 of yacc.c  */
    6799 #line 1234 "parser.yy"
     6574  case 284:
     6575
     6576/* Line 1806 of yacc.c  */
     6577#line 1240 "parser.yy"
    68006578    {
    68016579                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    68046582    break;
    68056583
    6806   case 286:
    6807 
    6808 /* Line 1806 of yacc.c  */
    6809 #line 1239 "parser.yy"
     6584  case 285:
     6585
     6586/* Line 1806 of yacc.c  */
     6587#line 1245 "parser.yy"
    68106588    {
    68116589                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    68146592    break;
    68156593
    6816   case 295:
    6817 
    6818 /* Line 1806 of yacc.c  */
    6819 #line 1261 "parser.yy"
     6594  case 294:
     6595
     6596/* Line 1806 of yacc.c  */
     6597#line 1267 "parser.yy"
    68206598    { (yyval.decl) = 0; }
    68216599    break;
    68226600
    6823   case 298:
    6824 
    6825 /* Line 1806 of yacc.c  */
    6826 #line 1273 "parser.yy"
     6601  case 297:
     6602
     6603/* Line 1806 of yacc.c  */
     6604#line 1279 "parser.yy"
    68276605    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68286606    break;
    68296607
     6608  case 300:
     6609
     6610/* Line 1806 of yacc.c  */
     6611#line 1290 "parser.yy"
     6612    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6613    break;
     6614
    68306615  case 301:
    68316616
    68326617/* Line 1806 of yacc.c  */
    6833 #line 1284 "parser.yy"
    6834     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6618#line 1292 "parser.yy"
     6619    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    68356620    break;
    68366621
     
    68386623
    68396624/* Line 1806 of yacc.c  */
    6840 #line 1286 "parser.yy"
    6841     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6625#line 1294 "parser.yy"
     6626    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    68426627    break;
    68436628
     
    68456630
    68466631/* Line 1806 of yacc.c  */
    6847 #line 1288 "parser.yy"
    6848     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6632#line 1296 "parser.yy"
     6633    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    68496634    break;
    68506635
     
    68526637
    68536638/* Line 1806 of yacc.c  */
    6854 #line 1290 "parser.yy"
    6855     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6639#line 1298 "parser.yy"
     6640    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    68566641    break;
    68576642
     
    68596644
    68606645/* Line 1806 of yacc.c  */
    6861 #line 1292 "parser.yy"
    6862     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6863     break;
    6864 
    6865   case 306:
    6866 
    6867 /* Line 1806 of yacc.c  */
    6868 #line 1294 "parser.yy"
     6646#line 1300 "parser.yy"
    68696647    {
    68706648                        typedefTable.enterScope();
     
    68726650    break;
    68736651
    6874   case 307:
    6875 
    6876 /* Line 1806 of yacc.c  */
    6877 #line 1298 "parser.yy"
     6652  case 306:
     6653
     6654/* Line 1806 of yacc.c  */
     6655#line 1304 "parser.yy"
    68786656    {
    68796657                        typedefTable.leaveScope();
     
    68826660    break;
    68836661
     6662  case 308:
     6663
     6664/* Line 1806 of yacc.c  */
     6665#line 1313 "parser.yy"
     6666    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6667    break;
     6668
    68846669  case 309:
    68856670
    68866671/* Line 1806 of yacc.c  */
    6887 #line 1307 "parser.yy"
     6672#line 1315 "parser.yy"
     6673    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6674    break;
     6675
     6676  case 311:
     6677
     6678/* Line 1806 of yacc.c  */
     6679#line 1326 "parser.yy"
    68886680    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68896681    break;
    68906682
    6891   case 310:
    6892 
    6893 /* Line 1806 of yacc.c  */
    6894 #line 1309 "parser.yy"
     6683  case 313:
     6684
     6685/* Line 1806 of yacc.c  */
     6686#line 1335 "parser.yy"
     6687    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6688    break;
     6689
     6690  case 314:
     6691
     6692/* Line 1806 of yacc.c  */
     6693#line 1337 "parser.yy"
     6694    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6695    break;
     6696
     6697  case 315:
     6698
     6699/* Line 1806 of yacc.c  */
     6700#line 1339 "parser.yy"
     6701    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6702    break;
     6703
     6704  case 316:
     6705
     6706/* Line 1806 of yacc.c  */
     6707#line 1341 "parser.yy"
     6708    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6709    break;
     6710
     6711  case 317:
     6712
     6713/* Line 1806 of yacc.c  */
     6714#line 1343 "parser.yy"
     6715    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6716    break;
     6717
     6718  case 318:
     6719
     6720/* Line 1806 of yacc.c  */
     6721#line 1345 "parser.yy"
     6722    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6723    break;
     6724
     6725  case 319:
     6726
     6727/* Line 1806 of yacc.c  */
     6728#line 1347 "parser.yy"
     6729    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6730    break;
     6731
     6732  case 320:
     6733
     6734/* Line 1806 of yacc.c  */
     6735#line 1349 "parser.yy"
     6736    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6737    break;
     6738
     6739  case 321:
     6740
     6741/* Line 1806 of yacc.c  */
     6742#line 1354 "parser.yy"
     6743    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6744    break;
     6745
     6746  case 322:
     6747
     6748/* Line 1806 of yacc.c  */
     6749#line 1356 "parser.yy"
     6750    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6751    break;
     6752
     6753  case 323:
     6754
     6755/* Line 1806 of yacc.c  */
     6756#line 1358 "parser.yy"
     6757    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6758    break;
     6759
     6760  case 324:
     6761
     6762/* Line 1806 of yacc.c  */
     6763#line 1360 "parser.yy"
     6764    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6765    break;
     6766
     6767  case 325:
     6768
     6769/* Line 1806 of yacc.c  */
     6770#line 1362 "parser.yy"
     6771    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6772    break;
     6773
     6774  case 326:
     6775
     6776/* Line 1806 of yacc.c  */
     6777#line 1364 "parser.yy"
     6778    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6779    break;
     6780
     6781  case 327:
     6782
     6783/* Line 1806 of yacc.c  */
     6784#line 1366 "parser.yy"
     6785    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6786    break;
     6787
     6788  case 328:
     6789
     6790/* Line 1806 of yacc.c  */
     6791#line 1368 "parser.yy"
     6792    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6793    break;
     6794
     6795  case 329:
     6796
     6797/* Line 1806 of yacc.c  */
     6798#line 1370 "parser.yy"
     6799    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6800    break;
     6801
     6802  case 330:
     6803
     6804/* Line 1806 of yacc.c  */
     6805#line 1372 "parser.yy"
     6806    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6807    break;
     6808
     6809  case 331:
     6810
     6811/* Line 1806 of yacc.c  */
     6812#line 1374 "parser.yy"
     6813    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6814    break;
     6815
     6816  case 332:
     6817
     6818/* Line 1806 of yacc.c  */
     6819#line 1376 "parser.yy"
     6820    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6821    break;
     6822
     6823  case 333:
     6824
     6825/* Line 1806 of yacc.c  */
     6826#line 1378 "parser.yy"
     6827    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6828    break;
     6829
     6830  case 335:
     6831
     6832/* Line 1806 of yacc.c  */
     6833#line 1385 "parser.yy"
     6834    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6835    break;
     6836
     6837  case 336:
     6838
     6839/* Line 1806 of yacc.c  */
     6840#line 1387 "parser.yy"
     6841    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6842    break;
     6843
     6844  case 337:
     6845
     6846/* Line 1806 of yacc.c  */
     6847#line 1389 "parser.yy"
    68956848    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68966849    break;
    68976850
    6898   case 312:
    6899 
    6900 /* Line 1806 of yacc.c  */
    6901 #line 1320 "parser.yy"
     6851  case 338:
     6852
     6853/* Line 1806 of yacc.c  */
     6854#line 1391 "parser.yy"
     6855    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6856    break;
     6857
     6858  case 340:
     6859
     6860/* Line 1806 of yacc.c  */
     6861#line 1397 "parser.yy"
     6862    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6863    break;
     6864
     6865  case 342:
     6866
     6867/* Line 1806 of yacc.c  */
     6868#line 1404 "parser.yy"
     6869    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6870    break;
     6871
     6872  case 343:
     6873
     6874/* Line 1806 of yacc.c  */
     6875#line 1406 "parser.yy"
    69026876    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69036877    break;
    69046878
    6905   case 314:
    6906 
    6907 /* Line 1806 of yacc.c  */
    6908 #line 1329 "parser.yy"
    6909     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6910     break;
    6911 
    6912   case 315:
    6913 
    6914 /* Line 1806 of yacc.c  */
    6915 #line 1331 "parser.yy"
    6916     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6917     break;
    6918 
    6919   case 316:
    6920 
    6921 /* Line 1806 of yacc.c  */
    6922 #line 1333 "parser.yy"
    6923     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6924     break;
    6925 
    6926   case 317:
    6927 
    6928 /* Line 1806 of yacc.c  */
    6929 #line 1335 "parser.yy"
    6930     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6931     break;
    6932 
    6933   case 318:
    6934 
    6935 /* Line 1806 of yacc.c  */
    6936 #line 1337 "parser.yy"
    6937     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6938     break;
    6939 
    6940   case 319:
    6941 
    6942 /* Line 1806 of yacc.c  */
    6943 #line 1339 "parser.yy"
    6944     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6945     break;
    6946 
    6947   case 320:
    6948 
    6949 /* Line 1806 of yacc.c  */
    6950 #line 1341 "parser.yy"
    6951     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6952     break;
    6953 
    6954   case 321:
    6955 
    6956 /* Line 1806 of yacc.c  */
    6957 #line 1343 "parser.yy"
    6958     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6959     break;
    6960 
    6961   case 322:
    6962 
    6963 /* Line 1806 of yacc.c  */
    6964 #line 1348 "parser.yy"
    6965     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6966     break;
    6967 
    6968   case 323:
    6969 
    6970 /* Line 1806 of yacc.c  */
    6971 #line 1350 "parser.yy"
    6972     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6973     break;
    6974 
    6975   case 324:
    6976 
    6977 /* Line 1806 of yacc.c  */
    6978 #line 1352 "parser.yy"
    6979     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6980     break;
    6981 
    6982   case 325:
    6983 
    6984 /* Line 1806 of yacc.c  */
    6985 #line 1354 "parser.yy"
    6986     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6987     break;
    6988 
    6989   case 326:
    6990 
    6991 /* Line 1806 of yacc.c  */
    6992 #line 1356 "parser.yy"
    6993     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6994     break;
    6995 
    6996   case 327:
    6997 
    6998 /* Line 1806 of yacc.c  */
    6999 #line 1358 "parser.yy"
    7000     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    7001     break;
    7002 
    7003   case 328:
    7004 
    7005 /* Line 1806 of yacc.c  */
    7006 #line 1360 "parser.yy"
    7007     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    7008     break;
    7009 
    7010   case 329:
    7011 
    7012 /* Line 1806 of yacc.c  */
    7013 #line 1362 "parser.yy"
    7014     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    7015     break;
    7016 
    7017   case 330:
    7018 
    7019 /* Line 1806 of yacc.c  */
    7020 #line 1364 "parser.yy"
    7021     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    7022     break;
    7023 
    7024   case 331:
    7025 
    7026 /* Line 1806 of yacc.c  */
    7027 #line 1366 "parser.yy"
    7028     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    7029     break;
    7030 
    7031   case 332:
    7032 
    7033 /* Line 1806 of yacc.c  */
    7034 #line 1368 "parser.yy"
    7035     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    7036     break;
    7037 
    7038   case 333:
    7039 
    7040 /* Line 1806 of yacc.c  */
    7041 #line 1370 "parser.yy"
    7042     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    7043     break;
    7044 
    7045   case 334:
    7046 
    7047 /* Line 1806 of yacc.c  */
    7048 #line 1372 "parser.yy"
    7049     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    7050     break;
    7051 
    7052   case 336:
    7053 
    7054 /* Line 1806 of yacc.c  */
    7055 #line 1379 "parser.yy"
     6879  case 344:
     6880
     6881/* Line 1806 of yacc.c  */
     6882#line 1408 "parser.yy"
     6883    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6884    break;
     6885
     6886  case 345:
     6887
     6888/* Line 1806 of yacc.c  */
     6889#line 1413 "parser.yy"
     6890    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6891    break;
     6892
     6893  case 346:
     6894
     6895/* Line 1806 of yacc.c  */
     6896#line 1415 "parser.yy"
     6897    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6898    break;
     6899
     6900  case 347:
     6901
     6902/* Line 1806 of yacc.c  */
     6903#line 1417 "parser.yy"
     6904    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6905    break;
     6906
     6907  case 348:
     6908
     6909/* Line 1806 of yacc.c  */
     6910#line 1419 "parser.yy"
     6911    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6912    break;
     6913
     6914  case 350:
     6915
     6916/* Line 1806 of yacc.c  */
     6917#line 1425 "parser.yy"
    70566918    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70576919    break;
    70586920
    7059   case 337:
    7060 
    7061 /* Line 1806 of yacc.c  */
    7062 #line 1381 "parser.yy"
     6921  case 351:
     6922
     6923/* Line 1806 of yacc.c  */
     6924#line 1427 "parser.yy"
    70636925    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70646926    break;
    70656927
    7066   case 338:
    7067 
    7068 /* Line 1806 of yacc.c  */
    7069 #line 1383 "parser.yy"
     6928  case 352:
     6929
     6930/* Line 1806 of yacc.c  */
     6931#line 1429 "parser.yy"
    70706932    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    70716933    break;
    70726934
    7073   case 339:
    7074 
    7075 /* Line 1806 of yacc.c  */
    7076 #line 1385 "parser.yy"
    7077     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    7078     break;
    7079 
    7080   case 341:
    7081 
    7082 /* Line 1806 of yacc.c  */
    7083 #line 1391 "parser.yy"
    7084     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7085     break;
    7086 
    7087   case 343:
    7088 
    7089 /* Line 1806 of yacc.c  */
    7090 #line 1398 "parser.yy"
     6935  case 354:
     6936
     6937/* Line 1806 of yacc.c  */
     6938#line 1435 "parser.yy"
    70916939    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70926940    break;
    70936941
    7094   case 344:
    7095 
    7096 /* Line 1806 of yacc.c  */
    7097 #line 1400 "parser.yy"
     6942  case 355:
     6943
     6944/* Line 1806 of yacc.c  */
     6945#line 1437 "parser.yy"
    70986946    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70996947    break;
    71006948
    7101   case 345:
    7102 
    7103 /* Line 1806 of yacc.c  */
    7104 #line 1402 "parser.yy"
    7105     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    7106     break;
    7107 
    7108   case 346:
    7109 
    7110 /* Line 1806 of yacc.c  */
    7111 #line 1407 "parser.yy"
    7112     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    7113     break;
    7114 
    7115   case 347:
    7116 
    7117 /* Line 1806 of yacc.c  */
    7118 #line 1409 "parser.yy"
    7119     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    7120     break;
    7121 
    7122   case 348:
    7123 
    7124 /* Line 1806 of yacc.c  */
    7125 #line 1411 "parser.yy"
    7126     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    7127     break;
    7128 
    7129   case 349:
    7130 
    7131 /* Line 1806 of yacc.c  */
    7132 #line 1413 "parser.yy"
    7133     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7134     break;
    7135 
    7136   case 351:
    7137 
    7138 /* Line 1806 of yacc.c  */
    7139 #line 1419 "parser.yy"
     6949  case 357:
     6950
     6951/* Line 1806 of yacc.c  */
     6952#line 1443 "parser.yy"
    71406953    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71416954    break;
    71426955
    7143   case 352:
    7144 
    7145 /* Line 1806 of yacc.c  */
    7146 #line 1421 "parser.yy"
     6956  case 358:
     6957
     6958/* Line 1806 of yacc.c  */
     6959#line 1445 "parser.yy"
    71476960    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71486961    break;
    71496962
    7150   case 353:
    7151 
    7152 /* Line 1806 of yacc.c  */
    7153 #line 1423 "parser.yy"
     6963  case 359:
     6964
     6965/* Line 1806 of yacc.c  */
     6966#line 1447 "parser.yy"
    71546967    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    71556968    break;
    71566969
    7157   case 355:
    7158 
    7159 /* Line 1806 of yacc.c  */
    7160 #line 1429 "parser.yy"
    7161     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7162     break;
    7163 
    7164   case 356:
    7165 
    7166 /* Line 1806 of yacc.c  */
    7167 #line 1431 "parser.yy"
     6970  case 360:
     6971
     6972/* Line 1806 of yacc.c  */
     6973#line 1452 "parser.yy"
     6974    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6975    break;
     6976
     6977  case 361:
     6978
     6979/* Line 1806 of yacc.c  */
     6980#line 1454 "parser.yy"
     6981    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6982    break;
     6983
     6984  case 362:
     6985
     6986/* Line 1806 of yacc.c  */
     6987#line 1456 "parser.yy"
    71686988    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71696989    break;
    71706990
    7171   case 358:
    7172 
    7173 /* Line 1806 of yacc.c  */
    7174 #line 1437 "parser.yy"
    7175     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7176     break;
    7177 
    7178   case 359:
    7179 
    7180 /* Line 1806 of yacc.c  */
    7181 #line 1439 "parser.yy"
    7182     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7183     break;
    7184 
    7185   case 360:
    7186 
    7187 /* Line 1806 of yacc.c  */
    7188 #line 1441 "parser.yy"
    7189     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7190     break;
    7191 
    7192   case 361:
    7193 
    7194 /* Line 1806 of yacc.c  */
    7195 #line 1446 "parser.yy"
    7196     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    7197     break;
    7198 
    7199   case 362:
    7200 
    7201 /* Line 1806 of yacc.c  */
    7202 #line 1448 "parser.yy"
    7203     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7204     break;
    7205 
    7206   case 363:
    7207 
    7208 /* Line 1806 of yacc.c  */
    7209 #line 1450 "parser.yy"
    7210     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6991  case 365:
     6992
     6993/* Line 1806 of yacc.c  */
     6994#line 1466 "parser.yy"
     6995    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    72116996    break;
    72126997
     
    72146999
    72157000/* Line 1806 of yacc.c  */
    7216 #line 1460 "parser.yy"
    7217     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    7218     break;
    7219 
    7220   case 367:
    7221 
    7222 /* Line 1806 of yacc.c  */
    7223 #line 1462 "parser.yy"
     7001#line 1468 "parser.yy"
    72247002    {
    72257003                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    72287006    break;
    72297007
     7008  case 367:
     7009
     7010/* Line 1806 of yacc.c  */
     7011#line 1473 "parser.yy"
     7012    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7013    break;
     7014
    72307015  case 368:
    72317016
    72327017/* Line 1806 of yacc.c  */
    7233 #line 1467 "parser.yy"
    7234     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7018#line 1475 "parser.yy"
     7019    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
    72357020    break;
    72367021
     
    72387023
    72397024/* Line 1806 of yacc.c  */
    7240 #line 1469 "parser.yy"
    7241     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
     7025#line 1477 "parser.yy"
     7026    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    72427027    break;
    72437028
     
    72457030
    72467031/* Line 1806 of yacc.c  */
    7247 #line 1471 "parser.yy"
    7248     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7032#line 1479 "parser.yy"
     7033    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    72497034    break;
    72507035
     
    72527037
    72537038/* Line 1806 of yacc.c  */
    7254 #line 1473 "parser.yy"
    7255     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7039#line 1484 "parser.yy"
     7040    { (yyval.aggKey) = DeclarationNode::Struct; }
    72567041    break;
    72577042
     
    72597044
    72607045/* Line 1806 of yacc.c  */
    7261 #line 1478 "parser.yy"
    7262     { (yyval.aggKey) = DeclarationNode::Struct; }
     7046#line 1486 "parser.yy"
     7047    { (yyval.aggKey) = DeclarationNode::Union; }
    72637048    break;
    72647049
     
    72667051
    72677052/* Line 1806 of yacc.c  */
    7268 #line 1480 "parser.yy"
    7269     { (yyval.aggKey) = DeclarationNode::Union; }
     7053#line 1491 "parser.yy"
     7054    { (yyval.decl) = 0; }
    72707055    break;
    72717056
     
    72737058
    72747059/* Line 1806 of yacc.c  */
    7275 #line 1485 "parser.yy"
    7276     { (yyval.decl) = 0; }
    7277     break;
    7278 
    7279   case 375:
    7280 
    7281 /* Line 1806 of yacc.c  */
    7282 #line 1487 "parser.yy"
     7060#line 1493 "parser.yy"
    72837061    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    72847062    break;
    72857063
    7286   case 377:
    7287 
    7288 /* Line 1806 of yacc.c  */
    7289 #line 1493 "parser.yy"
     7064  case 376:
     7065
     7066/* Line 1806 of yacc.c  */
     7067#line 1499 "parser.yy"
    72907068    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    72917069    break;
    72927070
    7293   case 379:
    7294 
    7295 /* Line 1806 of yacc.c  */
    7296 #line 1496 "parser.yy"
     7071  case 378:
     7072
     7073/* Line 1806 of yacc.c  */
     7074#line 1502 "parser.yy"
    72977075    {   // mark all fields in list
    72987076                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     
    73027080    break;
    73037081
     7082  case 380:
     7083
     7084/* Line 1806 of yacc.c  */
     7085#line 1512 "parser.yy"
     7086    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7087    break;
     7088
    73047089  case 381:
    73057090
    73067091/* Line 1806 of yacc.c  */
    7307 #line 1506 "parser.yy"
    7308     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7092#line 1514 "parser.yy"
     7093    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    73097094    break;
    73107095
     
    73127097
    73137098/* Line 1806 of yacc.c  */
    7314 #line 1508 "parser.yy"
    7315     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7099#line 1516 "parser.yy"
     7100    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    73167101    break;
    73177102
     
    73197104
    73207105/* Line 1806 of yacc.c  */
    7321 #line 1510 "parser.yy"
    7322     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7106#line 1521 "parser.yy"
     7107    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73237108    break;
    73247109
     
    73267111
    73277112/* Line 1806 of yacc.c  */
    7328 #line 1515 "parser.yy"
    7329     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7113#line 1523 "parser.yy"
     7114    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    73307115    break;
    73317116
     
    73337118
    73347119/* Line 1806 of yacc.c  */
    7335 #line 1517 "parser.yy"
    7336     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7120#line 1528 "parser.yy"
     7121    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    73377122    break;
    73387123
     
    73407125
    73417126/* Line 1806 of yacc.c  */
    7342 #line 1522 "parser.yy"
    7343     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7127#line 1530 "parser.yy"
     7128    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    73447129    break;
    73457130
     
    73477132
    73487133/* Line 1806 of yacc.c  */
    7349 #line 1524 "parser.yy"
    7350     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7134#line 1533 "parser.yy"
     7135    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    73517136    break;
    73527137
     
    73547139
    73557140/* Line 1806 of yacc.c  */
    7356 #line 1527 "parser.yy"
     7141#line 1536 "parser.yy"
    73577142    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    73587143    break;
    73597144
    7360   case 389:
    7361 
    7362 /* Line 1806 of yacc.c  */
    7363 #line 1530 "parser.yy"
    7364     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7145  case 390:
     7146
     7147/* Line 1806 of yacc.c  */
     7148#line 1542 "parser.yy"
     7149    { (yyval.en) = 0; }
    73657150    break;
    73667151
     
    73687153
    73697154/* Line 1806 of yacc.c  */
    7370 #line 1536 "parser.yy"
    7371     { (yyval.en) = 0; }
     7155#line 1544 "parser.yy"
     7156    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    73727157    break;
    73737158
     
    73757160
    73767161/* Line 1806 of yacc.c  */
    7377 #line 1538 "parser.yy"
    7378     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7379     break;
    7380 
    7381   case 393:
    7382 
    7383 /* Line 1806 of yacc.c  */
    7384 #line 1543 "parser.yy"
     7162#line 1549 "parser.yy"
    73857163    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    73867164    break;
    73877165
     7166  case 394:
     7167
     7168/* Line 1806 of yacc.c  */
     7169#line 1558 "parser.yy"
     7170    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     7171    break;
     7172
    73887173  case 395:
    73897174
    73907175/* Line 1806 of yacc.c  */
    7391 #line 1552 "parser.yy"
    7392     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7393     break;
    7394 
    7395   case 396:
    7396 
    7397 /* Line 1806 of yacc.c  */
    7398 #line 1554 "parser.yy"
     7176#line 1560 "parser.yy"
    73997177    {
    74007178                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    74037181    break;
    74047182
     7183  case 396:
     7184
     7185/* Line 1806 of yacc.c  */
     7186#line 1565 "parser.yy"
     7187    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7188    break;
     7189
    74057190  case 397:
    74067191
    74077192/* Line 1806 of yacc.c  */
    7408 #line 1559 "parser.yy"
    7409     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7193#line 1567 "parser.yy"
     7194    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    74107195    break;
    74117196
     
    74137198
    74147199/* Line 1806 of yacc.c  */
    7415 #line 1561 "parser.yy"
    7416     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7200#line 1572 "parser.yy"
     7201    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    74177202    break;
    74187203
     
    74207205
    74217206/* Line 1806 of yacc.c  */
    7422 #line 1566 "parser.yy"
    7423     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7207#line 1574 "parser.yy"
     7208    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    74247209    break;
    74257210
     
    74277212
    74287213/* Line 1806 of yacc.c  */
    7429 #line 1568 "parser.yy"
    7430     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7214#line 1579 "parser.yy"
     7215    { (yyval.en) = 0; }
    74317216    break;
    74327217
     
    74347219
    74357220/* Line 1806 of yacc.c  */
    7436 #line 1573 "parser.yy"
    7437     { (yyval.en) = 0; }
     7221#line 1581 "parser.yy"
     7222    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    74387223    break;
    74397224
     
    74417226
    74427227/* Line 1806 of yacc.c  */
    7443 #line 1575 "parser.yy"
    7444     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7445     break;
    7446 
    7447   case 403:
    7448 
    7449 /* Line 1806 of yacc.c  */
    7450 #line 1582 "parser.yy"
     7228#line 1588 "parser.yy"
    74517229    { (yyval.decl) = 0; }
    74527230    break;
    74537231
     7232  case 406:
     7233
     7234/* Line 1806 of yacc.c  */
     7235#line 1596 "parser.yy"
     7236    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7237    break;
     7238
    74547239  case 407:
    74557240
    74567241/* Line 1806 of yacc.c  */
    7457 #line 1590 "parser.yy"
     7242#line 1598 "parser.yy"
     7243    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7244    break;
     7245
     7246  case 408:
     7247
     7248/* Line 1806 of yacc.c  */
     7249#line 1600 "parser.yy"
     7250    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7251    break;
     7252
     7253  case 410:
     7254
     7255/* Line 1806 of yacc.c  */
     7256#line 1608 "parser.yy"
    74587257    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74597258    break;
    74607259
    7461   case 408:
    7462 
    7463 /* Line 1806 of yacc.c  */
    7464 #line 1592 "parser.yy"
     7260  case 411:
     7261
     7262/* Line 1806 of yacc.c  */
     7263#line 1610 "parser.yy"
     7264    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7265    break;
     7266
     7267  case 412:
     7268
     7269/* Line 1806 of yacc.c  */
     7270#line 1612 "parser.yy"
     7271    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7272    break;
     7273
     7274  case 414:
     7275
     7276/* Line 1806 of yacc.c  */
     7277#line 1618 "parser.yy"
     7278    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7279    break;
     7280
     7281  case 415:
     7282
     7283/* Line 1806 of yacc.c  */
     7284#line 1623 "parser.yy"
     7285    { (yyval.decl) = 0; }
     7286    break;
     7287
     7288  case 418:
     7289
     7290/* Line 1806 of yacc.c  */
     7291#line 1630 "parser.yy"
    74657292    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    74667293    break;
    74677294
    7468   case 409:
    7469 
    7470 /* Line 1806 of yacc.c  */
    7471 #line 1594 "parser.yy"
    7472     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7473     break;
    7474 
    7475   case 411:
    7476 
    7477 /* Line 1806 of yacc.c  */
    7478 #line 1602 "parser.yy"
     7295  case 421:
     7296
     7297/* Line 1806 of yacc.c  */
     7298#line 1637 "parser.yy"
    74797299    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74807300    break;
    74817301
    7482   case 412:
    7483 
    7484 /* Line 1806 of yacc.c  */
    7485 #line 1604 "parser.yy"
     7302  case 422:
     7303
     7304/* Line 1806 of yacc.c  */
     7305#line 1639 "parser.yy"
    74867306    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74877307    break;
    74887308
    7489   case 413:
    7490 
    7491 /* Line 1806 of yacc.c  */
    7492 #line 1606 "parser.yy"
    7493     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7494     break;
    7495 
    7496   case 415:
    7497 
    7498 /* Line 1806 of yacc.c  */
    7499 #line 1612 "parser.yy"
    7500     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7501     break;
    7502 
    7503   case 416:
    7504 
    7505 /* Line 1806 of yacc.c  */
    7506 #line 1617 "parser.yy"
    7507     { (yyval.decl) = 0; }
    7508     break;
    7509 
    7510   case 419:
    7511 
    7512 /* Line 1806 of yacc.c  */
    7513 #line 1624 "parser.yy"
    7514     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7515     break;
    7516 
    7517   case 422:
    7518 
    7519 /* Line 1806 of yacc.c  */
    7520 #line 1631 "parser.yy"
    7521     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7522     break;
    7523 
    7524   case 423:
    7525 
    7526 /* Line 1806 of yacc.c  */
    7527 #line 1633 "parser.yy"
    7528     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7309  case 424:
     7310
     7311/* Line 1806 of yacc.c  */
     7312#line 1648 "parser.yy"
     7313    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    75297314    break;
    75307315
     
    75327317
    75337318/* Line 1806 of yacc.c  */
    7534 #line 1642 "parser.yy"
     7319#line 1651 "parser.yy"
    75357320    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    75367321    break;
     
    75397324
    75407325/* Line 1806 of yacc.c  */
    7541 #line 1645 "parser.yy"
    7542     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7543     break;
    7544 
    7545   case 427:
    7546 
    7547 /* Line 1806 of yacc.c  */
    7548 #line 1647 "parser.yy"
     7326#line 1653 "parser.yy"
    75497327    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    75507328    break;
    75517329
    7552   case 432:
    7553 
    7554 /* Line 1806 of yacc.c  */
    7555 #line 1657 "parser.yy"
     7330  case 431:
     7331
     7332/* Line 1806 of yacc.c  */
     7333#line 1663 "parser.yy"
    75567334    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75577335    break;
    75587336
    7559   case 434:
    7560 
    7561 /* Line 1806 of yacc.c  */
    7562 #line 1663 "parser.yy"
     7337  case 433:
     7338
     7339/* Line 1806 of yacc.c  */
     7340#line 1669 "parser.yy"
    75637341    {
    75647342                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    75677345    break;
    75687346
    7569   case 435:
    7570 
    7571 /* Line 1806 of yacc.c  */
    7572 #line 1668 "parser.yy"
     7347  case 434:
     7348
     7349/* Line 1806 of yacc.c  */
     7350#line 1674 "parser.yy"
    75737351    {
    75747352                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    75777355    break;
    75787356
     7357  case 436:
     7358
     7359/* Line 1806 of yacc.c  */
     7360#line 1683 "parser.yy"
     7361    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7362    break;
     7363
    75797364  case 437:
    75807365
    75817366/* Line 1806 of yacc.c  */
    7582 #line 1677 "parser.yy"
     7367#line 1692 "parser.yy"
     7368    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7369    break;
     7370
     7371  case 438:
     7372
     7373/* Line 1806 of yacc.c  */
     7374#line 1694 "parser.yy"
     7375    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7376    break;
     7377
     7378  case 450:
     7379
     7380/* Line 1806 of yacc.c  */
     7381#line 1719 "parser.yy"
    75837382    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    75847383    break;
    75857384
    7586   case 438:
    7587 
    7588 /* Line 1806 of yacc.c  */
    7589 #line 1686 "parser.yy"
    7590     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7591     break;
    7592 
    7593   case 439:
    7594 
    7595 /* Line 1806 of yacc.c  */
    7596 #line 1688 "parser.yy"
    7597     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    7598     break;
    7599 
    7600   case 451:
    7601 
    7602 /* Line 1806 of yacc.c  */
    7603 #line 1713 "parser.yy"
     7385  case 454:
     7386
     7387/* Line 1806 of yacc.c  */
     7388#line 1727 "parser.yy"
    76047389    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    76057390    break;
     
    76087393
    76097394/* Line 1806 of yacc.c  */
    7610 #line 1721 "parser.yy"
    7611     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7395#line 1732 "parser.yy"
     7396    { (yyval.in) = 0; }
    76127397    break;
    76137398
     
    76157400
    76167401/* Line 1806 of yacc.c  */
    7617 #line 1726 "parser.yy"
     7402#line 1734 "parser.yy"
     7403    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7404    break;
     7405
     7406  case 457:
     7407
     7408/* Line 1806 of yacc.c  */
     7409#line 1736 "parser.yy"
     7410    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7411    break;
     7412
     7413  case 458:
     7414
     7415/* Line 1806 of yacc.c  */
     7416#line 1740 "parser.yy"
     7417    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7418    break;
     7419
     7420  case 459:
     7421
     7422/* Line 1806 of yacc.c  */
     7423#line 1741 "parser.yy"
     7424    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7425    break;
     7426
     7427  case 460:
     7428
     7429/* Line 1806 of yacc.c  */
     7430#line 1746 "parser.yy"
    76187431    { (yyval.in) = 0; }
    76197432    break;
    76207433
    7621   case 457:
    7622 
    7623 /* Line 1806 of yacc.c  */
    7624 #line 1728 "parser.yy"
    7625     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7626     break;
    7627 
    7628   case 458:
    7629 
    7630 /* Line 1806 of yacc.c  */
    7631 #line 1730 "parser.yy"
    7632     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7633     break;
    7634 
    7635   case 459:
    7636 
    7637 /* Line 1806 of yacc.c  */
    7638 #line 1734 "parser.yy"
    7639     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7640     break;
    7641 
    7642   case 460:
    7643 
    7644 /* Line 1806 of yacc.c  */
    7645 #line 1735 "parser.yy"
    7646     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7647     break;
    7648 
    7649   case 461:
    7650 
    7651 /* Line 1806 of yacc.c  */
    7652 #line 1740 "parser.yy"
    7653     { (yyval.in) = 0; }
     7434  case 462:
     7435
     7436/* Line 1806 of yacc.c  */
     7437#line 1748 "parser.yy"
     7438    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    76547439    break;
    76557440
     
    76577442
    76587443/* Line 1806 of yacc.c  */
    7659 #line 1742 "parser.yy"
    7660     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7444#line 1749 "parser.yy"
     7445    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    76617446    break;
    76627447
     
    76647449
    76657450/* Line 1806 of yacc.c  */
    7666 #line 1743 "parser.yy"
    7667     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    7668     break;
    7669 
    7670   case 465:
    7671 
    7672 /* Line 1806 of yacc.c  */
    7673 #line 1745 "parser.yy"
     7451#line 1751 "parser.yy"
    76747452    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    76757453    break;
    76767454
    7677   case 467:
    7678 
    7679 /* Line 1806 of yacc.c  */
    7680 #line 1761 "parser.yy"
     7455  case 466:
     7456
     7457/* Line 1806 of yacc.c  */
     7458#line 1767 "parser.yy"
    76817459    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    76827460    break;
    76837461
     7462  case 468:
     7463
     7464/* Line 1806 of yacc.c  */
     7465#line 1773 "parser.yy"
     7466    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7467    break;
     7468
    76847469  case 469:
    76857470
    76867471/* Line 1806 of yacc.c  */
    7687 #line 1767 "parser.yy"
    7688     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7472#line 1781 "parser.yy"
     7473    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    76897474    break;
    76907475
     
    76927477
    76937478/* Line 1806 of yacc.c  */
    7694 #line 1775 "parser.yy"
    7695     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
     7479#line 1783 "parser.yy"
     7480    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    76967481    break;
    76977482
     
    76997484
    77007485/* Line 1806 of yacc.c  */
    7701 #line 1777 "parser.yy"
    7702     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
     7486#line 1786 "parser.yy"
     7487    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    77037488    break;
    77047489
     
    77067491
    77077492/* Line 1806 of yacc.c  */
    7708 #line 1780 "parser.yy"
     7493#line 1788 "parser.yy"
    77097494    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    77107495    break;
     
    77137498
    77147499/* Line 1806 of yacc.c  */
    7715 #line 1782 "parser.yy"
    7716     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
     7500#line 1790 "parser.yy"
     7501    { (yyval.en) = new DesignatorNode( new CompositeExprNode2( build_binary_val( OperatorNode::Range, (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ), true ); }
    77177502    break;
    77187503
     
    77207505
    77217506/* Line 1806 of yacc.c  */
    7722 #line 1784 "parser.yy"
    7723     { (yyval.en) = new DesignatorNode( new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ), true ); }
    7724     break;
    7725 
    7726   case 475:
    7727 
    7728 /* Line 1806 of yacc.c  */
    7729 #line 1786 "parser.yy"
     7507#line 1792 "parser.yy"
    77307508    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    77317509    break;
    77327510
     7511  case 476:
     7512
     7513/* Line 1806 of yacc.c  */
     7514#line 1816 "parser.yy"
     7515    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7516    break;
     7517
    77337518  case 477:
    77347519
    77357520/* Line 1806 of yacc.c  */
    7736 #line 1810 "parser.yy"
     7521#line 1818 "parser.yy"
     7522    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7523    break;
     7524
     7525  case 478:
     7526
     7527/* Line 1806 of yacc.c  */
     7528#line 1820 "parser.yy"
     7529    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7530    break;
     7531
     7532  case 480:
     7533
     7534/* Line 1806 of yacc.c  */
     7535#line 1826 "parser.yy"
    77377536    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    77387537    break;
    77397538
    7740   case 478:
    7741 
    7742 /* Line 1806 of yacc.c  */
    7743 #line 1812 "parser.yy"
     7539  case 481:
     7540
     7541/* Line 1806 of yacc.c  */
     7542#line 1828 "parser.yy"
    77447543    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    77457544    break;
    77467545
    7747   case 479:
    7748 
    7749 /* Line 1806 of yacc.c  */
    7750 #line 1814 "parser.yy"
    7751     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7752     break;
    7753 
    7754   case 481:
    7755 
    7756 /* Line 1806 of yacc.c  */
    7757 #line 1820 "parser.yy"
    7758     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7759     break;
    7760 
    77617546  case 482:
    77627547
    77637548/* Line 1806 of yacc.c  */
    7764 #line 1822 "parser.yy"
    7765     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7766     break;
    7767 
    7768   case 483:
    7769 
    7770 /* Line 1806 of yacc.c  */
    7771 #line 1827 "parser.yy"
     7549#line 1833 "parser.yy"
    77727550    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    77737551    break;
    77747552
     7553  case 484:
     7554
     7555/* Line 1806 of yacc.c  */
     7556#line 1839 "parser.yy"
     7557    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7558    break;
     7559
    77757560  case 485:
    77767561
    77777562/* Line 1806 of yacc.c  */
    7778 #line 1833 "parser.yy"
    7779     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7563#line 1844 "parser.yy"
     7564    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    77807565    break;
    77817566
     
    77837568
    77847569/* Line 1806 of yacc.c  */
    7785 #line 1838 "parser.yy"
    7786     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7787     break;
    7788 
    7789   case 487:
    7790 
    7791 /* Line 1806 of yacc.c  */
    7792 #line 1840 "parser.yy"
     7570#line 1846 "parser.yy"
    77937571    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    77947572    break;
    77957573
     7574  case 488:
     7575
     7576/* Line 1806 of yacc.c  */
     7577#line 1852 "parser.yy"
     7578    { (yyval.tclass) = DeclarationNode::Type; }
     7579    break;
     7580
    77967581  case 489:
    77977582
    77987583/* Line 1806 of yacc.c  */
    7799 #line 1846 "parser.yy"
    7800     { (yyval.tclass) = DeclarationNode::Type; }
     7584#line 1854 "parser.yy"
     7585    { (yyval.tclass) = DeclarationNode::Ftype; }
    78017586    break;
    78027587
     
    78047589
    78057590/* Line 1806 of yacc.c  */
    7806 #line 1848 "parser.yy"
    7807     { (yyval.tclass) = DeclarationNode::Ftype; }
     7591#line 1856 "parser.yy"
     7592    { (yyval.tclass) = DeclarationNode::Dtype; }
    78087593    break;
    78097594
     
    78117596
    78127597/* Line 1806 of yacc.c  */
    7813 #line 1850 "parser.yy"
    7814     { (yyval.tclass) = DeclarationNode::Dtype; }
     7598#line 1861 "parser.yy"
     7599    { (yyval.decl) = 0; }
    78157600    break;
    78167601
     
    78187603
    78197604/* Line 1806 of yacc.c  */
    7820 #line 1855 "parser.yy"
    7821     { (yyval.decl) = 0; }
     7605#line 1863 "parser.yy"
     7606    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    78227607    break;
    78237608
     
    78257610
    78267611/* Line 1806 of yacc.c  */
    7827 #line 1857 "parser.yy"
    7828     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7829     break;
    7830 
    7831   case 494:
    7832 
    7833 /* Line 1806 of yacc.c  */
    7834 #line 1862 "parser.yy"
     7612#line 1868 "parser.yy"
    78357613    {
    78367614                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    78397617    break;
    78407618
     7619  case 494:
     7620
     7621/* Line 1806 of yacc.c  */
     7622#line 1873 "parser.yy"
     7623    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7624    break;
     7625
    78417626  case 495:
    78427627
    78437628/* Line 1806 of yacc.c  */
    7844 #line 1867 "parser.yy"
    7845     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7629#line 1875 "parser.yy"
     7630    { (yyval.decl) = 0; }
    78467631    break;
    78477632
     
    78497634
    78507635/* Line 1806 of yacc.c  */
    7851 #line 1869 "parser.yy"
    7852     { (yyval.decl) = 0; }
    7853     break;
    7854 
    7855   case 497:
    7856 
    7857 /* Line 1806 of yacc.c  */
    7858 #line 1874 "parser.yy"
     7636#line 1880 "parser.yy"
    78597637    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    78607638    break;
    78617639
     7640  case 498:
     7641
     7642/* Line 1806 of yacc.c  */
     7643#line 1883 "parser.yy"
     7644    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7645    break;
     7646
    78627647  case 499:
    78637648
    78647649/* Line 1806 of yacc.c  */
    7865 #line 1877 "parser.yy"
    7866     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7650#line 1885 "parser.yy"
     7651    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    78677652    break;
    78687653
     
    78707655
    78717656/* Line 1806 of yacc.c  */
    7872 #line 1879 "parser.yy"
    7873     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     7657#line 1890 "parser.yy"
     7658    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78747659    break;
    78757660
     
    78777662
    78787663/* Line 1806 of yacc.c  */
    7879 #line 1884 "parser.yy"
    7880     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7664#line 1892 "parser.yy"
     7665    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    78817666    break;
    78827667
     
    78847669
    78857670/* Line 1806 of yacc.c  */
    7886 #line 1886 "parser.yy"
    7887     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7671#line 1894 "parser.yy"
     7672    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    78887673    break;
    78897674
     
    78917676
    78927677/* Line 1806 of yacc.c  */
    7893 #line 1888 "parser.yy"
    7894     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7678#line 1899 "parser.yy"
     7679    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    78957680    break;
    78967681
     
    78987683
    78997684/* Line 1806 of yacc.c  */
    7900 #line 1893 "parser.yy"
    7901     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7685#line 1901 "parser.yy"
     7686    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    79027687    break;
    79037688
     
    79057690
    79067691/* Line 1806 of yacc.c  */
    7907 #line 1895 "parser.yy"
    7908     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7909     break;
    7910 
    7911   case 506:
    7912 
    7913 /* Line 1806 of yacc.c  */
    7914 #line 1900 "parser.yy"
     7692#line 1906 "parser.yy"
    79157693    {
    79167694                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    79197697    break;
    79207698
    7921   case 507:
    7922 
    7923 /* Line 1806 of yacc.c  */
    7924 #line 1905 "parser.yy"
     7699  case 506:
     7700
     7701/* Line 1806 of yacc.c  */
     7702#line 1911 "parser.yy"
    79257703    {
    79267704                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    79297707    break;
    79307708
    7931   case 508:
    7932 
    7933 /* Line 1806 of yacc.c  */
    7934 #line 1913 "parser.yy"
     7709  case 507:
     7710
     7711/* Line 1806 of yacc.c  */
     7712#line 1919 "parser.yy"
    79357713    {
    79367714                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    79397717    break;
    79407718
    7941   case 509:
    7942 
    7943 /* Line 1806 of yacc.c  */
    7944 #line 1918 "parser.yy"
     7719  case 508:
     7720
     7721/* Line 1806 of yacc.c  */
     7722#line 1924 "parser.yy"
    79457723    {
    79467724                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    79497727    break;
    79507728
    7951   case 510:
    7952 
    7953 /* Line 1806 of yacc.c  */
    7954 #line 1923 "parser.yy"
     7729  case 509:
     7730
     7731/* Line 1806 of yacc.c  */
     7732#line 1929 "parser.yy"
    79557733    {
    79567734                        typedefTable.leaveTrait();
     
    79607738    break;
    79617739
    7962   case 512:
    7963 
    7964 /* Line 1806 of yacc.c  */
    7965 #line 1933 "parser.yy"
     7740  case 511:
     7741
     7742/* Line 1806 of yacc.c  */
     7743#line 1939 "parser.yy"
    79667744    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    79677745    break;
    79687746
    7969   case 515:
    7970 
    7971 /* Line 1806 of yacc.c  */
    7972 #line 1943 "parser.yy"
     7747  case 514:
     7748
     7749/* Line 1806 of yacc.c  */
     7750#line 1949 "parser.yy"
    79737751    {
    79747752                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79777755    break;
    79787756
    7979   case 516:
    7980 
    7981 /* Line 1806 of yacc.c  */
    7982 #line 1948 "parser.yy"
     7757  case 515:
     7758
     7759/* Line 1806 of yacc.c  */
     7760#line 1954 "parser.yy"
    79837761    {
    79847762                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79877765    break;
    79887766
    7989   case 517:
    7990 
    7991 /* Line 1806 of yacc.c  */
    7992 #line 1953 "parser.yy"
     7767  case 516:
     7768
     7769/* Line 1806 of yacc.c  */
     7770#line 1959 "parser.yy"
    79937771    {
    79947772                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    79977775    break;
    79987776
    7999   case 518:
    8000 
    8001 /* Line 1806 of yacc.c  */
    8002 #line 1961 "parser.yy"
     7777  case 517:
     7778
     7779/* Line 1806 of yacc.c  */
     7780#line 1967 "parser.yy"
    80037781    {
    80047782                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    80077785    break;
    80087786
    8009   case 519:
    8010 
    8011 /* Line 1806 of yacc.c  */
    8012 #line 1966 "parser.yy"
     7787  case 518:
     7788
     7789/* Line 1806 of yacc.c  */
     7790#line 1972 "parser.yy"
    80137791    {
    80147792                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    80177795    break;
    80187796
     7797  case 519:
     7798
     7799/* Line 1806 of yacc.c  */
     7800#line 1982 "parser.yy"
     7801    {}
     7802    break;
     7803
    80197804  case 520:
    80207805
    80217806/* Line 1806 of yacc.c  */
    8022 #line 1976 "parser.yy"
    8023     {}
    8024     break;
    8025 
    8026   case 521:
    8027 
    8028 /* Line 1806 of yacc.c  */
    8029 #line 1978 "parser.yy"
     7807#line 1984 "parser.yy"
    80307808    {
    80317809                        if ( theTree ) {
     
    80377815    break;
    80387816
     7817  case 522:
     7818
     7819/* Line 1806 of yacc.c  */
     7820#line 1996 "parser.yy"
     7821    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7822    break;
     7823
    80397824  case 523:
    80407825
    80417826/* Line 1806 of yacc.c  */
    8042 #line 1990 "parser.yy"
    8043     { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    8044     break;
    8045 
    8046   case 524:
    8047 
    8048 /* Line 1806 of yacc.c  */
    8049 #line 1995 "parser.yy"
     7827#line 2001 "parser.yy"
    80507828    { (yyval.decl) = 0; }
    80517829    break;
    80527830
     7831  case 527:
     7832
     7833/* Line 1806 of yacc.c  */
     7834#line 2009 "parser.yy"
     7835    {}
     7836    break;
     7837
    80537838  case 528:
    80547839
    80557840/* Line 1806 of yacc.c  */
    8056 #line 2003 "parser.yy"
    8057     {}
    8058     break;
    8059 
    8060   case 529:
    8061 
    8062 /* Line 1806 of yacc.c  */
    8063 #line 2005 "parser.yy"
     7841#line 2011 "parser.yy"
    80647842    {
    80657843                        linkageStack.push( linkage );
     
    80687846    break;
    80697847
    8070   case 530:
    8071 
    8072 /* Line 1806 of yacc.c  */
    8073 #line 2010 "parser.yy"
     7848  case 529:
     7849
     7850/* Line 1806 of yacc.c  */
     7851#line 2016 "parser.yy"
    80747852    {
    80757853                        linkage = linkageStack.top();
     
    80797857    break;
    80807858
    8081   case 531:
    8082 
    8083 /* Line 1806 of yacc.c  */
    8084 #line 2016 "parser.yy"
     7859  case 530:
     7860
     7861/* Line 1806 of yacc.c  */
     7862#line 2022 "parser.yy"
    80857863    {   // mark all fields in list
    80867864                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     
    80907868    break;
    80917869
    8092   case 533:
    8093 
    8094 /* Line 1806 of yacc.c  */
    8095 #line 2031 "parser.yy"
     7870  case 532:
     7871
     7872/* Line 1806 of yacc.c  */
     7873#line 2037 "parser.yy"
    80967874    {
    80977875                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81017879    break;
    81027880
    8103   case 534:
    8104 
    8105 /* Line 1806 of yacc.c  */
    8106 #line 2037 "parser.yy"
     7881  case 533:
     7882
     7883/* Line 1806 of yacc.c  */
     7884#line 2043 "parser.yy"
    81077885    {
    81087886                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81127890    break;
    81137891
    8114   case 535:
    8115 
    8116 /* Line 1806 of yacc.c  */
    8117 #line 2046 "parser.yy"
     7892  case 534:
     7893
     7894/* Line 1806 of yacc.c  */
     7895#line 2052 "parser.yy"
    81187896    {
    81197897                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81237901    break;
    81247902
    8125   case 536:
    8126 
    8127 /* Line 1806 of yacc.c  */
    8128 #line 2052 "parser.yy"
     7903  case 535:
     7904
     7905/* Line 1806 of yacc.c  */
     7906#line 2058 "parser.yy"
    81297907    {
    81307908                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81347912    break;
    81357913
    8136   case 537:
    8137 
    8138 /* Line 1806 of yacc.c  */
    8139 #line 2058 "parser.yy"
    8140     {
    8141                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    8142                         typedefTable.leaveScope();
    8143                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
    8144                 }
    8145     break;
    8146 
    8147   case 538:
     7914  case 536:
    81487915
    81497916/* Line 1806 of yacc.c  */
     
    81567923    break;
    81577924
    8158   case 539:
     7925  case 537:
    81597926
    81607927/* Line 1806 of yacc.c  */
    81617928#line 2070 "parser.yy"
     7929    {
     7930                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     7931                        typedefTable.leaveScope();
     7932                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7933                }
     7934    break;
     7935
     7936  case 538:
     7937
     7938/* Line 1806 of yacc.c  */
     7939#line 2076 "parser.yy"
    81627940    {
    81637941                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81677945    break;
    81687946
    8169   case 540:
    8170 
    8171 /* Line 1806 of yacc.c  */
    8172 #line 2078 "parser.yy"
     7947  case 539:
     7948
     7949/* Line 1806 of yacc.c  */
     7950#line 2084 "parser.yy"
    81737951    {
    81747952                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81787956    break;
    81797957
    8180   case 541:
    8181 
    8182 /* Line 1806 of yacc.c  */
    8183 #line 2084 "parser.yy"
     7958  case 540:
     7959
     7960/* Line 1806 of yacc.c  */
     7961#line 2090 "parser.yy"
    81847962    {
    81857963                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81897967    break;
    81907968
    8191   case 542:
    8192 
    8193 /* Line 1806 of yacc.c  */
    8194 #line 2092 "parser.yy"
     7969  case 541:
     7970
     7971/* Line 1806 of yacc.c  */
     7972#line 2098 "parser.yy"
    81957973    {
    81967974                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82007978    break;
    82017979
    8202   case 543:
    8203 
    8204 /* Line 1806 of yacc.c  */
    8205 #line 2098 "parser.yy"
     7980  case 542:
     7981
     7982/* Line 1806 of yacc.c  */
     7983#line 2104 "parser.yy"
    82067984    {
    82077985                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82117989    break;
    82127990
    8213   case 547:
    8214 
    8215 /* Line 1806 of yacc.c  */
    8216 #line 2113 "parser.yy"
    8217     { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    8218     break;
    8219 
    8220   case 550:
    8221 
    8222 /* Line 1806 of yacc.c  */
    8223 #line 2123 "parser.yy"
     7991  case 546:
     7992
     7993/* Line 1806 of yacc.c  */
     7994#line 2119 "parser.yy"
     7995    { (yyval.en) = new CompositeExprNode2( build_binary_val( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7996    break;
     7997
     7998  case 549:
     7999
     8000/* Line 1806 of yacc.c  */
     8001#line 2129 "parser.yy"
    82248002    { (yyval.decl) = 0; }
    82258003    break;
    82268004
     8005  case 552:
     8006
     8007/* Line 1806 of yacc.c  */
     8008#line 2136 "parser.yy"
     8009    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8010    break;
     8011
    82278012  case 553:
    82288013
    82298014/* Line 1806 of yacc.c  */
    8230 #line 2130 "parser.yy"
    8231     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8232     break;
    8233 
    8234   case 554:
    8235 
    8236 /* Line 1806 of yacc.c  */
    8237 #line 2136 "parser.yy"
     8015#line 2142 "parser.yy"
    82388016    { (yyval.decl) = 0; }
    82398017    break;
    82408018
     8019  case 559:
     8020
     8021/* Line 1806 of yacc.c  */
     8022#line 2157 "parser.yy"
     8023    {}
     8024    break;
     8025
    82418026  case 560:
    82428027
    82438028/* Line 1806 of yacc.c  */
    8244 #line 2151 "parser.yy"
     8029#line 2158 "parser.yy"
    82458030    {}
    82468031    break;
     
    82498034
    82508035/* Line 1806 of yacc.c  */
    8251 #line 2152 "parser.yy"
     8036#line 2159 "parser.yy"
    82528037    {}
    82538038    break;
     
    82568041
    82578042/* Line 1806 of yacc.c  */
    8258 #line 2153 "parser.yy"
     8043#line 2160 "parser.yy"
    82598044    {}
    82608045    break;
     
    82638048
    82648049/* Line 1806 of yacc.c  */
    8265 #line 2154 "parser.yy"
    8266     {}
    8267     break;
    8268 
    8269   case 564:
    8270 
    8271 /* Line 1806 of yacc.c  */
    8272 #line 2189 "parser.yy"
     8050#line 2195 "parser.yy"
    82738051    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82748052    break;
    82758053
     8054  case 565:
     8055
     8056/* Line 1806 of yacc.c  */
     8057#line 2198 "parser.yy"
     8058    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8059    break;
     8060
    82768061  case 566:
    82778062
    82788063/* Line 1806 of yacc.c  */
    8279 #line 2192 "parser.yy"
     8064#line 2200 "parser.yy"
    82808065    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82818066    break;
     
    82848069
    82858070/* Line 1806 of yacc.c  */
    8286 #line 2194 "parser.yy"
    8287     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8288     break;
    8289 
    8290   case 568:
    8291 
    8292 /* Line 1806 of yacc.c  */
    8293 #line 2199 "parser.yy"
     8071#line 2205 "parser.yy"
    82948072    {
    82958073                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    82988076    break;
    82998077
     8078  case 568:
     8079
     8080/* Line 1806 of yacc.c  */
     8081#line 2210 "parser.yy"
     8082    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8083    break;
     8084
    83008085  case 569:
    83018086
    83028087/* Line 1806 of yacc.c  */
    8303 #line 2204 "parser.yy"
     8088#line 2215 "parser.yy"
     8089    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8090    break;
     8091
     8092  case 570:
     8093
     8094/* Line 1806 of yacc.c  */
     8095#line 2217 "parser.yy"
     8096    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8097    break;
     8098
     8099  case 571:
     8100
     8101/* Line 1806 of yacc.c  */
     8102#line 2219 "parser.yy"
    83048103    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83058104    break;
    83068105
    8307   case 570:
    8308 
    8309 /* Line 1806 of yacc.c  */
    8310 #line 2209 "parser.yy"
     8106  case 572:
     8107
     8108/* Line 1806 of yacc.c  */
     8109#line 2224 "parser.yy"
     8110    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8111    break;
     8112
     8113  case 573:
     8114
     8115/* Line 1806 of yacc.c  */
     8116#line 2226 "parser.yy"
     8117    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8118    break;
     8119
     8120  case 574:
     8121
     8122/* Line 1806 of yacc.c  */
     8123#line 2228 "parser.yy"
     8124    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8125    break;
     8126
     8127  case 575:
     8128
     8129/* Line 1806 of yacc.c  */
     8130#line 2230 "parser.yy"
     8131    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8132    break;
     8133
     8134  case 576:
     8135
     8136/* Line 1806 of yacc.c  */
     8137#line 2235 "parser.yy"
     8138    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8139    break;
     8140
     8141  case 577:
     8142
     8143/* Line 1806 of yacc.c  */
     8144#line 2237 "parser.yy"
     8145    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8146    break;
     8147
     8148  case 578:
     8149
     8150/* Line 1806 of yacc.c  */
     8151#line 2246 "parser.yy"
     8152    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8153    break;
     8154
     8155  case 580:
     8156
     8157/* Line 1806 of yacc.c  */
     8158#line 2249 "parser.yy"
     8159    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8160    break;
     8161
     8162  case 581:
     8163
     8164/* Line 1806 of yacc.c  */
     8165#line 2254 "parser.yy"
     8166    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8167    break;
     8168
     8169  case 582:
     8170
     8171/* Line 1806 of yacc.c  */
     8172#line 2256 "parser.yy"
     8173    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8174    break;
     8175
     8176  case 583:
     8177
     8178/* Line 1806 of yacc.c  */
     8179#line 2258 "parser.yy"
     8180    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8181    break;
     8182
     8183  case 584:
     8184
     8185/* Line 1806 of yacc.c  */
     8186#line 2263 "parser.yy"
    83118187    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83128188    break;
    83138189
    8314   case 571:
    8315 
    8316 /* Line 1806 of yacc.c  */
    8317 #line 2211 "parser.yy"
     8190  case 585:
     8191
     8192/* Line 1806 of yacc.c  */
     8193#line 2265 "parser.yy"
    83188194    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83198195    break;
    83208196
    8321   case 572:
    8322 
    8323 /* Line 1806 of yacc.c  */
    8324 #line 2213 "parser.yy"
     8197  case 586:
     8198
     8199/* Line 1806 of yacc.c  */
     8200#line 2267 "parser.yy"
    83258201    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83268202    break;
    83278203
    8328   case 573:
    8329 
    8330 /* Line 1806 of yacc.c  */
    8331 #line 2218 "parser.yy"
     8204  case 587:
     8205
     8206/* Line 1806 of yacc.c  */
     8207#line 2272 "parser.yy"
     8208    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8209    break;
     8210
     8211  case 588:
     8212
     8213/* Line 1806 of yacc.c  */
     8214#line 2274 "parser.yy"
     8215    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8216    break;
     8217
     8218  case 589:
     8219
     8220/* Line 1806 of yacc.c  */
     8221#line 2276 "parser.yy"
     8222    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8223    break;
     8224
     8225  case 593:
     8226
     8227/* Line 1806 of yacc.c  */
     8228#line 2291 "parser.yy"
     8229    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8230    break;
     8231
     8232  case 594:
     8233
     8234/* Line 1806 of yacc.c  */
     8235#line 2293 "parser.yy"
     8236    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8237    break;
     8238
     8239  case 595:
     8240
     8241/* Line 1806 of yacc.c  */
     8242#line 2295 "parser.yy"
     8243    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8244    break;
     8245
     8246  case 596:
     8247
     8248/* Line 1806 of yacc.c  */
     8249#line 2300 "parser.yy"
     8250    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8251    break;
     8252
     8253  case 597:
     8254
     8255/* Line 1806 of yacc.c  */
     8256#line 2302 "parser.yy"
     8257    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8258    break;
     8259
     8260  case 598:
     8261
     8262/* Line 1806 of yacc.c  */
     8263#line 2304 "parser.yy"
     8264    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8265    break;
     8266
     8267  case 599:
     8268
     8269/* Line 1806 of yacc.c  */
     8270#line 2309 "parser.yy"
     8271    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8272    break;
     8273
     8274  case 600:
     8275
     8276/* Line 1806 of yacc.c  */
     8277#line 2311 "parser.yy"
     8278    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8279    break;
     8280
     8281  case 601:
     8282
     8283/* Line 1806 of yacc.c  */
     8284#line 2313 "parser.yy"
     8285    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8286    break;
     8287
     8288  case 602:
     8289
     8290/* Line 1806 of yacc.c  */
     8291#line 2328 "parser.yy"
     8292    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8293    break;
     8294
     8295  case 604:
     8296
     8297/* Line 1806 of yacc.c  */
     8298#line 2331 "parser.yy"
     8299    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8300    break;
     8301
     8302  case 605:
     8303
     8304/* Line 1806 of yacc.c  */
     8305#line 2333 "parser.yy"
     8306    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8307    break;
     8308
     8309  case 607:
     8310
     8311/* Line 1806 of yacc.c  */
     8312#line 2339 "parser.yy"
     8313    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8314    break;
     8315
     8316  case 608:
     8317
     8318/* Line 1806 of yacc.c  */
     8319#line 2344 "parser.yy"
     8320    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8321    break;
     8322
     8323  case 609:
     8324
     8325/* Line 1806 of yacc.c  */
     8326#line 2346 "parser.yy"
     8327    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8328    break;
     8329
     8330  case 610:
     8331
     8332/* Line 1806 of yacc.c  */
     8333#line 2348 "parser.yy"
     8334    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8335    break;
     8336
     8337  case 611:
     8338
     8339/* Line 1806 of yacc.c  */
     8340#line 2353 "parser.yy"
    83328341    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83338342    break;
    83348343
    8335   case 574:
    8336 
    8337 /* Line 1806 of yacc.c  */
    8338 #line 2220 "parser.yy"
     8344  case 612:
     8345
     8346/* Line 1806 of yacc.c  */
     8347#line 2355 "parser.yy"
    83398348    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83408349    break;
    83418350
    8342   case 575:
    8343 
    8344 /* Line 1806 of yacc.c  */
    8345 #line 2222 "parser.yy"
     8351  case 613:
     8352
     8353/* Line 1806 of yacc.c  */
     8354#line 2357 "parser.yy"
    83468355    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83478356    break;
    83488357
    8349   case 576:
    8350 
    8351 /* Line 1806 of yacc.c  */
    8352 #line 2224 "parser.yy"
     8358  case 614:
     8359
     8360/* Line 1806 of yacc.c  */
     8361#line 2359 "parser.yy"
    83538362    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83548363    break;
    83558364
    8356   case 577:
    8357 
    8358 /* Line 1806 of yacc.c  */
    8359 #line 2229 "parser.yy"
     8365  case 615:
     8366
     8367/* Line 1806 of yacc.c  */
     8368#line 2364 "parser.yy"
     8369    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8370    break;
     8371
     8372  case 616:
     8373
     8374/* Line 1806 of yacc.c  */
     8375#line 2366 "parser.yy"
    83608376    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83618377    break;
    83628378
    8363   case 578:
    8364 
    8365 /* Line 1806 of yacc.c  */
    8366 #line 2231 "parser.yy"
     8379  case 617:
     8380
     8381/* Line 1806 of yacc.c  */
     8382#line 2368 "parser.yy"
    83678383    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83688384    break;
    83698385
    8370   case 579:
    8371 
    8372 /* Line 1806 of yacc.c  */
    8373 #line 2240 "parser.yy"
     8386  case 618:
     8387
     8388/* Line 1806 of yacc.c  */
     8389#line 2378 "parser.yy"
    83748390    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83758391    break;
    83768392
    8377   case 581:
    8378 
    8379 /* Line 1806 of yacc.c  */
    8380 #line 2243 "parser.yy"
     8393  case 620:
     8394
     8395/* Line 1806 of yacc.c  */
     8396#line 2381 "parser.yy"
    83818397    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83828398    break;
    83838399
    8384   case 582:
    8385 
    8386 /* Line 1806 of yacc.c  */
    8387 #line 2248 "parser.yy"
     8400  case 621:
     8401
     8402/* Line 1806 of yacc.c  */
     8403#line 2383 "parser.yy"
     8404    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8405    break;
     8406
     8407  case 622:
     8408
     8409/* Line 1806 of yacc.c  */
     8410#line 2388 "parser.yy"
     8411    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8412    break;
     8413
     8414  case 623:
     8415
     8416/* Line 1806 of yacc.c  */
     8417#line 2390 "parser.yy"
     8418    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8419    break;
     8420
     8421  case 624:
     8422
     8423/* Line 1806 of yacc.c  */
     8424#line 2392 "parser.yy"
     8425    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8426    break;
     8427
     8428  case 625:
     8429
     8430/* Line 1806 of yacc.c  */
     8431#line 2397 "parser.yy"
     8432    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8433    break;
     8434
     8435  case 626:
     8436
     8437/* Line 1806 of yacc.c  */
     8438#line 2399 "parser.yy"
     8439    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8440    break;
     8441
     8442  case 627:
     8443
     8444/* Line 1806 of yacc.c  */
     8445#line 2401 "parser.yy"
     8446    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8447    break;
     8448
     8449  case 628:
     8450
     8451/* Line 1806 of yacc.c  */
     8452#line 2403 "parser.yy"
     8453    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8454    break;
     8455
     8456  case 629:
     8457
     8458/* Line 1806 of yacc.c  */
     8459#line 2408 "parser.yy"
    83888460    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83898461    break;
    83908462
    8391   case 583:
    8392 
    8393 /* Line 1806 of yacc.c  */
    8394 #line 2250 "parser.yy"
     8463  case 630:
     8464
     8465/* Line 1806 of yacc.c  */
     8466#line 2410 "parser.yy"
    83958467    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83968468    break;
    83978469
    8398   case 584:
    8399 
    8400 /* Line 1806 of yacc.c  */
    8401 #line 2252 "parser.yy"
     8470  case 631:
     8471
     8472/* Line 1806 of yacc.c  */
     8473#line 2412 "parser.yy"
    84028474    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84038475    break;
    84048476
    8405   case 585:
    8406 
    8407 /* Line 1806 of yacc.c  */
    8408 #line 2257 "parser.yy"
    8409     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8410     break;
    8411 
    8412   case 586:
    8413 
    8414 /* Line 1806 of yacc.c  */
    8415 #line 2259 "parser.yy"
    8416     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8417     break;
    8418 
    8419   case 587:
    8420 
    8421 /* Line 1806 of yacc.c  */
    8422 #line 2261 "parser.yy"
    8423     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8424     break;
    8425 
    8426   case 588:
    8427 
    8428 /* Line 1806 of yacc.c  */
    8429 #line 2266 "parser.yy"
    8430     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8431     break;
    8432 
    8433   case 589:
    8434 
    8435 /* Line 1806 of yacc.c  */
    8436 #line 2268 "parser.yy"
    8437     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8438     break;
    8439 
    8440   case 590:
    8441 
    8442 /* Line 1806 of yacc.c  */
    8443 #line 2270 "parser.yy"
    8444     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8445     break;
    8446 
    8447   case 594:
    8448 
    8449 /* Line 1806 of yacc.c  */
    8450 #line 2285 "parser.yy"
    8451     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8452     break;
    8453 
    8454   case 595:
    8455 
    8456 /* Line 1806 of yacc.c  */
    8457 #line 2287 "parser.yy"
    8458     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8459     break;
    8460 
    8461   case 596:
    8462 
    8463 /* Line 1806 of yacc.c  */
    8464 #line 2289 "parser.yy"
    8465     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8466     break;
    8467 
    8468   case 597:
    8469 
    8470 /* Line 1806 of yacc.c  */
    8471 #line 2294 "parser.yy"
    8472     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8473     break;
    8474 
    8475   case 598:
    8476 
    8477 /* Line 1806 of yacc.c  */
    8478 #line 2296 "parser.yy"
    8479     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8480     break;
    8481 
    8482   case 599:
    8483 
    8484 /* Line 1806 of yacc.c  */
    8485 #line 2298 "parser.yy"
    8486     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8487     break;
    8488 
    8489   case 600:
    8490 
    8491 /* Line 1806 of yacc.c  */
    8492 #line 2303 "parser.yy"
    8493     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8494     break;
    8495 
    8496   case 601:
    8497 
    8498 /* Line 1806 of yacc.c  */
    8499 #line 2305 "parser.yy"
    8500     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8501     break;
    8502 
    8503   case 602:
    8504 
    8505 /* Line 1806 of yacc.c  */
    8506 #line 2307 "parser.yy"
    8507     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8508     break;
    8509 
    8510   case 603:
    8511 
    8512 /* Line 1806 of yacc.c  */
    8513 #line 2322 "parser.yy"
     8477  case 632:
     8478
     8479/* Line 1806 of yacc.c  */
     8480#line 2443 "parser.yy"
    85148481    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85158482    break;
    85168483
    8517   case 605:
    8518 
    8519 /* Line 1806 of yacc.c  */
    8520 #line 2325 "parser.yy"
     8484  case 634:
     8485
     8486/* Line 1806 of yacc.c  */
     8487#line 2446 "parser.yy"
    85218488    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85228489    break;
    85238490
    8524   case 606:
    8525 
    8526 /* Line 1806 of yacc.c  */
    8527 #line 2327 "parser.yy"
     8491  case 635:
     8492
     8493/* Line 1806 of yacc.c  */
     8494#line 2448 "parser.yy"
    85288495    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85298496    break;
    85308497
    8531   case 608:
    8532 
    8533 /* Line 1806 of yacc.c  */
    8534 #line 2333 "parser.yy"
    8535     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8536     break;
    8537 
    8538   case 609:
    8539 
    8540 /* Line 1806 of yacc.c  */
    8541 #line 2338 "parser.yy"
    8542     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8543     break;
    8544 
    8545   case 610:
    8546 
    8547 /* Line 1806 of yacc.c  */
    8548 #line 2340 "parser.yy"
    8549     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8550     break;
    8551 
    8552   case 611:
    8553 
    8554 /* Line 1806 of yacc.c  */
    8555 #line 2342 "parser.yy"
    8556     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8557     break;
    8558 
    8559   case 612:
    8560 
    8561 /* Line 1806 of yacc.c  */
    8562 #line 2347 "parser.yy"
    8563     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8564     break;
    8565 
    8566   case 613:
    8567 
    8568 /* Line 1806 of yacc.c  */
    8569 #line 2349 "parser.yy"
    8570     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8571     break;
    8572 
    8573   case 614:
    8574 
    8575 /* Line 1806 of yacc.c  */
    8576 #line 2351 "parser.yy"
    8577     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8578     break;
    8579 
    8580   case 615:
    8581 
    8582 /* Line 1806 of yacc.c  */
    8583 #line 2353 "parser.yy"
    8584     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8585     break;
    8586 
    8587   case 616:
    8588 
    8589 /* Line 1806 of yacc.c  */
    8590 #line 2358 "parser.yy"
    8591     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8592     break;
    8593 
    8594   case 617:
    8595 
    8596 /* Line 1806 of yacc.c  */
    8597 #line 2360 "parser.yy"
    8598     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8599     break;
    8600 
    8601   case 618:
    8602 
    8603 /* Line 1806 of yacc.c  */
    8604 #line 2362 "parser.yy"
    8605     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8606     break;
    8607 
    8608   case 619:
    8609 
    8610 /* Line 1806 of yacc.c  */
    8611 #line 2372 "parser.yy"
    8612     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8613     break;
    8614 
    8615   case 621:
    8616 
    8617 /* Line 1806 of yacc.c  */
    8618 #line 2375 "parser.yy"
    8619     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8620     break;
    8621 
    8622   case 622:
    8623 
    8624 /* Line 1806 of yacc.c  */
    8625 #line 2377 "parser.yy"
    8626     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8627     break;
    8628 
    8629   case 623:
    8630 
    8631 /* Line 1806 of yacc.c  */
    8632 #line 2382 "parser.yy"
    8633     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8634     break;
    8635 
    8636   case 624:
    8637 
    8638 /* Line 1806 of yacc.c  */
    8639 #line 2384 "parser.yy"
    8640     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8641     break;
    8642 
    8643   case 625:
    8644 
    8645 /* Line 1806 of yacc.c  */
    8646 #line 2386 "parser.yy"
    8647     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8648     break;
    8649 
    8650   case 626:
    8651 
    8652 /* Line 1806 of yacc.c  */
    8653 #line 2391 "parser.yy"
    8654     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8655     break;
    8656 
    8657   case 627:
    8658 
    8659 /* Line 1806 of yacc.c  */
    8660 #line 2393 "parser.yy"
    8661     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8662     break;
    8663 
    8664   case 628:
    8665 
    8666 /* Line 1806 of yacc.c  */
    8667 #line 2395 "parser.yy"
    8668     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8669     break;
    8670 
    8671   case 629:
    8672 
    8673 /* Line 1806 of yacc.c  */
    8674 #line 2397 "parser.yy"
    8675     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8676     break;
    8677 
    8678   case 630:
    8679 
    8680 /* Line 1806 of yacc.c  */
    8681 #line 2402 "parser.yy"
    8682     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8683     break;
    8684 
    8685   case 631:
    8686 
    8687 /* Line 1806 of yacc.c  */
    8688 #line 2404 "parser.yy"
    8689     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8690     break;
    8691 
    8692   case 632:
    8693 
    8694 /* Line 1806 of yacc.c  */
    8695 #line 2406 "parser.yy"
    8696     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8697     break;
    8698 
    8699   case 633:
    8700 
    8701 /* Line 1806 of yacc.c  */
    8702 #line 2437 "parser.yy"
    8703     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8704     break;
    8705 
    8706   case 635:
    8707 
    8708 /* Line 1806 of yacc.c  */
    8709 #line 2440 "parser.yy"
    8710     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8711     break;
    8712 
    87138498  case 636:
    87148499
    87158500/* Line 1806 of yacc.c  */
    8716 #line 2442 "parser.yy"
    8717     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8718     break;
    8719 
    8720   case 637:
    8721 
    8722 /* Line 1806 of yacc.c  */
    8723 #line 2447 "parser.yy"
     8501#line 2453 "parser.yy"
    87248502    {
    87258503                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    87288506    break;
    87298507
    8730   case 638:
    8731 
    8732 /* Line 1806 of yacc.c  */
    8733 #line 2452 "parser.yy"
     8508  case 637:
     8509
     8510/* Line 1806 of yacc.c  */
     8511#line 2458 "parser.yy"
    87348512    {
    87358513                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    87388516    break;
    87398517
     8518  case 638:
     8519
     8520/* Line 1806 of yacc.c  */
     8521#line 2466 "parser.yy"
     8522    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8523    break;
     8524
    87408525  case 639:
    87418526
    87428527/* Line 1806 of yacc.c  */
    8743 #line 2460 "parser.yy"
     8528#line 2468 "parser.yy"
     8529    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8530    break;
     8531
     8532  case 640:
     8533
     8534/* Line 1806 of yacc.c  */
     8535#line 2470 "parser.yy"
     8536    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8537    break;
     8538
     8539  case 641:
     8540
     8541/* Line 1806 of yacc.c  */
     8542#line 2475 "parser.yy"
     8543    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8544    break;
     8545
     8546  case 642:
     8547
     8548/* Line 1806 of yacc.c  */
     8549#line 2477 "parser.yy"
     8550    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8551    break;
     8552
     8553  case 643:
     8554
     8555/* Line 1806 of yacc.c  */
     8556#line 2482 "parser.yy"
     8557    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8558    break;
     8559
     8560  case 644:
     8561
     8562/* Line 1806 of yacc.c  */
     8563#line 2484 "parser.yy"
     8564    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8565    break;
     8566
     8567  case 646:
     8568
     8569/* Line 1806 of yacc.c  */
     8570#line 2499 "parser.yy"
     8571    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8572    break;
     8573
     8574  case 647:
     8575
     8576/* Line 1806 of yacc.c  */
     8577#line 2501 "parser.yy"
     8578    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8579    break;
     8580
     8581  case 648:
     8582
     8583/* Line 1806 of yacc.c  */
     8584#line 2506 "parser.yy"
     8585    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8586    break;
     8587
     8588  case 649:
     8589
     8590/* Line 1806 of yacc.c  */
     8591#line 2508 "parser.yy"
     8592    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8593    break;
     8594
     8595  case 650:
     8596
     8597/* Line 1806 of yacc.c  */
     8598#line 2510 "parser.yy"
    87448599    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87458600    break;
    87468601
    8747   case 640:
    8748 
    8749 /* Line 1806 of yacc.c  */
    8750 #line 2462 "parser.yy"
     8602  case 651:
     8603
     8604/* Line 1806 of yacc.c  */
     8605#line 2512 "parser.yy"
    87518606    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87528607    break;
    87538608
    8754   case 641:
    8755 
    8756 /* Line 1806 of yacc.c  */
    8757 #line 2464 "parser.yy"
     8609  case 652:
     8610
     8611/* Line 1806 of yacc.c  */
     8612#line 2514 "parser.yy"
    87588613    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87598614    break;
    87608615
    8761   case 642:
    8762 
    8763 /* Line 1806 of yacc.c  */
    8764 #line 2469 "parser.yy"
     8616  case 654:
     8617
     8618/* Line 1806 of yacc.c  */
     8619#line 2520 "parser.yy"
     8620    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8621    break;
     8622
     8623  case 655:
     8624
     8625/* Line 1806 of yacc.c  */
     8626#line 2522 "parser.yy"
     8627    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8628    break;
     8629
     8630  case 656:
     8631
     8632/* Line 1806 of yacc.c  */
     8633#line 2524 "parser.yy"
     8634    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8635    break;
     8636
     8637  case 657:
     8638
     8639/* Line 1806 of yacc.c  */
     8640#line 2529 "parser.yy"
     8641    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8642    break;
     8643
     8644  case 658:
     8645
     8646/* Line 1806 of yacc.c  */
     8647#line 2531 "parser.yy"
     8648    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8649    break;
     8650
     8651  case 659:
     8652
     8653/* Line 1806 of yacc.c  */
     8654#line 2533 "parser.yy"
     8655    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8656    break;
     8657
     8658  case 660:
     8659
     8660/* Line 1806 of yacc.c  */
     8661#line 2539 "parser.yy"
     8662    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8663    break;
     8664
     8665  case 661:
     8666
     8667/* Line 1806 of yacc.c  */
     8668#line 2541 "parser.yy"
     8669    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8670    break;
     8671
     8672  case 663:
     8673
     8674/* Line 1806 of yacc.c  */
     8675#line 2547 "parser.yy"
     8676    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8677    break;
     8678
     8679  case 664:
     8680
     8681/* Line 1806 of yacc.c  */
     8682#line 2549 "parser.yy"
     8683    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8684    break;
     8685
     8686  case 665:
     8687
     8688/* Line 1806 of yacc.c  */
     8689#line 2551 "parser.yy"
     8690    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8691    break;
     8692
     8693  case 666:
     8694
     8695/* Line 1806 of yacc.c  */
     8696#line 2553 "parser.yy"
     8697    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8698    break;
     8699
     8700  case 668:
     8701
     8702/* Line 1806 of yacc.c  */
     8703#line 2568 "parser.yy"
     8704    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8705    break;
     8706
     8707  case 669:
     8708
     8709/* Line 1806 of yacc.c  */
     8710#line 2570 "parser.yy"
     8711    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8712    break;
     8713
     8714  case 670:
     8715
     8716/* Line 1806 of yacc.c  */
     8717#line 2575 "parser.yy"
     8718    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8719    break;
     8720
     8721  case 671:
     8722
     8723/* Line 1806 of yacc.c  */
     8724#line 2577 "parser.yy"
     8725    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8726    break;
     8727
     8728  case 672:
     8729
     8730/* Line 1806 of yacc.c  */
     8731#line 2579 "parser.yy"
     8732    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8733    break;
     8734
     8735  case 673:
     8736
     8737/* Line 1806 of yacc.c  */
     8738#line 2581 "parser.yy"
     8739    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8740    break;
     8741
     8742  case 674:
     8743
     8744/* Line 1806 of yacc.c  */
     8745#line 2583 "parser.yy"
     8746    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8747    break;
     8748
     8749  case 676:
     8750
     8751/* Line 1806 of yacc.c  */
     8752#line 2589 "parser.yy"
     8753    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8754    break;
     8755
     8756  case 677:
     8757
     8758/* Line 1806 of yacc.c  */
     8759#line 2591 "parser.yy"
     8760    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8761    break;
     8762
     8763  case 678:
     8764
     8765/* Line 1806 of yacc.c  */
     8766#line 2593 "parser.yy"
     8767    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8768    break;
     8769
     8770  case 679:
     8771
     8772/* Line 1806 of yacc.c  */
     8773#line 2598 "parser.yy"
     8774    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8775    break;
     8776
     8777  case 680:
     8778
     8779/* Line 1806 of yacc.c  */
     8780#line 2600 "parser.yy"
     8781    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8782    break;
     8783
     8784  case 681:
     8785
     8786/* Line 1806 of yacc.c  */
     8787#line 2602 "parser.yy"
     8788    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8789    break;
     8790
     8791  case 683:
     8792
     8793/* Line 1806 of yacc.c  */
     8794#line 2609 "parser.yy"
    87658795    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87668796    break;
    87678797
    8768   case 643:
    8769 
    8770 /* Line 1806 of yacc.c  */
    8771 #line 2471 "parser.yy"
     8798  case 685:
     8799
     8800/* Line 1806 of yacc.c  */
     8801#line 2620 "parser.yy"
     8802    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8803    break;
     8804
     8805  case 686:
     8806
     8807/* Line 1806 of yacc.c  */
     8808#line 2623 "parser.yy"
     8809    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8810    break;
     8811
     8812  case 687:
     8813
     8814/* Line 1806 of yacc.c  */
     8815#line 2625 "parser.yy"
     8816    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8817    break;
     8818
     8819  case 688:
     8820
     8821/* Line 1806 of yacc.c  */
     8822#line 2628 "parser.yy"
     8823    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8824    break;
     8825
     8826  case 689:
     8827
     8828/* Line 1806 of yacc.c  */
     8829#line 2630 "parser.yy"
     8830    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8831    break;
     8832
     8833  case 690:
     8834
     8835/* Line 1806 of yacc.c  */
     8836#line 2632 "parser.yy"
     8837    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8838    break;
     8839
     8840  case 692:
     8841
     8842/* Line 1806 of yacc.c  */
     8843#line 2646 "parser.yy"
     8844    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8845    break;
     8846
     8847  case 693:
     8848
     8849/* Line 1806 of yacc.c  */
     8850#line 2648 "parser.yy"
     8851    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8852    break;
     8853
     8854  case 694:
     8855
     8856/* Line 1806 of yacc.c  */
     8857#line 2653 "parser.yy"
     8858    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8859    break;
     8860
     8861  case 695:
     8862
     8863/* Line 1806 of yacc.c  */
     8864#line 2655 "parser.yy"
     8865    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8866    break;
     8867
     8868  case 696:
     8869
     8870/* Line 1806 of yacc.c  */
     8871#line 2657 "parser.yy"
     8872    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8873    break;
     8874
     8875  case 697:
     8876
     8877/* Line 1806 of yacc.c  */
     8878#line 2659 "parser.yy"
     8879    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8880    break;
     8881
     8882  case 698:
     8883
     8884/* Line 1806 of yacc.c  */
     8885#line 2661 "parser.yy"
     8886    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8887    break;
     8888
     8889  case 700:
     8890
     8891/* Line 1806 of yacc.c  */
     8892#line 2667 "parser.yy"
    87728893    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87738894    break;
    87748895
    8775   case 644:
    8776 
    8777 /* Line 1806 of yacc.c  */
    8778 #line 2476 "parser.yy"
    8779     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8780     break;
    8781 
    8782   case 645:
    8783 
    8784 /* Line 1806 of yacc.c  */
    8785 #line 2478 "parser.yy"
     8896  case 701:
     8897
     8898/* Line 1806 of yacc.c  */
     8899#line 2669 "parser.yy"
     8900    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8901    break;
     8902
     8903  case 702:
     8904
     8905/* Line 1806 of yacc.c  */
     8906#line 2671 "parser.yy"
     8907    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8908    break;
     8909
     8910  case 703:
     8911
     8912/* Line 1806 of yacc.c  */
     8913#line 2676 "parser.yy"
    87868914    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87878915    break;
    87888916
    8789   case 647:
    8790 
    8791 /* Line 1806 of yacc.c  */
    8792 #line 2493 "parser.yy"
    8793     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8794     break;
    8795 
    8796   case 648:
    8797 
    8798 /* Line 1806 of yacc.c  */
    8799 #line 2495 "parser.yy"
    8800     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8801     break;
    8802 
    8803   case 649:
    8804 
    8805 /* Line 1806 of yacc.c  */
    8806 #line 2500 "parser.yy"
    8807     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8808     break;
    8809 
    8810   case 650:
    8811 
    8812 /* Line 1806 of yacc.c  */
    8813 #line 2502 "parser.yy"
    8814     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8815     break;
    8816 
    8817   case 651:
    8818 
    8819 /* Line 1806 of yacc.c  */
    8820 #line 2504 "parser.yy"
    8821     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8822     break;
    8823 
    8824   case 652:
    8825 
    8826 /* Line 1806 of yacc.c  */
    8827 #line 2506 "parser.yy"
    8828     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8829     break;
    8830 
    8831   case 653:
    8832 
    8833 /* Line 1806 of yacc.c  */
    8834 #line 2508 "parser.yy"
     8917  case 704:
     8918
     8919/* Line 1806 of yacc.c  */
     8920#line 2678 "parser.yy"
    88358921    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88368922    break;
    88378923
    8838   case 655:
    8839 
    8840 /* Line 1806 of yacc.c  */
    8841 #line 2514 "parser.yy"
    8842     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8843     break;
    8844 
    8845   case 656:
    8846 
    8847 /* Line 1806 of yacc.c  */
    8848 #line 2516 "parser.yy"
    8849     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8850     break;
    8851 
    8852   case 657:
    8853 
    8854 /* Line 1806 of yacc.c  */
    8855 #line 2518 "parser.yy"
    8856     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8857     break;
    8858 
    8859   case 658:
    8860 
    8861 /* Line 1806 of yacc.c  */
    8862 #line 2523 "parser.yy"
    8863     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8864     break;
    8865 
    8866   case 659:
    8867 
    8868 /* Line 1806 of yacc.c  */
    8869 #line 2525 "parser.yy"
    8870     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8871     break;
    8872 
    8873   case 660:
    8874 
    8875 /* Line 1806 of yacc.c  */
    8876 #line 2527 "parser.yy"
    8877     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8878     break;
    8879 
    8880   case 661:
    8881 
    8882 /* Line 1806 of yacc.c  */
    8883 #line 2533 "parser.yy"
    8884     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8885     break;
    8886 
    8887   case 662:
    8888 
    8889 /* Line 1806 of yacc.c  */
    8890 #line 2535 "parser.yy"
    8891     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8892     break;
    8893 
    8894   case 664:
    8895 
    8896 /* Line 1806 of yacc.c  */
    8897 #line 2541 "parser.yy"
    8898     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8899     break;
    8900 
    8901   case 665:
    8902 
    8903 /* Line 1806 of yacc.c  */
    8904 #line 2543 "parser.yy"
    8905     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8906     break;
    8907 
    8908   case 666:
    8909 
    8910 /* Line 1806 of yacc.c  */
    8911 #line 2545 "parser.yy"
    8912     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8913     break;
    8914 
    8915   case 667:
    8916 
    8917 /* Line 1806 of yacc.c  */
    8918 #line 2547 "parser.yy"
    8919     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8920     break;
    8921 
    8922   case 669:
    8923 
    8924 /* Line 1806 of yacc.c  */
    8925 #line 2562 "parser.yy"
    8926     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8927     break;
    8928 
    8929   case 670:
    8930 
    8931 /* Line 1806 of yacc.c  */
    8932 #line 2564 "parser.yy"
    8933     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8934     break;
    8935 
    8936   case 671:
    8937 
    8938 /* Line 1806 of yacc.c  */
    8939 #line 2569 "parser.yy"
    8940     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8941     break;
    8942 
    8943   case 672:
    8944 
    8945 /* Line 1806 of yacc.c  */
    8946 #line 2571 "parser.yy"
    8947     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8948     break;
    8949 
    8950   case 673:
    8951 
    8952 /* Line 1806 of yacc.c  */
    8953 #line 2573 "parser.yy"
    8954     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8955     break;
    8956 
    8957   case 674:
    8958 
    8959 /* Line 1806 of yacc.c  */
    8960 #line 2575 "parser.yy"
    8961     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8962     break;
    8963 
    8964   case 675:
    8965 
    8966 /* Line 1806 of yacc.c  */
    8967 #line 2577 "parser.yy"
    8968     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8969     break;
    8970 
    8971   case 677:
    8972 
    8973 /* Line 1806 of yacc.c  */
    8974 #line 2583 "parser.yy"
    8975     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8976     break;
    8977 
    8978   case 678:
    8979 
    8980 /* Line 1806 of yacc.c  */
    8981 #line 2585 "parser.yy"
    8982     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8983     break;
    8984 
    8985   case 679:
    8986 
    8987 /* Line 1806 of yacc.c  */
    8988 #line 2587 "parser.yy"
    8989     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8990     break;
    8991 
    8992   case 680:
    8993 
    8994 /* Line 1806 of yacc.c  */
    8995 #line 2592 "parser.yy"
    8996     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8997     break;
    8998 
    8999   case 681:
    9000 
    9001 /* Line 1806 of yacc.c  */
    9002 #line 2594 "parser.yy"
    9003     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    9004     break;
    9005 
    9006   case 682:
    9007 
    9008 /* Line 1806 of yacc.c  */
    9009 #line 2596 "parser.yy"
    9010     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9011     break;
    9012 
    9013   case 684:
    9014 
    9015 /* Line 1806 of yacc.c  */
    9016 #line 2603 "parser.yy"
    9017     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    9018     break;
    9019 
    9020   case 686:
    9021 
    9022 /* Line 1806 of yacc.c  */
    9023 #line 2614 "parser.yy"
    9024     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    9025     break;
    9026 
    9027   case 687:
    9028 
    9029 /* Line 1806 of yacc.c  */
    9030 #line 2617 "parser.yy"
    9031     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9032     break;
    9033 
    9034   case 688:
    9035 
    9036 /* Line 1806 of yacc.c  */
    9037 #line 2619 "parser.yy"
    9038     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    9039     break;
    9040 
    9041   case 689:
    9042 
    9043 /* Line 1806 of yacc.c  */
    9044 #line 2622 "parser.yy"
    9045     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9046     break;
    9047 
    9048   case 690:
    9049 
    9050 /* Line 1806 of yacc.c  */
    9051 #line 2624 "parser.yy"
    9052     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    9053     break;
    9054 
    9055   case 691:
    9056 
    9057 /* Line 1806 of yacc.c  */
    9058 #line 2626 "parser.yy"
    9059     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    9060     break;
    9061 
    9062   case 693:
    9063 
    9064 /* Line 1806 of yacc.c  */
    9065 #line 2640 "parser.yy"
    9066     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    9067     break;
    9068 
    9069   case 694:
    9070 
    9071 /* Line 1806 of yacc.c  */
    9072 #line 2642 "parser.yy"
    9073     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    9074     break;
    9075 
    9076   case 695:
    9077 
    9078 /* Line 1806 of yacc.c  */
    9079 #line 2647 "parser.yy"
    9080     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    9081     break;
    9082 
    9083   case 696:
    9084 
    9085 /* Line 1806 of yacc.c  */
    9086 #line 2649 "parser.yy"
    9087     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    9088     break;
    9089 
    9090   case 697:
    9091 
    9092 /* Line 1806 of yacc.c  */
    9093 #line 2651 "parser.yy"
    9094     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    9095     break;
    9096 
    9097   case 698:
    9098 
    9099 /* Line 1806 of yacc.c  */
    9100 #line 2653 "parser.yy"
    9101     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    9102     break;
    9103 
    9104   case 699:
    9105 
    9106 /* Line 1806 of yacc.c  */
    9107 #line 2655 "parser.yy"
    9108     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9109     break;
    9110 
    9111   case 701:
    9112 
    9113 /* Line 1806 of yacc.c  */
    9114 #line 2661 "parser.yy"
    9115     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    9116     break;
    9117 
    9118   case 702:
    9119 
    9120 /* Line 1806 of yacc.c  */
    9121 #line 2663 "parser.yy"
    9122     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    9123     break;
    9124 
    9125   case 703:
    9126 
    9127 /* Line 1806 of yacc.c  */
    9128 #line 2665 "parser.yy"
    9129     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9130     break;
    9131 
    9132   case 704:
    9133 
    9134 /* Line 1806 of yacc.c  */
    9135 #line 2670 "parser.yy"
    9136     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    9137     break;
    9138 
    9139   case 705:
    9140 
    9141 /* Line 1806 of yacc.c  */
    9142 #line 2672 "parser.yy"
    9143     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9144     break;
    9145 
    9146   case 708:
    9147 
    9148 /* Line 1806 of yacc.c  */
    9149 #line 2682 "parser.yy"
     8924  case 707:
     8925
     8926/* Line 1806 of yacc.c  */
     8927#line 2688 "parser.yy"
    91508928    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    91518929    break;
    91528930
     8931  case 710:
     8932
     8933/* Line 1806 of yacc.c  */
     8934#line 2698 "parser.yy"
     8935    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8936    break;
     8937
    91538938  case 711:
    91548939
    91558940/* Line 1806 of yacc.c  */
    9156 #line 2692 "parser.yy"
     8941#line 2700 "parser.yy"
     8942    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8943    break;
     8944
     8945  case 712:
     8946
     8947/* Line 1806 of yacc.c  */
     8948#line 2702 "parser.yy"
    91578949    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91588950    break;
    91598951
    9160   case 712:
    9161 
    9162 /* Line 1806 of yacc.c  */
    9163 #line 2694 "parser.yy"
     8952  case 713:
     8953
     8954/* Line 1806 of yacc.c  */
     8955#line 2704 "parser.yy"
    91648956    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91658957    break;
    91668958
    9167   case 713:
    9168 
    9169 /* Line 1806 of yacc.c  */
    9170 #line 2696 "parser.yy"
     8959  case 714:
     8960
     8961/* Line 1806 of yacc.c  */
     8962#line 2706 "parser.yy"
    91718963    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91728964    break;
    91738965
    9174   case 714:
    9175 
    9176 /* Line 1806 of yacc.c  */
    9177 #line 2698 "parser.yy"
     8966  case 715:
     8967
     8968/* Line 1806 of yacc.c  */
     8969#line 2708 "parser.yy"
    91788970    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91798971    break;
    91808972
    9181   case 715:
    9182 
    9183 /* Line 1806 of yacc.c  */
    9184 #line 2700 "parser.yy"
    9185     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9186     break;
    9187 
    91888973  case 716:
    91898974
    91908975/* Line 1806 of yacc.c  */
    9191 #line 2702 "parser.yy"
    9192     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8976#line 2715 "parser.yy"
     8977    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91938978    break;
    91948979
    91958980  case 717:
    9196 
    9197 /* Line 1806 of yacc.c  */
    9198 #line 2709 "parser.yy"
    9199     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9200     break;
    9201 
    9202   case 718:
    9203 
    9204 /* Line 1806 of yacc.c  */
    9205 #line 2711 "parser.yy"
    9206     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9207     break;
    9208 
    9209   case 719:
    9210 
    9211 /* Line 1806 of yacc.c  */
    9212 #line 2713 "parser.yy"
    9213     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9214     break;
    9215 
    9216   case 720:
    9217 
    9218 /* Line 1806 of yacc.c  */
    9219 #line 2715 "parser.yy"
    9220     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9221     break;
    9222 
    9223   case 721:
    92248981
    92258982/* Line 1806 of yacc.c  */
     
    92288985    break;
    92298986
     8987  case 718:
     8988
     8989/* Line 1806 of yacc.c  */
     8990#line 2719 "parser.yy"
     8991    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8992    break;
     8993
     8994  case 719:
     8995
     8996/* Line 1806 of yacc.c  */
     8997#line 2721 "parser.yy"
     8998    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8999    break;
     9000
     9001  case 720:
     9002
     9003/* Line 1806 of yacc.c  */
     9004#line 2723 "parser.yy"
     9005    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9006    break;
     9007
     9008  case 721:
     9009
     9010/* Line 1806 of yacc.c  */
     9011#line 2725 "parser.yy"
     9012    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9013    break;
     9014
    92309015  case 722:
    9231 
    9232 /* Line 1806 of yacc.c  */
    9233 #line 2719 "parser.yy"
    9234     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9235     break;
    9236 
    9237   case 723:
    9238 
    9239 /* Line 1806 of yacc.c  */
    9240 #line 2721 "parser.yy"
    9241     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9242     break;
    9243 
    9244   case 724:
    9245 
    9246 /* Line 1806 of yacc.c  */
    9247 #line 2723 "parser.yy"
    9248     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9249     break;
    9250 
    9251   case 725:
    9252 
    9253 /* Line 1806 of yacc.c  */
    9254 #line 2725 "parser.yy"
    9255     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9256     break;
    9257 
    9258   case 726:
    92599016
    92609017/* Line 1806 of yacc.c  */
     
    92639020    break;
    92649021
     9022  case 723:
     9023
     9024/* Line 1806 of yacc.c  */
     9025#line 2729 "parser.yy"
     9026    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9027    break;
     9028
     9029  case 724:
     9030
     9031/* Line 1806 of yacc.c  */
     9032#line 2731 "parser.yy"
     9033    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9034    break;
     9035
     9036  case 725:
     9037
     9038/* Line 1806 of yacc.c  */
     9039#line 2733 "parser.yy"
     9040    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9041    break;
     9042
     9043  case 726:
     9044
     9045/* Line 1806 of yacc.c  */
     9046#line 2738 "parser.yy"
     9047    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     9048    break;
     9049
    92659050  case 727:
    92669051
    92679052/* Line 1806 of yacc.c  */
    9268 #line 2732 "parser.yy"
    9269     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     9053#line 2740 "parser.yy"
     9054    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    92709055    break;
    92719056
     
    92739058
    92749059/* Line 1806 of yacc.c  */
    9275 #line 2734 "parser.yy"
    9276     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     9060#line 2745 "parser.yy"
     9061    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    92779062    break;
    92789063
     
    92809065
    92819066/* Line 1806 of yacc.c  */
    9282 #line 2739 "parser.yy"
    9283     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9284     break;
    9285 
    9286   case 730:
    9287 
    9288 /* Line 1806 of yacc.c  */
    9289 #line 2741 "parser.yy"
     9067#line 2747 "parser.yy"
    92909068    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    92919069    break;
    92929070
    9293   case 732:
    9294 
    9295 /* Line 1806 of yacc.c  */
    9296 #line 2768 "parser.yy"
     9071  case 731:
     9072
     9073/* Line 1806 of yacc.c  */
     9074#line 2774 "parser.yy"
    92979075    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    92989076    break;
    92999077
     9078  case 735:
     9079
     9080/* Line 1806 of yacc.c  */
     9081#line 2785 "parser.yy"
     9082    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9083    break;
     9084
    93009085  case 736:
    93019086
    93029087/* Line 1806 of yacc.c  */
    9303 #line 2779 "parser.yy"
     9088#line 2787 "parser.yy"
     9089    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9090    break;
     9091
     9092  case 737:
     9093
     9094/* Line 1806 of yacc.c  */
     9095#line 2789 "parser.yy"
    93049096    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    93059097    break;
    93069098
    9307   case 737:
    9308 
    9309 /* Line 1806 of yacc.c  */
    9310 #line 2781 "parser.yy"
     9099  case 738:
     9100
     9101/* Line 1806 of yacc.c  */
     9102#line 2791 "parser.yy"
    93119103    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    93129104    break;
    93139105
    9314   case 738:
    9315 
    9316 /* Line 1806 of yacc.c  */
    9317 #line 2783 "parser.yy"
     9106  case 739:
     9107
     9108/* Line 1806 of yacc.c  */
     9109#line 2793 "parser.yy"
    93189110    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    93199111    break;
    93209112
    9321   case 739:
    9322 
    9323 /* Line 1806 of yacc.c  */
    9324 #line 2785 "parser.yy"
     9113  case 740:
     9114
     9115/* Line 1806 of yacc.c  */
     9116#line 2795 "parser.yy"
    93259117    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    93269118    break;
    93279119
    9328   case 740:
    9329 
    9330 /* Line 1806 of yacc.c  */
    9331 #line 2787 "parser.yy"
    9332     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9333     break;
    9334 
    93359120  case 741:
    9336 
    9337 /* Line 1806 of yacc.c  */
    9338 #line 2789 "parser.yy"
    9339     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9340     break;
    9341 
    9342   case 742:
    9343 
    9344 /* Line 1806 of yacc.c  */
    9345 #line 2796 "parser.yy"
    9346     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9347     break;
    9348 
    9349   case 743:
    9350 
    9351 /* Line 1806 of yacc.c  */
    9352 #line 2798 "parser.yy"
    9353     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9354     break;
    9355 
    9356   case 744:
    9357 
    9358 /* Line 1806 of yacc.c  */
    9359 #line 2800 "parser.yy"
    9360     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9361     break;
    9362 
    9363   case 745:
    93649121
    93659122/* Line 1806 of yacc.c  */
     
    93689125    break;
    93699126
    9370   case 746:
     9127  case 742:
    93719128
    93729129/* Line 1806 of yacc.c  */
     
    93759132    break;
    93769133
    9377   case 747:
     9134  case 743:
    93789135
    93799136/* Line 1806 of yacc.c  */
     
    93829139    break;
    93839140
     9141  case 744:
     9142
     9143/* Line 1806 of yacc.c  */
     9144#line 2808 "parser.yy"
     9145    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9146    break;
     9147
     9148  case 745:
     9149
     9150/* Line 1806 of yacc.c  */
     9151#line 2810 "parser.yy"
     9152    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9153    break;
     9154
     9155  case 746:
     9156
     9157/* Line 1806 of yacc.c  */
     9158#line 2812 "parser.yy"
     9159    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9160    break;
     9161
     9162  case 747:
     9163
     9164/* Line 1806 of yacc.c  */
     9165#line 2817 "parser.yy"
     9166    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9167    break;
     9168
    93849169  case 748:
    93859170
    93869171/* Line 1806 of yacc.c  */
    9387 #line 2811 "parser.yy"
    9388     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9172#line 2822 "parser.yy"
     9173    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    93899174    break;
    93909175
     
    93929177
    93939178/* Line 1806 of yacc.c  */
    9394 #line 2816 "parser.yy"
    9395     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     9179#line 2824 "parser.yy"
     9180    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    93969181    break;
    93979182
     
    93999184
    94009185/* Line 1806 of yacc.c  */
    9401 #line 2818 "parser.yy"
     9186#line 2826 "parser.yy"
    94029187    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    94039188    break;
    94049189
    9405   case 751:
    9406 
    9407 /* Line 1806 of yacc.c  */
    9408 #line 2820 "parser.yy"
    9409     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9190  case 753:
     9191
     9192/* Line 1806 of yacc.c  */
     9193#line 2850 "parser.yy"
     9194    { (yyval.en) = 0; }
    94109195    break;
    94119196
     
    94139198
    94149199/* Line 1806 of yacc.c  */
    9415 #line 2844 "parser.yy"
    9416     { (yyval.en) = 0; }
    9417     break;
    9418 
    9419   case 755:
    9420 
    9421 /* Line 1806 of yacc.c  */
    9422 #line 2846 "parser.yy"
     9200#line 2852 "parser.yy"
    94239201    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    94249202    break;
     
    94279205
    94289206/* Line 1806 of yacc.c  */
    9429 #line 9430 "Parser/parser.cc"
     9207#line 9208 "Parser/parser.cc"
    94309208      default: break;
    94319209    }
     
    96589436
    96599437/* Line 2067 of yacc.c  */
    9660 #line 2849 "parser.yy"
     9438#line 2855 "parser.yy"
    96619439
    96629440// ----end of grammar----
  • src/Parser/parser.yy

    r51e076e r9706554  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Aug  5 08:15:57 2016
    13 // Update Count     : 1721
     12// Last Modified On : Fri Aug  5 11:42:23 2016
     13// Update Count     : 1749
    1414//
    1515
     
    130130%type<constant> constant
    131131%type<en> tuple                                                 tuple_expression_list
    132 %type<op> ptrref_operator
    133 %type<en> unary_operator                                assignment_operator
     132%type<op> ptrref_operator                               unary_operator                          assignment_operator
    134133%type<en> primary_expression                    postfix_expression                      unary_expression
    135134%type<en> cast_expression                               multiplicative_expression       additive_expression                     shift_expression
     
    356355                // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, which is
    357356                // equivalent to the old x[i,j].
    358                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Index, $1, $4 ) ); }
     357                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Index, $1, $4 ) ); }
    359358        | postfix_expression '(' argument_expression_list ')'
    360                 { $$ = new CompositeExprNode( $1, $3 ); }
     359                { $$ = new CompositeExprNode2( build_func( $1, $3 ) ); }
    361360        // ambiguity with .0 so space required after field-selection, e.g.
    362361                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
     
    368367        | postfix_expression ARROW '[' push field_list pop ']' // CFA, tuple field selector
    369368        | postfix_expression ICR
    370                 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::IncrPost, $1 ) ); }
     369                { $$ = new CompositeExprNode2( build_unary_ptr( OperatorNode::IncrPost, $1 ) ); }
    371370        | postfix_expression DECR
    372                 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::DecrPost, $1 ) ); }
     371                { $$ = new CompositeExprNode2( build_unary_ptr( OperatorNode::DecrPost, $1 ) ); }
    373372        | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99
    374373                { $$ = new CompoundLiteralNode( $2, new InitializerNode( $5, true ) ); }
    375374        | postfix_expression '{' argument_expression_list '}' // CFA
    376375                {
    377                         Token fn; fn.str = new std::string( "?{}" ); // location undefined
    378                         $$ = new CompositeExprNode( new VarRefNode( fn ), (ExpressionNode *)( $1 )->set_link( $3 ) );
     376                        Token fn;
     377                        fn.str = new std::string( "?{}" ); // location undefined
     378                        $$ = new CompositeExprNode2( build_func( new VarRefNode( fn ), (ExpressionNode *)( $1 )->set_link( $3 ) ) );
    379379                }
    380380        ;
     
    398398                { $$ = $7->set_argName( $3 ); }
    399399        | '[' push assignment_expression ',' tuple_expression_list pop ']' ':' assignment_expression
    400                 { $$ = $9->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); }
     400                { $$ = $9->set_argName( new CompositeExprNode2( build_tuple( (ExpressionNode *)$3->set_link( $5 ) ) ) ); }
    401401        ;
    402402
     
    435435                //              { * int X; } // CFA declaration of pointer to int
    436436        | ptrref_operator cast_expression                                       // CFA
    437                 { $$ = $1 == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( $2 ) )
    438                                                                                         : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( $1 ), $2 ); }
     437                {
     438                        switch ( $1 ) {
     439                          case OperatorNode::AddressOf:
     440                                $$ = new CompositeExprNode2( build_addressOf( $2 ) );
     441                                break;
     442                          case OperatorNode::PointTo:
     443                                $$ = new CompositeExprNode2( build_unary_val( $1, $2 ) );
     444                                break;
     445                          default:
     446                                assert( false );
     447                        }
     448                }
    439449        | unary_operator cast_expression
    440                 { $$ = new CompositeExprNode( $1, $2 ); }
     450                        { $$ = new CompositeExprNode2( build_unary_val( $1, $2 ) ); }
    441451        | ICR unary_expression
    442                 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::Incr, $2 ) ); }
     452                { $$ = new CompositeExprNode2( build_unary_ptr( OperatorNode::Incr, $2 ) ); }
    443453        | DECR unary_expression
    444                 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::Decr, $2 ) ); }
     454                { $$ = new CompositeExprNode2( build_unary_ptr( OperatorNode::Decr, $2 ) ); }
    445455        | SIZEOF unary_expression
    446456                { $$ = new CompositeExprNode2( build_sizeOf( $2 ) ); }
     
    450460                { $$ = new CompositeExprNode2( build_offsetOf( new TypeValueNode( $3 ), new VarRefNode( $5 ) ) ); }
    451461        | ATTR_IDENTIFIER
    452                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ) ); }
     462                { $$ = new CompositeExprNode2( build_attr( new VarRefNode( $1 ) ) ); }
    453463        | ATTR_IDENTIFIER '(' type_name ')'
    454                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), new TypeValueNode( $3 ) ); }
     464                { $$ = new CompositeExprNode2( build_attr( new VarRefNode( $1 ), new TypeValueNode( $3 ) ) ); }
    455465        | ATTR_IDENTIFIER '(' argument_expression ')'
    456                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), $3 ); }
     466                { $$ = new CompositeExprNode2( build_attr( new VarRefNode( $1 ), $3 ) ); }
    457467        | ALIGNOF unary_expression                                                      // GCC, variable alignment
    458468                { $$ = new CompositeExprNode2( build_alignOf( $2 ) ); }
     
    467477        | '&'                                                                           { $$ = OperatorNode::AddressOf; }
    468478                // GCC, address of label must be handled by semantic check for ref,ref,label
    469         | ANDAND                                                                        { $$ = OperatorNode::And; }
     479//      | ANDAND                                                                        { $$ = OperatorNode::And; }
    470480        ;
    471481
    472482unary_operator:
    473         '+'                                                                                     { $$ = new OperatorNode( OperatorNode::UnPlus ); }
    474         | '-'                                                                           { $$ = new OperatorNode( OperatorNode::UnMinus ); }
    475         | '!'                                                                           { $$ = new OperatorNode( OperatorNode::Neg ); }
    476         | '~'                                                                           { $$ = new OperatorNode( OperatorNode::BitNeg ); }
     483        '+'                                                                                     { $$ = OperatorNode::UnPlus; }
     484        | '-'                                                                           { $$ = OperatorNode::UnMinus; }
     485        | '!'                                                                           { $$ = OperatorNode::Neg; }
     486        | '~'                                                                           { $$ = OperatorNode::BitNeg; }
    477487        ;
    478488
     
    488498        cast_expression
    489499        | multiplicative_expression '*' cast_expression
    490                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Mul, $1, $3 ) ); }
     500                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Mul, $1, $3 ) ); }
    491501        | multiplicative_expression '/' cast_expression
    492                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Div, $1, $3 ) ); }
     502                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Div, $1, $3 ) ); }
    493503        | multiplicative_expression '%' cast_expression
    494                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Mod, $1, $3 ) ); }
     504                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Mod, $1, $3 ) ); }
    495505        ;
    496506
     
    498508        multiplicative_expression
    499509        | additive_expression '+' multiplicative_expression
    500                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Plus, $1, $3 ) ); }
     510                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Plus, $1, $3 ) ); }
    501511        | additive_expression '-' multiplicative_expression
    502                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Minus, $1, $3 ) ); }
     512                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Minus, $1, $3 ) ); }
    503513        ;
    504514
     
    506516        additive_expression
    507517        | shift_expression LS additive_expression
    508                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LShift, $1, $3 ) ); }
     518                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::LShift, $1, $3 ) ); }
    509519        | shift_expression RS additive_expression
    510                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::RShift, $1, $3 ) ); }
     520                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::RShift, $1, $3 ) ); }
    511521        ;
    512522
     
    514524        shift_expression
    515525        | relational_expression '<' shift_expression
    516                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LThan, $1, $3 ) ); }
     526                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::LThan, $1, $3 ) ); }
    517527        | relational_expression '>' shift_expression
    518                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::GThan, $1, $3 ) ); }
     528                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::GThan, $1, $3 ) ); }
    519529        | relational_expression LE shift_expression
    520                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LEThan, $1, $3 ) ); }
     530                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::LEThan, $1, $3 ) ); }
    521531        | relational_expression GE shift_expression
    522                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::GEThan, $1, $3 ) ); }
     532                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::GEThan, $1, $3 ) ); }
    523533        ;
    524534
     
    526536        relational_expression
    527537        | equality_expression EQ relational_expression
    528                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Eq, $1, $3 ) ); }
     538                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Eq, $1, $3 ) ); }
    529539        | equality_expression NE relational_expression
    530                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Neq, $1, $3 ) ); }
     540                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Neq, $1, $3 ) ); }
    531541        ;
    532542
     
    534544        equality_expression
    535545        | AND_expression '&' equality_expression
    536                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::BitAnd, $1, $3 ) ); }
     546                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::BitAnd, $1, $3 ) ); }
    537547        ;
    538548
     
    540550        AND_expression
    541551        | exclusive_OR_expression '^' AND_expression
    542                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Xor, $1, $3 ) ); }
     552                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Xor, $1, $3 ) ); }
    543553        ;
    544554
     
    546556        exclusive_OR_expression
    547557        | inclusive_OR_expression '|' exclusive_OR_expression
    548                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::BitOr, $1, $3 ) ); }
     558                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::BitOr, $1, $3 ) ); }
    549559        ;
    550560
     
    566576                { $$ = new CompositeExprNode2( build_cond( $1, $3, $5 ) ); }
    567577        | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand
    568                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), $1, $4 ); }
     578                { $$ = new CompositeExprNode2( build_cond( $1, $1, $4 ) ); }
    569579        | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression
    570580                { $$ = new CompositeExprNode2( build_cond( $1, $3, $5 ) ); }
     
    578588                // CFA, assignment is separated from assignment_operator to ensure no assignment operations for tuples
    579589        conditional_expression
    580         | unary_expression '=' assignment_expression
    581                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); }
    582590        | unary_expression assignment_operator assignment_expression
    583                 { $$ = new CompositeExprNode( $2, $1, $3 ); }
     591                { $$ = new CompositeExprNode2( build_binary_ptr( $2, $1, $3 ) ); }
    584592        | tuple assignment_opt                                                          // CFA, tuple expression
    585                 { $$ = ( $2 == 0 ) ? $1 : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $2 ); }
     593                { $$ = ( $2 == 0 ) ? $1 : new CompositeExprNode2( build_binary_ptr( OperatorNode::Assign, $1, $2 ) ); }
    586594        ;
    587595
     
    592600        ;
    593601
     602assignment_operator:
     603        '='                                                                                     { $$ = OperatorNode::Assign; }
     604        | MULTassign                                                            { $$ = OperatorNode::MulAssn; }
     605        | DIVassign                                                                     { $$ = OperatorNode::DivAssn; }
     606        | MODassign                                                                     { $$ = OperatorNode::ModAssn; }
     607        | PLUSassign                                                            { $$ = OperatorNode::PlusAssn; }
     608        | MINUSassign                                                           { $$ = OperatorNode::MinusAssn; }
     609        | LSassign                                                                      { $$ = OperatorNode::LSAssn; }
     610        | RSassign                                                                      { $$ = OperatorNode::RSAssn; }
     611        | ANDassign                                                                     { $$ = OperatorNode::AndAssn; }
     612        | ERassign                                                                      { $$ = OperatorNode::ERAssn; }
     613        | ORassign                                                                      { $$ = OperatorNode::OrAssn; }
     614        ;
     615
    594616tuple:                                                                                                  // CFA, tuple
    595617                // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce conflict with
    596618                // comma_expression in new_identifier_parameter_array and new_abstract_array
    597619        '[' ']'
    598                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     620                { $$ = new CompositeExprNode2( build_tuple() ); }
    599621        | '[' push assignment_expression pop ']'
    600                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), $3 ); }
     622                { $$ = new CompositeExprNode2( build_tuple( $3 ) ); }
    601623        | '[' push ',' tuple_expression_list pop ']'
    602                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( $4 ) ); }
     624                { $$ = new CompositeExprNode2( build_tuple( (ExpressionNode *)(new NullExprNode)->set_link( $4 ) ) ); }
    603625        | '[' push assignment_expression ',' tuple_expression_list pop ']'
    604                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 ) ) ); }
     626                { $$ = new CompositeExprNode2( build_tuple( (ExpressionNode *)$3->set_link( $5 ) ) ); }
    605627        ;
    606628
     
    611633        ;
    612634
    613 assignment_operator:
    614         MULTassign                                                                      { $$ = new OperatorNode( OperatorNode::MulAssn ); }
    615         | DIVassign                                                                     { $$ = new OperatorNode( OperatorNode::DivAssn ); }
    616         | MODassign                                                                     { $$ = new OperatorNode( OperatorNode::ModAssn ); }
    617         | PLUSassign                                                            { $$ = new OperatorNode( OperatorNode::PlusAssn ); }
    618         | MINUSassign                                                           { $$ = new OperatorNode( OperatorNode::MinusAssn ); }
    619         | LSassign                                                                      { $$ = new OperatorNode( OperatorNode::LSAssn ); }
    620         | RSassign                                                                      { $$ = new OperatorNode( OperatorNode::RSAssn ); }
    621         | ANDassign                                                                     { $$ = new OperatorNode( OperatorNode::AndAssn ); }
    622         | ERassign                                                                      { $$ = new OperatorNode( OperatorNode::ERAssn ); }
    623         | ORassign                                                                      { $$ = new OperatorNode( OperatorNode::OrAssn ); }
    624         ;
    625 
    626635comma_expression:
    627636        assignment_expression
    628         | comma_expression ',' assignment_expression    // { $$ = (ExpressionNode *)$1->add_to_list( $3 ); }
    629         //{ $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), $1, $3 ); }
     637        | comma_expression ',' assignment_expression
    630638                { $$ = new CompositeExprNode2( build_comma( $1, $3 ) ); }
    631639        ;
     
    651659                {
    652660                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
    653                         $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    654                                 (ExpressionNode *)( $2 )->set_link( $4 ) ), 0 );
     661                        $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode2( build_func( new VarRefNode( fn ), (ExpressionNode *)( $2 )->set_link( $4 ) ) ), 0 );
    655662                }
    656663        ;
     
    740747        constant_expression                                                     { $$ = $1; }
    741748        | constant_expression ELLIPSIS constant_expression      // GCC, subrange
    742                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Range, $1, $3 ) ); }
     749                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Range, $1, $3 ) ); }
    743750        | subrange                                                                                      // CFA, subrange
    744751        ;
     
    17811788                { $$ = new DesignatorNode( $3, true ); }
    17821789        | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements
    1783                 { $$ = new DesignatorNode( new CompositeExprNode2( build_opr2( OperatorNode::Range, $3, $5 ) ), true ); }
     1790                { $$ = new DesignatorNode( new CompositeExprNode2( build_binary_val( OperatorNode::Range, $3, $5 ) ), true ); }
    17841791        | '.' '[' push field_list pop ']'                                       // CFA, tuple field selector
    17851792                { $$ = new DesignatorNode( $4 ); }
     
    21102117subrange:
    21112118        constant_expression '~' constant_expression                     // CFA, integer subrange
    2112                 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Range, $1, $3 ) ); }
     2119                { $$ = new CompositeExprNode2( build_binary_val( OperatorNode::Range, $1, $3 ) ); }
    21132120        ;
    21142121
  • src/SynTree/Expression.h

    r51e076e r9706554  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug  3 17:08:44 2016
    13 // Update Count     : 27
     12// Last Modified On : Fri Aug  5 10:26:07 2016
     13// Update Count     : 28
    1414//
    1515
     
    7070typedef std::map< UniqueId, ParamEntry > InferredParams;
    7171
    72 /// ApplicationExpr represents the application of a function to a set of parameters.  This is the
    73 /// result of running an UntypedExpr through the expression analyzer.
     72/// ApplicationExpr represents the application of a function to a set of parameters.  This is the result of running an
     73/// UntypedExpr through the expression analyzer.
    7474class ApplicationExpr : public Expression {
    7575  public:
     
    9393};
    9494
    95 /// UntypedExpr represents the application of a function to a set of parameters, but where the
    96 /// particular overload for the function name has not yet been determined.  Most operators are
    97 /// converted into functional form automatically, to permit operator overloading.
     95/// UntypedExpr represents the application of a function to a set of parameters, but where the particular overload for
     96/// the function name has not yet been determined.  Most operators are converted into functional form automatically, to
     97/// permit operator overloading.
    9898class UntypedExpr : public Expression {
    9999  public:
Note: See TracChangeset for help on using the changeset viewer.