Changeset 2871210


Ignore:
Timestamp:
Jul 3, 2015, 6:08:20 PM (10 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, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
f6d7e0f
Parents:
0df292b
Message:

include file with keywords, fix type of label address expressions, fix computed goto to any expressions, generic types first attempt

Files:
10 added
13 edited

Legend:

Unmodified
Added
Removed
  • include/bfd.h

    r0df292b r2871210  
    1010// Created On       : Thu Jan  8 15:50:56 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 07:54:59 2015
    13 // Update Count     : 5
     12// Last Modified On : Sun Jun 28 09:07:14 2015
     13// Update Count     : 7
    1414
    1515// This include file uses the CFA keyword "type" as a field name of a structure.
    1616// The name is changed only for the include file.
    1717
     18#ifndef type    // nesting ?
    1819#define type `type`
    19 #include_next <math.h>
     20#define __CFA_BFD_H__
     21#endif // type
     22#include_next <bfd.h>
     23#ifdef __CFA_BFD_H__
    2024#undef type
     25#endif // __CFA_BFD_H__
    2126
    2227// Local Variables: //
  • include/math.h

    r0df292b r2871210  
    1010// Created On       : Mon Nov 10 23:41:29 2014
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 07:55:52 2015
    13 // Update Count     : 3
     12// Last Modified On : Sun Jun 28 09:05:22 2015
     13// Update Count     : 6
    1414
    1515// This include file uses the CFA keyword "type" as a field name of a structure.
    1616// The name is changed only for the include file.
    1717
     18#ifndef type    // nesting ?
    1819#define type `type`
     20#define __CFA_MATH_H__
     21#endif // type
    1922#include_next <math.h>
     23#ifdef __CFA_MATH_H__
    2024#undef type
     25#endif // __CFA_MATH_H__
    2126
    2227// Local Variables: //
  • src/Common/utility.h

    r0df292b r2871210  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun  8 14:43:54 2015
    13 // Update Count     : 13
     12// Last Modified On : Thu Jul  2 18:04:41 2015
     13// Update Count     : 16
    1414//
    1515
     
    8686}
    8787
    88 static inline std::string assign_strptr( std::string *str ) {
     88static inline std::string assign_strptr( const std::string *str ) {
    8989        if ( str == 0 ) {
    9090                return "";
     
    9797}
    9898
    99 template< class T, typename ResultType, ResultType (T::* memfunc)() >
     99template< class T, typename ResultType, ResultType( T::* memfunc )() >
    100100ResultType dispatch( T *pT ) {
    101101        return (pT->*memfunc)();
  • src/ControlStruct/LabelFixer.h

    r0df292b r2871210  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Jun 23 15:47:25 2015
    13 // Update Count     : 28
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun 29 17:24:39 2015
     13// Update Count     : 29
    1414//
    1515
     
    9494                        }
    9595
    96                         void add_uses ( Entry &other ) { usage.insert( usage.end(), other.usage.begin(), usage.end() ); }
     96                        void add_uses ( Entry &other ) { usage.insert( usage.end(), other.usage.begin(), other.usage.end() ); }
    9797                  private:
    9898                        Label label; 
  • src/Parser/DeclarationNode.cc

    r0df292b r2871210  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jun 26 23:36:03 2015
    13 // Update Count     : 105
     12// Last Modified On : Fri Jul  3 12:35:02 2015
     13// Update Count     : 108
    1414//
    1515
     
    173173}
    174174
    175 DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, std::string *name, ExpressionNode *actuals, DeclarationNode *fields ) {
     175DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields ) {
    176176        DeclarationNode *newnode = new DeclarationNode;
    177177        newnode->type = new TypeData( TypeData::Aggregate );
    178178        newnode->type->aggregate->kind = kind;
    179179        newnode->type->aggregate->name = assign_strptr( name );
    180         if ( newnode->type->aggregate->name == "" ) {
     180        if ( newnode->type->aggregate->name == "" ) {           // anonymous aggregate ?
    181181                newnode->type->aggregate->name = DeclarationNode::anonymous.newName();
    182         } // if
    183 
    184         // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified by
    185         // "struct"
    186         typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD );
    187         DeclarationNode *typedf = new DeclarationNode;
    188         typedf->name = newnode->type->aggregate->name;
    189         newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
    190 
     182        } else {
     183                // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified
     184                // by "struct"
     185                typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD );
     186                DeclarationNode *typedf = new DeclarationNode;
     187                typedf->name = newnode->type->aggregate->name;
     188                newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
     189        } // if
    191190        newnode->type->aggregate->actuals = actuals;
    192191        newnode->type->aggregate->fields = fields;
     
    199198        newnode->type = new TypeData( TypeData::Enum );
    200199        newnode->type->enumeration->name = newnode->name;
    201         if ( newnode->type->enumeration->name == "" ) {
     200        if ( newnode->type->enumeration->name == "" ) {         // anonymous enumeration ?
    202201                newnode->type->enumeration->name = DeclarationNode::anonymous.newName();
    203         } // if
    204 
    205         // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be qualified
    206         // by "enum"
    207         typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );
    208         DeclarationNode *typedf = new DeclarationNode;
    209         typedf->name = newnode->type->enumeration->name;
    210         newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
    211 
     202        } else {
     203                // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be
     204                // qualified by "enum"
     205                typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );
     206                DeclarationNode *typedf = new DeclarationNode;
     207                typedf->name = newnode->type->enumeration->name;
     208                newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
     209        } // if
    212210        newnode->type->enumeration->constants = constants;
    213211        return newnode;
  • src/Parser/ParseNode.h

    r0df292b r2871210  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun 25 17:27:42 2015
    13 // Update Count     : 83
     12// Last Modified On : Thu Jul  2 17:57:05 2015
     13// Update Count     : 84
    1414//
    1515
     
    287287        static DeclarationNode *newForall( DeclarationNode *);
    288288        static DeclarationNode *newFromTypedef( std::string *);
    289         static DeclarationNode *newAggregate( Aggregate kind, std::string *name, ExpressionNode *actuals, DeclarationNode *fields );
     289        static DeclarationNode *newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields );
    290290        static DeclarationNode *newEnum( std::string *name, DeclarationNode *constants );
    291291        static DeclarationNode *newEnumConstant( std::string *name, ExpressionNode *constant );
  • src/Parser/parser.cc

    r0df292b r2871210  
    568568
    569569/* YYFINAL -- State number of the termination state.  */
    570 #define YYFINAL  240
     570#define YYFINAL  246
    571571/* YYLAST -- Last index in YYTABLE.  */
    572 #define YYLAST   11462
     572#define YYLAST   11363
    573573
    574574/* YYNTOKENS -- Number of terminals.  */
    575575#define YYNTOKENS  125
    576576/* YYNNTS -- Number of nonterminals.  */
    577 #define YYNNTS  235
     577#define YYNNTS  236
    578578/* YYNRULES -- Number of rules.  */
    579 #define YYNRULES  731
     579#define YYNRULES  732
    580580/* YYNRULES -- Number of states.  */
    581 #define YYNSTATES  1529
     581#define YYNSTATES  1505
    582582
    583583/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    644644     270,   274,   278,   282,   286,   288,   292,   296,   298,   302,
    645645     304,   308,   310,   314,   316,   320,   322,   326,   328,   334,
    646      339,   345,   347,   349,   353,   357,   360,   361,   363,   368,
    647      374,   381,   389,   391,   395,   397,   399,   401,   403,   405,
    648      407,   409,   411,   413,   415,   417,   421,   422,   424,   426,
    649      428,   430,   432,   434,   436,   438,   440,   445,   448,   456,
    650      458,   462,   464,   467,   469,   472,   474,   477,   480,   486,
    651      494,   500,   510,   516,   526,   528,   532,   534,   536,   540,
    652      544,   547,   549,   552,   555,   556,   558,   561,   565,   566,
    653      568,   571,   575,   579,   584,   585,   587,   589,   592,   598,
    654      606,   613,   620,   625,   629,   634,   637,   641,   644,   648,
    655      652,   656,   659,   663,   667,   672,   674,   680,   687,   697,
    656      708,   711,   713,   716,   719,   722,   724,   731,   740,   751,
    657      764,   765,   767,   769,   773,   778,   780,   784,   786,   788,
    658      790,   794,   796,   798,   800,   804,   805,   807,   811,   816,
    659      818,   822,   824,   826,   830,   834,   838,   842,   846,   849,
    660      853,   860,   864,   868,   873,   875,   878,   881,   885,   891,
    661      902,   913,   921,   929,   935,   945,   948,   951,   957,   961,
    662      967,   972,   976,   981,   986,   994,   998,  1002,  1006,  1010,
    663     1015,  1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,
    664     1039,  1041,  1043,  1046,  1048,  1050,  1052,  1054,  1056,  1058,
    665     1060,  1061,  1067,  1069,  1072,  1076,  1078,  1081,  1083,  1085,
    666     1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,  1103,  1105,
    667     1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,  1123,  1125,
    668     1128,  1131,  1135,  1139,  1141,  1145,  1147,  1150,  1153,  1156,
    669     1161,  1166,  1171,  1176,  1178,  1181,  1184,  1188,  1190,  1193,
    670     1196,  1198,  1201,  1204,  1208,  1210,  1213,  1216,  1218,  1220,
    671     1225,  1228,  1234,  1242,  1248,  1251,  1254,  1256,  1259,  1262,
    672     1266,  1269,  1273,  1275,  1278,  1282,  1285,  1288,  1293,  1294,
    673     1296,  1299,  1302,  1304,  1305,  1307,  1310,  1313,  1319,  1326,
    674     1329,  1332,  1337,  1338,  1341,  1342,  1344,  1346,  1348,  1354,
    675     1360,  1366,  1368,  1374,  1380,  1390,  1392,  1398,  1399,  1401,
    676     1403,  1409,  1411,  1413,  1419,  1425,  1427,  1431,  1435,  1440,
    677     1442,  1444,  1446,  1448,  1451,  1453,  1457,  1461,  1463,  1466,
    678     1468,  1472,  1474,  1476,  1478,  1480,  1482,  1484,  1486,  1488,
    679     1490,  1492,  1494,  1497,  1499,  1501,  1503,  1506,  1507,  1510,
    680     1512,  1517,  1519,  1522,  1526,  1531,  1534,  1537,  1539,  1542,
    681     1545,  1551,  1557,  1565,  1572,  1574,  1577,  1580,  1584,  1589,
    682     1595,  1598,  1601,  1606,  1607,  1612,  1615,  1617,  1619,  1621,
    683     1622,  1625,  1631,  1637,  1651,  1653,  1655,  1659,  1663,  1666,
    684     1670,  1674,  1677,  1682,  1684,  1691,  1701,  1702,  1714,  1716,
    685     1720,  1724,  1728,  1730,  1732,  1738,  1741,  1747,  1748,  1750,
    686     1752,  1756,  1757,  1759,  1761,  1763,  1765,  1766,  1773,  1776,
    687     1778,  1781,  1786,  1789,  1793,  1797,  1801,  1806,  1812,  1818,
    688     1824,  1831,  1833,  1835,  1837,  1841,  1842,  1848,  1849,  1851,
    689     1853,  1856,  1863,  1865,  1869,  1870,  1872,  1877,  1879,  1881,
    690     1883,  1885,  1888,  1890,  1893,  1896,  1898,  1902,  1905,  1909,
    691     1913,  1916,  1921,  1926,  1930,  1939,  1943,  1946,  1948,  1951,
    692     1958,  1967,  1971,  1974,  1978,  1982,  1987,  1992,  1996,  1998,
    693     2000,  2002,  2007,  2014,  2018,  2021,  2025,  2029,  2034,  2039,
    694     2043,  2046,  2048,  2051,  2054,  2056,  2060,  2063,  2067,  2071,
    695     2074,  2079,  2084,  2088,  2095,  2104,  2108,  2111,  2113,  2116,
    696     2119,  2122,  2126,  2130,  2133,  2138,  2143,  2147,  2154,  2163,
    697     2167,  2170,  2172,  2175,  2178,  2180,  2183,  2187,  2191,  2194,
    698     2199,  2206,  2215,  2217,  2220,  2223,  2225,  2228,  2231,  2235,
    699     2239,  2241,  2246,  2251,  2255,  2261,  2270,  2274,  2279,  2285,
    700     2287,  2293,  2299,  2306,  2313,  2315,  2318,  2321,  2323,  2326,
    701     2329,  2333,  2337,  2339,  2344,  2349,  2353,  2359,  2368,  2372,
    702     2374,  2377,  2379,  2384,  2391,  2397,  2404,  2412,  2420,  2422,
    703     2425,  2428,  2430,  2433,  2436,  2440,  2444,  2446,  2451,  2456,
    704     2460,  2469,  2473,  2475,  2477,  2480,  2482,  2484,  2487,  2491,
    705     2494,  2498,  2501,  2505,  2511,  2514,  2521,  2525,  2528,  2534,
    706     2537,  2544,  2548,  2551,  2558,  2565,  2572,  2580,  2582,  2585,
    707     2587,  2589,  2591,  2594,  2598,  2601,  2605,  2608,  2612,  2618,
    708     2625,  2628,  2634,  2641,  2644,  2650,  2658,  2665,  2672,  2673,
    709     2675,  2676
     646     339,   345,   347,   349,   353,   357,   360,   361,   363,   366,
     647     372,   379,   387,   389,   393,   395,   397,   399,   401,   403,
     648     405,   407,   409,   411,   413,   415,   419,   420,   422,   424,
     649     426,   428,   430,   432,   434,   436,   438,   443,   446,   454,
     650     456,   460,   462,   465,   467,   470,   472,   475,   478,   484,
     651     492,   498,   508,   514,   524,   526,   530,   532,   534,   538,
     652     542,   545,   547,   550,   553,   554,   556,   559,   563,   564,
     653     566,   569,   573,   577,   582,   583,   585,   587,   590,   596,
     654     604,   611,   618,   623,   627,   632,   635,   639,   642,   646,
     655     650,   654,   657,   661,   665,   670,   672,   678,   685,   695,
     656     706,   709,   711,   714,   717,   720,   722,   729,   738,   749,
     657     762,   763,   765,   767,   771,   776,   778,   782,   784,   786,
     658     788,   792,   794,   796,   798,   802,   803,   805,   809,   814,
     659     816,   820,   822,   824,   828,   832,   836,   840,   844,   847,
     660     851,   858,   862,   866,   871,   873,   876,   879,   883,   889,
     661     898,   906,   914,   920,   930,   933,   936,   942,   946,   952,
     662     957,   961,   966,   971,   979,   983,   987,   991,   995,  1000,
     663    1007,  1009,  1011,  1013,  1015,  1017,  1019,  1021,  1023,  1024,
     664    1026,  1028,  1031,  1033,  1035,  1037,  1039,  1041,  1043,  1045,
     665    1046,  1052,  1054,  1057,  1061,  1063,  1066,  1068,  1070,  1072,
     666    1074,  1076,  1078,  1080,  1082,  1084,  1086,  1088,  1090,  1092,
     667    1094,  1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1113,
     668    1116,  1120,  1124,  1126,  1130,  1132,  1135,  1138,  1141,  1146,
     669    1151,  1156,  1161,  1163,  1166,  1169,  1173,  1175,  1178,  1181,
     670    1183,  1186,  1189,  1193,  1195,  1198,  1201,  1203,  1205,  1210,
     671    1213,  1219,  1227,  1230,  1233,  1236,  1238,  1241,  1244,  1248,
     672    1251,  1255,  1257,  1260,  1264,  1267,  1270,  1275,  1276,  1278,
     673    1281,  1284,  1286,  1287,  1289,  1292,  1295,  1301,  1308,  1311,
     674    1314,  1319,  1320,  1323,  1324,  1326,  1328,  1330,  1336,  1342,
     675    1348,  1350,  1356,  1362,  1372,  1374,  1380,  1381,  1383,  1385,
     676    1391,  1393,  1395,  1401,  1407,  1409,  1413,  1417,  1422,  1424,
     677    1426,  1428,  1430,  1433,  1435,  1439,  1443,  1445,  1448,  1450,
     678    1454,  1456,  1458,  1460,  1462,  1464,  1466,  1468,  1470,  1472,
     679    1474,  1476,  1479,  1481,  1483,  1485,  1488,  1489,  1492,  1494,
     680    1499,  1501,  1504,  1508,  1513,  1516,  1519,  1521,  1524,  1527,
     681    1533,  1539,  1547,  1554,  1556,  1559,  1562,  1566,  1568,  1571,
     682    1574,  1579,  1582,  1587,  1588,  1593,  1596,  1598,  1600,  1602,
     683    1603,  1606,  1612,  1618,  1632,  1634,  1636,  1640,  1644,  1647,
     684    1651,  1655,  1658,  1663,  1665,  1672,  1682,  1683,  1695,  1697,
     685    1701,  1705,  1709,  1711,  1713,  1719,  1722,  1728,  1729,  1731,
     686    1733,  1737,  1738,  1740,  1742,  1744,  1746,  1747,  1754,  1757,
     687    1759,  1762,  1767,  1770,  1774,  1778,  1782,  1787,  1793,  1799,
     688    1805,  1812,  1814,  1816,  1818,  1822,  1823,  1829,  1830,  1832,
     689    1834,  1837,  1844,  1846,  1850,  1851,  1853,  1858,  1860,  1862,
     690    1864,  1866,  1869,  1871,  1874,  1877,  1879,  1883,  1886,  1890,
     691    1894,  1897,  1902,  1907,  1911,  1920,  1924,  1927,  1929,  1932,
     692    1939,  1948,  1952,  1955,  1959,  1963,  1968,  1973,  1977,  1979,
     693    1981,  1983,  1988,  1995,  1999,  2002,  2006,  2010,  2015,  2020,
     694    2024,  2027,  2029,  2032,  2035,  2037,  2041,  2044,  2048,  2052,
     695    2055,  2060,  2065,  2069,  2076,  2085,  2089,  2092,  2094,  2097,
     696    2100,  2103,  2107,  2111,  2114,  2119,  2124,  2128,  2135,  2144,
     697    2148,  2151,  2153,  2156,  2159,  2161,  2163,  2166,  2170,  2174,
     698    2177,  2182,  2189,  2198,  2200,  2203,  2206,  2208,  2211,  2214,
     699    2218,  2222,  2224,  2229,  2234,  2238,  2244,  2253,  2257,  2260,
     700    2264,  2266,  2272,  2278,  2285,  2292,  2294,  2297,  2300,  2302,
     701    2305,  2308,  2312,  2316,  2318,  2323,  2328,  2332,  2338,  2347,
     702    2351,  2353,  2356,  2358,  2361,  2368,  2374,  2381,  2389,  2397,
     703    2399,  2402,  2405,  2407,  2410,  2413,  2417,  2421,  2423,  2428,
     704    2433,  2437,  2446,  2450,  2452,  2454,  2457,  2459,  2461,  2464,
     705    2468,  2471,  2475,  2478,  2482,  2486,  2489,  2494,  2498,  2501,
     706    2505,  2508,  2513,  2517,  2520,  2527,  2534,  2541,  2549,  2551,
     707    2554,  2556,  2558,  2560,  2563,  2567,  2570,  2574,  2577,  2581,
     708    2585,  2590,  2593,  2597,  2602,  2605,  2611,  2617,  2624,  2631,
     709    2632,  2634,  2635
    710710};
    711711
     
    713713static const yytype_int16 yyrhs[] =
    714714{
    715      288,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
     715     289,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
    716716      -1,    65,    -1,    69,    -1,   132,    -1,    65,    -1,    69,
    717717      -1,    65,    -1,    76,    -1,    77,    -1,    75,    -1,   133,
     
    722722     138,   127,   104,    -1,   135,    78,   131,    -1,   135,    78,
    723723     103,   126,   138,   127,   104,    -1,   135,    79,    -1,   135,
    724       80,    -1,   101,   262,   102,   106,   266,   358,   107,    -1,
     724      80,    -1,   101,   262,   102,   106,   266,   359,   107,    -1,
    725725     137,    -1,   136,   108,   137,    -1,    -1,   155,    -1,   131,
    726726     109,   155,    -1,   103,   126,   155,   127,   104,   109,   155,
     
    748748     160,   109,   153,    -1,   152,   122,   109,   153,    -1,   152,
    749749     122,   160,   109,   157,    -1,   153,    -1,   153,    -1,   140,
    750      123,   155,    -1,   140,   159,   155,    -1,   157,   359,    -1,
    751       -1,   155,    -1,   103,   126,   127,   104,    -1,   103,   126,
    752      155,   127,   104,    -1,   103,   126,   108,   158,   127,   104,
    753       -1,   103,   126,   155,   108,   158,   127,   104,    -1,   156,
    754       -1,   158,   108,   156,    -1,    90,    -1,    91,    -1,    92,
    755       -1,    93,    -1,    94,    -1,    95,    -1,    96,    -1,    97,
    756       -1,    98,    -1,    99,    -1,   155,    -1,   160,   108,   155,
    757       -1,    -1,   160,    -1,   163,    -1,   164,    -1,   168,    -1,
    758      169,    -1,   181,    -1,   183,    -1,   184,    -1,   189,    -1,
    759      131,   109,   298,   162,    -1,   106,   107,    -1,   106,   126,
    760      126,   198,   165,   127,   107,    -1,   166,    -1,   165,   126,
    761      166,    -1,   201,    -1,    38,   201,    -1,   294,    -1,   162,
    762      127,    -1,   162,    -1,   167,   162,    -1,   161,   124,    -1,
    763       39,   101,   160,   102,   162,    -1,    39,   101,   160,   102,
    764      162,    40,   162,    -1,    41,   101,   160,   102,   174,    -1,
    765       41,   101,   160,   102,   106,   126,   194,   175,   107,    -1,
    766       51,   101,   160,   102,   174,    -1,    51,   101,   160,   102,
    767      106,   126,   194,   177,   107,    -1,   154,    -1,   154,    89,
    768      154,    -1,   296,    -1,   170,    -1,   171,   108,   170,    -1,
    769       42,   171,   109,    -1,    43,   109,    -1,   172,    -1,   173,
    770      172,    -1,   173,   162,    -1,    -1,   176,    -1,   173,   167,
    771       -1,   176,   173,   167,    -1,    -1,   178,    -1,   173,   180,
    772       -1,   173,   167,   179,    -1,   178,   173,   180,    -1,   178,
    773      173,   167,   179,    -1,    -1,   180,    -1,    52,    -1,    52,
    774      124,    -1,    45,   101,   160,   102,   162,    -1,    44,   162,
    775       45,   101,   160,   102,   124,    -1,    46,   101,   126,   182,
    776      102,   162,    -1,   161,   127,   124,   161,   124,   161,    -1,
    777      201,   161,   124,   161,    -1,    49,   131,   124,    -1,    49,
    778      111,   160,   124,    -1,    48,   124,    -1,    48,   131,   124,
    779       -1,    47,   124,    -1,    47,   131,   124,    -1,    50,   161,
    780      124,    -1,    56,   155,   124,    -1,    56,   124,    -1,    53,
    781      164,   185,    -1,    53,   164,   187,    -1,    53,   164,   185,
    782      187,    -1,   186,    -1,    54,   101,    89,   102,   164,    -1,
    783      186,    54,   101,    89,   102,   164,    -1,    54,   101,   126,
    784      126,   188,   127,   102,   164,   127,    -1,   186,    54,   101,
    785      126,   126,   188,   127,   102,   164,   127,    -1,    55,   164,
    786       -1,   214,    -1,   214,   295,    -1,   214,   343,    -1,   352,
    787      131,    -1,   352,    -1,    57,   215,   101,   154,   102,   124,
    788       -1,    57,   215,   101,   154,   109,   190,   102,   124,    -1,
    789       57,   215,   101,   154,   109,   190,   109,   190,   102,   124,
    790       -1,    57,   215,   101,   154,   109,   190,   109,   190,   109,
    791      193,   102,   124,    -1,    -1,   191,    -1,   192,    -1,   191,
    792      108,   192,    -1,    75,   101,   154,   102,    -1,    75,    -1,
    793      193,   108,    75,    -1,   127,    -1,   195,    -1,   201,    -1,
    794      195,   126,   201,    -1,   127,    -1,   197,    -1,   211,    -1,
    795      197,   126,   211,    -1,    -1,   199,    -1,    28,   200,   124,
    796       -1,   199,    28,   200,   124,    -1,   261,    -1,   200,   108,
    797      261,    -1,   202,    -1,   211,    -1,   203,   127,   124,    -1,
    798      208,   127,   124,    -1,   205,   127,   124,    -1,   279,   127,
    799      124,    -1,   282,   127,   124,    -1,   204,   264,    -1,   220,
    800      204,   264,    -1,   203,   127,   108,   126,   259,   264,    -1,
    801      353,   259,   297,    -1,   356,   259,   297,    -1,   216,   356,
    802      259,   297,    -1,   206,    -1,   216,   206,    -1,   220,   206,
    803       -1,   220,   216,   206,    -1,   205,   127,   108,   126,   259,
    804       -1,   103,   126,   127,   104,   129,   101,   126,   247,   127,
    805      102,    -1,   103,   126,   127,   104,    67,   101,   126,   247,
    806      127,   102,    -1,   356,   259,   101,   126,   247,   127,   102,
    807       -1,   207,   259,   101,   126,   247,   127,   102,    -1,   103,
    808      126,   249,   127,   104,    -1,   103,   126,   249,   127,   108,
    809      126,   250,   127,   104,    -1,     3,   204,    -1,     3,   206,
    810       -1,   208,   127,   108,   126,   131,    -1,     3,   214,   295,
    811       -1,   209,   127,   108,   126,   295,    -1,   216,     3,   214,
    812      295,    -1,   214,     3,   295,    -1,   214,     3,   216,   295,
    813       -1,     3,   131,   123,   155,    -1,   210,   127,   108,   126,
    814      131,   123,   155,    -1,   212,   127,   124,    -1,   209,   127,
    815      124,    -1,   210,   127,   124,    -1,   229,   127,   124,    -1,
    816      213,   295,   297,   264,    -1,   212,   108,   298,   295,   297,
    817      264,    -1,   225,    -1,   229,    -1,   231,    -1,   270,    -1,
    818      226,    -1,   230,    -1,   232,    -1,   271,    -1,    -1,   216,
    819       -1,   217,    -1,   216,   217,    -1,   218,    -1,   300,    -1,
    820       10,    -1,    12,    -1,    11,    -1,    14,    -1,    60,    -1,
    821       -1,    13,   101,   219,   272,   102,    -1,   221,    -1,   216,
    822      221,    -1,   220,   216,   221,    -1,   222,    -1,   221,   222,
    823       -1,   223,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
    824       -1,     8,    -1,     9,    -1,    62,    -1,    64,    -1,    16,
    825       -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
    826       -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,    25,
    827       -1,    26,    -1,   226,    -1,   220,   226,    -1,   225,   222,
    828       -1,   225,   222,   216,    -1,   225,   222,   226,    -1,   227,
    829       -1,   215,   228,   215,    -1,   224,    -1,   216,   224,    -1,
    830      227,   217,    -1,   227,   224,    -1,    27,   101,   263,   102,
    831       -1,    27,   101,   160,   102,    -1,    71,   101,   263,   102,
    832       -1,    71,   101,   160,   102,    -1,   230,    -1,   220,   230,
    833       -1,   229,   222,    -1,   229,   222,   216,    -1,   233,    -1,
    834      216,   233,    -1,   230,   217,    -1,   232,    -1,   220,   232,
    835       -1,   231,   222,    -1,   231,   222,   216,    -1,    67,    -1,
    836      216,    67,    -1,   232,   217,    -1,   234,    -1,   244,    -1,
    837      235,   106,   236,   107,    -1,   235,   261,    -1,   235,   261,
    838      106,   236,   107,    -1,   235,   101,   278,   102,   106,   236,
    839      107,    -1,   235,   101,   278,   102,   261,    -1,    30,   298,
    840       -1,    31,   298,    -1,   237,    -1,   236,   237,    -1,   238,
    841      124,    -1,    38,   238,   124,    -1,   239,   124,    -1,    38,
    842      239,   124,    -1,   352,    -1,   352,   261,    -1,   238,   108,
    843      261,    -1,   238,   108,    -1,   214,   240,    -1,   239,   108,
    844      298,   240,    -1,    -1,   242,    -1,   304,   241,    -1,   317,
    845      241,    -1,   343,    -1,    -1,   242,    -1,   109,   154,    -1,
    846       29,   298,    -1,   243,   106,   245,   358,   107,    -1,   243,
    847      261,   106,   245,   358,   107,    -1,   243,   261,    -1,   261,
    848      246,    -1,   245,   108,   261,   246,    -1,    -1,   123,   154,
    849       -1,    -1,   248,    -1,   250,    -1,   249,    -1,   249,   127,
    850      108,   126,   250,    -1,   250,   127,   108,   126,    89,    -1,
    851      249,   127,   108,   126,    89,    -1,   254,    -1,   250,   127,
    852      108,   126,   254,    -1,   249,   127,   108,   126,   254,    -1,
    853      249,   127,   108,   126,   250,   127,   108,   126,   254,    -1,
    854      255,    -1,   250,   127,   108,   126,   255,    -1,    -1,   252,
    855       -1,   253,    -1,   253,   127,   108,   126,    89,    -1,   257,
    856       -1,   256,    -1,   253,   127,   108,   126,   257,    -1,   253,
    857      127,   108,   126,   256,    -1,   256,    -1,   348,   259,   359,
    858       -1,   356,   259,   359,    -1,   216,   356,   259,   359,    -1,
    859      206,    -1,   257,    -1,   348,    -1,   356,    -1,   216,   356,
    860       -1,   357,    -1,   213,   322,   359,    -1,   213,   326,   359,
    861       -1,   213,    -1,   213,   337,    -1,   131,    -1,   258,   108,
    862      131,    -1,   129,    -1,    67,    -1,    68,    -1,   130,    -1,
    863       67,    -1,    68,    -1,   131,    -1,    67,    -1,    68,    -1,
    864      352,    -1,   214,    -1,   214,   343,    -1,   352,    -1,   357,
    865       -1,   214,    -1,   214,   331,    -1,    -1,   123,   265,    -1,
    866      155,    -1,   106,   266,   358,   107,    -1,   265,    -1,   267,
    867      265,    -1,   266,   108,   265,    -1,   266,   108,   267,   265,
    868       -1,   268,   109,    -1,   261,   109,    -1,   269,    -1,   268,
    869      269,    -1,   105,   261,    -1,   103,   126,   155,   127,   104,
    870       -1,   103,   126,   296,   127,   104,    -1,   103,   126,   154,
    871       89,   154,   127,   104,    -1,   105,   103,   126,   138,   127,
    872      104,    -1,   271,    -1,   220,   271,    -1,   270,   222,    -1,
    873      270,   222,   216,    -1,    68,   101,   278,   102,    -1,   216,
    874       68,   101,   278,   102,    -1,   271,   217,    -1,   273,   359,
    875       -1,   272,   108,   273,   359,    -1,    -1,   275,   261,   274,
    876      276,    -1,   214,   322,    -1,    32,    -1,    34,    -1,    33,
    877       -1,    -1,   276,   277,    -1,   121,   261,   101,   278,   102,
    878       -1,   121,   106,   126,   284,   107,    -1,   121,   101,   126,
    879      272,   127,   102,   106,   126,   284,   107,   101,   278,   102,
    880       -1,   263,    -1,   155,    -1,   278,   108,   263,    -1,   278,
    881      108,   155,    -1,    32,   280,    -1,   221,    32,   280,    -1,
    882      279,   108,   280,    -1,   281,   276,    -1,   281,   276,   123,
    883      263,    -1,   261,    -1,   260,   101,   126,   272,   127,   102,
    884       -1,    35,   261,   101,   126,   272,   127,   102,   106,   107,
    885       -1,    -1,    35,   261,   101,   126,   272,   127,   102,   106,
    886      283,   284,   107,    -1,   285,    -1,   284,   126,   285,    -1,
    887      286,   127,   124,    -1,   287,   127,   124,    -1,   204,    -1,
    888      206,    -1,   286,   127,   108,   126,   259,    -1,   214,   295,
    889       -1,   287,   127,   108,   126,   295,    -1,    -1,   289,    -1,
    890      291,    -1,   289,   126,   291,    -1,    -1,   289,    -1,   201,
    891       -1,   293,    -1,   189,    -1,    -1,     5,    75,   292,   106,
    892      290,   107,    -1,    38,   291,    -1,   294,    -1,   309,   164,
    893       -1,   313,   126,   196,   164,    -1,   205,   164,    -1,   213,
    894      309,   164,    -1,   216,   309,   164,    -1,   220,   309,   164,
    895       -1,   220,   216,   309,   164,    -1,   213,   313,   126,   196,
    896      164,    -1,   216,   313,   126,   196,   164,    -1,   220,   313,
    897      126,   196,   164,    -1,   220,   216,   313,   126,   196,   164,
    898       -1,   304,    -1,   309,    -1,   317,    -1,   154,   115,   154,
    899       -1,    -1,    57,   101,   133,   102,   298,    -1,    -1,   299,
    900       -1,   300,    -1,   299,   300,    -1,    37,   101,   101,   301,
    901      102,   102,    -1,   302,    -1,   301,   108,   302,    -1,    -1,
    902      303,    -1,   303,   101,   161,   102,    -1,   259,    -1,   223,
    903       -1,   224,    -1,   217,    -1,   305,   298,    -1,   306,    -1,
    904      307,   298,    -1,   308,   298,    -1,   129,    -1,   101,   305,
    905      102,    -1,   111,   304,    -1,   111,   216,   304,    -1,   101,
    906      306,   102,    -1,   305,   335,    -1,   101,   306,   102,   335,
    907       -1,   101,   307,   102,   336,    -1,   101,   307,   102,    -1,
    908      101,   306,   102,   101,   126,   251,   127,   102,    -1,   101,
    909      308,   102,    -1,   310,   298,    -1,   311,    -1,   312,   298,
    910       -1,   305,   101,   126,   251,   127,   102,    -1,   101,   311,
    911      102,   101,   126,   251,   127,   102,    -1,   101,   310,   102,
    912       -1,   111,   309,    -1,   111,   216,   309,    -1,   101,   311,
    913      102,    -1,   101,   311,   102,   335,    -1,   101,   312,   102,
    914      336,    -1,   101,   312,   102,    -1,   314,    -1,   315,    -1,
    915      316,    -1,   305,   101,   258,   102,    -1,   101,   315,   102,
    916      101,   258,   102,    -1,   101,   314,   102,    -1,   111,   313,
    917       -1,   111,   216,   313,    -1,   101,   315,   102,    -1,   101,
    918      315,   102,   335,    -1,   101,   316,   102,   336,    -1,   101,
    919      316,   102,    -1,   318,   298,    -1,   319,    -1,   320,   298,
    920       -1,   321,   298,    -1,    67,    -1,   101,   318,   102,    -1,
    921      111,   317,    -1,   111,   216,   317,    -1,   101,   319,   102,
    922       -1,   318,   335,    -1,   101,   319,   102,   335,    -1,   101,
    923      320,   102,   336,    -1,   101,   320,   102,    -1,   318,   101,
    924      126,   251,   127,   102,    -1,   101,   319,   102,   101,   126,
    925      251,   127,   102,    -1,   101,   321,   102,    -1,   305,   298,
    926       -1,   323,    -1,   324,   298,    -1,   325,   298,    -1,   111,
    927      322,    -1,   111,   216,   322,    -1,   101,   323,   102,    -1,
    928      305,   341,    -1,   101,   323,   102,   335,    -1,   101,   324,
    929      102,   336,    -1,   101,   324,   102,    -1,   305,   101,   126,
    930      251,   127,   102,    -1,   101,   323,   102,   101,   126,   251,
    931      127,   102,    -1,   101,   325,   102,    -1,   327,   298,    -1,
    932      328,    -1,   329,   298,    -1,   330,   298,    -1,    67,    -1,
    933      111,   326,    -1,   111,   216,   326,    -1,   101,   328,   102,
    934       -1,   327,   341,    -1,   101,   328,   102,   341,    -1,   327,
    935      101,   126,   251,   127,   102,    -1,   101,   328,   102,   101,
    936      126,   251,   127,   102,    -1,   332,    -1,   333,   298,    -1,
    937      334,   298,    -1,   111,    -1,   111,   216,    -1,   111,   331,
    938       -1,   111,   216,   331,    -1,   101,   332,   102,    -1,   335,
    939       -1,   101,   332,   102,   335,    -1,   101,   333,   102,   336,
    940       -1,   101,   333,   102,    -1,   101,   126,   251,   127,   102,
    941       -1,   101,   332,   102,   101,   126,   251,   127,   102,    -1,
    942      101,   334,   102,    -1,   103,   126,   127,   104,    -1,   103,
    943      126,   127,   104,   336,    -1,   336,    -1,   103,   126,   155,
    944      127,   104,    -1,   103,   126,   111,   127,   104,    -1,   336,
    945      103,   126,   155,   127,   104,    -1,   336,   103,   126,   111,
    946      127,   104,    -1,   338,    -1,   339,   298,    -1,   340,   298,
    947       -1,   111,    -1,   111,   216,    -1,   111,   337,    -1,   111,
    948      216,   337,    -1,   101,   338,   102,    -1,   341,    -1,   101,
    949      338,   102,   341,    -1,   101,   339,   102,   336,    -1,   101,
    950      339,   102,    -1,   101,   126,   251,   127,   102,    -1,   101,
    951      338,   102,   101,   126,   251,   127,   102,    -1,   101,   340,
    952      102,    -1,   342,    -1,   342,   336,    -1,   336,    -1,   103,
    953      126,   127,   104,    -1,   103,   126,   216,   111,   127,   104,
    954       -1,   103,   126,   216,   127,   104,    -1,   103,   126,   216,
    955      155,   127,   104,    -1,   103,   126,     7,   215,   155,   127,
    956      104,    -1,   103,   126,   216,     7,   155,   127,   104,    -1,
    957      344,    -1,   345,   298,    -1,   346,   298,    -1,   111,    -1,
    958      111,   216,    -1,   111,   343,    -1,   111,   216,   343,    -1,
    959      101,   344,   102,    -1,   335,    -1,   101,   344,   102,   335,
    960       -1,   101,   345,   102,   336,    -1,   101,   345,   102,    -1,
    961      101,   344,   102,   101,   126,   251,   127,   102,    -1,   101,
    962      346,   102,    -1,   348,    -1,   356,    -1,   216,   356,    -1,
    963      349,    -1,   350,    -1,   111,   214,    -1,   216,   111,   214,
    964       -1,   111,   357,    -1,   216,   111,   357,    -1,   111,   347,
    965       -1,   216,   111,   347,    -1,   103,   126,   127,   104,   214,
    966       -1,   351,   214,    -1,   103,   126,   127,   104,   336,   214,
    967       -1,   351,   336,   214,    -1,   336,   214,    -1,   103,   126,
    968      127,   104,   349,    -1,   351,   349,    -1,   103,   126,   127,
    969      104,   336,   349,    -1,   351,   336,   349,    -1,   336,   349,
     750     123,   155,    -1,   140,   159,   155,    -1,   157,   360,    -1,
     751      -1,   155,    -1,   103,   104,    -1,   103,   126,   155,   127,
     752     104,    -1,   103,   126,   108,   158,   127,   104,    -1,   103,
     753     126,   155,   108,   158,   127,   104,    -1,   156,    -1,   158,
     754     108,   156,    -1,    90,    -1,    91,    -1,    92,    -1,    93,
     755      -1,    94,    -1,    95,    -1,    96,    -1,    97,    -1,    98,
     756      -1,    99,    -1,   155,    -1,   160,   108,   155,    -1,    -1,
     757     160,    -1,   163,    -1,   164,    -1,   168,    -1,   169,    -1,
     758     181,    -1,   183,    -1,   184,    -1,   189,    -1,   131,   109,
     759     299,   162,    -1,   106,   107,    -1,   106,   126,   126,   198,
     760     165,   127,   107,    -1,   166,    -1,   165,   126,   166,    -1,
     761     201,    -1,    38,   201,    -1,   295,    -1,   162,   127,    -1,
     762     162,    -1,   167,   162,    -1,   161,   124,    -1,    39,   101,
     763     160,   102,   162,    -1,    39,   101,   160,   102,   162,    40,
     764     162,    -1,    41,   101,   160,   102,   174,    -1,    41,   101,
     765     160,   102,   106,   126,   194,   175,   107,    -1,    51,   101,
     766     160,   102,   174,    -1,    51,   101,   160,   102,   106,   126,
     767     194,   177,   107,    -1,   154,    -1,   154,    89,   154,    -1,
     768     297,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
     769     109,    -1,    43,   109,    -1,   172,    -1,   173,   172,    -1,
     770     173,   162,    -1,    -1,   176,    -1,   173,   167,    -1,   176,
     771     173,   167,    -1,    -1,   178,    -1,   173,   180,    -1,   173,
     772     167,   179,    -1,   178,   173,   180,    -1,   178,   173,   167,
     773     179,    -1,    -1,   180,    -1,    52,    -1,    52,   124,    -1,
     774      45,   101,   160,   102,   162,    -1,    44,   162,    45,   101,
     775     160,   102,   124,    -1,    46,   101,   126,   182,   102,   162,
     776      -1,   161,   127,   124,   161,   124,   161,    -1,   201,   161,
     777     124,   161,    -1,    49,   131,   124,    -1,    49,   111,   160,
     778     124,    -1,    48,   124,    -1,    48,   131,   124,    -1,    47,
     779     124,    -1,    47,   131,   124,    -1,    50,   161,   124,    -1,
     780      56,   155,   124,    -1,    56,   124,    -1,    53,   164,   185,
     781      -1,    53,   164,   187,    -1,    53,   164,   185,   187,    -1,
     782     186,    -1,    54,   101,    89,   102,   164,    -1,   186,    54,
     783     101,    89,   102,   164,    -1,    54,   101,   126,   126,   188,
     784     127,   102,   164,   127,    -1,   186,    54,   101,   126,   126,
     785     188,   127,   102,   164,   127,    -1,    55,   164,    -1,   214,
     786      -1,   214,   296,    -1,   214,   344,    -1,   353,   131,    -1,
     787     353,    -1,    57,   215,   101,   154,   102,   124,    -1,    57,
     788     215,   101,   154,   109,   190,   102,   124,    -1,    57,   215,
     789     101,   154,   109,   190,   109,   190,   102,   124,    -1,    57,
     790     215,   101,   154,   109,   190,   109,   190,   109,   193,   102,
     791     124,    -1,    -1,   191,    -1,   192,    -1,   191,   108,   192,
     792      -1,    75,   101,   154,   102,    -1,    75,    -1,   193,   108,
     793      75,    -1,   127,    -1,   195,    -1,   201,    -1,   195,   126,
     794     201,    -1,   127,    -1,   197,    -1,   211,    -1,   197,   126,
     795     211,    -1,    -1,   199,    -1,    28,   200,   124,    -1,   199,
     796      28,   200,   124,    -1,   261,    -1,   200,   108,   261,    -1,
     797     202,    -1,   211,    -1,   203,   127,   124,    -1,   208,   127,
     798     124,    -1,   205,   127,   124,    -1,   280,   127,   124,    -1,
     799     283,   127,   124,    -1,   204,   264,    -1,   220,   204,   264,
     800      -1,   203,   127,   108,   126,   259,   264,    -1,   354,   259,
     801     298,    -1,   357,   259,   298,    -1,   216,   357,   259,   298,
     802      -1,   206,    -1,   216,   206,    -1,   220,   206,    -1,   220,
     803     216,   206,    -1,   205,   127,   108,   126,   259,    -1,   103,
     804     104,   259,   101,   126,   247,   127,   102,    -1,   357,   259,
     805     101,   126,   247,   127,   102,    -1,   207,   259,   101,   126,
     806     247,   127,   102,    -1,   103,   126,   249,   127,   104,    -1,
     807     103,   126,   249,   127,   108,   126,   250,   127,   104,    -1,
     808       3,   204,    -1,     3,   206,    -1,   208,   127,   108,   126,
     809     131,    -1,     3,   214,   296,    -1,   209,   127,   108,   126,
     810     296,    -1,   216,     3,   214,   296,    -1,   214,     3,   296,
     811      -1,   214,     3,   216,   296,    -1,     3,   131,   123,   155,
     812      -1,   210,   127,   108,   126,   131,   123,   155,    -1,   212,
     813     127,   124,    -1,   209,   127,   124,    -1,   210,   127,   124,
     814      -1,   229,   127,   124,    -1,   213,   296,   298,   264,    -1,
     815     212,   108,   299,   296,   298,   264,    -1,   225,    -1,   229,
     816      -1,   231,    -1,   270,    -1,   226,    -1,   230,    -1,   232,
     817      -1,   271,    -1,    -1,   216,    -1,   217,    -1,   216,   217,
     818      -1,   218,    -1,   301,    -1,    10,    -1,    12,    -1,    11,
     819      -1,    14,    -1,    60,    -1,    -1,    13,   101,   219,   273,
     820     102,    -1,   221,    -1,   216,   221,    -1,   220,   216,   221,
     821      -1,   222,    -1,   221,   222,    -1,   223,    -1,     5,    -1,
     822       7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,
     823      62,    -1,    64,    -1,    16,    -1,    21,    -1,    20,    -1,
     824      18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,
     825      15,    -1,    24,    -1,    25,    -1,    26,    -1,   226,    -1,
     826     220,   226,    -1,   225,   222,    -1,   225,   222,   216,    -1,
     827     225,   222,   226,    -1,   227,    -1,   215,   228,   215,    -1,
     828     224,    -1,   216,   224,    -1,   227,   217,    -1,   227,   224,
     829      -1,    27,   101,   263,   102,    -1,    27,   101,   160,   102,
     830      -1,    71,   101,   263,   102,    -1,    71,   101,   160,   102,
     831      -1,   230,    -1,   220,   230,    -1,   229,   222,    -1,   229,
     832     222,   216,    -1,   233,    -1,   216,   233,    -1,   230,   217,
     833      -1,   232,    -1,   220,   232,    -1,   231,   222,    -1,   231,
     834     222,   216,    -1,    67,    -1,   216,    67,    -1,   232,   217,
     835      -1,   234,    -1,   244,    -1,   235,   106,   236,   107,    -1,
     836     235,   261,    -1,   235,   261,   106,   236,   107,    -1,   235,
     837     101,   279,   102,   106,   236,   107,    -1,   235,   272,    -1,
     838      30,   299,    -1,    31,   299,    -1,   237,    -1,   236,   237,
     839      -1,   238,   124,    -1,    38,   238,   124,    -1,   239,   124,
     840      -1,    38,   239,   124,    -1,   353,    -1,   353,   261,    -1,
     841     238,   108,   261,    -1,   238,   108,    -1,   214,   240,    -1,
     842     239,   108,   299,   240,    -1,    -1,   242,    -1,   305,   241,
     843      -1,   318,   241,    -1,   344,    -1,    -1,   242,    -1,   109,
     844     154,    -1,    29,   299,    -1,   243,   106,   245,   359,   107,
     845      -1,   243,   261,   106,   245,   359,   107,    -1,   243,   261,
     846      -1,   261,   246,    -1,   245,   108,   261,   246,    -1,    -1,
     847     123,   154,    -1,    -1,   248,    -1,   250,    -1,   249,    -1,
     848     249,   127,   108,   126,   250,    -1,   250,   127,   108,   126,
     849      89,    -1,   249,   127,   108,   126,    89,    -1,   254,    -1,
     850     250,   127,   108,   126,   254,    -1,   249,   127,   108,   126,
     851     254,    -1,   249,   127,   108,   126,   250,   127,   108,   126,
     852     254,    -1,   255,    -1,   250,   127,   108,   126,   255,    -1,
     853      -1,   252,    -1,   253,    -1,   253,   127,   108,   126,    89,
     854      -1,   257,    -1,   256,    -1,   253,   127,   108,   126,   257,
     855      -1,   253,   127,   108,   126,   256,    -1,   256,    -1,   349,
     856     259,   360,    -1,   357,   259,   360,    -1,   216,   357,   259,
     857     360,    -1,   206,    -1,   257,    -1,   349,    -1,   357,    -1,
     858     216,   357,    -1,   358,    -1,   213,   323,   360,    -1,   213,
     859     327,   360,    -1,   213,    -1,   213,   338,    -1,   131,    -1,
     860     258,   108,   131,    -1,   129,    -1,    67,    -1,    68,    -1,
     861     130,    -1,    67,    -1,    68,    -1,   131,    -1,    67,    -1,
     862      68,    -1,   353,    -1,   214,    -1,   214,   344,    -1,   353,
     863      -1,   358,    -1,   214,    -1,   214,   332,    -1,    -1,   123,
     864     265,    -1,   155,    -1,   106,   266,   359,   107,    -1,   265,
     865      -1,   267,   265,    -1,   266,   108,   265,    -1,   266,   108,
     866     267,   265,    -1,   268,   109,    -1,   261,   109,    -1,   269,
     867      -1,   268,   269,    -1,   105,   261,    -1,   103,   126,   155,
     868     127,   104,    -1,   103,   126,   297,   127,   104,    -1,   103,
     869     126,   154,    89,   154,   127,   104,    -1,   105,   103,   126,
     870     138,   127,   104,    -1,   271,    -1,   220,   271,    -1,   270,
     871     222,    -1,   270,   222,   216,    -1,   272,    -1,   216,   272,
     872      -1,   271,   217,    -1,    68,   101,   279,   102,    -1,   274,
     873     360,    -1,   273,   108,   274,   360,    -1,    -1,   276,   261,
     874     275,   277,    -1,   214,   323,    -1,    32,    -1,    34,    -1,
     875      33,    -1,    -1,   277,   278,    -1,   121,   261,   101,   279,
     876     102,    -1,   121,   106,   126,   285,   107,    -1,   121,   101,
     877     126,   273,   127,   102,   106,   126,   285,   107,   101,   279,
     878     102,    -1,   263,    -1,   155,    -1,   279,   108,   263,    -1,
     879     279,   108,   155,    -1,    32,   281,    -1,   221,    32,   281,
     880      -1,   280,   108,   281,    -1,   282,   277,    -1,   282,   277,
     881     123,   263,    -1,   261,    -1,   260,   101,   126,   273,   127,
     882     102,    -1,    35,   261,   101,   126,   273,   127,   102,   106,
     883     107,    -1,    -1,    35,   261,   101,   126,   273,   127,   102,
     884     106,   284,   285,   107,    -1,   286,    -1,   285,   126,   286,
     885      -1,   287,   127,   124,    -1,   288,   127,   124,    -1,   204,
     886      -1,   206,    -1,   287,   127,   108,   126,   259,    -1,   214,
     887     296,    -1,   288,   127,   108,   126,   296,    -1,    -1,   290,
     888      -1,   292,    -1,   290,   126,   292,    -1,    -1,   290,    -1,
     889     201,    -1,   294,    -1,   189,    -1,    -1,     5,    75,   293,
     890     106,   291,   107,    -1,    38,   292,    -1,   295,    -1,   310,
     891     164,    -1,   314,   126,   196,   164,    -1,   205,   164,    -1,
     892     213,   310,   164,    -1,   216,   310,   164,    -1,   220,   310,
     893     164,    -1,   220,   216,   310,   164,    -1,   213,   314,   126,
     894     196,   164,    -1,   216,   314,   126,   196,   164,    -1,   220,
     895     314,   126,   196,   164,    -1,   220,   216,   314,   126,   196,
     896     164,    -1,   305,    -1,   310,    -1,   318,    -1,   154,   115,
     897     154,    -1,    -1,    57,   101,   133,   102,   299,    -1,    -1,
     898     300,    -1,   301,    -1,   300,   301,    -1,    37,   101,   101,
     899     302,   102,   102,    -1,   303,    -1,   302,   108,   303,    -1,
     900      -1,   304,    -1,   304,   101,   161,   102,    -1,   259,    -1,
     901     223,    -1,   224,    -1,   217,    -1,   306,   299,    -1,   307,
     902      -1,   308,   299,    -1,   309,   299,    -1,   129,    -1,   101,
     903     306,   102,    -1,   111,   305,    -1,   111,   216,   305,    -1,
     904     101,   307,   102,    -1,   306,   336,    -1,   101,   307,   102,
     905     336,    -1,   101,   308,   102,   337,    -1,   101,   308,   102,
     906      -1,   101,   307,   102,   101,   126,   251,   127,   102,    -1,
     907     101,   309,   102,    -1,   311,   299,    -1,   312,    -1,   313,
     908     299,    -1,   306,   101,   126,   251,   127,   102,    -1,   101,
     909     312,   102,   101,   126,   251,   127,   102,    -1,   101,   311,
     910     102,    -1,   111,   310,    -1,   111,   216,   310,    -1,   101,
     911     312,   102,    -1,   101,   312,   102,   336,    -1,   101,   313,
     912     102,   337,    -1,   101,   313,   102,    -1,   315,    -1,   316,
     913      -1,   317,    -1,   306,   101,   258,   102,    -1,   101,   316,
     914     102,   101,   258,   102,    -1,   101,   315,   102,    -1,   111,
     915     314,    -1,   111,   216,   314,    -1,   101,   316,   102,    -1,
     916     101,   316,   102,   336,    -1,   101,   317,   102,   337,    -1,
     917     101,   317,   102,    -1,   319,   299,    -1,   320,    -1,   321,
     918     299,    -1,   322,   299,    -1,   328,    -1,   101,   319,   102,
     919      -1,   111,   318,    -1,   111,   216,   318,    -1,   101,   320,
     920     102,    -1,   319,   336,    -1,   101,   320,   102,   336,    -1,
     921     101,   321,   102,   337,    -1,   101,   321,   102,    -1,   319,
     922     101,   126,   251,   127,   102,    -1,   101,   320,   102,   101,
     923     126,   251,   127,   102,    -1,   101,   322,   102,    -1,   306,
     924     299,    -1,   324,    -1,   325,   299,    -1,   326,   299,    -1,
     925     111,   323,    -1,   111,   216,   323,    -1,   101,   324,   102,
     926      -1,   306,   342,    -1,   101,   324,   102,   336,    -1,   101,
     927     325,   102,   337,    -1,   101,   325,   102,    -1,   306,   101,
     928     126,   251,   127,   102,    -1,   101,   324,   102,   101,   126,
     929     251,   127,   102,    -1,   101,   326,   102,    -1,   328,   299,
     930      -1,   329,    -1,   330,   299,    -1,   331,   299,    -1,    67,
     931      -1,    68,    -1,   111,   327,    -1,   111,   216,   327,    -1,
     932     101,   329,   102,    -1,   328,   342,    -1,   101,   329,   102,
     933     342,    -1,   328,   101,   126,   251,   127,   102,    -1,   101,
     934     329,   102,   101,   126,   251,   127,   102,    -1,   333,    -1,
     935     334,   299,    -1,   335,   299,    -1,   111,    -1,   111,   216,
     936      -1,   111,   332,    -1,   111,   216,   332,    -1,   101,   333,
     937     102,    -1,   336,    -1,   101,   333,   102,   336,    -1,   101,
     938     334,   102,   337,    -1,   101,   334,   102,    -1,   101,   126,
     939     251,   127,   102,    -1,   101,   333,   102,   101,   126,   251,
     940     127,   102,    -1,   101,   335,   102,    -1,   103,   104,    -1,
     941     103,   104,   337,    -1,   337,    -1,   103,   126,   155,   127,
     942     104,    -1,   103,   126,   111,   127,   104,    -1,   337,   103,
     943     126,   155,   127,   104,    -1,   337,   103,   126,   111,   127,
     944     104,    -1,   339,    -1,   340,   299,    -1,   341,   299,    -1,
     945     111,    -1,   111,   216,    -1,   111,   338,    -1,   111,   216,
     946     338,    -1,   101,   339,   102,    -1,   342,    -1,   101,   339,
     947     102,   342,    -1,   101,   340,   102,   337,    -1,   101,   340,
     948     102,    -1,   101,   126,   251,   127,   102,    -1,   101,   339,
     949     102,   101,   126,   251,   127,   102,    -1,   101,   341,   102,
     950      -1,   343,    -1,   343,   337,    -1,   337,    -1,   103,   104,
    970951      -1,   103,   126,   216,   111,   127,   104,    -1,   103,   126,
    971      216,   155,   127,   104,    -1,   103,   126,   220,   155,   127,
    972      104,    -1,   103,   126,   220,   216,   155,   127,   104,    -1,
    973      356,    -1,   216,   356,    -1,   353,    -1,   354,    -1,   355,
    974       -1,   111,   214,    -1,   216,   111,   214,    -1,   111,   357,
    975       -1,   216,   111,   357,    -1,   111,   352,    -1,   216,   111,
    976      352,    -1,   103,   126,   127,   104,   214,    -1,   103,   126,
    977      127,   104,   336,   214,    -1,   336,   214,    -1,   103,   126,
    978      127,   104,   354,    -1,   103,   126,   127,   104,   336,   354,
    979       -1,   336,   354,    -1,   103,   126,   250,   127,   104,    -1,
    980      103,   126,   127,   104,   101,   247,   102,    -1,   356,   101,
    981      126,   247,   127,   102,    -1,   207,   101,   126,   247,   127,
    982      102,    -1,    -1,   108,    -1,    -1,   123,   155,    -1
     952     216,   127,   104,    -1,   103,   126,   216,   155,   127,   104,
     953      -1,   103,   126,     7,   215,   155,   127,   104,    -1,   103,
     954     126,   216,     7,   155,   127,   104,    -1,   345,    -1,   346,
     955     299,    -1,   347,   299,    -1,   111,    -1,   111,   216,    -1,
     956     111,   344,    -1,   111,   216,   344,    -1,   101,   345,   102,
     957      -1,   336,    -1,   101,   345,   102,   336,    -1,   101,   346,
     958     102,   337,    -1,   101,   346,   102,    -1,   101,   345,   102,
     959     101,   126,   251,   127,   102,    -1,   101,   347,   102,    -1,
     960     349,    -1,   357,    -1,   216,   357,    -1,   350,    -1,   351,
     961      -1,   111,   214,    -1,   216,   111,   214,    -1,   111,   358,
     962      -1,   216,   111,   358,    -1,   111,   348,    -1,   216,   111,
     963     348,    -1,   103,   104,   214,    -1,   352,   214,    -1,   103,
     964     104,   337,   214,    -1,   352,   337,   214,    -1,   337,   214,
     965      -1,   103,   104,   350,    -1,   352,   350,    -1,   103,   104,
     966     337,   350,    -1,   352,   337,   350,    -1,   337,   350,    -1,
     967     103,   126,   216,   111,   127,   104,    -1,   103,   126,   216,
     968     155,   127,   104,    -1,   103,   126,   220,   155,   127,   104,
     969      -1,   103,   126,   220,   216,   155,   127,   104,    -1,   357,
     970      -1,   216,   357,    -1,   354,    -1,   355,    -1,   356,    -1,
     971     111,   214,    -1,   216,   111,   214,    -1,   111,   358,    -1,
     972     216,   111,   358,    -1,   111,   353,    -1,   216,   111,   353,
     973      -1,   103,   104,   214,    -1,   103,   104,   337,   214,    -1,
     974     337,   214,    -1,   103,   104,   355,    -1,   103,   104,   337,
     975     355,    -1,   337,   355,    -1,   103,   126,   250,   127,   104,
     976      -1,   103,   104,   101,   247,   102,    -1,   357,   101,   126,
     977     247,   127,   102,    -1,   207,   101,   126,   247,   127,   102,
     978      -1,    -1,   108,    -1,    -1,   123,   155,    -1
    983979};
    984980
     
    10111007     927,   931,   932,   947,   948,   949,   950,   951,   955,   960,
    10121008     967,   977,   982,   987,   995,  1000,  1005,  1010,  1015,  1023,
    1013     1028,  1040,  1045,  1052,  1054,  1061,  1066,  1071,  1082,  1087,
    1014     1092,  1097,  1102,  1111,  1116,  1124,  1125,  1126,  1127,  1133,
    1015     1138,  1146,  1147,  1148,  1149,  1153,  1154,  1155,  1156,  1161,
    1016     1162,  1171,  1172,  1177,  1178,  1183,  1185,  1187,  1189,  1191,
    1017     1194,  1193,  1205,  1206,  1208,  1218,  1219,  1224,  1228,  1230,
    1018     1232,  1234,  1236,  1238,  1240,  1242,  1247,  1249,  1251,  1253,
    1019     1255,  1257,  1259,  1261,  1263,  1265,  1267,  1269,  1275,  1276,
    1020     1278,  1280,  1282,  1287,  1288,  1294,  1295,  1297,  1299,  1304,
    1021     1306,  1308,  1310,  1315,  1316,  1318,  1320,  1325,  1326,  1328,
    1022     1333,  1334,  1336,  1338,  1343,  1345,  1347,  1352,  1353,  1357,
    1023     1359,  1361,  1371,  1373,  1380,  1382,  1387,  1389,  1394,  1395,
    1024     1397,  1398,  1403,  1404,  1406,  1408,  1413,  1415,  1421,  1422,
    1025     1424,  1427,  1430,  1435,  1436,  1441,  1446,  1450,  1452,  1454,
    1026     1459,  1461,  1467,  1468,  1476,  1477,  1481,  1482,  1483,  1485,
    1027     1487,  1494,  1495,  1497,  1499,  1504,  1505,  1511,  1512,  1516,
    1028     1517,  1522,  1523,  1524,  1526,  1534,  1535,  1537,  1540,  1542,
    1029     1546,  1547,  1548,  1550,  1552,  1556,  1561,  1569,  1570,  1579,
    1030     1581,  1586,  1587,  1588,  1592,  1593,  1594,  1598,  1599,  1600,
    1031     1604,  1605,  1606,  1611,  1612,  1613,  1614,  1620,  1621,  1625,
    1032     1626,  1630,  1631,  1632,  1633,  1648,  1649,  1654,  1655,  1660,
    1033     1662,  1665,  1667,  1669,  1692,  1693,  1695,  1697,  1702,  1704,
    1034     1706,  1711,  1712,  1718,  1717,  1721,  1725,  1727,  1729,  1735,
    1035     1736,  1741,  1746,  1748,  1753,  1755,  1756,  1758,  1763,  1765,
    1036     1767,  1772,  1774,  1779,  1784,  1792,  1798,  1797,  1811,  1812,
    1037     1817,  1818,  1822,  1827,  1832,  1840,  1845,  1856,  1857,  1868,
    1038     1869,  1875,  1876,  1880,  1881,  1882,  1885,  1884,  1895,  1900,
     1009    1045,  1050,  1057,  1059,  1066,  1071,  1076,  1087,  1092,  1097,
     1010    1102,  1107,  1116,  1121,  1129,  1130,  1131,  1132,  1138,  1143,
     1011    1151,  1152,  1153,  1154,  1158,  1159,  1160,  1161,  1166,  1167,
     1012    1176,  1177,  1182,  1183,  1188,  1190,  1192,  1194,  1196,  1199,
     1013    1198,  1210,  1211,  1213,  1223,  1224,  1229,  1233,  1235,  1237,
     1014    1239,  1241,  1243,  1245,  1247,  1252,  1254,  1256,  1258,  1260,
     1015    1262,  1264,  1266,  1268,  1270,  1272,  1274,  1280,  1281,  1283,
     1016    1285,  1287,  1292,  1293,  1299,  1300,  1302,  1304,  1309,  1311,
     1017    1313,  1315,  1320,  1321,  1323,  1325,  1330,  1331,  1333,  1338,
     1018    1339,  1341,  1343,  1348,  1350,  1352,  1357,  1358,  1362,  1364,
     1019    1366,  1368,  1370,  1375,  1377,  1382,  1384,  1389,  1390,  1392,
     1020    1393,  1398,  1399,  1401,  1403,  1408,  1410,  1416,  1417,  1419,
     1021    1422,  1425,  1430,  1431,  1436,  1441,  1445,  1447,  1449,  1454,
     1022    1456,  1462,  1463,  1471,  1472,  1476,  1477,  1478,  1480,  1482,
     1023    1489,  1490,  1492,  1494,  1499,  1500,  1506,  1507,  1511,  1512,
     1024    1517,  1518,  1519,  1521,  1529,  1530,  1532,  1535,  1537,  1541,
     1025    1542,  1543,  1545,  1547,  1551,  1556,  1564,  1565,  1574,  1576,
     1026    1581,  1582,  1583,  1587,  1588,  1589,  1593,  1594,  1595,  1599,
     1027    1600,  1601,  1606,  1607,  1608,  1609,  1615,  1616,  1621,  1622,
     1028    1626,  1627,  1628,  1629,  1644,  1645,  1650,  1651,  1657,  1659,
     1029    1662,  1664,  1666,  1689,  1690,  1692,  1694,  1699,  1700,  1702,
     1030    1707,  1712,  1713,  1719,  1718,  1722,  1726,  1728,  1730,  1736,
     1031    1737,  1742,  1747,  1749,  1754,  1756,  1757,  1759,  1764,  1766,
     1032    1768,  1773,  1775,  1780,  1785,  1793,  1799,  1798,  1812,  1813,
     1033    1818,  1819,  1823,  1828,  1833,  1841,  1846,  1857,  1858,  1869,
     1034    1870,  1876,  1877,  1881,  1882,  1883,  1886,  1885,  1896,  1901,
    10391035    1906,  1912,  1921,  1927,  1933,  1939,  1945,  1953,  1959,  1967,
    10401036    1973,  1982,  1983,  1984,  1988,  1992,  1994,  1997,  1999,  2003,
     
    10441040    2117,  2119,  2124,  2126,  2128,  2133,  2135,  2137,  2146,  2147,
    10451041    2148,  2152,  2154,  2156,  2161,  2163,  2165,  2170,  2172,  2174,
    1046     2189,  2190,  2191,  2192,  2196,  2201,  2206,  2208,  2210,  2215,
    1047     2217,  2219,  2221,  2226,  2228,  2230,  2240,  2241,  2242,  2243,
    1048     2247,  2249,  2251,  2256,  2258,  2260,  2262,  2267,  2269,  2271,
    1049     2302,  2303,  2304,  2305,  2309,  2317,  2319,  2321,  2326,  2328,
    1050     2333,  2335,  2349,  2350,  2351,  2355,  2357,  2359,  2361,  2363,
    1051     2368,  2369,  2371,  2373,  2378,  2380,  2382,  2388,  2390,  2392,
    1052     2396,  2398,  2400,  2402,  2416,  2417,  2418,  2422,  2424,  2426,
    1053     2428,  2430,  2435,  2436,  2438,  2440,  2445,  2447,  2449,  2455,
    1054     2456,  2458,  2467,  2470,  2472,  2475,  2477,  2479,  2492,  2493,
    1055     2494,  2498,  2500,  2502,  2504,  2506,  2511,  2512,  2514,  2516,
    1056     2521,  2523,  2531,  2532,  2533,  2538,  2539,  2543,  2545,  2547,
    1057     2549,  2551,  2553,  2560,  2562,  2564,  2566,  2568,  2570,  2572,
    1058     2574,  2576,  2578,  2583,  2585,  2587,  2592,  2618,  2619,  2621,
    1059     2625,  2626,  2630,  2632,  2634,  2636,  2638,  2640,  2647,  2649,
    1060     2651,  2653,  2655,  2657,  2662,  2667,  2669,  2671,  2689,  2691,
    1061     2696,  2697
     1042    2189,  2190,  2191,  2192,  2196,  2197,  2202,  2204,  2206,  2211,
     1043    2213,  2215,  2217,  2222,  2224,  2226,  2236,  2237,  2238,  2239,
     1044    2243,  2245,  2247,  2252,  2254,  2256,  2258,  2263,  2265,  2267,
     1045    2298,  2299,  2300,  2301,  2305,  2310,  2318,  2320,  2322,  2327,
     1046    2329,  2334,  2336,  2350,  2351,  2352,  2356,  2358,  2360,  2362,
     1047    2364,  2369,  2370,  2372,  2374,  2379,  2381,  2383,  2389,  2391,
     1048    2393,  2397,  2399,  2401,  2403,  2417,  2418,  2419,  2423,  2425,
     1049    2427,  2429,  2431,  2436,  2437,  2439,  2441,  2446,  2448,  2450,
     1050    2456,  2457,  2459,  2468,  2471,  2473,  2476,  2478,  2480,  2493,
     1051    2494,  2495,  2499,  2501,  2503,  2505,  2507,  2512,  2513,  2515,
     1052    2517,  2522,  2524,  2532,  2533,  2534,  2539,  2540,  2544,  2546,
     1053    2548,  2550,  2552,  2554,  2561,  2563,  2565,  2567,  2569,  2571,
     1054    2573,  2575,  2577,  2579,  2584,  2586,  2588,  2593,  2619,  2620,
     1055    2622,  2626,  2627,  2631,  2633,  2635,  2637,  2639,  2641,  2648,
     1056    2650,  2652,  2654,  2656,  2658,  2663,  2668,  2670,  2672,  2690,
     1057    2692,  2697,  2698
    10621058};
    10631059#endif
     
    11331129  "new_abstract_parameter_declaration", "parameter_declaration",
    11341130  "abstract_parameter_declaration", "identifier_list",
    1135   "identifier_or_typedef_name", "no_01_identifier_or_typedef_name",
    1136   "no_attr_identifier_or_typedef_name", "type_name_no_function",
    1137   "type_name", "initializer_opt", "initializer", "initializer_list",
    1138   "designation", "designator_list", "designator",
    1139   "typegen_declaration_specifier", "typegen_type_specifier",
    1140   "type_parameter_list", "type_parameter", "$@2", "type_class",
    1141   "assertion_list_opt", "assertion", "type_name_list",
    1142   "type_declaring_list", "type_declarator", "type_declarator_name",
    1143   "context_specifier", "$@3", "context_declaration_list",
    1144   "context_declaration", "new_context_declaring_list",
    1145   "context_declaring_list", "translation_unit", "external_definition_list",
     1131  "identifier_or_type_name", "no_01_identifier_or_type_name",
     1132  "no_attr_identifier_or_type_name", "type_name_no_function", "type_name",
     1133  "initializer_opt", "initializer", "initializer_list", "designation",
     1134  "designator_list", "designator", "typegen_declaration_specifier",
     1135  "typegen_type_specifier", "typegen_name", "type_parameter_list",
     1136  "type_parameter", "$@2", "type_class", "assertion_list_opt", "assertion",
     1137  "type_name_list", "type_declaring_list", "type_declarator",
     1138  "type_declarator_name", "context_specifier", "$@3",
     1139  "context_declaration_list", "context_declaration",
     1140  "new_context_declaring_list", "context_declaring_list",
     1141  "translation_unit", "external_definition_list",
    11461142  "external_definition_list_opt", "external_definition", "$@4",
    11471143  "external_function_definition", "function_definition", "declarator",
     
    11521148  "function_no_ptr", "function_ptr", "function_array",
    11531149  "old_function_declarator", "old_function_no_ptr", "old_function_ptr",
    1154   "old_function_array", "typedef_redeclarator", "paren_typedef",
    1155   "typedef_ptr", "typedef_array", "typedef_function",
    1156   "identifier_parameter_declarator", "identifier_parameter_ptr",
    1157   "identifier_parameter_array", "identifier_parameter_function",
    1158   "typedef_parameter_redeclarator", "typedef", "typedef_parameter_ptr",
    1159   "typedef_parameter_array", "typedef_parameter_function",
    1160   "abstract_declarator", "abstract_ptr", "abstract_array",
    1161   "abstract_function", "array_dimension", "multi_array_dimension",
    1162   "abstract_parameter_declarator", "abstract_parameter_ptr",
    1163   "abstract_parameter_array", "abstract_parameter_function",
    1164   "array_parameter_dimension", "array_parameter_1st_dimension",
    1165   "variable_abstract_declarator", "variable_abstract_ptr",
    1166   "variable_abstract_array", "variable_abstract_function",
     1150  "old_function_array", "type_redeclarator", "paren_type", "type_ptr",
     1151  "type_array", "type_function", "identifier_parameter_declarator",
     1152  "identifier_parameter_ptr", "identifier_parameter_array",
     1153  "identifier_parameter_function", "type_parameter_redeclarator",
     1154  "typedef", "type_parameter_ptr", "type_parameter_array",
     1155  "type_parameter_function", "abstract_declarator", "abstract_ptr",
     1156  "abstract_array", "abstract_function", "array_dimension",
     1157  "multi_array_dimension", "abstract_parameter_declarator",
     1158  "abstract_parameter_ptr", "abstract_parameter_array",
     1159  "abstract_parameter_function", "array_parameter_dimension",
     1160  "array_parameter_1st_dimension", "variable_abstract_declarator",
     1161  "variable_abstract_ptr", "variable_abstract_array",
     1162  "variable_abstract_function",
    11671163  "new_identifier_parameter_declarator_tuple",
    11681164  "new_identifier_parameter_declarator_no_tuple",
     
    12241220     200,   201,   201,   202,   202,   202,   202,   202,   203,   203,
    12251221     203,   204,   204,   204,   205,   205,   205,   205,   205,   206,
    1226      206,   206,   206,   207,   207,   208,   208,   208,   209,   209,
    1227      209,   209,   209,   210,   210,   211,   211,   211,   211,   212,
    1228      212,   213,   213,   213,   213,   214,   214,   214,   214,   215,
    1229      215,   216,   216,   217,   217,   218,   218,   218,   218,   218,
    1230      219,   218,   220,   220,   220,   221,   221,   222,   223,   223,
    1231      223,   223,   223,   223,   223,   223,   224,   224,   224,   224,
    1232      224,   224,   224,   224,   224,   224,   224,   224,   225,   225,
    1233      225,   225,   225,   226,   226,   227,   227,   227,   227,   228,
    1234      228,   228,   228,   229,   229,   229,   229,   230,   230,   230,
    1235      231,   231,   231,   231,   232,   232,   232,   233,   233,   234,
    1236      234,   234,   234,   234,   235,   235,   236,   236,   237,   237,
    1237      237,   237,   238,   238,   238,   238,   239,   239,   240,   240,
    1238      240,   240,   240,   241,   241,   242,   243,   244,   244,   244,
    1239      245,   245,   246,   246,   247,   247,   248,   248,   248,   248,
    1240      248,   249,   249,   249,   249,   250,   250,   251,   251,   252,
    1241      252,   253,   253,   253,   253,   254,   254,   254,   254,   254,
    1242      255,   255,   255,   255,   255,   256,   256,   257,   257,   258,
    1243      258,   259,   259,   259,   260,   260,   260,   261,   261,   261,
    1244      262,   262,   262,   263,   263,   263,   263,   264,   264,   265,
    1245      265,   266,   266,   266,   266,   267,   267,   268,   268,   269,
    1246      269,   269,   269,   269,   270,   270,   270,   270,   271,   271,
    1247      271,   272,   272,   274,   273,   273,   275,   275,   275,   276,
    1248      276,   277,   277,   277,   278,   278,   278,   278,   279,   279,
    1249      279,   280,   280,   281,   281,   282,   283,   282,   284,   284,
    1250      285,   285,   286,   286,   286,   287,   287,   288,   288,   289,
    1251      289,   290,   290,   291,   291,   291,   292,   291,   291,   293,
    1252      293,   293,   294,   294,   294,   294,   294,   294,   294,   294,
    1253      294,   295,   295,   295,   296,   297,   297,   298,   298,   299,
    1254      299,   300,   301,   301,   302,   302,   302,   303,   303,   303,
    1255      303,   304,   304,   304,   304,   305,   305,   306,   306,   306,
    1256      307,   307,   307,   307,   308,   308,   309,   309,   309,   310,
    1257      310,   310,   311,   311,   311,   312,   312,   312,   313,   313,
    1258      313,   314,   314,   314,   315,   315,   315,   316,   316,   316,
    1259      317,   317,   317,   317,   318,   318,   319,   319,   319,   320,
    1260      320,   320,   320,   321,   321,   321,   322,   322,   322,   322,
    1261      323,   323,   323,   324,   324,   324,   324,   325,   325,   325,
    1262      326,   326,   326,   326,   327,   328,   328,   328,   329,   329,
    1263      330,   330,   331,   331,   331,   332,   332,   332,   332,   332,
    1264      333,   333,   333,   333,   334,   334,   334,   335,   335,   335,
    1265      336,   336,   336,   336,   337,   337,   337,   338,   338,   338,
    1266      338,   338,   339,   339,   339,   339,   340,   340,   340,   341,
    1267      341,   341,   342,   342,   342,   342,   342,   342,   343,   343,
    1268      343,   344,   344,   344,   344,   344,   345,   345,   345,   345,
    1269      346,   346,   347,   347,   347,   348,   348,   349,   349,   349,
    1270      349,   349,   349,   350,   350,   350,   350,   350,   350,   350,
    1271      350,   350,   350,   351,   351,   351,   351,   352,   352,   352,
    1272      353,   353,   354,   354,   354,   354,   354,   354,   355,   355,
    1273      355,   355,   355,   355,   356,   357,   357,   357,   358,   358,
    1274      359,   359
     1222     206,   206,   207,   207,   208,   208,   208,   209,   209,   209,
     1223     209,   209,   210,   210,   211,   211,   211,   211,   212,   212,
     1224     213,   213,   213,   213,   214,   214,   214,   214,   215,   215,
     1225     216,   216,   217,   217,   218,   218,   218,   218,   218,   219,
     1226     218,   220,   220,   220,   221,   221,   222,   223,   223,   223,
     1227     223,   223,   223,   223,   223,   224,   224,   224,   224,   224,
     1228     224,   224,   224,   224,   224,   224,   224,   225,   225,   225,
     1229     225,   225,   226,   226,   227,   227,   227,   227,   228,   228,
     1230     228,   228,   229,   229,   229,   229,   230,   230,   230,   231,
     1231     231,   231,   231,   232,   232,   232,   233,   233,   234,   234,
     1232     234,   234,   234,   235,   235,   236,   236,   237,   237,   237,
     1233     237,   238,   238,   238,   238,   239,   239,   240,   240,   240,
     1234     240,   240,   241,   241,   242,   243,   244,   244,   244,   245,
     1235     245,   246,   246,   247,   247,   248,   248,   248,   248,   248,
     1236     249,   249,   249,   249,   250,   250,   251,   251,   252,   252,
     1237     253,   253,   253,   253,   254,   254,   254,   254,   254,   255,
     1238     255,   255,   255,   255,   256,   256,   257,   257,   258,   258,
     1239     259,   259,   259,   260,   260,   260,   261,   261,   261,   262,
     1240     262,   262,   263,   263,   263,   263,   264,   264,   265,   265,
     1241     266,   266,   266,   266,   267,   267,   268,   268,   269,   269,
     1242     269,   269,   269,   270,   270,   270,   270,   271,   271,   271,
     1243     272,   273,   273,   275,   274,   274,   276,   276,   276,   277,
     1244     277,   278,   278,   278,   279,   279,   279,   279,   280,   280,
     1245     280,   281,   281,   282,   282,   283,   284,   283,   285,   285,
     1246     286,   286,   287,   287,   287,   288,   288,   289,   289,   290,
     1247     290,   291,   291,   292,   292,   292,   293,   292,   292,   294,
     1248     294,   294,   295,   295,   295,   295,   295,   295,   295,   295,
     1249     295,   296,   296,   296,   297,   298,   298,   299,   299,   300,
     1250     300,   301,   302,   302,   303,   303,   303,   304,   304,   304,
     1251     304,   305,   305,   305,   305,   306,   306,   307,   307,   307,
     1252     308,   308,   308,   308,   309,   309,   310,   310,   310,   311,
     1253     311,   311,   312,   312,   312,   313,   313,   313,   314,   314,
     1254     314,   315,   315,   315,   316,   316,   316,   317,   317,   317,
     1255     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     1256     321,   321,   321,   322,   322,   322,   323,   323,   323,   323,
     1257     324,   324,   324,   325,   325,   325,   325,   326,   326,   326,
     1258     327,   327,   327,   327,   328,   328,   329,   329,   329,   330,
     1259     330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
     1260     333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
     1261     336,   337,   337,   337,   337,   338,   338,   338,   339,   339,
     1262     339,   339,   339,   340,   340,   340,   340,   341,   341,   341,
     1263     342,   342,   342,   343,   343,   343,   343,   343,   343,   344,
     1264     344,   344,   345,   345,   345,   345,   345,   346,   346,   346,
     1265     346,   347,   347,   348,   348,   348,   349,   349,   350,   350,
     1266     350,   350,   350,   350,   351,   351,   351,   351,   351,   351,
     1267     351,   351,   351,   351,   352,   352,   352,   352,   353,   353,
     1268     353,   354,   354,   355,   355,   355,   355,   355,   355,   356,
     1269     356,   356,   356,   356,   356,   357,   358,   358,   358,   359,
     1270     359,   360,   360
    12751271};
    12761272
     
    12881284       3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
    12891285       3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
    1290        5,     1,     1,     3,     3,     2,     0,     1,     4,     5,
     1286       5,     1,     1,     3,     3,     2,     0,     1,     2,     5,
    12911287       6,     7,     1,     3,     1,     1,     1,     1,     1,     1,
    12921288       1,     1,     1,     1,     1,     3,     0,     1,     1,     1,
     
    13021298       3,     1,     1,     1,     3,     0,     1,     3,     4,     1,
    13031299       3,     1,     1,     3,     3,     3,     3,     3,     2,     3,
    1304        6,     3,     3,     4,     1,     2,     2,     3,     5,    10,
    1305       10,     7,     7,     5,     9,     2,     2,     5,     3,     5,
    1306        4,     3,     4,     4,     7,     3,     3,     3,     3,     4,
    1307        6,     1,     1,     1,     1,     1,     1,     1,     1,     0,
    1308        1,     1,     2,     1,     1,     1,     1,     1,     1,     1,
    1309        0,     5,     1,     2,     3,     1,     2,     1,     1,     1,
     1300       6,     3,     3,     4,     1,     2,     2,     3,     5,     8,
     1301       7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
     1302       3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
     1303       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
     1304       1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
     1305       5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
    13101306       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1311        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
    1312        2,     3,     3,     1,     3,     1,     2,     2,     2,     4,
    1313        4,     4,     4,     1,     2,     2,     3,     1,     2,     2,
    1314        1,     2,     2,     3,     1,     2,     2,     1,     1,     4,
    1315        2,     5,     7,     5,     2,     2,     1,     2,     2,     3,
    1316        2,     3,     1,     2,     3,     2,     2,     4,     0,     1,
    1317        2,     2,     1,     0,     1,     2,     2,     5,     6,     2,
    1318        2,     4,     0,     2,     0,     1,     1,     1,     5,     5,
    1319        5,     1,     5,     5,     9,     1,     5,     0,     1,     1,
    1320        5,     1,     1,     5,     5,     1,     3,     3,     4,     1,
    1321        1,     1,     1,     2,     1,     3,     3,     1,     2,     1,
    1322        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1323        1,     1,     2,     1,     1,     1,     2,     0,     2,     1,
    1324        4,     1,     2,     3,     4,     2,     2,     1,     2,     2,
    1325        5,     5,     7,     6,     1,     2,     2,     3,     4,     5,
    1326        2,     2,     4,     0,     4,     2,     1,     1,     1,     0,
     1307       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
     1308       3,     3,     1,     3,     1,     2,     2,     2,     4,     4,
     1309       4,     4,     1,     2,     2,     3,     1,     2,     2,     1,
     1310       2,     2,     3,     1,     2,     2,     1,     1,     4,     2,
     1311       5,     7,     2,     2,     2,     1,     2,     2,     3,     2,
     1312       3,     1,     2,     3,     2,     2,     4,     0,     1,     2,
     1313       2,     1,     0,     1,     2,     2,     5,     6,     2,     2,
     1314       4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
     1315       1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
     1316       1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
     1317       1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
     1318       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1319       1,     2,     1,     1,     1,     2,     0,     2,     1,     4,
     1320       1,     2,     3,     4,     2,     2,     1,     2,     2,     5,
     1321       5,     7,     6,     1,     2,     2,     3,     1,     2,     2,
     1322       4,     2,     4,     0,     4,     2,     1,     1,     1,     0,
    13271323       2,     5,     5,    13,     1,     1,     3,     3,     2,     3,
    13281324       3,     2,     4,     1,     6,     9,     0,    11,     1,     3,
     
    13391335       4,     4,     3,     6,     8,     3,     2,     1,     2,     2,
    13401336       2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
    1341        2,     1,     2,     2,     1,     2,     3,     3,     2,     4,
    1342        6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
    1343        1,     4,     4,     3,     5,     8,     3,     4,     5,     1,
    1344        5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
    1345        3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
    1346        2,     1,     4,     6,     5,     6,     7,     7,     1,     2,
    1347        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1348        8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
    1349        3,     2,     3,     5,     2,     6,     3,     2,     5,     2,
    1350        6,     3,     2,     6,     6,     6,     7,     1,     2,     1,
    1351        1,     1,     2,     3,     2,     3,     2,     3,     5,     6,
    1352        2,     5,     6,     2,     5,     7,     6,     6,     0,     1,
    1353        0,     2
     1337       2,     1,     2,     2,     1,     1,     2,     3,     3,     2,
     1338       4,     6,     8,     1,     2,     2,     1,     2,     2,     3,
     1339       3,     1,     4,     4,     3,     5,     8,     3,     2,     3,
     1340       1,     5,     5,     6,     6,     1,     2,     2,     1,     2,
     1341       2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
     1342       1,     2,     1,     2,     6,     5,     6,     7,     7,     1,
     1343       2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
     1344       3,     8,     3,     1,     1,     2,     1,     1,     2,     3,
     1345       2,     3,     2,     3,     3,     2,     4,     3,     2,     3,
     1346       2,     4,     3,     2,     6,     6,     6,     7,     1,     2,
     1347       1,     1,     1,     2,     3,     2,     3,     2,     3,     3,
     1348       4,     2,     3,     4,     2,     5,     5,     6,     6,     0,
     1349       1,     0,     2
    13541350};
    13551351
     
    13591355static const yytype_uint16 yydefact[] =
    13601356{
    1361      279,   279,   300,   298,   301,   299,   302,   303,   285,   287,
    1362      286,     0,   288,   314,   306,   311,   309,   310,   308,   307,
    1363      312,   313,   315,   316,   317,   527,   527,   527,     0,     0,
    1364        0,   279,   279,   289,   304,   305,     7,   344,     0,     8,
    1365       13,    14,     0,     2,   279,   545,     9,   505,   503,   231,
    1366        3,   437,     3,   244,     0,     3,     3,     3,   232,     3,
    1367        0,     0,     0,   280,   281,   283,   279,   292,   295,   297,
    1368      325,   271,   318,   323,   272,   333,   273,   340,   337,   347,
    1369        0,     0,   348,   274,   454,     3,     3,     0,     2,   499,
    1370      504,   509,   284,     0,     0,   527,   557,   527,     2,   568,
    1371      569,   570,   279,     0,   710,   711,     0,    12,   279,     0,
    1372      255,   256,     0,   280,   275,   276,   277,   278,   506,   290,
    1373      376,   528,   529,   354,   355,    12,   428,   429,    11,   424,
    1374      427,     0,   483,   478,   469,   428,   429,     0,     0,   508,
    1375        0,   280,   279,     0,     0,     0,     0,     0,     0,     0,
    1376        0,   279,     2,     0,   712,   280,   562,   574,   716,   709,
    1377      707,   714,     0,     0,   238,     2,     0,   512,   422,   423,
    1378      421,     0,     0,     0,     0,   527,     0,   584,     0,     0,
    1379      525,   521,   527,   542,   527,   527,   522,     2,   523,   527,
    1380      581,   527,   527,     0,     0,     0,   279,   279,   298,   345,
    1381        0,     2,   279,   245,   282,   293,   326,   338,     0,     2,
    1382        0,   437,   246,   280,   319,   334,   341,   455,     0,     2,
    1383        0,   296,   320,   327,   328,     0,   335,   339,   342,   346,
    1384      279,   279,   350,     0,   379,   456,   460,     0,     0,     0,
    1385        1,   279,     2,   510,   556,   558,   279,     2,   720,   280,
    1386      723,   525,   525,   280,     0,     0,     0,   258,   527,   522,
    1387        2,   279,     0,     0,   279,   530,     2,   481,     2,   534,
    1388        0,     0,     0,     0,    17,    56,     4,     5,     6,    15,
    1389        0,     0,     0,   279,     2,     0,   279,    62,    63,    64,
    1390       65,    19,    18,    20,    23,    47,    66,     0,    69,    73,
    1391       76,    79,    84,    87,    89,    91,    93,    95,    97,   102,
    1392      475,   730,   435,   474,     0,   433,   434,     0,   546,   561,
    1393      564,   567,   573,   576,   579,     2,   279,     0,     3,   409,
    1394        0,   417,   280,   279,   292,   318,   272,   333,   340,     3,
    1395        3,   391,   395,   405,   410,   454,   279,   411,   685,   686,
    1396      279,   412,   414,   279,     2,   563,   575,   708,     2,     2,
    1397      233,     2,     0,     0,   439,   438,   137,     2,     2,   235,
    1398        2,     2,   234,     2,   266,     2,   267,     0,   265,     0,
    1399        0,     0,     0,     0,     0,     0,     0,     0,   547,   586,
    1400        0,   437,     2,   541,   550,   639,   543,   544,   513,   279,
    1401        2,   580,   589,   582,   583,     0,   261,   279,   279,   324,
    1402        0,   280,   279,   279,   713,   717,   715,   514,   279,   525,
    1403      239,   247,   294,     0,     2,   515,   279,   479,   321,   322,
    1404      268,   336,   343,     0,   279,     2,   368,   279,   356,     0,
    1405        0,   362,   707,   279,   728,   382,     0,   457,   480,   236,
    1406      237,   500,   279,   419,     0,   279,   221,     0,     2,   223,
    1407        0,   280,     0,   241,     2,   242,   263,     0,     0,     2,
    1408      279,   525,   279,   466,   468,   467,     0,     0,   730,     0,
    1409      279,     0,   279,   470,   279,   540,   538,   539,   537,     0,
    1410      532,   535,    66,   101,     0,   279,    54,    50,   279,    59,
    1411      279,   279,    48,    49,    61,     2,   124,     0,     0,   431,
    1412        0,   430,   279,    52,    53,    16,     0,    30,    31,    35,
    1413        2,     0,   114,   115,   116,   117,   118,   119,   120,   121,
    1414      122,   123,     0,     0,    51,     0,     0,     0,     0,     0,
     1357     278,   278,   299,   297,   300,   298,   301,   302,   284,   286,
     1358     285,     0,   287,   313,   305,   310,   308,   309,   307,   306,
     1359     311,   312,   314,   315,   316,   527,   527,   527,     0,     0,
     1360       0,   278,   278,   288,   303,   304,     7,   343,     0,     8,
     1361      13,    14,     0,     2,   278,   545,     9,   505,   503,   231,
     1362       3,   436,     3,   244,     0,     3,     3,     3,   232,     3,
     1363       0,     0,     0,   279,   280,   282,   278,   291,   294,   296,
     1364     324,   270,   317,   322,   271,   332,   272,   339,   336,   346,
     1365       0,     0,   347,   273,   453,   457,     3,     3,     0,     2,
     1366     499,   504,   509,   283,     0,     0,   527,   557,   527,     2,
     1367     568,   569,   570,   278,     0,   711,   712,     0,    12,   278,
     1368       0,   254,   255,     0,   279,   274,   275,   276,   277,   506,
     1369     289,   375,   528,   529,   353,   354,    12,   427,   428,    11,
     1370     423,   426,     0,   483,   478,   469,   427,   428,     0,     0,
     1371     508,     0,   279,   278,     0,     0,     0,     0,     0,     0,
     1372       0,     0,   278,   278,     2,     0,   713,   279,   562,   574,
     1373     717,   710,   708,   715,     0,     0,   238,     2,     0,   512,
     1374     421,   422,   420,     0,     0,     0,     0,   527,     0,   614,
     1375     615,     0,     0,   525,   521,   527,   542,   527,   527,   522,
     1376       2,   523,   527,   581,   527,   527,   584,     0,     0,     0,
     1377     278,   278,   297,   344,     2,   278,   245,   281,   292,   325,
     1378     337,   458,     0,     2,     0,   436,   246,   279,   318,   333,
     1379     340,   454,     0,     2,     0,   295,   319,   326,   327,     0,
     1380     334,   338,   341,   345,   428,   278,   278,   349,   352,     0,
     1381     378,   455,   459,     0,     0,     0,     1,   278,     2,   510,
     1382     556,   558,   278,     2,   721,   279,   724,   525,   525,   279,
     1383       0,     0,     0,   257,   527,   522,     2,   278,     0,     0,
     1384     278,   530,     2,   481,     2,   534,     0,     0,     0,     0,
     1385      17,    56,     4,     5,     6,    15,     0,     0,     0,   278,
     1386       2,     0,   278,    62,    63,    64,    65,    19,    18,    20,
     1387      23,    47,    66,     0,    69,    73,    76,    79,    84,    87,
     1388      89,    91,    93,    95,    97,   102,   475,   731,   434,   474,
     1389       0,   432,   433,     0,   546,   561,   564,   567,   573,   576,
     1390     579,   343,     0,     2,   719,     0,   278,   722,     2,   278,
     1391       3,   408,     0,   416,   279,   278,   291,   317,   271,   332,
     1392     339,     3,     3,   390,   394,   404,   409,   453,   278,   410,
     1393     686,   687,   278,   411,   413,   278,     2,   563,   575,   709,
     1394       2,     2,   233,     2,     0,     0,   438,   437,   137,     2,
     1395       2,   235,     2,     2,   234,     2,   265,     2,   266,     0,
     1396     264,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1397     547,   586,     0,   436,     2,   541,   550,   640,   543,   544,
     1398     513,   278,     2,   580,   589,   582,   583,     0,   260,   278,
     1399     278,   323,     0,   279,     0,   278,   714,   718,   716,   514,
     1400     278,   525,   239,   247,   293,     0,     2,   515,   278,   479,
     1401     320,   321,   267,   335,   342,     0,   278,     2,   367,   278,
     1402     355,     0,     0,   361,   708,   278,   729,   381,     0,   456,
     1403     480,   236,   237,   500,   278,   418,     0,   278,   221,     0,
     1404       2,   223,     0,   279,     0,   241,     2,   242,   262,     0,
     1405       0,     2,   278,   525,   278,   466,   468,   467,     0,     0,
     1406     731,     0,   278,     0,   278,   470,   278,   540,   538,   539,
     1407     537,     0,   532,   535,    66,   101,     0,   278,    54,    50,
     1408     278,    59,   278,   278,    48,    49,    61,     2,   124,     0,
     1409       0,   430,     0,   429,   108,   278,    52,    53,    16,     0,
     1410      30,    31,    35,     2,     0,   114,   115,   116,   117,   118,
     1411     119,   120,   121,   122,   123,     0,     0,    51,     0,     0,
    14151412       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1416        0,     0,     0,     0,     0,   105,     2,   625,   436,   622,
    1417      527,   527,   630,   458,   279,     2,   565,     2,   566,     0,
    1418      577,   578,   279,     2,   279,     0,   687,   280,   691,   682,
    1419      683,   689,   279,     0,   614,     2,     2,   647,   527,   730,
    1420      597,   527,   527,   730,   527,   611,   527,   527,   661,   418,
    1421      644,   527,   527,   652,   659,   279,   413,   280,     0,     0,
    1422      279,   697,   280,   702,   730,   694,   279,   699,   730,     0,
    1423      279,   279,     0,     3,    17,     2,     0,     0,   441,   728,
    1424        0,     0,   447,   225,     0,   279,     0,     0,     0,   525,
    1425      549,   553,   555,   585,   588,   592,   595,   548,   587,     0,
    1426      269,     3,     0,   279,   262,     0,     0,     0,     0,   260,
    1427        0,     2,     0,     0,   243,   516,   279,     0,     0,     0,
    1428        0,   279,     0,     0,   671,   366,   369,   373,   527,   373,
    1429      676,   372,   668,   527,   527,   349,   357,   365,   358,   527,
    1430      360,   363,   279,   729,     0,     0,   380,   728,   280,     3,
    1431      398,     3,   402,   401,   571,     0,   511,   279,     3,     3,
    1432      279,   417,   280,     3,   411,   412,     2,     0,     0,     0,
    1433      465,   291,   279,   461,   463,     3,     2,     2,     0,   482,
    1434        3,     0,   534,   126,     0,   210,     0,     0,     2,     0,
    1435        0,    36,     0,     0,   279,    21,     0,    22,     0,   671,
    1436      432,     0,   106,     0,     3,     2,    28,     2,     0,    33,
    1437        0,     2,    26,   103,   104,    70,    71,    72,    74,    75,
    1438       77,    78,    82,    83,    80,    81,    85,    86,    88,    90,
    1439       92,    94,    96,     0,     0,   731,   279,     0,     0,     0,
    1440      626,   627,   623,   624,   477,   476,   279,     0,     0,     0,
    1441      280,   279,   279,   641,   684,   344,     0,   718,   279,   721,
    1442      640,     2,   279,     0,     0,     0,     0,     0,     0,     0,
    1443        0,     3,   648,   600,   615,   649,     2,   596,   603,   415,
    1444      598,   599,   416,     2,   610,   618,   612,   613,   645,   646,
    1445      660,   688,   692,   690,   730,   253,     2,   724,     2,   406,
    1446      696,   701,   407,   279,     3,   385,     3,     3,     3,   437,
    1447        0,     3,     3,     2,   449,   446,   729,     0,   442,     2,
    1448      445,   448,     0,   279,   226,   248,     3,   257,   259,     0,
    1449      437,     2,   551,   552,     2,   590,   591,     0,     3,     0,
    1450      517,     3,   330,   329,   332,   331,   459,   279,     0,   518,
    1451        0,   519,   279,   353,   359,   361,     2,     0,     0,     0,
    1452        0,     0,   375,   672,   673,   370,   374,   371,   669,   670,
    1453      364,   368,   351,   382,   377,   383,     0,     0,     0,   420,
    1454      224,     0,     0,     3,     2,   647,   413,     0,   507,     0,
    1455      730,   469,     0,   279,   279,   279,     0,   531,   533,   127,
    1456        0,   206,     0,     0,   211,   212,    55,    60,   279,     0,
    1457       58,    57,     0,     0,   125,   672,     0,    67,    68,   107,
    1458      112,     3,   108,   106,     0,     0,     3,    25,    35,     3,
    1459        0,    99,     0,     3,   629,   633,   636,   628,     3,   572,
    1460      108,     2,   279,     3,     3,   280,     0,     2,     2,   719,
    1461      722,     0,     3,   602,   606,   609,   617,   651,   655,   658,
    1462      279,     0,     3,   601,   616,   650,   279,   279,   408,   279,
    1463      279,   279,     0,     0,     0,     0,   240,   108,     0,   101,
    1464        0,     3,     3,     0,   443,     0,   440,     0,     0,   229,
    1465      279,     0,     0,   126,     0,     0,     0,     0,     0,   126,
    1466        0,     0,     0,     2,     0,     0,     3,   128,   129,     2,
    1467      139,   130,   131,   132,   133,   134,   135,   141,   143,     0,
    1468        0,     0,   270,   279,   279,   527,   637,     0,     0,     0,
    1469      520,   279,   279,   279,   675,   679,   681,   674,   367,   381,
    1470      378,   559,     2,   643,   642,     0,   648,     2,   462,   464,
    1471      484,     3,   492,   493,     0,     2,   488,     3,     3,     0,
    1472        0,   536,     0,     0,   210,     0,     3,    37,   108,   728,
    1473      106,     0,     3,   640,    42,     3,    40,     3,    34,     0,
    1474        3,    98,   100,     0,     2,   631,   632,     0,   693,   279,
    1475      698,   279,     0,     0,     0,     3,   279,   279,   279,   617,
    1476        0,     2,   604,   605,     2,   619,     2,   653,   654,     0,
    1477      662,     0,     3,     0,     3,     3,     3,     3,   393,   392,
    1478      396,     0,   727,     2,     2,   726,   109,     0,     0,     0,
    1479        0,     3,   444,     3,     0,   227,   142,     3,   280,   279,
     1413       0,     0,     0,     0,     0,     0,     0,     0,   105,     2,
     1414     626,   435,   623,   527,   527,   631,   460,   278,     2,   565,
     1415     566,     0,   577,   578,     0,     2,   720,   723,   108,   278,
     1416       2,   278,     0,   688,   279,   692,   683,   684,   690,     0,
     1417       2,     2,   648,   527,   731,   597,   527,   527,   731,   527,
     1418     611,   527,   527,   662,   417,   645,   527,   527,   653,   660,
     1419     278,   412,   279,     0,     0,   278,   698,   279,   703,   731,
     1420     695,   278,   700,   731,   278,   278,   278,     0,   108,     0,
     1421      17,     2,     0,     0,   440,   729,     0,     0,   446,   225,
     1422       0,   278,     0,     0,     0,   525,   549,   553,   555,   585,
     1423     588,   592,   595,   548,   587,     0,   268,   638,     0,   278,
     1424     261,     0,     0,     0,     0,   259,     2,     0,   243,   516,
     1425     278,     0,     0,     0,     0,   278,   278,     0,     0,   672,
     1426     365,   368,   372,   527,   372,   677,   371,   669,   527,   527,
     1427     348,   356,   364,   357,   527,   359,   362,   278,   730,     0,
     1428       0,   379,   729,   279,     3,   397,     3,   401,   400,   571,
     1429       0,   511,   278,     3,     3,   278,   416,   279,     3,   410,
     1430     411,     2,     0,     0,     0,   465,   290,   278,   461,   463,
     1431       3,     2,     2,     0,   482,     3,     0,   534,   126,     0,
     1432     210,     0,     0,     2,     0,     0,    36,     0,     0,   108,
     1433     278,    21,     0,    22,     0,   672,   431,     0,   106,     3,
     1434       2,    28,     2,     0,    33,     0,     2,    26,   103,   104,
     1435      70,    71,    72,    74,    75,    77,    78,    82,    83,    80,
     1436      81,    85,    86,    88,    90,    92,    94,    96,     0,     0,
     1437     732,   278,     0,     0,     0,   627,   628,   624,   625,   477,
     1438     476,   278,     0,     3,   278,   694,   278,   699,   279,   278,
     1439     278,   278,   642,   685,   641,     2,   278,     0,     0,     0,
     1440       0,     0,     0,     0,     0,   663,     0,   649,   600,   616,
     1441     650,     2,   596,   603,   414,   598,   599,   415,     2,   610,
     1442     619,   612,   613,   646,   647,   661,   689,   693,   691,   731,
     1443     252,     2,   725,     2,   405,   697,   702,   406,     0,   384,
     1444       3,     3,     3,     3,   436,     3,     0,     2,   448,   445,
     1445     730,     0,   441,     2,   444,   447,     0,   278,   226,   248,
     1446       3,   256,   258,     0,   436,     2,   551,   552,     2,   590,
     1447     591,     0,   639,   517,     3,   329,   328,   331,   330,   278,
     1448     518,     0,   519,   278,   358,   360,     2,     0,     0,     0,
     1449       0,   374,   673,   674,   369,   373,   370,   670,   671,   363,
     1450     367,   350,   381,   376,   382,     0,     0,     0,   419,   224,
     1451       0,     0,     3,     2,   648,   412,     0,   507,     0,   731,
     1452     469,     0,   278,   278,   278,     0,   531,   533,   127,     0,
     1453     206,     0,     0,   211,   212,    55,    60,   278,     0,    58,
     1454      57,     0,   125,   673,     0,    67,    68,   107,   112,     3,
     1455     106,     0,     0,     0,    25,    35,     3,     0,    99,     0,
     1456       3,   630,   634,   637,   629,     3,   572,     3,   696,   701,
     1457       2,   278,     3,     3,   279,     0,     3,   602,   606,   609,
     1458     618,   652,   656,   659,   278,     3,   601,   617,   651,   278,
     1459     278,   407,   278,   278,   726,     0,     0,     0,     0,   240,
     1460       0,   101,     0,     3,     3,     0,   442,     0,   439,     0,
     1461       0,   229,   278,     0,     0,   126,     0,     0,     0,     0,
     1462       0,   126,     0,     0,     0,     2,     0,     0,     3,   128,
     1463     129,     2,   139,   130,   131,   132,   133,   134,   135,   141,
     1464     143,     0,     0,     0,   269,   278,   278,   527,     0,   520,
     1465     278,   108,   676,   680,   682,   675,   366,   380,   377,   559,
     1466       2,   644,   643,     0,   649,     2,   462,   464,   484,     3,
     1467     492,   493,     0,     2,   488,     3,     3,     0,     0,   536,
     1468       0,     0,   210,     0,     3,    37,   729,   106,     0,     3,
     1469     641,    42,     3,    40,     3,    34,     0,     3,    98,   100,
     1470       0,     2,   632,   633,     0,     0,   278,     0,     0,     0,
     1471       3,   618,     0,     2,   604,   605,     2,   620,     2,   654,
     1472     655,     0,     0,     3,     0,     3,     3,     3,     3,   392,
     1473     391,   395,     2,     2,   728,   727,   109,     0,     0,     0,
     1474       0,     3,   443,     3,     0,   227,   142,     3,   279,   278,
    14801475       0,     0,     0,     0,     2,   187,     0,   185,     0,     0,
    1481        0,     0,     0,     0,   191,     0,   279,   527,   147,   144,
    1482      279,     0,     0,   252,   264,     3,     3,   526,   638,   593,
    1483      279,   352,     0,     2,   677,   678,   279,   251,   279,     0,
    1484      495,   472,   279,     0,     0,   471,   486,     0,   207,     0,
    1485      213,   106,     0,     0,   113,   110,     0,     0,     0,     0,
    1486        0,     0,    24,     0,   634,   279,   560,   695,   700,   703,
    1487      704,   705,     0,     3,     3,   656,   279,   279,   279,     3,
    1488        3,     0,   664,     0,     0,     0,     0,   725,   279,   279,
    1489        3,   524,   109,   451,     0,     0,   230,   280,     0,     0,
    1490        0,     0,   279,   188,   186,     0,   183,   189,     0,     0,
    1491        0,   192,   195,   193,   190,     0,   126,   140,   138,   228,
    1492        0,     0,   108,   279,   400,   404,   403,     0,   489,     2,
    1493      490,     2,   491,   485,   279,   214,     0,     0,     3,   640,
    1494       32,   111,     2,    45,     2,    43,    41,    29,   109,    27,
    1495        3,   706,     0,     0,     3,     3,     3,     0,     0,   663,
    1496      665,   607,   620,   254,     2,   390,     3,   389,     0,   453,
    1497      450,   126,     0,     0,   126,     3,     0,   126,   184,     0,
    1498        2,   200,   194,     0,   108,   136,   554,   594,     3,     2,
    1499        0,     0,     2,   208,   215,     0,     0,     0,     0,     0,
    1500        0,   250,   249,     0,     0,     0,   666,   667,   279,     0,
    1501      452,   148,     0,     0,     2,   161,   126,   150,     0,   178,
    1502        0,   126,     0,     2,   152,     0,     2,     2,     0,   279,
    1503      494,   496,   487,     0,     0,   111,    38,     3,     3,   635,
    1504      608,   621,   657,   394,   126,   154,   157,     0,   156,   160,
    1505        3,   163,   162,     0,   126,   180,   126,     3,     0,   279,
    1506        0,     2,   680,     2,   209,   216,     0,     0,     0,   149,
    1507        0,     0,   159,   217,   164,     2,   219,   179,     0,   182,
    1508      168,   196,     3,   201,   205,     0,   279,     0,    39,    46,
    1509       44,   155,   158,   126,     0,   165,   279,   126,   126,     0,
    1510      169,     0,     0,   671,   202,   203,   204,   197,     3,   279,
    1511      145,   166,   151,   126,   220,   181,   176,   174,   170,   153,
    1512      126,     0,   672,     0,     0,   146,   167,   177,   171,   175,
    1513      174,   172,     3,     0,   473,   173,   198,     3,   199
     1476       0,     0,     0,     0,   191,     0,   108,   527,   147,   144,
     1477     278,     0,     0,   251,   263,     3,     3,   526,   593,   351,
     1478       2,   678,   679,   278,   250,   278,     0,   495,   472,   278,
     1479       0,     0,   471,   486,     0,   207,     0,   213,   106,     0,
     1480       0,   113,   110,     0,     0,     0,     0,     0,     0,    24,
     1481       0,   635,   278,   560,   249,   704,   705,   706,     0,   657,
     1482     278,   278,   278,     3,     3,     0,   665,     0,     0,     0,
     1483       0,   278,   278,     3,   524,   109,   450,     0,     0,   230,
     1484     279,     0,     0,     0,     0,   278,   188,   186,     0,   183,
     1485     189,     0,     0,     0,   192,   195,   193,   190,   126,   140,
     1486     138,   228,     0,     0,   278,   399,   403,   402,     0,   489,
     1487       2,   490,     2,   491,   485,   278,   214,     0,     0,     3,
     1488     641,    32,   111,     2,    45,     2,    43,    41,    29,   109,
     1489      27,     3,   707,     3,     3,     3,     0,     0,   664,   666,
     1490     607,   621,   253,     2,   389,     3,   388,     0,   452,   449,
     1491     126,     0,     0,   126,     3,     0,   126,   184,     0,     2,
     1492     200,   194,     0,   136,   554,   594,     3,     2,     0,     0,
     1493       2,   208,   215,     0,     0,     0,     0,     0,     0,     0,
     1494       0,     0,   667,   668,   278,     0,   451,   148,     0,     0,
     1495       2,   161,   126,   150,     0,   178,     0,   126,     0,     2,
     1496     152,     0,     2,     2,     0,   278,   494,   496,   487,     0,
     1497       0,   111,    38,     3,     3,   636,   608,   622,   658,   393,
     1498     126,   154,   157,     0,   156,   160,     3,   163,   162,     0,
     1499     126,   180,   126,     3,     0,   278,     0,     2,   681,     2,
     1500     209,   216,     0,     0,     0,   149,     0,     0,   159,   217,
     1501     164,     2,   219,   179,     0,   182,   168,   196,     3,   201,
     1502     205,     0,   278,     0,    39,    46,    44,   155,   158,   126,
     1503       0,   165,   278,   126,   126,     0,   169,     0,     0,   672,
     1504     202,   203,   204,   197,     3,   278,   145,   166,   151,   126,
     1505     220,   181,   176,   174,   170,   153,   126,     0,   673,     0,
     1506       0,   146,   167,   177,   171,   175,   174,   172,     3,     0,
     1507     473,   173,   198,     3,   199
    15141508};
    15151509
     
    15171511static const yytype_int16 yydefgoto[] =
    15181512{
    1519       -1,   812,   456,   291,    45,   129,   130,   292,   293,   294,
    1520      295,   758,   740,  1125,  1126,   296,   297,   298,   299,   300,
    1521      301,   302,   303,   304,   305,   306,   307,   308,   309,  1030,
    1522      506,   970,   311,   971,   533,   949,  1055,  1500,  1057,  1058,
    1523     1059,  1060,  1501,  1061,  1062,  1436,  1437,  1405,  1406,  1407,
    1524     1484,  1485,  1489,  1490,  1518,  1519,  1063,  1366,  1064,  1065,
    1525     1301,  1302,  1303,  1472,  1066,   953,   954,   955,  1385,  1464,
    1526     1465,   457,   458,   873,   874,  1038,    48,    49,    50,    51,
    1527       52,   329,   153,    55,    56,    57,    58,    59,   331,    61,
    1528       62,   253,    64,    65,   264,   333,   334,    68,    69,    70,
    1529       71,   114,    73,   196,   336,   115,    76,   116,    78,    79,
    1530       80,   437,   438,   439,   440,   675,   915,   676,    81,    82,
    1531      444,   696,   854,   855,   339,   340,   699,   700,   701,   341,
    1532      342,   343,   344,   454,   171,   131,   132,   510,   313,   164,
    1533      628,   629,   630,   631,   632,    83,   117,   477,   478,   941,
    1534      479,   267,   483,   314,    85,   133,   134,    86,  1324,  1105,
    1535     1106,  1107,  1108,    87,    88,   717,    89,   263,    90,    91,
    1536      180,  1032,   664,   393,   121,    92,   489,   490,   491,   181,
    1537      258,   183,   184,   185,   259,    95,    96,    97,    98,    99,
    1538      100,   101,   188,   189,   190,   191,   192,   823,   590,   591,
    1539      592,   593,   594,   595,   596,   597,   558,   559,   560,   561,
    1540      680,   102,   599,   600,   601,   602,   603,   604,   914,   682,
    1541      683,   684,   578,   347,   348,   349,   350,   315,   159,   104,
    1542      105,   351,   352,   694,   555
     1513      -1,   826,   468,   297,    45,   130,   131,   298,   299,   300,
     1514     301,   773,   755,  1122,  1123,   302,   303,   304,   305,   306,
     1515     307,   308,   309,   310,   311,   312,   313,   314,   315,  1032,
     1516     518,   978,   317,   979,   546,   958,  1057,  1476,  1059,  1060,
     1517    1061,  1062,  1477,  1063,  1064,  1412,  1413,  1381,  1382,  1383,
     1518    1460,  1461,  1465,  1466,  1494,  1495,  1065,  1345,  1066,  1067,
     1519    1284,  1285,  1286,  1448,  1068,   962,   963,   964,  1363,  1440,
     1520    1441,   469,   470,   887,   888,  1040,    48,    49,    50,    51,
     1521      52,   341,   155,    55,    56,    57,    58,    59,   343,    61,
     1522      62,   259,    64,    65,   270,   345,   346,    68,    69,    70,
     1523      71,   115,    73,   200,   348,   116,    76,   117,    78,    79,
     1524      80,   449,   450,   451,   452,   690,   924,   691,    81,    82,
     1525     456,   711,   868,   869,   351,   352,   714,   715,   716,   353,
     1526     354,   355,   356,   466,   335,   132,   133,   522,   319,   166,
     1527     644,   645,   646,   647,   648,    83,   118,    85,   489,   490,
     1528     950,   491,   273,   495,   320,    86,   134,   135,    87,  1305,
     1529    1103,  1104,  1105,  1106,    88,    89,   732,    90,   269,    91,
     1530      92,   183,  1034,   678,   405,   122,    93,   501,   502,   503,
     1531     184,   264,   186,   187,   188,   265,    96,    97,    98,    99,
     1532     100,   101,   102,   191,   192,   193,   194,   195,   838,   605,
     1533     606,   607,   608,   196,   610,   611,   612,   571,   572,   573,
     1534     574,   695,   103,   614,   615,   616,   617,   618,   619,   923,
     1535     697,   698,   699,   595,   359,   360,   361,   362,   321,   161,
     1536     105,   106,   107,   364,   709,   568
    15431537};
    15441538
    15451539/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15461540   STATE-NUM.  */
    1547 #define YYPACT_NINF -1282
     1541#define YYPACT_NINF -1269
    15481542static const yytype_int16 yypact[] =
    15491543{
    1550     6907,  3842, -1282,     1, -1282, -1282, -1282, -1282, -1282, -1282,
    1551    -1282,   -10, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1552    -1282, -1282, -1282, -1282, -1282,   136,   136,   136,  1007,   747,
    1553      138,  7125,   631, -1282, -1282, -1282, -1282, -1282,   165, -1282,
    1554    -1282, -1282,   345, -1282,  8928, -1282, -1282, -1282, -1282, -1282,
    1555    -1282,   159,   189, -1282,   806, -1282, -1282, -1282, -1282,   201,
    1556      317,   311,    94,  7234, -1282, -1282,  8997,  1005, -1282, -1282,
    1557    -1282,   897,   331,  6148,   801,  1179,   897,  1220, -1282, -1282,
    1558      383,   664, -1282,   897,  1643,   235, -1282,   351,   370, -1282,
    1559    -1282, -1282, -1282,   274,   189,   136, -1282,   136, -1282, -1282,
    1560    -1282, -1282,  9564,   806, -1282, -1282,   806, -1282,  9623,   255,
    1561    -1282, -1282,   546,  9682, -1282,   631,   631,   631, -1282, -1282,
    1562    -1282,   136, -1282, -1282, -1282,   287,   318,   341, -1282, -1282,
    1563    -1282,   406, -1282, -1282, -1282, -1282, -1282,   415,   439, -1282,
    1564      447,   631,  8436,  2364,   389,   451,   472,   499,   502,   515,
    1565      552,  6455, -1282,   581, -1282,  9065, -1282, -1282, -1282, -1282,
    1566      588, -1282,    55,  4976, -1282,   475,   111, -1282, -1282, -1282,
    1567    -1282,   611,   144,   234,   273,   136,   575, -1282,   317,  1977,
    1568      676, -1282,    41, -1282,   136,   136,   189, -1282, -1282,    67,
    1569    -1282,   136,   136,  2855,   615,   637,   631, 10424, -1282, -1282,
    1570      641, -1282,  8928, -1282, -1282,   897, -1282, -1282,   189, -1282,
    1571      806,   159, -1282,  7408, -1282,   631,   631,   631,   189, -1282,
    1572     1007, -1282,  3141, -1282, -1282,   638,   631, -1282,   631, -1282,
    1573     8436,  5322,   660,   747,   666,   631, -1282,  1007,   652,   667,
    1574    -1282,  7125,   719, -1282, -1282, -1282,  8867, -1282, -1282,  4559,
    1575    -1282,   676,    99,  9682, 10704,   546,  2855, -1282,    98, -1282,
    1576    -1282,  9623,   806,   682, 11366, -1282, -1282,    63, -1282, 11101,
    1577     3465,  4662,  3465, 10932, -1282,   694, -1282, -1282, -1282, -1282,
    1578    10989, 10989,   719,  8118, -1282,  3465,  8542, -1282, -1282, -1282,
    1579    -1282, -1282, -1282,   723, -1282,   885,  1800,  3465, -1282,   510,
    1580      450,   590,   569,   640,   705,   735,   743,   780,    45, -1282,
    1581    -1282,   758,   602, -1282,    26, -1282, -1282,  2364, -1282, -1282,
    1582      528,   787, -1282,   574,   787, -1282,  8224,   794, -1282, -1282,
    1583     1199,   870,  7864, 10424,   897, -1282,   897,   631,   631, -1282,
    1584    -1282, -1282, -1282, -1282, -1282,   631,  9741,   806, -1282, -1282,
    1585     9800,  1563, -1282,  6455, -1282, -1282, -1282, -1282, -1282, -1282,
    1586    -1282, -1282,  4863,  3465, -1282, -1282, -1282, -1282, -1282, -1282,
    1587    -1282, -1282, -1282, -1282, -1282, -1282, -1282,   546, -1282,   892,
    1588      814,   824,   846,   914,   866,   868,   873,  1977, -1282, -1282,
    1589      871,   159, -1282, -1282, -1282,   877, -1282, -1282, -1282,  8867,
    1590    -1282, -1282, -1282, -1282, -1282,  2855, -1282,  8436,  8436, -1282,
    1591      546, 11394,  8436,  7516, -1282, -1282, -1282, -1282,  8867,    99,
    1592    -1282, -1282,   897,   189, -1282, -1282,  8867, -1282,  6031, -1282,
    1593    -1282,   631,   631,   195,  9859, -1282,  1756,  9269, -1282,   301,
    1594      305,   747, -1282,  5322,   881,   875,   747,   631, -1282, -1282,
    1595    -1282, -1282, 10160, -1282,   491,  7784, -1282,   189,   898, -1282,
    1596      546, 11176, 10761, -1282, -1282, -1282, -1282,   938,  2855, -1282,
    1597     7929,   676,  7016, -1282, -1282, -1282,  1054,   512,   758,   747,
    1598    11366,   464,  9623, -1282, 11366, -1282, -1282, -1282, -1282,   598,
    1599    -1282,   933, -1282, -1282,   243,  8118, -1282, -1282,  8118, -1282,
    1600     8330,  8118, -1282, -1282, -1282, -1282, -1282,   609,   942,   657,
    1601      947, -1282,  6119, -1282, -1282, -1282,    71, -1282, -1282, 10818,
    1602    -1282,   182, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1603    -1282, -1282, 10704, 10704, -1282,  3465,  3465,  3465,  3465,  3465,
    1604     3465,  3465,  3465,  3465,  3465,  3465,  3465,  3465,  3465,  3465,
    1605     3465,  3465,  3465,  5365, 10704, -1282,   602,  1011, -1282, -1282,
    1606      136,   136, -1282, -1282,  8436, -1282, -1282, -1282,   877,   719,
    1607    -1282,   877,  6119, -1282,  8648,   949, -1282,  9918, -1282, -1282,
    1608      588, -1282,  9201,   958, -1282,   297, -1282,  2232,   123,   758,
    1609    -1282,   136,   136,   758,   253, -1282,   136,   136,   877, -1282,
    1610    -1282,   136,   136, -1282,   787,  9977,   806, 11307,   145,   279,
    1611     9977, -1282,  5246, -1282,   758, -1282,  9741, -1282,    23,   964,
    1612     7581,  7581,   806,  5886,   969, -1282,   337,   975, -1282,   943,
    1613     4976,   555, -1282,  1045,   806,  7581,   719,   546,   719,   676,
    1614      767,   787, -1282, -1282,   783,   787, -1282, -1282, -1282,  1013,
    1615    -1282, 10875,   189, 10160, -1282,   633,   987,   644,   988, -1282,
    1616      645, -1282,   993,   189, -1282, -1282,  8867,   189,   683,   323,
    1617      328,  6567,  1152,  3465,  2456, -1282, -1282,   983,    24,   983,
    1618    -1282, -1282, -1282,   136,   136, -1282, -1282,   747, -1282,   136,
    1619    -1282, -1282,  9328,   747,   995,  3465, -1282,   881, 11307, -1282,
    1620    -1282,  1009, -1282, -1282, -1282,   719, -1282, 11242,  3465, -1282,
    1621     7581,   700,  7864, -1282, -1282,   588,  1014,  1020,  1054,  2940,
    1622    -1282, -1282, 11366, -1282, -1282,  1012, -1282, -1282,  1027, -1282,
    1623     1012,  1030, 11101, 10704,  1010,  1058,  1034,  1035, -1282,  1032,
    1624     1040, -1282,  1041,  1043,  6231, -1282, 10704, -1282,   657,  1148,
    1625    -1282, 10647, 10704,  1044,  1042, -1282, -1282, -1282,   659, -1282,
    1626    10704, -1282, -1282, -1282, -1282, -1282, -1282, -1282,   510,   510,
    1627      450,   450,   590,   590,   590,   590,   569,   569,   640,   705,
    1628      735,   743,   780,  3465,   751, -1282, 10160,  1049,  1052,  1061,
    1629     1011, -1282, -1282, -1282, -1282, -1282, 10160, 10875,   677,  1060,
    1630     6679,  8754,  6455, -1282, -1282,  1066,  1067, -1282,  9564, -1282,
    1631    -1282,   297, 10160,   979,  1070,  1071,  1073,  1076,  1077,  1078,
    1632     1079,  4326,  2232, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1633    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1634      877, -1282, -1282, -1282,   758, -1282, -1282, -1282, -1282, -1282,
    1635    -1282, -1282, -1282,  9446, -1282, -1282,  1082,  1085, -1282,   159,
    1636     1065,  1042,  5886, -1282, -1282, -1282,  4863,  1087, -1282, -1282,
    1637    -1282, -1282,   747,  5718,  1168, -1282, -1282, -1282, -1282,  1074,
    1638      159, -1282, -1282,   877, -1282, -1282,   877,   101,  3465,  1096,
    1639    -1282, -1282, -1282, -1282, -1282, -1282, -1282,  6455,   989, -1282,
    1640      189, -1282,  5322, -1282, -1282, -1282, -1282,  1097,   775,  1104,
    1641     1105,  1108, -1282,  2456, -1282, -1282, -1282, -1282, -1282, -1282,
    1642    -1282,  1756, -1282,   875, -1282, -1282,  1106,  1109,  1112, -1282,
    1643    -1282,  1110,  1120, -1282,   700,  1751, -1282,   355, -1282,  2940,
    1644      758, -1282,  1125, 11366, 10036,  8436,  1134, -1282, -1282,  1129,
    1645     1140, -1282,  1111,   394,  1135, -1282,  1138,  1138,  6119, 10704,
    1646    -1282, -1282,  1138,  1141, -1282,  1148,  4863, -1282, -1282, -1282,
    1647    -1282,  1142,  2180, 10704,  1161,   719,  5886, -1282, 10818, -1282,
    1648      719, -1282, 10704, -1282,   786,   787, -1282, -1282, -1282, -1282,
    1649     5608, -1282,  8224, -1282, -1282,  6791,  1165, -1282, -1282, -1282,
    1650    -1282,  1150, -1282,   793,   787, -1282,   809,   821,   787, -1282,
    1651      631,  1167,  4797, -1282, -1282, -1282, 10160, 10160, -1282,  7994,
    1652     7994,  7581,  1154,  1164,  1171,  1182, -1282, -1282,  1177,   378,
    1653      242,  1042, -1282,   719, -1282,  4976, -1282, 10704,   333, -1282,
    1654     6002,  1184,  1185, 10590,  1187,  1188,    28,    84,     8, 10704,
    1655     1190,   189,  4028, -1282,  1183,  1169, -1282, -1282, -1282,  1189,
    1656    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,   747,
    1657     1195, 10704, -1282, 10160, 10160,   136,   787,  1196,  1200,  1066,
    1658    -1282,  9387,  6119, 10095,   839,   787, -1282, -1282, -1282, -1282,
    1659    -1282, -1282, -1282, -1282, -1282,  1201,  1751, -1282, -1282,  1191,
    1660    -1282,  1012, -1282, -1282,   546,  1202, -1282, -1282, -1282,   717,
    1661     1204, -1282,  3465,  1192,  1058,  1058,  1203, -1282,  4247,   943,
    1662    10704,  1210,  1142,   371,   143,  1207, -1282,  1203, -1282,  1218,
    1663     1207, -1282, -1282,  1206, -1282, -1282,   877,  1221, -1282,  9741,
    1664    -1282,  6343,  1222,  1223,  1224, -1282,  9505,  7581,  7581, -1282,
    1665     1238, -1282, -1282,   877, -1282, -1282, -1282, -1282,   877, 10704,
    1666    -1282, 10704,  3465,  1240, -1282, -1282, -1282, -1282, -1282, -1282,
    1667    -1282,  1243, -1282, -1282, -1282, -1282, -1282,  3465,  3465,  1242,
    1668     1248,  1207, -1282, -1282,   747, -1282, -1282, -1282,  7343, 10036,
    1669    10704, 10704,  1297, 10704, -1282, -1282,  1229, -1282,  1231, 10704,
    1670     1233,  1234, 10704,   876, -1282,  1235,  6119,   136, -1282, -1282,
    1671     5718,  1257,   359, -1282, -1282, -1282, -1282, -1282,   877, -1282,
    1672     9133, -1282,  1265, -1282, -1282,   877, 10396, -1282,  7929,  1245,
    1673    -1282, -1282, 10036,   425,   426, -1282,  1263,  1269, -1282,   493,
    1674    -1282, 10704,  1274,  1266, -1282, -1282,  1275,   191,   219,   719,
    1675     1280,  1282, -1282,  1285, -1282, 10160, -1282, -1282, -1282, -1282,
    1676    -1282, -1282,  1288, -1282, -1282, -1282, 10160, 10160, 10160, -1282,
    1677    -1282,  1289, -1282,  1290,  1298,  1302,   542, -1282,  7648,  7756,
    1678    -1282, -1282,   560, -1282,  1303,  1307, -1282,  8059,   724,   726,
    1679     1305,   729,  5867, -1282, -1282,   430, -1282, -1282,   731,  1311,
    1680      189,  1359,  1361, -1282, -1282,  1313, 10590, -1282, -1282, -1282,
    1681     1318,  1319,  3716, 10160, -1282, -1282, -1282,  1316, -1282, -1282,
    1682    -1282, -1282, -1282, -1282, 10036, -1282,  1299,  1349,  1142,   321,
    1683    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,  1320, -1282,
    1684    -1282, -1282,  1325,  1330, -1282, -1282, -1282,  1332,  1335, -1282,
    1685    -1282, -1282, -1282, -1282, -1282, -1282,  1340, -1282,  1339, -1282,
    1686    -1282, 10590,    88, 10704, 10590, -1282,  1345, 10704, -1282,   119,
    1687     1360, -1282, -1282,  1333,  8895, -1282, -1282, -1282, -1282, -1282,
    1688      806,   546,  1341, -1282, -1282,   741,  1348, 10704,   719,   719,
    1689     1352, -1282, -1282,  1354,  1355,  1356, -1282, -1282,  7994,  1351,
    1690    -1282,  1420,  3465,  1357, -1282, -1282, 10510, -1282,   742, -1282,
    1691     1343, 10590,  1346, -1282, -1282,  1367, -1282,  1374,  1369, 10036,
    1692    -1282, -1282, -1282,  1350,  1401,  1370, -1282,  1207,  1207, -1282,
    1693    -1282, -1282, -1282, -1282, 10590,   250, -1282,   848, -1282, -1282,
    1694     4642, -1282, -1282,  1353, 10704, -1282, 10704,  4642,   189,  9859,
    1695     1376, -1282, -1282,  1373, -1282, -1282, 10704,  1379,  1380, -1282,
    1696     3465,  3465, -1282, -1282,   941,   285, -1282, -1282,  1364, -1282,
    1697      941, -1282, -1282,  1486,   719,   189,  9859,  1389, -1282, -1282,
    1698    -1282, -1282, -1282, 10510,  1384,   941,  5533, 10704, 10430,  1386,
    1699      941,  1394,  1486,  2735, -1282, -1282, -1282, -1282, -1282,  8436,
    1700    -1282, 10275, -1282, 10510, -1282, -1282,  1375, 10194, -1282, -1282,
    1701    10430,   189,  2735,  1396,   750, -1282, 10275, -1282, -1282, -1282,
    1702    10194, -1282, -1282,   189, -1282, -1282, -1282, -1282, -1282
     1544    5632,  9056, -1269,    25, -1269, -1269, -1269, -1269, -1269, -1269,
     1545   -1269,    17, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1546   -1269, -1269, -1269, -1269, -1269,   113,   113,   113,   803,   791,
     1547      56,  6940,   839, -1269, -1269, -1269, -1269, -1269,    59, -1269,
     1548   -1269, -1269,   628,    90,  8532, -1269, -1269, -1269, -1269, -1269,
     1549   -1269,    88,   155, -1269,   911, -1269, -1269, -1269, -1269,   140,
     1550    1450,   287,    96,  4240, -1269, -1269,  8601,  1048, -1269, -1269,
     1551   -1269,  1246,   329,  6299,  1010,   880,  1246,  1728, -1269, -1269,
     1552     332,   328, -1269,  1246,  1769, -1269,   227, -1269,   369,   379,
     1553   -1269, -1269, -1269, -1269,   256,   155,   113, -1269,   113, -1269,
     1554   -1269, -1269, -1269,  9292,   911, -1269, -1269,   911, -1269,  9351,
     1555     266, -1269, -1269,  1507,  9410, -1269,   839,   839,   839, -1269,
     1556   -1269, -1269,   113, -1269, -1269, -1269,   291,   341,   348, -1269,
     1557   -1269, -1269,   361, -1269, -1269, -1269, -1269, -1269,   391,   401,
     1558   -1269,   469,   839,  8040,  1076,   326,   352,   486,   522,   542,
     1559     576,   588,  8805,  6382,   474,   482, -1269,  8669, -1269, -1269,
     1560   -1269, -1269,   571, -1269,    47,  5492, -1269,   596,   239, -1269,
     1561   -1269, -1269, -1269,   597,   315,   324,   359,   113,   614, -1269,
     1562   -1269,  1450,  2466,   659, -1269,   128, -1269,   113,   113,   155,
     1563   -1269, -1269,   131, -1269,   113,   113, -1269,  3629,   647,   656,
     1564     839, 10211, -1269, -1269,   665,  8532, -1269, -1269,  1246, -1269,
     1565   -1269, -1269,   155, -1269,   911,    88, -1269,  7183, -1269,   839,
     1566     839,   839,   155, -1269,   803, -1269,  6072, -1269, -1269,   652,
     1567     839, -1269,   839, -1269,    59,  8040,  9115,   675, -1269,   791,
     1568     684,   839, -1269,   803,   674,   681, -1269,  6940,   744, -1269,
     1569   -1269, -1269,  8471, -1269, -1269,  5138, -1269,   659,    73,  9410,
     1570   10491,  1507,  3629, -1269,   138, -1269, -1269,  9351,   911,   708,
     1571   11267, -1269, -1269,   713, -1269, 11002, 10719, 10776, 10719, 10833,
     1572   -1269,   737, -1269, -1269, -1269, -1269, 10890, 10890,   744,  4439,
     1573     751, 10719,  8146, -1269, -1269, -1269, -1269, -1269, -1269,   766,
     1574   -1269,   828,  1924, 10719, -1269,   465,   544,   763,   389,   621,
     1575     755,   754,   759,   813,    65, -1269, -1269,   782,   510, -1269,
     1576     307, -1269, -1269,  1076, -1269, -1269,   774,   807, -1269,   784,
     1577     807,   815,    59, -1269, -1269,   821,  9292, -1269,   826,  7828,
     1578   -1269, -1269,   715,  2130,  7574, 10211,  1246, -1269,  1246,   839,
     1579     839, -1269, -1269, -1269, -1269, -1269, -1269,   839,  9469,   911,
     1580   -1269, -1269,  9528,  1378, -1269,  9174, -1269, -1269, -1269, -1269,
     1581   -1269, -1269, -1269,   831,  4897, 10719, -1269, -1269, -1269, -1269,
     1582   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1507,
     1583   -1269,   728,   842,   859,   891,   817,   925,   926,   927,  2466,
     1584   -1269, -1269,   865,    88,   869, -1269, -1269,   928, -1269, -1269,
     1585   -1269,  8471, -1269, -1269, -1269, -1269, -1269,  3629, -1269,  8040,
     1586    8040, -1269,  1507, 11295,   911,  7639, -1269, -1269, -1269, -1269,
     1587    8471,    73, -1269, -1269,  1246,   155, -1269, -1269,  8471, -1269,
     1588    6187, -1269, -1269,   839,   839,   339,  9587,   909,  1932,  2385,
     1589   -1269,   377,   414,   791, -1269,  9115,   924,   912,   791,   839,
     1590   -1269, -1269, -1269, -1269,  9947, -1269,   512,  7494, -1269,   155,
     1591     930, -1269,  1507, 11077, 10548, -1269, -1269, -1269, -1269,   824,
     1592    3629, -1269,  7704,   659,  6831, -1269, -1269, -1269,   746,   592,
     1593     782,   791, 11267,   530,  9351, -1269, 11267, -1269, -1269, -1269,
     1594   -1269,   613, -1269,   932, -1269, -1269,    12,  4439, -1269, -1269,
     1595    4439, -1269,  7934,  4439, -1269, -1269, -1269,   933, -1269,   625,
     1596     936,   545,   939, -1269,  8873,  5389, -1269, -1269, -1269,    67,
     1597   -1269, -1269, 10605, -1269,   249, -1269, -1269, -1269, -1269, -1269,
     1598   -1269, -1269, -1269, -1269, -1269, 10491, 10491, -1269, 10719, 10719,
     1599   10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719,
     1600   10719, 10719, 10719, 10719, 10719, 10719,  4719, 10491, -1269,   510,
     1601    1578, -1269, -1269,   113,   113, -1269, -1269,  8040, -1269, -1269,
     1602     928,   744, -1269,   928, 10662, -1269, -1269, -1269,  4020,  5389,
     1603     938,  8252,   941, -1269,  9646, -1269, -1269,   571, -1269,   942,
     1604    1657,   947,  1802,   198,   782, -1269,   113,   113,   782,   245,
     1605   -1269,   113,   113,   928, -1269, -1269,   113,   113, -1269,   807,
     1606    9705,   911, 11208,   419,   426,  9705, -1269,  9882, -1269,   782,
     1607   -1269,  9469, -1269,   144,  7291,  7291,  7291,   911, -1269, 10434,
     1608     934,   831,   353,   949, -1269,   951,  5492,   583, -1269,  1032,
     1609     911,  7291,   744,  1507,   744,   659,   795,   807, -1269, -1269,
     1610     800,   807, -1269, -1269, -1269,   986, -1269,   807,   155,  9947,
     1611   -1269,   635,   960,   638,   961, -1269,   962,   155, -1269, -1269,
     1612    8471,   155,   958,   436,   443,  9764,  6494,  2437, 10719,  2673,
     1613   -1269, -1269,   956,    32,   956, -1269, -1269, -1269,   113,   113,
     1614   -1269, -1269,   791, -1269,   113, -1269, -1269,  2798,   791,   968,
     1615   10719, -1269,   924, 11208, -1269, -1269,   967, -1269, -1269, -1269,
     1616     744, -1269, 11143, 10719, -1269,  7291,   584,  7574, -1269, -1269,
     1617     571,   969,   972,   746,  2082, -1269, -1269, 11267, -1269, -1269,
     1618     965, -1269, -1269,   984, -1269,   965,   989, 11002, 10491,   944,
     1619    1017,   991,   992,   751,   987,   996, -1269,   997,  1000,  2971,
     1620    6158, -1269, 10491, -1269,   545,  1808, -1269,  5683, 10491,   998,
     1621   -1269, -1269,   831,   639, -1269, 10491, -1269, -1269, -1269, -1269,
     1622   -1269, -1269, -1269,   465,   465,   544,   544,   763,   763,   763,
     1623     763,   389,   389,   621,   755,   754,   759,   813, 10719,   616,
     1624   -1269,  9947,  1005,  1006,  1007,  1578, -1269, -1269, -1269, -1269,
     1625   -1269,  9947,   643, 10719,  7291, -1269,  9469, -1269,  6606,  8358,
     1626    9233,  6382, -1269, -1269, -1269,  1657,  9947,   846,  1012,  1013,
     1627    1015,  1019,  1020,  1023,  1024, -1269,  3182,  1802, -1269, -1269,
     1628   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1629   -1269, -1269, -1269, -1269, -1269,   928, -1269, -1269, -1269,   782,
     1630   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1025, -1269,
     1631    1026,  1029, -1269, -1269,    88,   998, 10434, -1269, -1269, -1269,
     1632    4897,  1028, -1269, -1269, -1269, -1269,   791,  5798,  1104, -1269,
     1633   -1269, -1269, -1269,  1027,    88, -1269, -1269,   928, -1269, -1269,
     1634     928,   142,   928, -1269, -1269, -1269, -1269, -1269, -1269,  8737,
     1635   -1269,   155, -1269,  9115, -1269, -1269,  1034,   761,  1031,  1038,
     1636    1041, -1269,  2673, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1637    1932, -1269,   912, -1269, -1269,  1044,  1046,  1047, -1269, -1269,
     1638    1042,  1050, -1269,   584,  1953, -1269,   534, -1269,  2082,   782,
     1639   -1269,  1054, 11267,  9823,  8040,  1055, -1269, -1269,  1051,  1056,
     1640   -1269,  1059,   169,  1057, -1269,  1058,  1058,  5389, 10491, -1269,
     1641   -1269,  1058, -1269,  1808,  4897, -1269, -1269, -1269, -1269,  1060,
     1642   10491,  1062,   744, 10434, -1269, 10605, -1269,   744, -1269, 10491,
     1643   -1269,   840,   807, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1644     831,  7828, -1269, -1269,  6718,  1067, -1269,   864,   807, -1269,
     1645     871,   882,   807, -1269,   839,  3327, -1269, -1269, -1269,  9947,
     1646    9947, -1269,  7639,  7639, -1269,  1063,  1064,  1068,  1071, -1269,
     1647    1074,   541,    48,   998, -1269,   744, -1269,  5492, -1269, 10491,
     1648     455, -1269,  6043,  1080,  1081, 10377,  1083,  1084,    55,   173,
     1649      23, 10491,  1085,   155,  4287,  1089,  1086,  1065, -1269, -1269,
     1650   -1269,  1087, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1651   -1269,   791,  1094, 10491, -1269,  9947,  9947,   113,  1095, -1269,
     1652    8997,  8935,   889,   807, -1269, -1269, -1269, -1269, -1269, -1269,
     1653   -1269, -1269, -1269,  1098,  1953, -1269, -1269,  1082, -1269,   965,
     1654   -1269, -1269,  1507,  1097, -1269, -1269, -1269,   650,  1096, -1269,
     1655   10719,  1077,  1017,  1017,  1102, -1269,   951, 10491,  1111,  1060,
     1656     559,    61,  1108, -1269,  1102, -1269,  1113,  1108, -1269, -1269,
     1657    1118, -1269, -1269,   928,  1120,  1121,  6270,  1123,  1124,  1125,
     1658   -1269, -1269,  1122, -1269, -1269,   928, -1269, -1269, -1269, -1269,
     1659     928, 10491, 10491, 10719,  1127, -1269, -1269, -1269, -1269, -1269,
     1660   -1269, -1269, -1269, -1269, -1269, -1269, -1269, 10719, 10719,  1128,
     1661    1133,  1108, -1269, -1269,   791, -1269, -1269, -1269,  7118,  9823,
     1662   10491, 10491,  1180, 10491, -1269, -1269,  1114, -1269,  1117, 10491,
     1663    1135,  1137, 10491,   901, -1269,  1138,  8499,   113, -1269, -1269,
     1664    5798,  1140,   467, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1665   -1269, -1269,   928, 10183, -1269,  7704,  1147, -1269, -1269,  9823,
     1666     476,   481, -1269,  1157,  1165, -1269,   201, -1269, 10491,  1166,
     1667    1167, -1269, -1269,  1168,   257,   313,   744,  1169,  1171, -1269,
     1668    1172, -1269,  9947, -1269, -1269, -1269, -1269, -1269,  1174, -1269,
     1669    9947,  9947,  9947, -1269, -1269,  1175, -1269,  1179,  1182,  1183,
     1670     573,  7358,  7466, -1269, -1269,   609, -1269,  1184,  1185, -1269,
     1671    7769,   651,   662,  1141,   664,  5921, -1269, -1269,   508, -1269,
     1672   -1269,   687,  1189,   155,  1237,  1240, -1269, -1269, 10377, -1269,
     1673   -1269, -1269,  1193,  1197,  9947, -1269, -1269, -1269,  1196, -1269,
     1674   -1269, -1269, -1269, -1269, -1269,  9823, -1269,  1190,  1231,  1060,
     1675     253, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1204,
     1676   -1269, -1269, -1269, -1269, -1269, -1269,  1211,  1215, -1269, -1269,
     1677   -1269, -1269, -1269, -1269, -1269,  1219, -1269,  1218, -1269, -1269,
     1678   10377,   147, 10491, 10377, -1269,  1225, 10491, -1269,   264,  1239,
     1679   -1269, -1269,  1229, -1269, -1269, -1269, -1269, -1269,   911,  1507,
     1680    1233, -1269, -1269,   704,  1228, 10491,   744,   744,  1248,  1249,
     1681    1250,  1251, -1269, -1269,  7639,  1256, -1269,  1301, 10719,  1259,
     1682   -1269, -1269, 10297, -1269,   716, -1269,  1224, 10377,  1235, -1269,
     1683   -1269,  1268, -1269,  1282,  1270,  9823, -1269, -1269, -1269,  1252,
     1684    1302,  1273, -1269,  1108,  1108, -1269, -1269, -1269, -1269, -1269,
     1685   10377,    54, -1269,   897, -1269, -1269,  7049, -1269, -1269,  1255,
     1686   10491, -1269, 10491,  7049,   155,  9587,  1283, -1269, -1269,  1280,
     1687   -1269, -1269, 10491,  1284,  1285, -1269, 10719, 10719, -1269, -1269,
     1688     966,    99, -1269, -1269,  1266, -1269,   966, -1269, -1269,  2561,
     1689     744,   155,  9587,  1290, -1269, -1269, -1269, -1269, -1269, 10297,
     1690    1286,   966,  3510, 10491, 10217,  1287,   966,  1294,  2561,  3047,
     1691   -1269, -1269, -1269, -1269, -1269,  8040, -1269, 10062, -1269, 10297,
     1692   -1269, -1269,  1274,  9981, -1269, -1269, 10217,   155,  3047,  1297,
     1693     717, -1269, 10062, -1269, -1269, -1269,  9981, -1269, -1269,   155,
     1694   -1269, -1269, -1269, -1269, -1269
    17031695};
    17041696
     
    17061698static const yytype_int16 yypgoto[] =
    17071699{
    1708    -1282,  3627,  2947, -1282,   196, -1282,    -1,     2,   856, -1282,
    1709    -1282, -1282,  -501,  -954,  -132,  4826, -1282,   550,   462,   467,
    1710      565,   480,   962,   971,   961,   967,   974, -1282,   504,  -258,
    1711     4453,   393,  -677,  -933, -1282,   413,  -701,   218, -1282,   102,
    1712    -1282,   320,  -898, -1282, -1282,    66, -1282, -1281,  -919,   162,
    1713    -1282, -1282, -1282, -1282,    13, -1141, -1282, -1282, -1282, -1282,
    1714    -1282, -1282,   227,    64,    51,   431, -1282,   424, -1282,    97,
    1715    -1282,  -349, -1282, -1282, -1282,   477,  -807, -1282, -1282,     6,
    1716     -868,   230,  2325, -1282, -1282, -1282,   -59, -1282,   481,   454,
    1717      -19,  1139,  3236, -1282, -1282,   158,   220,   716,  -245,  1368,
    1718    -1282,  1437, -1282, -1282,   109,  1702, -1282,  2029,   506, -1282,
    1719    -1282,  -372,  -403,  1113,  1114,   639,   879,   266, -1282, -1282,
    1720     1118,   636,  -572, -1282,  -366,   -43,    83, -1282, -1282,  -918,
    1721     -966,   649,  1279,   997,   363, -1282,  1310,   185,  -290,  -186,
    1722     -142,   601,   702, -1282,   952, -1282,  2189,  -442,   847, -1282,
    1723    -1282,   632, -1282,  -222, -1282,   -94, -1282, -1282, -1282, -1269,
    1724      342, -1282, -1282, -1282,  1124, -1282,    29, -1282, -1282,  -830,
    1725      -98, -1233,  -171,  2043, -1282,  2998, -1282,   853, -1282,  -164,
    1726      122,  -172,  -168,  -167,     4,   -41,   -39,   -37,  1629,    33,
    1727       68,    81,  -150,  -161,  -159,  -158,  -155,  -301,  -486,  -482,
    1728     -474,  -542, -1282,  -470, -1282, -1282,  -499,  1022,  1024,  1036,
    1729     1804,  4208,  -559,  -544,  -538,  -533,  -397, -1282,  -377,  -641,
    1730     -636,  -635,  -566,  -299,  -293, -1282, -1282,   562,    89,   -80,
    1731    -1282,    85,   134,  -613,  -380
     1700   -1269,  3902,  2604, -1269,   354, -1269,    -1,     2,   742, -1269,
     1701   -1269, -1269,  -489,  -961,  -282,  4749, -1269,   570,   459,   468,
     1702     357,   464,   844,   848,   849,   847,   850, -1269,  -229,  -231,
     1703    4555,   296,  -694,  -919, -1269,   166,  -721,   143, -1269,    86,
     1704   -1269,   216, -1143, -1269, -1269,   -17, -1269, -1146, -1036,    71,
     1705   -1269, -1269, -1269, -1269,   -75, -1160, -1269, -1269, -1269, -1269,
     1706   -1269, -1269,   141,   -26,    21,   316, -1269,   320, -1269,    13,
     1707   -1269,  -294, -1269, -1269, -1269,   364,  -829, -1269, -1269,    11,
     1708    -963,   125,  1704, -1269, -1269, -1269,   -72, -1269,    82,    49,
     1709     -18,  1039,  3754, -1269, -1269,    81,   133,   536,  -256,  1629,
     1710   -1269,  1307, -1269, -1269,   224,  1625, -1269,  1893,  1163, -1269,
     1711   -1269,  -426,  -421,   993,   994,   507,   747,   306, -1269, -1269,
     1712     980,   516,  -433, -1269,  -199,    75,   591, -1269, -1269,  -894,
     1713   -1000,     6,   910,   861,   176, -1269,   721,   158,  -317,  -210,
     1714    -149,   478,   577, -1269,   809, -1269,  2211,   740,  -443,   722,
     1715   -1269, -1269,   511, -1269,  -232, -1269,   -46, -1269, -1269, -1269,
     1716   -1268,   243, -1269, -1269, -1269,   981, -1269,    -7, -1269, -1269,
     1717    -827,   -35, -1227,  -161,  1978, -1269,  3527, -1269,   719, -1269,
     1718    -157,    41,  -172,  -170,  -163,     4,   -41,   -36,   -34,   777,
     1719      24,    33,    45,  -143,  -151,  -150,  -145,  -139,  -288,  -529,
     1720    -505,  -476,  -564,  -323,  -560, -1269, -1269,  -516,   899,   906,
     1721     915,  1643,  4256,  -522,  -566,  -549,  -514,  -546, -1269,  -372,
     1722    -680,  -674,  -672,  -603,  -208,  -186, -1269, -1269,    64,   293,
     1723     -93, -1269,  3162,   208,  -613,  -396
    17321724};
    17331725
     
    17381730static const yytype_int16 yytable[] =
    17391731{
    1740      109,   145,    46,   146,    94,   147,   380,   110,   433,   391,
    1741      381,   382,   494,   140,   257,   388,   867,   383,   759,   384,
    1742      385,   365,   250,   386,   486,   420,  1130,   579,   825,   389,
    1743      589,   909,   950,    46,   686,    94,   910,   911,   725,   842,
    1744     1122,   818,   730,  1068,    46,   824,    46,   819,   156,   858,
    1745      652,    47,   820,   613,  1170,  1382,    46,   617,   791,   681,
    1746      139,    30,    46,   876,   186,    46,  1067,   208,    46,   663,
    1747      218,   692,   211,   107,   968,   148,   118,   667,    30,  1181,
    1748      463,   465,    47,   380,   926,   106,   106,   381,   382,   103,
    1749      103,   119,   388,   107,   383,   406,   384,   385,   723,   814,
    1750      386,  1168,  1169,   815,    30,    46,   389,   909,    46,    74,
    1751      149,   816,   910,   911,    46,   817,   106,   656,   658,  1199,
    1752      103,   194,    93,   150,   464,  1442,   427,   392,   563,   160,
    1753     1402,  1403,   750,   552,   564,    30,   107,   145,   933,   146,
    1754       74,   147,   242,   448,   392,    46,   554,   156,   210,   107,
    1755     1453,   106,  1195,    93,   167,   103,   390,    46,    66,   355,
    1756       30,  1402,  1403,   359,   144,   195,    93,   553,   400,  1438,
    1757      392,   714,  1187,    30,   755,   720,   515,   409,   161,   360,
    1758       46,    46,   182,   156,   481,    93,   482,   459,    93,    66,
    1759      660,   828,   729,   160,  1404,    46,   243,   835,   262,   469,
    1760      464,   392,  1442,  1075,    46,   650,   156,  1442,  1197,   829,
    1761      742,   148,    46,   832,   145,    46,   146,   423,   147,   368,
    1762       67,  1247,  1442,   647,   826,  1413,   586,   160,  1438,  1442,
    1763       53,   111,   814,  1186,   849,   369,   815,   648,   852,   138,
    1764      357,   453,   161,    46,   816,    94,   149,   107,  1248,   845,
    1765      170,    67,   371,   846,   856,   856,   107,    46,    46,   150,
    1766      156,    53,  1170,  1015,    46,    93,   142,   818,   372,   856,
    1767      451,    46,   677,   819,   795,   579,   316,    93,   820,   639,
    1768     1014,   504,   163,   205,   107,   761,   679,   160,   398,   686,
    1769       30,   987,    47,   203,  1332,   165,   212,   668,   210,   170,
    1770      379,   182,   170,   564,   647,  1132,   579,   654,  1328,   175,
    1771      417,   579,   659,  1170,   193,   160,   442,   900,   648,    46,
    1772      425,   355,  1334,   851,    93,   814,   106,  -218,  -218,   815,
    1773      103,  1177,    46,    46,  -275,    93,   416,   816,   357,  1460,
    1774      459,  1001,   373,   237,   856,   734,   160,  1508,  1201,    46,
    1775       74,   240,   735,    46,   833,    74,   586,  1178,   374,   459,
    1776     1168,  1169,    36,    93,   316,  1178,    39,   459,   442,  1521,
    1777     -498,   160,   714,    40,    41,   242,   825,   467,   254,    46,
    1778     1068,   375,    36,   847,   177,   508,    39,   848,   -10,    46,
    1779      818,   355,  -218,    40,    41,   416,   819,   376,   811,    66,
    1780      586,   820,   107,  1067,   135,   136,   170,    46,   587,   687,
    1781       36,   580,    46,   689,    39,   912,   828,   606,   178,  -425,
    1782      161,    40,    41,  -109,  1187,   688,   842,   713,   179,   690,
    1783     1387,   687,  1170,   422,  1427,  1428,   689,   925,    46,    93,
    1784      863,  1184,  -426,   421,  -109,   714,    42,   904,   107,  1171,
    1785      135,   136,   905,   588,   109,   112,   143,  1185,   170,   847,
    1786      581,    67,    46,  1097,  1018,   170,   251,  1184,   880,   252,
    1787       46,    53,   355,  -109,    46,  -109,    94,  1128,    46,  -109,
    1788     1433,    60,  -102,  1309,   230,  1367,  -102,   486,   868,   231,
    1789      242,   318,   160,   160,  -109,  -109,  1113,   160,   154,   739,
    1790      380,  1101,   809,  1114,   381,   382,  1243,   266,    74,   182,
    1791      388,   383,    60,   384,   385,   756,   268,   386,   739,   442,
    1792      762,  1013,   442,    47,   389,   665,   170,    74,   442,   107,
    1793     1081,   135,   136,  1319,  1321,    74,  1087,  1015,   746,   878,
    1794      269,   316,   316,   170,   681,  1483,   316,   170,   270,  1320,
    1795     1322,  1488,   205,   319,  1368,   715,   248,   106,   678,   706,
    1796     1098,   103,   154,   538,   539,   726,  1503,   160,   453,   207,
    1797      727,  1510,  1187,   419,   320,  1263,  1264,   857,   857,  1187,
    1798      442,    74,   366,   442,    46,   160,   442,    46,  1087,    46,
    1799     1507,  1365,   857,   704,    93,  1326,   312,   508,   588,   705,
    1800      508,   321,  1327,   508,   322,  1516,   158,   459,    46,  1155,
    1801     1157,    36,  1520,   177,   721,    39,   316,   323,  1187,   207,
    1802      722,   535,    40,    41,    46,   471,   536,   537,   713,   565,
    1803       66,   392,   488,  1466,   316,   877,    46,   879,  1013,    46,
    1804     1466,     8,     9,    10,    11,    12,  1353,   255,   930,   160,
    1805     1354,   410,   542,   543,   324,   856,   414,   256,   869,   580,
    1806      626,   207,   804,  -450,   870,  -450,  1412,   857,    30,  -450,
    1807      158,   540,   541,  1026,    46,   569,    46,   392,   686,  1504,
    1808      736,   205,   354,   737,   312,   436,   743,   544,   545,   358,
    1809      580,    33,    67,   579,  1072,   580,   507,  1140,   316,   378,
    1810      731,   713,    53,   556,   929,   392,   732,   813,   581,   588,
    1811      614,   745,   370,   557,   618,   414,   407,   746,   476,   207,
    1812       46,    46,    60,  1109,  1034,   546,   547,   460,  1000,   107,
    1813      801,   135,   136,   390,    46,   892,   891,   509,   408,   843,
    1814      154,   746,   412,  1468,   581,  1469,   894,   896,   107,   647,
    1815      135,   136,   746,   564,   890,   207,   715,   677,   748,   207,
    1816      392,   977,   430,   648,   415,   899,   443,   978,   749,   901,
    1817      233,   679,   446,   809,   493,    74,   449,   442,   806,   989,
    1818      576,   856,   856,   221,   107,   705,  1505,   222,   472,   902,
    1819      226,   450,   228,   441,   908,   500,   678,   936,   515,   235,
    1820      611,   934,   170,   586,   615,     2,   198,     4,     5,     6,
    1821        7,   935,   107,    46,   135,   136,    74,   548,   170,  1235,
    1822      655,   657,   497,   415,    46,   564,  1361,   422,  1362,   715,
    1823      170,  1364,   746,  1369,   746,   513,   514,   746,   207,   746,
    1824      813,   588,   714,  1423,  1443,   511,  1258,   534,   158,  1424,
    1825      746,   909,  1524,  1140,  1237,   549,   910,   911,   564,   746,
    1826      982,   312,   312,    34,   550,    35,   312,   551,   881,   983,
    1827      392,    36,  1054,   168,   169,    39,   514,   318,   392,   988,
    1828      460,   554,    40,    41,   884,   606,   392,  1134,   436,   392,
    1829      567,   436,   809,  1182,  1151,  1002,   392,   436,   582,   460,
    1830       46,     2,   198,     4,     5,     6,     7,   460,   507,   112,
    1831     1154,   507,   586,   514,   507,    46,   640,   207,   205,  1280,
    1832     1281,   221,  1156,    46,   586,    -3,   641,  1140,   170,   714,
    1833     1299,  1300,   205,   813,   476,    36,   312,   584,   476,    39,
    1834     1223,    46,   392,   916,   588,   916,    40,    41,   642,   509,
    1835     1102,   711,   509,    60,   312,   509,  1461,  1462,   106,    34,
    1836      801,    35,   103,   516,   517,   518,   784,   207,   644,   844,
    1837      645,   585,   649,   586,  1124,   646,  1167,   739,   857,  1124,
    1838      247,   587,    74,  1402,  1403,   859,   519,   442,   520,   693,
    1839      521,  1159,    46,   242,   318,   392,   441,   875,   695,   441,
    1840      768,   769,  1080,   809,  -222,   441,  1230,   770,   771,     2,
    1841      198,     4,     5,     6,     7,   400,   643,   392,   312,  1140,
    1842      205,     8,     9,    10,    11,    12,   776,   777,   576,   106,
    1843      160,    66,  1124,   103,   733,   678,   807,   220,   809,   469,
    1844      318,   392,  1054,   678,   747,  1196,  1198,  1200,    30,   751,
    1845      221,   866,   226,   803,    36,   801,  1079,   511,    39,   841,
    1846      511,   588,   810,   511,   576,    40,    41,    34,   853,    35,
    1847      850,    33,   125,   872,   126,   127,   128,   580,   -12,   316,
    1848      826,   318,   586,   207,   865,   765,   766,   767,   279,   893,
    1849      895,  1056,   673,    67,   806,   488,  1495,   898,   713,  1165,
    1850     1166,   702,   924,    53,   857,   857,    46,   772,   773,   774,
    1851      775,  -399,   556,   207,   392,  1333,  1335,  1336,   207,    36,
    1852      722,  -502,   557,    39,   514,   106,   843,   938,   945,   103,
    1853       40,    41,   947,   952,   951,  1087,   956,   957,   221,    63,
    1854      113,   959,   960,   961,  1435,   962,   436,   460,   972,    74,
    1855      973,   984,   711,  1203,   985,   718,  1215,  1216,     8,     9,
    1856       10,    11,    12,   986,   990,   719,   442,   997,   998,  1027,
    1857       63,   141,  1003,  1004,  1103,  1005,   476,   493,  1006,  1007,
    1858     1008,  1009,  -276,   155,  -387,    30,   806,  -386,   460,     8,
    1859        9,    10,    11,    12,  1036,   211,  1069,  1071,  1189,   493,
    1860     1076,  1083,  1481,  1435,   207,   213,  1084,  1085,    33,  1054,
    1861     1086,  1091,  1112,  1090,  1093,   422,    30,    36,   207,   177,
    1862     1092,    39,    46,  -277,  1094,   711,   715,  1100,    40,    41,
    1863        8,     9,    10,    11,    12,  1356,  1110,   746,  1102,    33,
    1864      801,   249,  1111,  1115,   966,  1118,  1124,  1124,  1124,   748,
    1865     1120,   392,  1149,   672,   441,   392,  1172,    30,   514,   749,
    1866       67,  1192,   999,   674,    36,  1123,   168,   169,    39,  1146,
    1867       53,  1160,  1173,   210,   106,    40,    41,  1514,   103,  1174,
    1868       33,  1176,   317,  1421,  1175,  1190,  1191,   981,  1193,  1194,
    1869      332,  1202,  1207,  1208,   809,   106,    -3,  1213,  1219,   103,
    1870      354,   967,   702,  1227,  1220,  1054,   207,   807,  1254,  1231,
    1871     1236,  1241,   481,   715,  1245,  1249,  1238,   106,   387,    74,
    1872      380,   103,  1252,  1256,   381,   382,  1259,  1260,  1261,   388,
    1873     1102,   383,   405,   384,   385,   141,   411,   386,  1340,   137,
    1874     1265,   155,  1290,   389,  1272,  1277,  1282,  1317,   647,  1344,
    1875     1345,  1346,  1283,  1293,    60,  1294,   436,  1296,  1297,  1304,
    1876     1054,   428,   648,  1054,  1308,   431,  1029,   432,    66,  1312,
    1877     1323,  1325,   210,  1330,   447,  1494,    46,   106,  1329,  1331,
    1878       63,   103,    46,    46,  1337,   461,  1338,  1124,  1124,  1339,
    1879      232,   234,  1341,  1349,  1350,   468,  1378,   476,  1104,   312,
    1880     1351,    74,  1371,   411,  1352,  1054,  1363,  1359,   205,   106,
    1881     1054,  1360,  1370,   103,  1300,  1373,   806,  1374,   203,   212,
    1882     1376,  1377,  1379,  1383,  1384,  1102,   807,  1391,  1056,  1387,
    1883       67,   206,  1392,  1054,  1417,   702,  1396,    72,   514,  1397,
    1884       53,   224,  -388,  1400,  1138,   702,   841,  1411,  1422,  1415,
    1885     1189,   145,  1425,   146,  1429,   147,  1430,  1431,  1432,  1354,
    1886     1434,   702,  1103,  1450,   441,   577,  1439,  1444,    72,  1448,
    1887     1446,  1452,   607,  1496,  1454,    46,  1455,  1467,  1475,  1456,
    1888     1477,   206,  1054,  1479,  1480,   612,  1131,  1054,  1487,   612,
    1889     1499,  1502,   332,  1509,    46,    46,  1511,   156,  1523,  1517,
    1890     1054,   207,  1054,   214,   106,   887,  1054,   422,   103,  1054,
    1891      778,   780,    67,  1244,    46,  1054,   355,   421,   781,  1054,
    1892      779,   460,    53,   206,  1375,   106,   782,  1482,  1372,   103,
    1893     1307,  1414,   106,  1525,   442,   436,   103,   807,   461,  1240,
    1894     1498,  1029,   514,   445,  1470,  1239,  1212,   669,   670,    74,
    1895     1471,    36,   332,   177,  1103,    39,    74,   461,   917,  1089,
    1896     1088,   442,    40,    41,   697,   461,   798,  1119,  1035,   940,
    1897      806,   106,   807,  1099,  1318,   103,   170,  1497,   787,  1401,
    1898      788,   206,  1409,   871,   160,   948,     0,  1492,   335,   392,
    1899      497,   698,   789,  1257,   411,    74,   716,  1493,  1189,     0,
    1900     1138,     0,     0,  1288,  1289,  1189,  1291,     0,     0,   712,
    1901        0,    63,  1295,  1522,   467,  1298,   493,   206,     0,   411,
    1902        0,   206,   711,   411,  1441,  1527,     0,     0,    36,  1445,
    1903      168,   169,    39,   316,     0,     0,     0,   487,     0,    40,
    1904       41,     0,     0,   441,  1189,     0,  -278,     0,     0,  1103,
    1905        0,   332,  1459,     8,     9,    10,    11,    12,     0,   429,
    1906       67,     0,     0,     0,   358,   702,   702,    67,     0,     0,
    1907       53,     0,   627,   157,  1138,     0,     0,    53,    72,     0,
    1908       30,   493,   493,    72,     0,     0,  1104,     0,     0,   187,
    1909        0,    60,   209,     0,   207,   219,   790,     0,     0,     0,
    1910      206,     0,    75,    33,     0,     0,    67,     0,     0,   711,
    1911        0,   800,   514,   577,     0,     0,    53,     0,     0,  1515,
    1912        0,   249,   702,   702,     0,  1515,   822,     0,     0,     0,
    1913        0,   703,     0,    75,  1515,     0,     0,     0,  1515,     0,
    1914        0,     0,     0,  1420,   577,     0,     0,     0,     0,   577,
    1915        0,   691,     0,     0,     0,   612,   445,     0,     0,   332,
    1916      332,     8,     9,    10,    11,    12,  1138,     0,   215,     0,
    1917      214,     0,   157,   460,   332,     0,  1408,     0,  1104,   206,
    1918        0,     0,     0,     0,   356,     0,     0,     0,    30,   724,
    1919      335,   728,   698,   207,     0,     0,   206,     0,     0,     0,
    1920        0,     0,     0,     0,     0,   461,     0,     0,   157,     0,
    1921      712,    33,     0,   913,     0,     0,     0,     0,     0,     0,
    1922        0,    36,     0,   177,     0,    39,     0,     0,   807,   206,
    1923        0,   157,    40,    41,     0,     0,    72,     0,     0,     0,
    1924        0,     0,   424,     0,     0,     0,   461,     0,     0,   332,
    1925      335,     0,   934,   337,   586,    72,     0,   672,   939,   392,
    1926        0,   411,   935,    72,     0,   673,     0,   674,     0,     0,
    1927        0,     0,     0,  1104,     0,  1315,     0,     0,     0,     0,
    1928        0,     0,     0,   712,     0,     0,     0,     0,   965,   335,
    1929      522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
    1930        0,     0,     0,  1473,   702,     0,   493,   335,     0,    72,
    1931        0,     0,     0,     0,     0,   702,   702,   702,     0,     0,
    1932        0,   460,     0,   532,     0,   698,     0,     0,   460,     0,
    1933     1473,     0,   703,     0,     0,   698,   864,     0,     0,     0,
    1934      995,   800,     0,    75,     0,   206,   356,   249,    75,   335,
    1935        0,   698,     0,   312,     0,     0,     0,     0,     0,     0,
    1936     1012,     0,   702,     0,   493,   493,     0,   460,     0,     0,
    1937        0,     0,     0,     0,     0,   206,     0,     0,   903,     0,
    1938      206,     0,     0,     0,     0,     0,   394,     8,     9,    10,
    1939       11,    12,   249,   402,     0,     0,     0,   920,     0,     0,
    1940        0,     0,     0,   923,     0,     0,     0,     0,     0,   335,
    1941        0,  1474,    63,     0,    30,     0,   356,     0,     0,     0,
    1942        0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
    1943        0,     0,     0,     0,     0,   215,   800,    33,  1474,     0,
    1944        0,     0,    36,     0,   177,     0,    39,     0,     0,     0,
    1945        0,     0,     0,    40,    41,   337,     0,   335,   335,     0,
    1946       77,     0,   394,     0,     0,   703,   206,     0,   120,   123,
    1947      124,     0,   335,     0,  1096,   703,     0,     0,   178,     0,
    1948      206,     0,   411,   113,     0,     0,     0,     0,   179,     0,
    1949      335,   703,     0,     0,     0,   216,     0,   332,     0,     0,
    1950      487,    75,     0,    72,     0,     0,     0,     0,   335,     0,
    1951        0,   249,     0,     0,     0,   337,   562,     0,     0,     0,
    1952       75,     0,     0,     0,   566,     0,     0,   570,    75,   612,
    1953        0,   577,     0,     0,     0,     0,     0,     0,   244,     0,
    1954      245,     0,     0,     0,    72,     0,     0,   335,     0,   141,
    1955        0,     0,     0,     0,   337,   698,   698,     0,   332,   332,
    1956      332,     0,     0,     0,     0,     0,     0,     0,   206,     0,
    1957        0,     0,   337,     0,    75,     0,   627,     0,     0,  1188,
    1958      338,   335,  1039,   394,     0,     0,     0,   402,     0,    84,
     1732     110,   146,    46,   445,    95,   432,   147,   918,   148,   392,
     1733     256,   393,   111,   919,   141,   920,   377,   857,   394,   498,
     1734     609,    47,   403,  1161,   140,   400,  1127,   959,   701,   707,
     1735     395,   396,   881,    46,   832,    95,   397,  1360,   839,   401,
     1736     831,    94,   398,   774,    46,   506,    46,   505,   158,   740,
     1737     113,   833,    47,   745,   806,   604,    46,   843,  1069,   337,
     1738    1070,  1119,    46,   850,   189,    46,   149,   212,    46,    30,
     1739     222,   828,    94,   976,  1171,   150,   696,   215,   263,  1177,
     1740     840,    66,    60,   145,   918,    94,   834,   151,   108,   392,
     1741     919,   393,   920,   156,   738,   829,   475,   477,   394,   935,
     1742     119,   185,   672,   674,    94,   400,    46,    94,   160,    46,
     1743     395,   396,    66,    60,   749,    46,   397,   668,   120,   401,
     1744     108,   750,   398,   198,   830,    53,   112,  1429,  1159,  1160,
     1745     402,   596,   108,    67,  1189,   404,   677,  1167,   169,  1234,
     1746     146,  -218,  -218,  1436,   681,   147,    46,   148,   158,   766,
     1747      30,  1414,   254,   565,    46,   371,    53,   139,   156,    46,
     1748     143,   367,   418,  1168,    67,    30,  1235,   199,    30,  1168,
     1749     770,   372,   628,   160,   476,    30,   632,   744,   439,  1185,
     1750     471,   249,   421,    46,    46,    94,   158,   566,   206,  1378,
     1751    1379,   216,   318,   666,   152,   757,   208,   460,    94,    46,
     1752     735,   334,   872,   873,   828,   149,  -218,    46,   844,   158,
     1753    1414,   165,   847,  1176,   150,  1161,    46,   528,   890,    46,
     1754     146,   435,   391,   185,    74,   147,   151,   148,   829,   248,
     1755     173,   404,   412,   864,   404,    30,  1418,   867,   108,   481,
     1756     463,   404,   663,   587,  1077,   476,    94,   465,   177,    46,
     1757     422,    95,   163,  1380,   426,    74,   664,   830,    94,   832,
     1758     810,   167,  1161,    46,    46,  1005,   158,   567,    47,   427,
     1759      46,  1111,   337,  1017,   729,   410,   833,    46,  1112,   609,
     1760     257,   843,    30,   258,   318,   448,   701,   516,    94,   994,
     1761     197,   692,   942,   104,   104,  1129,   828,  1187,   429,   841,
     1762     453,   601,   479,  1307,  1484,   694,  1378,  1379,   437,  1309,
     1763    1308,   834,  1177,  1418,   108,  1018,   426,   163,  1418,   488,
     1764     829,  1483,   108,   663,   104,    46,  1497,   367,    66,    60,
     1765    1191,   427,  -274,  1418,   472,   243,  1492,   664,   521,   471,
     1766    1418,   156,   433,  1496,    46,    46,   848,   380,   601,   830,
     1767     434,   322,   776,   523,   655,  -109,   160,   248,   471,   104,
     1768    1313,    46,  1365,   381,    94,    46,   471,  1159,  1160,   246,
     1769    1389,  1069,    53,  1070,  1161,   520,  -109,   832,   108,  -498,
     1770      67,   997,   670,   596,   603,   586,   911,   675,   593,   260,
     1771     431,    46,   -10,   108,   833,   136,   137,   108,   857,   136,
     1772     234,    46,   817,   367,  1459,  1403,  1404,   626,   172,   576,
     1773    1464,   630,   596,   428,   334,   577,  1315,   596,   108,    46,
     1774     136,   137,   840,   383,    46,  1479,    46,   248,   324,   834,
     1775    1486,   337,   385,   235,   239,   870,   870,   870,   236,   384,
     1776     185,   682,  -424,   322,   483,   866,  1346,   577,   386,  -425,
     1777      46,   500,   870,  1177,   325,   519,   877,   921,   172,   505,
     1778    1177,   172,   272,  1021,  1147,  1149,   110,   387,   318,   318,
     1779     717,    74,   555,   556,    46,   428,    74,   208,   729,   934,
     1780    1409,   505,    46,   388,   367,   702,    46,  1080,    95,   693,
     1781      46,   498,   274,   472,   894,   448,  1125,   882,   448,  1177,
     1782     163,   703,   275,  1230,   448,    47,   172,   557,   558,  1099,
     1783     453,   754,   472,   453,   609,   392,   113,   393,   173,   453,
     1784     472,   679,   704,   860,   394,    94,   870,   861,   771,   603,
     1785     862,   754,   400,   777,   863,   629,   395,   396,   705,   633,
     1786     104,   488,   397,   318,   702,   488,   401,   598,   398,  1016,
     1787    1085,   704,   729,  1096,  1344,   721,   521,   728,   696,   521,
     1788     914,   318,   521,  1174,   726,    66,    60,   915,   172,   988,
     1789     276,   523,  1018,   334,   523,  1174,   548,   523,   365,  1175,
     1790     465,   549,   550,   366,  1300,   671,   673,  1442,   326,  1302,
     1791      46,  1291,   337,   520,  1442,   108,   520,   136,   137,   520,
     1792    1301,  1085,    46,   225,    46,  1303,   208,   226,   471,    53,
     1793     230,   569,   232,   404,   719,   870,   762,    67,   892,   241,
     1794     720,   570,   172,    46,   327,  1388,   318,   322,   322,   172,
     1795     999,   741,  1347,  1480,   817,    74,   742,   815,   862,    46,
     1796     593,   827,  1095,   603,   328,  -102,   764,  1031,   404,  -102,
     1797     939,   891,    46,   893,    74,    46,   765,   551,   552,   701,
     1798    1016,  -109,    74,  -109,  1029,   751,   337,  -109,   752,   856,
     1799     819,   758,   370,   519,   593,   717,   519,  1332,   329,   519,
     1800     865,  1333,  -109,  -109,  1074,   943,   883,   601,   642,    46,
     1801     330,    46,   884,    36,   736,   944,   172,    39,   382,  1444,
     1802     737,  1445,   322,   378,    40,    41,   559,   560,    74,   871,
     1803     871,   871,  -449,   172,  -449,   746,   402,   172,  -449,   938,
     1804     322,   747,  1107,   817,   762,   989,   871,   761,   917,    42,
     1805     693,  1036,   799,   762,   334,    46,    46,   905,   390,   144,
     1806     907,   984,  1481,   762,   225,   996,   762,   985,   419,    46,
     1807     138,   720,  1222,  1340,   903,   434,   448,   420,   577,   762,
     1808    1128,   728,   472,   910,  1341,   663,  1343,   912,   726,   424,
     1809     762,   453,   762,   692,   827,   603,   442,   104,   172,   664,
     1810      36,   455,   170,   171,    39,   322,   488,   694,   918,  1348,
     1811     458,    40,    41,   596,   919,   762,   920,   859,   461,   598,
     1812     871,   237,   240,   211,   472,   462,  1399,   717,   334,   108,
     1813    1031,    36,  1400,   874,   484,    39,   366,   717,  1419,  1500,
     1814     238,   159,    40,    41,   762,   577,   889,    46,   858,   248,
     1815     324,   404,   717,   598,   493,   728,   494,   190,   512,    46,
     1816     213,   528,   726,   223,   553,   554,   208,   733,   509,     8,
     1817       9,    10,    11,    12,   211,   524,   108,   734,   136,   137,
     1818     208,   526,   527,   324,   404,   998,   827,   561,   126,   815,
     1819     127,   128,   129,   547,   562,   578,    30,   404,   603,  1224,
     1820     563,   505,   225,  -275,   230,   581,  1056,   404,  1172,   871,
     1821       8,     9,    10,    11,    12,   817,   895,   211,   404,    33,
     1822     564,   898,   819,   404,    74,   567,   529,   530,   531,   527,
     1823     333,    46,   787,   788,   789,   790,  -421,    30,   412,   659,
     1824     404,   159,   585,   500,    46,   481,   324,   404,   729,   532,
     1825     588,   533,    46,   534,   368,   638,  1263,  1264,   505,   505,
     1826      33,  1131,   172,   404,   656,   527,    74,   841,   324,   601,
     1827      46,   208,  1314,  1316,  1317,  1282,  1283,   211,   815,   159,
     1828     457,   657,   448,   693,  1100,  1143,   665,   404,    66,    60,
     1829     225,   693,  1146,   667,   601,   172,    36,   453,   170,   171,
     1830      39,  1121,   159,  1148,   754,   601,  1121,    40,    41,   603,
     1831    1210,   172,   404,   658,   436,   211,  1151,  1079,   925,   211,
     1832     925,   488,  1102,   318,   172,  1437,  1438,   729,  1378,  1379,
     1833     783,   784,    53,   685,     2,   202,     4,     5,     6,     7,
     1834      67,   785,   786,   791,   792,   717,   717,   660,   661,   662,
     1835    1058,   253,   708,   748,  1121,   710,  -222,   759,   763,    63,
     1836     114,   767,   820,   -12,  1056,   822,   824,  1186,  1188,  1190,
     1837     856,   835,     2,   202,     4,     5,     6,     7,   879,   880,
     1838     886,   285,   906,   908,   913,   688,   909,  1217,   960,  -398,
     1839      63,   142,    34,   737,    35,   933,  -502,  1471,  1101,   947,
     1840     224,   717,   717,   157,   211,   954,     8,     9,    10,    11,
     1841      12,   956,   961,   965,   966,   643,   968,  1158,   969,   970,
     1842     368,   172,   971,   337,    46,   217,   980,   991,   992,   993,
     1843      34,    74,    35,    30,  1007,  1008,  1085,  1009,   780,   781,
     1844     782,  1010,  1011,  1179,   472,  1012,  1013,  1024,  -386,   448,
     1845     815,  -385,  1071,  1082,    -3,  1038,    33,   434,  1081,  1193,
     1846    1083,    36,   255,  1084,   453,    39,  1091,  1411,  1089,   505,
     1847    1073,  1088,    40,    41,  1092,  1090,  1098,  1108,  1109,   762,
     1848    1110,   527,   322,   211,   974,  1113,  1120,    53,  1117,  1141,
     1849    1164,  1162,  1163,  1165,   706,    67,   368,    42,  1166,   457,
     1850     104,  1180,  1181,   323,  1183,  1184,  1192,   144,  1182,  1198,
     1851     215,   255,   344,  1196,    -3,  1197,  1203,  1208,    46,  1056,
     1852    1214,  1225,  1223,   493,  1218,  1457,  1411,   505,   505,   858,
     1853    1228,   728,   739,   211,   743,  1232,  1236,  1239,   726,  1296,
     1854    1241,   399,  1243,  1244,  1249,  1273,   210,  1245,  1246,  1247,
     1855    1100,  1256,  1265,  1121,  1121,  1121,   417,  1266,  1276,   142,
     1856     423,  1277,  1342,  1490,   157,   334,   104,  1290,   717,  1298,
     1857       2,   202,     4,     5,     6,     7,   717,   717,   717,  1279,
     1858     904,  1280,  1287,   172,  1304,   440,    74,  1306,  1102,   443,
     1859    1310,   444,  1312,  1318,  1311,  1319,  1320,   210,  1322,  1328,
     1860     459,    66,    60,  1329,  1330,  1331,    63,  1056,  1338,  1339,
     1861    1349,   473,  1283,   527,  1352,  1354,   392,   726,   393,  1355,
     1862     717,   480,  1357,   206,   216,   394,  1362,    72,    34,   423,
     1863      35,   208,   400,  1365,  1361,  1372,  1100,   395,   396,  1373,
     1864     210,  -387,  1376,   397,  1397,    53,   401,  1387,  1391,   398,
     1865    1393,   663,  1401,    67,   211,   104,  1335,   975,    72,  1056,
     1866    1398,  1410,  1056,  1058,  1101,   664,  1271,  1272,  1420,  1274,
     1867    1405,  1406,  1407,  1408,  1102,  1278,  1179,   472,  1281,  1422,
     1868      46,    46,   211,   878,  1333,  1121,  1121,   211,  1415,  1350,
     1869    1424,  1426,  1428,   218,   718,   255,  1430,  1431,   594,  1443,
     1870     210,  1056,  1432,   527,   622,  1451,  1056,  1453,  1455,  1456,
     1871    1463,  1475,   990,  1478,  1485,   433,  1487,   627,  1493,  1499,
     1872      53,   627,   995,   434,   255,   793,  1100,   901,    67,  1056,
     1873     794,   796,   795,  1231,  1470,   797,  1289,  1006,   210,  1390,
     1874    1458,  1501,   210,   929,    74,  1351,  1474,   146,  1226,   932,
     1875    1101,  1353,   147,  1227,   148,  1202,  1446,  1086,   712,   683,
     1876     684,   926,   812,    36,  1102,   170,   171,    39,  1087,  1472,
     1877     473,    46,  1116,   211,    40,    41,   885,  1037,  1056,   949,
     1878     347,  1097,  1299,  1056,   344,   731,   957,   211,   802,   473,
     1879      46,    46,   104,   158,  1449,   803,  1056,   473,  1056,   370,
     1880       0,     0,  1056,  1377,   804,  1056,  1385,     0,     0,  1450,
     1881      46,  1056,   367,   104,     0,  1056,     0,  1179,   472,    74,
     1882       0,  1449,     0,   713,  1179,   472,   423,   210,  1384,   479,
     1883    1447,     0,   104,     0,     0,    36,  1450,   179,   180,    39,
     1884    1101,   727,     0,    63,   318,  1417,    40,    41,     0,     0,
     1885    1421,   423,     0,   441,  1396,   423,     0,  1473,     0,     0,
     1886       0,    53,     0,  1179,   472,     0,     0,     0,    53,    67,
     1887     172,   181,     0,  1435,    72,     0,    67,     0,   211,    72,
     1888       0,   182,     0,   255,   344,     0,     0,     0,   104,     0,
     1889       0,   527,    36,  1498,   179,   180,    39,     0,     0,   718,
     1890       0,     0,     0,    40,    41,  1503,   210,    53,     8,     9,
     1891      10,    11,    12,     0,     0,    67,     0,     0,   104,     0,
     1892       0,   643,     0,     0,     0,     0,     0,  1041,   261,   805,
     1893    1156,  1157,   509,     0,     0,    30,     0,     0,   262,     0,
     1894    1491,     0,     0,     0,     0,    75,  1491,   627,   818,     0,
     1895     594,     0,     0,     0,     0,  1491,   210,     0,    33,  1491,
     1896      74,   837,     0,     0,     0,     0,     0,    74,     0,     0,
     1897       0,     0,   218,     0,     0,     0,    75,     0,     0,   594,
     1898       0,     0,     0,     0,   594,     0,  1205,  1206,     0,     0,
     1899     627,     0,     0,   344,   344,   344,     0,     0,     0,   569,
     1900       0,   404,     0,   322,     0,     0,    74,     0,   104,   570,
     1901     344,   219,   209,     0,     0,   643,     0,     0,     0,     0,
     1902       0,     0,   228,     0,    54,    54,     0,     0,   713,   104,
     1903       0,   718,   172,     0,     0,     0,   104,     0,    72,   473,
     1904       0,   718,    36,   527,   255,   727,    39,     0,   922,     0,
     1905       0,  -276,   347,    40,    41,    54,   718,    72,     8,     9,
     1906      10,    11,    12,   209,   211,    72,     0,     0,     0,     0,
     1907       0,     0,     0,     0,     0,   104,     0,   210,   825,     0,
     1908     601,   473,     0,     0,   344,    30,     0,    54,   602,     0,
     1909      54,   347,  -277,   948,     0,     0,   423,     0,   349,     8,
     1910       9,    10,    11,    12,     0,   210,   209,     0,    33,   347,
     1911     210,    72,  1041,     0,     0,     0,     0,     0,   255,   727,
     1912       0,     0,     0,     0,   973,     0,    30,     0,     0,     0,
     1913       0,     0,     8,     9,    10,    11,    12,     0,     8,     9,
     1914      10,    11,    12,     0,     0,     0,     0,     0,   406,    33,
     1915       0,     0,   347,  1321,     0,   414,     0,     0,     0,    30,
     1916     713,  1323,  1324,  1325,     0,    30,   209,     0,     0,     0,
     1917     713,     0,     0,   344,     0,   627,     0,   342,  1004,   627,
     1918     818,     0,    33,     0,     0,   713,     0,    36,    33,   179,
     1919     180,    39,    75,     0,     0,  1015,   210,    75,    40,    41,
     1920       0,     0,     0,     0,   209,  1356,     0,     0,   209,     0,
     1921     210,     0,     0,    77,     0,  1269,   347,     0,     0,     0,
     1922       0,     0,     0,   600,   499,   601,     0,   406,     0,   764,
     1923       0,   404,     0,   602,     0,     0,     0,     0,   211,   765,
     1924       0,    54,     0,     0,    77,     0,    63,     0,     0,   718,
     1925     718,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1926       0,   347,   347,   347,     0,     0,     0,     0,   627,     0,
     1927       0,    54,     0,     0,     0,     0,     0,     0,   347,   220,
     1928       0,   575,     0,     8,     9,    10,    11,    12,     0,   579,
     1929     219,     0,   582,   209,     0,     0,   347,     0,     0,     0,
     1930       0,   210,     0,  1094,     0,   718,   718,    72,     0,     0,
     1931      30,   423,   114,   347,     0,     0,     0,    36,     0,   179,
     1932     180,    39,     0,   121,   124,   125,   344,     0,    40,    41,
     1933     211,     0,     0,    33,   535,   536,   537,   538,   539,   540,
     1934     541,   542,   543,   544,     0,     0,     0,     0,     0,    72,
     1935       0,     0,   347,   687,   406,   404,    75,     0,   414,     0,
     1936     594,   688,     0,   689,     0,     0,   350,   545,     0,     0,
     1937     349,     0,   209,   142,   943,    75,   601,     0,   713,   713,
     1938       0,   344,   344,    75,   944,     0,     0,   347,     0,   209,
     1939       0,     0,     0,     0,   250,     0,   251,     0,     0,     0,
     1940       0,  1178,     0,     0,     0,     0,     0,     0,     0,   349,
     1941       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     1942       0,     0,   209,     0,     0,     0,     0,   349,   347,    75,
     1943       0,     0,     0,     0,   713,   713,     0,     0,   347,    30,
     1944     627,   347,   406,  1297,     0,     0,   218,     0,   347,   342,
     1945       0,     0,     0,   347,     0,     0,     0,     0,     0,     0,
     1946      77,     0,    33,     0,     0,    77,     0,    36,     0,     0,
     1947     349,    39,   718,     0,     0,   389,     0,     0,    40,    41,
     1948     718,   718,   718,     0,     0,   408,   409,   210,     0,     0,
     1949     413,     0,   415,   416,     0,   727,     0,     0,     0,     0,
     1950       0,     0,     0,   733,     0,     0,     0,     0,    54,     0,
     1951       0,     0,     0,   734,    72,    36,     0,   179,   180,    39,
     1952       0,     0,     0,     0,   718,     0,    40,    41,     0,     0,
     1953       0,    84,   575,   575,   349,     0,     0,     0,  1270,     0,
     1954       0,     0,     0,   209,     0,     0,     0,     0,     0,   342,
     1955       0,   600,     0,   601,     0,   255,     0,     0,   220,    63,
     1956       0,   602,    84,     0,     0,     0,     0,     0,     0,     0,
     1957       0,   209,   713,     0,   727,     0,   209,     0,   114,   349,
     1958     349,   349,     0,     0,     0,     0,     0,     0,     0,     0,
     1959       0,     0,     0,     0,   347,     0,   349,   221,     0,     0,
     1960       0,   713,     0,     0,     0,     0,     0,     0,     0,   713,
     1961     713,   713,     0,   342,   349,     0,     0,     0,     0,   896,
     1962     344,   344,     0,   899,    77,    75,     0,     0,     0,     0,
     1963       0,   349,     0,     0,  1178,     0,     0,     0,   350,     0,
     1964       0,     0,     0,    77,     0,     0,   347,   347,     0,   347,
     1965     347,    77,     0,   713,     0,     0,   406,     0,   342,   342,
     1966     342,   210,   209,     0,   114,     0,     0,    75,     0,    72,
     1967     349,     0,     0,     0,     0,   342,   209,   350,     0,     0,
     1968       0,     0,     0,     0,   357,     0,     0,     0,     0,     0,
     1969       0,     0,     0,     0,     0,   350,   499,    77,     0,     0,
     1970       0,     0,   347,   347,     0,   349,     0,     0,     0,     0,
     1971       0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     1972      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     1973      23,    24,     0,   344,    25,    26,    27,     0,   350,     0,
     1974       0,     0,    30,   446,     0,     0,   349,     0,     0,   342,
     1975       0,     0,     0,   210,   114,     0,   349,     0,     0,   349,
     1976       0,     0,     0,   347,   219,    33,   349,   209,   575,     0,
     1977       0,   349,    37,    38,     0,  1178,     0,     0,    84,     0,
     1978       0,     0,  1178,    84,     0,     0,     0,     0,     0,     0,
     1979       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     1980      12,     0,   350,     0,     0,     0,   218,     0,   447,     0,
     1981       0,     0,   700,     0,     0,     0,   109,     0,     0,     0,
     1982       0,  1178,    36,    30,   179,   180,    39,    72,  1488,     0,
     1983       0,     0,    75,    40,    41,     0,     0,     0,   342,     0,
     1984     347,     0,   347,     0,     0,   342,    33,   350,   350,   350,
     1985       0,    36,     0,   179,   180,    39,     0,     0,   687,     0,
     1986     404,     0,    40,    41,   350,     0,     0,     0,   689,   347,
     1987       0,   807,   808,     0,     0,     0,   221,   347,   347,   347,
     1988     406,     0,   350,     0,     0,     0,     0,   181,   347,   347,
     1989       0,     0,     0,    77,     0,     0,     0,   182,     0,   350,
     1990       0,   842,    72,     0,   845,   846,     0,   849,     0,   851,
     1991     852,    54,   349,     0,   853,   854,     0,     0,     0,     0,
     1992       0,   347,     0,     0,     0,     0,     0,     0,     0,     0,
     1993       0,     0,     0,     0,     0,    77,     0,     0,   350,     0,
     1994       0,     0,    84,     0,     0,     0,    36,     0,   179,   180,
     1995      39,     0,     0,   209,  1132,     0,   357,    40,    41,     0,
     1996       0,    84,     0,     0,   349,   349,     0,   349,   349,    84,
     1997    1144,     0,     0,   350,   164,     0,   168,    54,     0,   174,
     1998     175,   176,  1468,   178,   404,     0,     0,    75,     0,     0,
     1999       0,   342,  1469,     0,     0,   357,   927,   928,   229,     0,
     2000       0,   347,   930,     8,     9,    10,    11,    12,     0,     0,
     2001     244,   245,     0,   357,   350,    84,     0,     0,     0,     0,
     2002     349,   349,     0,     0,   350,     0,     0,   350,     0,     0,
     2003      30,     0,   220,     0,   350,     0,     0,     0,     0,   350,
     2004       0,     0,     0,    72,     0,  1211,   342,   342,     0,     0,
     2005      72,     0,     0,    33,     0,     0,   357,     0,    36,     0,
     2006     179,   180,    39,     0,     0,     0,    54,     0,     0,    40,
     2007      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2008       0,   349,     0,     0,     0,     0,     0,     0,     0,    72,
     2009       0,     0,     0,     0,   687,     0,   404,     0,     0,     0,
     2010      77,     0,     0,     0,   689,     0,     0,     0,     0,     0,
     2011       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2012     357,     0,     0,     0,   219,     0,     0,   209,     8,     9,
     2013      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2014      20,    21,    22,    23,    24,    75,     0,    25,    26,    27,
     2015       0,     0,     0,     0,     0,    30,   446,     0,   349,     0,
     2016     349,     0,     0,     0,     0,   357,   357,   357,     0,     0,
     2017       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2018     350,     0,   357,     0,     0,    37,    38,   349,     0,     0,
     2019       0,     0,     0,     0,     0,   349,   349,   349,     0,     0,
     2020     357,     0,    54,    54,     0,     0,   349,   349,     0,     0,
     2021       0,    84,     0,     0,     0,     0,     0,   357,     0,   209,
     2022      75,   447,     0,     0,    54,   931,     0,     0,     0,   109,
     2023       0,     0,   350,   350,     0,   350,   350,     0,     0,   349,
     2024       0,     0,     0,    54,     0,     0,     0,     0,     0,     0,
     2025       0,     0,     0,    84,     0,    77,   357,     0,     0,     0,
     2026       0,     0,     0,   592,   599,     0,     0,     0,     0,     0,
     2027       0,     0,     0,     0,     0,   623,   624,     0,     0,     0,
     2028       0,     0,     0,     0,     0,   342,   342,     0,   350,   350,
     2029       0,   357,     0,     0,    54,     0,     0,     0,     0,    54,
     2030       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2031      17,    18,    19,    20,    21,    22,    23,    24,  -278,   349,
     2032      25,    26,    27,     0,     0,     0,     0,     0,    30,    54,
     2033       0,     0,   357,     0,     0,     0,     0,     0,     0,     0,
     2034       0,     0,   357,     0,     0,   357,     0,     0,     0,   350,
     2035     221,    33,   357,     0,     0,     0,     0,   357,    37,    38,
     2036       0,    75,  -278,     0,     0,     0,     0,     0,    75,     0,
     2037       0,     0,     0,     0,     0,  1207,     0,     8,     9,    10,
     2038      11,    12,     0,     0,     0,     0,     0,     0,     0,     0,
     2039       0,     0,   220,     0,   333,     0,     0,     0,   342,     0,
     2040       0,     0,   109,     0,    30,     0,     0,    75,     0,     0,
     2041       0,     0,     0,    77,     0,     0,     0,     0,    84,    54,
     2042       0,     0,     0,     0,     0,     0,   350,    33,   350,     0,
     2043       0,     0,    36,     0,   179,   180,    39,     0,     0,     0,
     2044      54,     0,     0,    40,    41,     0,     0,    54,     0,     0,
     2045       0,     0,     0,     0,     0,   350,     0,     0,     0,     0,
     2046       0,     0,     0,   350,   350,   350,     0,     0,  1468,     0,
     2047     404,     0,     0,     0,   350,   350,     0,     0,  1469,     0,
     2048       0,     0,     0,     0,     0,     0,    54,     0,    77,     0,
     2049       0,     0,     0,     0,     0,  1288,     0,     0,   357,     0,
     2050       0,     0,     0,     0,     0,     0,     0,   350,     0,  1014,
     2051       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2052       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
     2053       0,     0,     0,     0,     0,     0,     0,     0,   277,    30,
     2054     278,     0,     0,     0,     0,   214,     0,     0,     0,     0,
     2055     357,   357,     0,   357,   357,     0,     0,     0,     0,     0,
     2056       0,   279,    33,     0,     0,     0,     0,   280,     0,     0,
     2057       0,   281,     0,    84,   282,   283,   284,   285,    40,    41,
     2058       0,   286,   287,     0,     0,     0,     0,   350,     0,   288,
     2059       0,   162,     0,     0,     0,     0,   268,     0,     0,     0,
     2060       0,     0,     0,   289,     0,   373,   357,   357,     0,     0,
     2061       0,     0,   291,   813,   293,   294,   295,   296,     0,     0,
     2062       0,     0,     0,     0,     0,   162,     0,     0,     0,    77,
     2063       0,     0,     0,     0,     0,   363,    77,     0,   936,   369,
     2064     937,     0,     0,     0,     0,     0,     0,   940,   941,     0,
     2065       0,     0,   946,     0,  1152,     0,     0,     8,     9,    10,
     2066      11,    12,     0,     0,   951,     0,     0,   357,     0,   955,
     2067       0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
     2068       0,     0,     0,   277,    30,   278,     0,   162,     0,     0,
     2069       0,     0,     0,   981,     0,     0,     0,     0,     0,   214,
     2070       0,     0,     0,     0,     0,     0,   279,    33,     0,     0,
     2071     221,     0,   280,     0,     0,     0,   281,   162,   454,   282,
     2072     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2073       0,    84,     0,     0,   288,     0,     0,   592,     0,     0,
     2074       0,   369,     0,     0,   357,     0,   357,     0,   289,   162,
     2075     373,     0,     0,     0,     0,     0,     0,   291,  1153,   293,
     2076     294,   295,   296,     0,     0,     0,     0,     0,     0,     0,
     2077       0,   454,     0,   357,   162,     0,     0,     0,     0,     0,
     2078       0,   357,   357,   357,     0,     0,     0,     0,     0,     0,
     2079       0,     0,   357,   357,  1025,  1026,  1027,  1028,     0,  1030,
     2080       0,     0,     0,     0,     0,     0,    84,     0,     0,     0,
     2081       0,     0,     0,     0,  1072,     0,     0,     0,     0,     0,
     2082       0,   597,     0,     0,     0,   357,   621,     0,  1078,     0,
     2083       0,     0,     0,     1,     2,   202,     4,     5,     6,     7,
    19592084       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    1960       18,    19,    20,    21,    22,    23,    24,  -279,     0,    25,
    1961       26,    27,   698,   698,   337,     0,     0,    30,   377,     0,
    1962       84,   800,   249,   335,     0,     0,     0,   396,   397,     0,
    1963        0,     0,   401,   335,   403,   404,     0,     0,   214,   335,
    1964       33,     0,     8,     9,    10,    11,    12,    37,    38,   335,
    1965        0,  -279,     0,     0,     0,   217,     0,   249,     0,     0,
    1966        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    1967       77,   394,     0,     0,   337,    77,   627,     0,   612,     0,
    1968      712,  1021,     0,   567,     0,   612,   332,   332,     0,     0,
    1969        0,   108,    33,     0,     0,   703,   703,    36,     0,   584,
    1970        0,    39,     0,     0,     0,     0,     0,     0,    40,    41,
    1971       72,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1972        0,     0,   337,   337,     0,    54,    54,     0,  1287,     0,
    1973        0,     0,     0,   585,   335,   586,     0,   337,     0,     0,
    1974      345,     0,     0,   587,     0,   332,     0,     0,     0,    63,
    1975        0,     0,   703,   703,     0,   337,    54,     0,     0,   612,
    1976      562,   562,   216,   206,     0,   698,     0,   712,    75,     0,
    1977        0,   113,     0,   337,     8,     9,    10,    11,    12,  1039,
    1978        0,     0,   338,     0,     0,     0,     0,     0,    54,     0,
    1979        0,    54,     0,     0,   698,   335,     0,     0,     0,     0,
    1980        0,    30,     0,     0,     0,   698,   698,   698,     0,    75,
    1981        0,     0,   337,     0,     0,     0,     0,   332,   332,     0,
    1982        0,     0,     0,     0,    33,     0,     0,     0,    77,    36,
    1983       84,  1188,     0,    39,     0,    84,     0,     0,     0,     0,
    1984       40,    41,   338,     0,   882,     0,   337,    77,   885,     0,
    1985        0,   612,   698,   335,   335,    77,   335,   335,   335,     0,
    1986        0,     0,     0,   113,     0,    42,     8,     9,    10,    11,
    1987       12,     0,     0,     0,     0,   143,   330,    72,     0,     0,
    1988        0,   338,   394,     0,     0,     0,     0,     0,   337,     0,
    1989        0,     0,     0,    30,  1286,     0,     0,     0,   337,   338,
    1990        0,    77,     0,   215,   337,  1316,     0,     0,     0,     0,
    1991      335,   335,     0,   249,   337,     0,    33,     0,     0,   335,
    1992        0,    36,   217,   177,     0,    39,     0,     0,     0,     0,
    1993        0,     0,    40,    41,   703,     0,     0,   332,    54,     0,
    1994        0,   338,   345,     0,     0,   703,   703,   703,     0,     0,
    1995        0,     0,     0,     0,     0,     0,   206,   672,   113,   392,
    1996        0,     0,     0,     0,     0,     0,    54,   674,     0,     0,
    1997        0,     0,     0,     0,     0,    75,     0,     0,   335,  1188,
    1998        0,     0,     0,     0,   335,   335,  1188,     0,    84,     0,
    1999        0,     0,   703,     0,   562,     0,     0,     0,     0,   337,
    2000        0,   338,   345,   792,   793,     0,     0,    84,     0,     0,
    2001        0,     0,     0,     0,     0,    84,     0,     0,     0,     0,
    2002        0,     0,     0,     0,     0,  1188,   214,     0,     0,     0,
    2003        0,   827,  1512,     0,   830,   831,     0,   834,     0,   836,
    2004      837,   345,     0,   335,   838,   839,     0,    72,     0,   338,
    2005      338,     0,     0,     0,     0,   206,     0,     0,     0,   345,
    2006      337,    84,     0,   335,   338,   335,     0,     0,     0,     0,
    2007        0,     0,     0,     0,     0,     0,     0,     0,   330,     0,
    2008        0,     0,   338,     0,     0,     0,     0,     0,     0,     0,
    2009        0,     0,   335,     0,     0,    77,     0,     0,     0,     0,
    2010      338,   345,     0,   335,   335,   335,     0,     0,     0,     0,
    2011        0,     0,   394,     0,     0,   335,   335,     0,   337,   337,
    2012        0,   337,   337,   337,     0,     0,   918,   919,     0,    72,
    2013        0,     0,   921,     0,     0,     0,    77,     0,   330,   338,
    2014        0,     0,    75,     0,     0,     8,     9,    10,    11,    12,
    2015      335,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2016        0,   345,     0,     0,     0,     0,     0,     0,     0,     0,
    2017        0,     0,    30,   338,     0,   337,   337,     0,     0,     0,
    2018        0,     0,     0,     0,   337,     0,     0,     0,  1135,     0,
    2019        0,     0,     0,     0,     0,    33,     0,    54,     0,     0,
    2020       36,     0,   177,     0,    39,     0,     0,  1152,     0,   345,
    2021      345,    40,    41,     0,     0,   338,     0,     0,     0,     0,
    2022        0,     0,     0,     0,   345,   338,     0,     0,     0,     0,
    2023      216,   338,     0,     0,     0,   335,  1492,   330,   392,     0,
    2024        0,   338,   345,   337,     0,     0,  1493,     0,     0,   337,
    2025      337,     0,     0,     0,     0,    84,     0,     0,     0,     0,
    2026      345,     0,     0,     0,     0,     8,     9,    10,    11,    12,
    2027        0,     0,     0,     0,     0,     0,     0,    72,     0,     0,
    2028        0,     0,     0,     0,    72,     0,     0,     0,  1224,     0,
    2029        0,   215,    30,     0,     0,     0,    84,   330,     0,   345,
    2030        0,     0,    77,     0,     0,     0,     0,     0,   337,     0,
    2031        0,     0,    75,     0,     0,    33,     0,     0,     0,     0,
    2032       36,     0,   177,    72,    39,     0,   338,     0,   337,     0,
    2033      337,    40,    41,   345,     0,     0,     0,     0,     0,     0,
    2034        0,     0,     0,     0,     0,   330,   330,     0,     0,     0,
    2035        8,     9,    10,    11,    12,     0,   255,   337,     0,     0,
    2036      330,     0,     0,     0,     0,     0,   256,     0,   337,   337,
    2037      337,     0,     0,     0,     0,   345,     0,    30,     0,     0,
    2038      337,   337,     0,     0,     0,   345,     0,   338,     0,     0,
    2039      217,   345,     0,     0,    75,     0,     0,   162,     0,   166,
    2040       33,   345,   172,   173,   174,    36,   176,     0,     0,    39,
    2041        0,     0,     0,     0,     0,   337,    40,    41,     0,     0,
    2042        0,   225,     0,   122,   122,   122,     0,     0,     0,     0,
    2043        0,     0,   238,   239,     0,   330,     0,     0,     0,     0,
    2044        0,   718,     0,     0,     0,   338,   338,     0,   338,   338,
    2045      338,   719,     0,     0,     0,     0,     0,     0,     0,     0,
    2046        0,     0,    84,     0,     0,     0,     0,     0,     0,    77,
     2085      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2086      26,    27,    28,     0,     0,    29,  1093,    30,     0,     0,
     2087       0,     0,   123,   123,   123,     0,     0,     0,     0,     0,
    20472088       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2048        0,     0,     0,     0,     0,     0,   345,     0,     0,     0,
    2049        0,     0,     0,   122,     0,   122,     0,     0,   327,     0,
    2050      337,     0,   338,   338,     0,     0,     0,     0,     0,     0,
    2051        0,   338,     0,     0,     0,     0,     0,     0,  1217,   265,
    2052        0,     0,     0,     0,     0,     0,     0,   330,     0,     0,
     2089      33,     0,    34,     0,    35,     0,     0,    37,    38,     0,
     2090       0,   162,   162,  1118,     0,   357,     0,   363,     0,     0,
     2091    1126,     0,     0,     0,  1130,     0,     0,     0,     0,  1134,
     2092       0,  1135,     0,     0,     0,  1137,  1138,  1139,   454,     0,
     2093    1142,   454,     0,    43,     0,     0,     0,   454,     0,  1154,
     2094       0,   109,     0,   123,     0,   123,     0,    84,     0,     0,
     2095       0,     0,     0,     0,    84,     0,     0,  1169,  1170,     8,
     2096       9,    10,    11,    12,   730,     0,     0,     0,     0,   271,
     2097       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
     2098       0,     0,  1199,     0,     0,  1201,    30,     0,     0,   454,
     2099       0,     0,   454,    84,   162,   454,     0,     0,     0,     0,
     2100       0,     0,     0,     0,     0,     0,     0,   363,     0,    33,
     2101       0,     0,     0,     0,    36,     0,   179,   180,    39,     0,
     2102       0,     0,     0,  1216,   123,    40,    41,     0,     0,  1220,
     2103    1221,     0,   123,     0,   123,   123,     0,     0,  1229,   123,
     2104       0,   123,   123,  1233,     0,     0,  1237,     0,  1238,     0,
     2105     261,  1240,     0,     0,     0,     0,     0,     0,     0,   162,
     2106     262,     0,     0,     0,  1248,     0,     0,     0,     0,     0,
     2107       0,   363,     0,   597,     0,     0,   823,  1255,     0,  1257,
     2108    1258,  1259,  1260,     0,     0,     0,     0,     0,     0,     0,
     2109       0,     0,     0,     0,     0,  1267,     0,  1268,     0,     0,
     2110       0,   168,   597,     0,     0,     0,     0,   597,     0,     0,
     2111       0,   123,     0,     0,     0,     0,   363,   363,   363,     0,
     2112       0,     0,     0,     0,     0,     0,     0,     0,     0,  1292,
     2113    1293,     0,     0,   363,     0,     0,     0,   207,     0,     0,
     2114       0,     0,     0,     0,     0,     0,     0,   227,     0,   231,
     2115       0,   233,     0,     0,     0,     0,     0,     0,   242,     0,
     2116       0,     0,     0,     0,     0,     0,     0,     0,   730,     0,
     2117       0,     0,     0,     0,     0,     0,     0,  1326,  1327,     0,
     2118       0,     0,     0,     0,     0,     0,     0,  1337,   207,   454,
     2119     231,   233,   242,     0,     0,     0,     0,     0,     0,     0,
     2120       0,     0,     0,     0,     0,     0,     0,   363,     0,   945,
     2121       0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
    20532122       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2054        0,     0,    75,     0,     0,     0,     0,   345,     0,    75,
    2055        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2056       17,    18,    19,    20,    21,    22,    23,    24,  -279,     0,
    2057      338,     0,     0,   122,     0,     0,   338,   338,    30,     0,
    2058      122,     0,   122,   122,     0,     0,     0,   122,    75,   122,
    2059      122,     0,     0,     0,     0,     0,     0,     0,    54,     0,
    2060        0,    33,     0,     0,     0,   345,   345,     0,   345,   345,
    2061      345,     0,  -279,     0,     0,     0,     0,     0,   216,     0,
    2062        0,     0,   330,     0,     0,     0,     0,     0,     0,    84,
    2063        0,     0,     0,     0,     0,   338,     0,     0,     0,    77,
     2123       0,   207,     0,  1364,     0,     0,     0,     0,     0,     0,
     2124       0,     0,   730,     0,     0,  1368,     0,  1369,  1370,  1371,
     2125       0,     0,     0,     0,     0,     0,     0,     0,     0,  1375,
     2126       0,     0,     0,     0,     0,   153,     0,     0,  1386,     0,
    20642127       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2065     1306,     0,     0,     0,     0,   338,   122,   338,     0,     0,
    2066        0,     0,   345,   345,     0,     0,     0,     0,     0,    54,
    2067        0,   345,     0,   575,     0,   583,     0,     0,     0,     0,
    2068        0,     0,     0,   330,   338,     0,   608,   609,     0,     0,
    2069        0,     0,     0,     0,     0,   338,   338,   338,     0,   204,
    2070      619,     0,     0,     0,     0,     0,     0,   338,   338,   223,
    2071        0,   227,     0,   229,     0,     0,     0,     0,     0,     0,
    2072      236,    77,     0,     0,     0,     0,     0,     0,     0,     0,
    2073      345,     0,     0,     0,     0,     0,   345,   345,     0,     0,
    2074        0,     0,   338,     0,   330,   330,   330,     0,     0,   204,
    2075        0,   227,   229,   236,     0,     0,     0,     0,     0,     0,
    2076      662,     0,     0,     0,     0,    54,     0,     0,     0,     0,
    2077        0,     0,     0,     0,     0,     0,     0,   204,   217,     0,
     2128    1394,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2129       0,   207,     0,   231,   233,   242,   363,     0,     0,     0,
     2130     621,     0,     0,   363,     0,     0,     0,     0,     0,     0,
     2131       0,   247,     0,     0,     0,     0,     0,     0,     0,     0,
     2132       0,   252,     0,     0,     0,     0,     0,  1433,  1434,   207,
     2133       0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
     2134    1439,     0,     0,     0,     0,     0,     0,  1439,     0,   497,
     2135       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2136      18,    19,    20,    21,    22,    23,    24,  -278,     0,    25,
     2137      26,    27,  1467,     0,     0,     0,   153,    30,     0,     0,
     2138       0,     0,     0,     0,     0,     0,     0,     0,     0,   379,
     2139       0,     0,     0,     0,     0,   454,     0,   207,  1489,     0,
     2140      33,     0,     0,     0,     0,    36,     0,   331,   332,    39,
     2141       0,  -278,   411,     0,     0,     0,    40,    41,   207,     0,
     2142     123,   123,  1502,   231,   233,     0,   425,  1504,     0,     0,
     2143       0,   242,     0,     0,     0,   430,   162,     0,     0,     0,
     2144       0,   634,     0,   333,     0,   438,     0,     0,     0,   363,
     2145     123,   625,     0,   123,   123,     0,   123,     0,   123,   123,
     2146       0,     0,     0,   123,   123,     0,     0,     0,     0,     0,
     2147     464,     0,     0,   207,     0,   474,     0,     0,     0,     0,
     2148       0,     0,     0,   597,     0,     0,     0,     0,   482,     0,
     2149       0,   207,     0,     0,   492,     0,   496,   207,     0,     0,
     2150       0,     0,     0,     0,   363,   363,     0,     0,     0,     0,
     2151       0,     0,   525,     0,   207,     0,     0,   207,   207,     0,
    20782152       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2079        0,   204,     0,     0,     0,   345,     0,     0,     0,    84,
    2080        0,     0,     0,     0,     0,     0,     0,   330,     0,     0,
    2081        0,     0,     0,     0,     0,   345,     0,   345,     0,     0,
    2082        0,     0,     0,     0,     0,     0,     0,   338,     0,     0,
     2153       0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
     2154     123,     0,     0,     0,     0,   123,   123,   207,     0,     0,
     2155       0,   123,     0,     0,   207,   584,     0,     0,     0,     0,
     2156     589,     0,   454,   201,     2,   202,     4,     5,     6,     7,
     2157       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2158      18,    19,    20,    21,    22,    23,    24,     0,   635,    25,
     2159      26,    27,   636,   637,     0,   639,     0,    30,     0,     0,
     2160       0,   649,   650,     0,   651,   652,     0,   653,     0,   654,
     2161       0,     0,     0,     0,     0,     0,     0,     0,   730,     0,
     2162      33,     0,    34,     0,    35,    36,   584,   203,    38,    39,
     2163       0,     0,     0,     0,   669,     0,    40,    41,     0,     0,
     2164       0,     0,     0,   277,     0,   278,     0,     0,     0,     0,
     2165       0,     0,     0,     0,     0,     0,     0,     0,   680,     0,
     2166     214,    42,     0,   204,     0,     0,   279,     0,   207,   686,
     2167       0,   205,   280,     0,     0,     0,   281,     0,     0,   282,
     2168     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2169       0,     0,   722,     0,   288,     0,   207,   730,   725,     0,
     2170       0,   207,     0,   464,     0,     0,     0,     0,   289,     0,
     2171     373,     0,     0,     0,     0,     0,     0,   291,   375,   293,
     2172     294,   295,   296,     0,     0,     0,     0,     0,   336,   358,
     2173       0,  1194,     0,     0,     0,     0,     0,     0,     0,   760,
     2174       0,     0,     0,   363,   363,     0,     0,     0,     0,     0,
     2175       0,     0,   214,     0,     0,   775,     0,     0,     0,     0,
     2176       0,   407,     0,     0,     0,     0,     0,     0,   407,     8,
     2177       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2178      19,    20,    21,    22,    23,    24,     0,   207,    25,    26,
     2179      27,   801,     0,     0,     0,   277,    30,   278,     0,     0,
     2180     811,   207,     0,     0,     0,     0,     0,   814,     0,     0,
     2181       0,     0,   821,     0,     0,     0,     0,     0,   279,    33,
     2182       0,   497,     0,   836,   280,     0,    37,    38,   281,     0,
     2183       0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
     2184     407,     0,     0,     0,     0,     0,   288,     0,     0,     0,
     2185       0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
     2186     289,     0,   517,   876,     0,   167,     0,     0,     0,   291,
     2187     292,   293,   294,   295,   296,     0,     0,     0,     0,   207,
    20832188       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2084        0,     0,     0,     0,   345,     0,     0,     0,     0,   204,
    2085        0,   227,   229,   236,     0,   345,   345,   345,     0,   753,
    2086        0,     0,     0,     0,     0,     0,     0,   345,   345,    77,
    2087        0,     0,   330,   330,     0,     0,    77,     0,     0,     0,
    2088        0,    84,     0,     0,     0,   204,     0,     0,     0,   204,
     2189       0,     0,   207,     0,   407,     0,     0,     0,   821,     0,
     2190       0,     0,   407,   580,     0,   407,   583,   454,     0,     0,
     2191       0,   207,     0,     0,     0,   358,     0,     0,     0,   613,
     2192       0,     0,     0,     0,   123,     0,     0,     0,     0,     0,
     2193       0,     0,     0,     0,   454,     0,     0,     0,   631,     0,
     2194       0,   336,     0,     0,     0,     0,     0,     0,     0,     0,
     2195       0,     0,     0,   247,     0,     0,     0,   162,     0,     0,
     2196       0,     0,     0,   952,   953,     0,     0,   407,     0,     0,
     2197       0,   407,     0,     0,     0,   967,     0,     0,     0,     0,
    20892198       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2090        0,   271,   345,   272,     0,   485,     0,     0,     0,     0,
    2091        0,     0,     0,    54,    54,    77,     0,     0,     0,   799,
    2092        0,     0,     0,     0,   273,     0,     0,     0,     0,     0,
    2093      274,   330,     0,     0,   275,    54,     0,   276,   277,   278,
    2094      279,    40,    41,     0,   280,   281,     0,     0,     0,     0,
    2095        0,     0,   282,   204,     0,     0,     0,    54,   122,   122,
    2096        0,     0,     0,     0,     0,     0,   283,     0,   204,     0,
    2097      860,     0,     0,   227,   229,   285,   363,   287,   288,   289,
    2098      290,   236,     0,     0,     0,     0,   122,   345,     0,   122,
    2099      122,     0,   122,     0,   122,   122,     0,     0,   889,   122,
    2100      122,     0,     0,   330,   330,     0,     0,     0,     0,     0,
    2101        0,     0,    54,     0,     0,     0,     0,    54,   907,     0,
    2102        0,     0,     0,   204,     0,     0,     0,     0,     0,    84,
    2103        0,     0,     0,     0,     0,     0,    84,     0,     0,     0,
    2104        0,   204,     0,     0,     0,     0,   927,   204,   928,    54,
    2105        0,     0,     0,     0,     0,   931,   932,     0,     0,     0,
    2106      937,     0,     0,     0,   204,     0,     0,   204,   204,     0,
    2107      151,     0,   942,     0,     0,    84,   122,   946,     0,     0,
    2108        0,   122,   122,   204,     0,     0,     0,   122,     0,     0,
    2109        0,   963,     0,     0,     0,     0,     0,   204,     0,     0,
    2110        0,   974,     0,     0,   204,     0,     0,     0,     0,     0,
    2111        0,     0,     0,     0,     0,   241,     0,     0,     0,     0,
    2112        0,     0,     0,   330,     0,   246,     8,     9,    10,    11,
    2113       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2114       22,    23,    24,  -279,    54,    25,    26,    27,     0,   996,
    2115        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2116        0,     0,     0,     0,     0,    54,     0,     0,  1011,     0,
    2117        0,     0,    54,     0,     0,     0,    33,     0,     0,   353,
    2118        0,     0,     0,    37,    38,     0,     0,  -279,     0,     0,
    2119        0,     0,   367,     0,     0,     0,     0,     0,     0,     0,
    2120        0,  1022,     0,  1023,  1024,  1025,     0,     0,  1028,   860,
    2121        0,    54,     0,   204,   399,     0,     0,  1021,     0,   567,
    2122        0,     0,     0,  1070,     0,     0,     0,   610,   413,     0,
    2123        0,     0,     0,     0,     0,   575,   418,     0,  1077,     0,
    2124        0,     0,     0,   204,  1078,     0,   426,     0,   204,     0,
    2125        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2126       16,    17,    18,    19,    20,    21,    22,    23,    24,   452,
    2127        0,    25,    26,    27,   462,     0,     0,     0,     0,    30,
    2128     1095,     0,     0,     0,     0,     0,     0,   470,     0,     0,
    2129        0,     0,     0,   480,     0,   484,     0,     0,     0,     0,
    2130        0,     0,    33,     0,     0,   753,     0,   107,     0,    37,
    2131       38,   512,     0,     0,     0,     0,     0,     0,  1121,     0,
    2132        0,     0,     0,   860,     0,     0,  1129,     0,     0,     0,
    2133     1133,     0,     0,     0,   204,  1137,     0,     0,     0,  1142,
    2134     1143,  1144,     0,     0,     0,    43,     0,     0,   204,  1150,
    2135        0,     0,   572,   108,     0,     0,     0,     0,     0,  1163,
    2136        0,     0,     0,     0,     0,     0,     0,     0,   485,     0,
    2137        0,     0,     0,     0,     0,     0,     0,     0,  1179,  1180,
    2138        0,   620,     0,     0,     0,   621,   622,     0,   623,     0,
    2139        0,     0,     0,     0,   633,   634,     0,   635,   636,     0,
    2140      637,     0,   638,  1209,     0,     0,  1211,     0,     0,     0,
    2141        0,     0,     0,     0,     0,     0,     0,     0,     0,   651,
    2142        0,     0,     0,     0,     0,     0,   204,   653,     0,  1222,
    2143        0,     0,     0,     0,     0,     0,   204,     0,     0,     0,
    2144        0,     0,     0,     0,     0,     0,     0,     0,  1229,     0,
    2145        0,   666,     0,     0,  1233,  1234,     0,     0,   204,     0,
    2146        0,     0,   671,  1242,   271,     0,   272,     0,     0,  1246,
    2147        0,     0,  1250,   122,  1251,     0,     0,  1253,     0,     0,
    2148        0,     0,     0,     0,     0,   707,     0,   273,   860,     0,
    2149        0,   710,  1262,   274,     0,     0,   452,   275,     0,     0,
    2150      276,   277,   278,   279,    40,    41,     0,   280,   281,  1271,
    2151        0,  1273,  1274,  1275,  1276,   282,     0,     0,     0,     0,
    2152        0,     0,     0,     0,     0,     0,     0,     0,  1284,   283,
    2153     1285,   361,   744,     0,   166,     0,     0,     0,   285,   363,
    2154      287,   288,   289,   290,     0,     0,     0,   760,     0,   204,
    2155        0,     0,  1204,  1305,     0,     0,     0,     0,     0,     0,
    2156        0,     0,  1310,  1311,     0,     0,     0,     0,     0,     0,
    2157        0,     0,     0,     0,     0,   204,     0,     0,     0,     0,
    2158        0,     0,     0,   786,     0,     0,     0,     0,     0,     0,
    2159        0,     0,   796,     0,   797,     0,     0,     0,     0,     0,
    2160      802,   204,     0,     0,     0,   122,     0,     0,     0,     0,
    2161     1342,  1343,     0,   821,     0,     0,  1347,  1348,     0,     0,
    2162        0,     0,     0,     0,     0,     0,     0,  1358,     0,     0,
    2163        0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
    2164        0,     0,     0,     0,     0,     0,     0,     0,   204,     0,
    2165        0,     0,   862,     0,     0,     0,     0,     8,     9,    10,
    2166       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2167       21,    22,    23,    24,  -279,  1386,    25,    26,    27,     0,
    2168        0,     0,     0,     0,    30,     0,     0,  1390,   897,     0,
    2169        0,  1393,  1394,  1395,     0,     0,     0,     0,     0,     0,
    2170        0,     0,     0,  1399,     0,     0,     0,    33,     0,     0,
    2171        0,     0,  1410,     0,    37,    38,     0,     0,  -279,     0,
    2172        0,     0,     0,     0,     0,  1418,     0,     0,     0,     0,
    2173        0,     0,   204,  1010,     0,     0,     8,     9,    10,    11,
    2174       12,     0,     0,   241,     0,     0,     0,     0,     0,     0,
    2175      567,     0,     0,   943,   944,     0,     0,     0,   108,   346,
    2176        0,     0,   271,    30,   272,   958,     0,     0,     0,     0,
    2177        0,     0,     0,     0,  1457,  1458,     0,     0,     0,     0,
    2178        0,     0,   975,     0,   976,   273,    33,  1463,   980,     0,
    2179      395,   274,     0,     0,  1463,   275,     0,   395,   276,   277,
    2180      278,   279,    40,    41,     0,   280,   281,     0,     0,     0,
    2181        0,     0,     0,   282,     0,     0,     0,     0,     0,  1491,
    2182        0,     0,     0,     0,   204,     0,     0,   283,     0,   361,
    2183        0,     0,     0,     0,     0,     0,   285,   888,   287,   288,
    2184      289,   290,     0,     0,     0,  1513,     0,     0,     0,     0,
    2185        0,     0,     0,  1016,     0,     0,     0,     0,     0,     0,
    2186     1017,     0,     0,     0,     0,     0,   395,     0,     0,  1526,
    2187        0,     0,     0,  1019,  1528,  1020,     0,     0,     0,     0,
     2199       0,     0,   982,     0,   983,     0,   207,     0,   987,     0,
     2200       0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
     2201       0,     0,     0,     0,     0,     0,     0,     0,   316,     0,
     2202       0,     0,   207,     0,   407,     0,     0,     0,   340,     0,
    21882203       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2189     1033,     0,     0,     0,     0,     0,  1037,     0,     0,     0,
    2190        0,     0,     0,     0,     0,     0,     0,     0,  1073,     0,
    2191        0,  1074,     0,     0,     0,     0,     0,     0,     0,     0,
    2192      395,     0,     0,   204,     0,     0,     0,     0,   395,   568,
    2193        0,   395,   571,  1082,   346,     0,     0,     0,     0,   598,
     2204     376,     0,     0,     0,   123,     0,     0,   207,     0,     0,
     2205       0,     0,     0,     0,     0,   407,     0,     0,   358,     0,
     2206       0,     0,     0,  1019,     0,     0,     0,     0,     0,     0,
     2207    1020,     0,     0,     0,     0,   277,     0,   278,   207,     0,
     2208       0,     0,     0,  1022,     0,  1023,     0,     0,     0,   207,
     2209       0,     0,     0,     0,     0,     0,     0,   407,   279,  1035,
     2210     336,   358,     0,     0,   280,  1039,     0,     0,   281,     0,
     2211     316,   282,   283,   284,   285,    40,    41,  1075,   286,   287,
     2212    1076,     0,     0,     0,     0,     0,   288,     0,     0,     0,
     2213       0,     0,     0,     0,     0,   478,     0,     0,   589,     0,
     2214     289,     0,   373,     0,     0,   407,   407,     0,   798,   291,
     2215     375,   293,   294,   295,   296,     0,     0,     0,     0,     0,
     2216       0,     0,     0,     0,   816,   358,     0,   358,   207,     0,
     2217       0,     0,     0,     0,     0,     0,   613,     0,   613,   613,
     2218       0,     0,     0,     0,     0,   613,     0,     0,     0,     0,
     2219       0,     0,     0,     0,     0,   855,   358,     0,     0,     0,
     2220       0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
     2221     358,   358,   358,     0,     0,     0,     0,     0,     0,     0,
     2222       0,     0,  1136,     0,     0,     0,     0,   358,     0,     0,
     2223       0,     0,   407,   897,     0,     0,   407,   900,     0,     0,
     2224       0,     0,     0,   902,     0,     0,     0,     0,     0,   376,
     2225       0,     0,   207,   277,     0,   278,     0,     0,     0,     0,
     2226       0,   336,   358,   407,     0,   407,     0,     0,     0,   407,
     2227       0,     0,     0,     0,     0,     0,   279,   525,     0,     0,
     2228       0,     0,   640,  1200,   136,   137,   281,     0,     0,   282,
     2229     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2230       0,   358,   613,     0,   288,     0,     0,     0,     0,     0,
     2231       0,     0,  1213,     0,     0,     0,     0,  1215,   289,     0,
     2232     641,     0,   642,   374,     0,  1219,     0,   291,   375,   293,
     2233     294,   295,   296,     0,     0,   336,   358,     0,     0,     0,
     2234     407,   407,     0,     0,   207,   504,   508,   504,   511,   724,
     2235       0,     0,     0,  1242,     0,   514,   515,     0,     0,     0,
     2236     504,   504,     0,     0,     0,  1250,     0,     0,  1251,     0,
     2237    1252,     0,   504,     0,     0,     0,     0,     0,     0,     0,
     2238       0,   407,     0,     0,  1261,  1262,     0,   756,     0,     0,
     2239     358,     0,     0,     0,     0,     0,   816,   358,     0,     0,
     2240     769,   613,     0,   613,     0,     0,  1275,   756,   504,     0,
     2241       0,     0,     0,   613,     0,     0,     0,     0,     0,     0,
     2242     778,   779,     0,     0,     0,     0,     0,     0,     0,     0,
     2243       0,     0,  1294,     0,     0,     0,     0,     0,     0,     0,
     2244       0,     0,   800,     0,   504,     0,     0,     0,     0,     0,
     2245       0,     0,   809,     0,     0,     0,     0,     0,     0,   340,
     2246       0,     0,     0,     0,   769,     0,     0,     0,     8,     9,
     2247      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2248      20,    21,    22,    23,    24,   816,     0,    25,    26,    27,
     2249       0,     0,     0,   407,     0,    30,     0,     0,   407,     0,
     2250       0,     0,     0,     0,     0,     0,   407,     0,     0,     0,
     2251       0,     0,     0,     0,   875,     0,     0,     0,    33,   613,
     2252     613,   376,  1358,     0,  1359,   203,    38,     0,     0,     0,
     2253       0,     0,     0,     0,     0,  1366,     0,  1367,     0,     0,
     2254       0,     0,     0,   358,     0,     0,     0,     0,     0,   407,
     2255       0,     0,     0,     0,     0,  1374,     0,     0,     0,     0,
     2256       0,   340,   207,     0,     0,     0,     0,   407,  1133,   267,
     2257       0,  1392,     0,     0,     0,     0,     0,   358,     0,  1395,
     2258       0,     0,  1219,   407,  1145,     0,   613,   613,  1150,     0,
     2259       0,     0,     0,     0,     0,     0,     0,     0,   358,   358,
     2260       0,     0,  1416,     0,     0,     0,     0,     0,     0,     0,
     2261       0,  1423,     0,     0,  1425,  1427,     0,   504,   504,   504,
     2262     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
     2263     504,   504,   504,   504,   504,   769,     0,   972,     0,     0,
     2264       0,     0,     0,   977,     0,     0,     0,     0,     0,  1452,
     2265     986,  1219,     0,     0,     0,     0,     0,   816,   407,  1212,
     2266     504,     0,     0,  1462,     0,     0,     0,     0,     0,     0,
     2267     613,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    21942268       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2195        0,     0,     0,     0,     0,     0,     0,     0,   616,     0,
    2196        0,   346,     0,     0,     0,     0,     0,     0,     0,     8,
     2269       0,     0,     0,  1002,  1003,     0,   340,     0,     0,     0,
     2270       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2271       0,   340,   358,     2,   202,     4,     5,     6,     7,     8,
    21972272       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2198       19,    20,    21,    22,    23,    24,     0,   395,    25,    26,
    2199       27,   395,     0,     0,     0,   310,    30,     0,     0,     0,
    2200        0,     0,     0,     0,   328,     0,     0,     0,     0,     0,
    2201        0,     0,     0,     0,     0,     0,   364,     0,  1141,    33,
    2202        0,   346,     0,     0,  1147,  1148,   199,   200,     0,     0,
     2273      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2274      27,     0,     0,     0,     0,   277,    30,   278,     0,     0,
     2275       0,  1033,     0,     0,     0,   376,     0,   504,     0,     0,
     2276       0,     0,     0,     0,     0,     0,     0,     0,   279,    33,
     2277       0,    34,   336,    35,   280,     0,    37,    38,   281,   504,
     2278       0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
     2279       0,   358,   504,     0,     0,     0,   288,     0,     0,     0,
    22032280       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2204        0,     0,     0,     0,   395,     1,     2,   198,     4,     5,
     2281     289,     0,   338,     0,     0,     0,     0,   768,     0,   291,
     2282     339,   293,   294,   295,   296,     0,     0,     0,     0,   316,
     2283       0,     0,     0,     0,     0,     0,   504,   358,   358,     0,
     2284       0,     0,  1114,  1115,     0,     0,     0,     0,   277,   376,
     2285     278,     0,     0,     0,     0,   977,     0,     0,  1124,     0,
     2286     756,     0,     0,     0,     0,     0,     0,   504,     0,     0,
     2287       0,   279,     0,     0,     0,     0,     0,   280,     0,  1140,
     2288       0,   281,   504,     0,   282,   283,   284,   285,    40,    41,
     2289    1155,   286,   287,     0,     0,     0,     0,     0,     0,   288,
     2290       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2291       0,     0,   376,   289,  1173,   373,     0,     0,   374,     0,
     2292       0,     0,   291,   375,   293,   294,   295,   296,     0,  1195,
     2293       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     0,     0,  1204,     0,
     2295     358,     0,  -497,     0,     0,     1,     2,     3,     4,     5,
    22052296       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2206       16,    17,    18,    19,    20,    21,    22,    23,    24,  -279,
    2207      261,    25,    26,    27,    28,   395,     0,    29,   346,    30,
    2208     1206,     0,     0,   310,     0,     0,  1210,     0,     0,     0,
    2209        0,     0,     0,     0,     0,     0,     0,     0,   271,     0,
    2210      272,     0,    33,     0,    34,     0,    35,   466,     0,    37,
    2211       38,     0,     0,  -279,     0,     0,     0,   395,     0,  1226,
    2212      346,   273,     0,     0,  1228,     0,     0,   274,     0,     0,
    2213        0,   275,  1232,     0,   276,   277,   278,   279,    40,    41,
    2214        0,   280,   281,     0,     0,    43,     0,     0,   204,   282,
    2215        0,     0,     0,   108,     0,     0,     0,     0,     0,     0,
    2216        0,  1255,     0,   495,   395,   395,     0,     0,     0,     0,
    2217        0,     0,   285,   363,   287,   288,   289,   290,  1266,     0,
    2218      346,  1267,   346,  1268,     0,     0,     0,     0,     0,     0,
    2219      808,     0,     0,   598,     0,   598,   598,     0,     0,     0,
    2220     1278,  1279,   598,     0,  1161,     0,   328,     8,     9,    10,
    2221       11,    12,   840,   346,     0,   364,     0,     0,   346,     0,
    2222        0,  1292,     0,     0,     0,     0,     0,     0,   346,   346,
    2223        0,     0,     0,   271,    30,   272,     0,     0,     0,     0,
    2224        0,     0,     0,   346,     0,     0,     0,     0,   395,   883,
    2225     1313,     0,   395,   886,     0,     0,   273,    33,     0,     0,
    2226        0,     0,   274,     0,     0,   310,   275,     0,     0,   276,
    2227      277,   278,   279,    40,    41,     0,   280,   281,     0,   346,
    2228      395,     0,   395,     0,   282,     0,   395,     0,     0,     0,
    2229        0,     0,     0,     0,     0,     0,     0,     0,   283,   271,
    2230      361,   272,     0,     0,     0,     0,     0,   285,  1162,   287,
    2231      288,   289,   290,     0,     0,   709,     0,     0,   346,   598,
    2232        0,     0,   273,     0,     0,     0,     0,     0,   624,     0,
    2233      135,   136,   275,     0,     0,   276,   277,   278,   279,    40,
    2234       41,     0,   280,   281,     0,     0,  1380,     0,  1381,     0,
    2235      282,     0,   346,   741,     0,     0,   395,   395,     0,  1388,
    2236        0,  1389,     0,     0,   283,   754,   625,     0,   626,   362,
    2237        0,     0,   741,   285,   363,   287,   288,   289,   290,     0,
    2238        0,  1398,     0,     0,     0,   763,   764,     0,     0,     0,
    2239        0,     0,     0,     0,     0,     0,     0,  1416,   395,     0,
    2240        0,     0,     0,     0,     0,     0,  1419,   785,     0,  1232,
    2241      346,     0,   271,     0,   272,     0,     0,   794,     0,   598,
    2242        0,   598,     0,     0,     0,   754,     0,     0,     0,     0,
    2243      598,  1440,     0,     0,     0,   273,     0,     0,     0,     0,
    2244     1447,   274,     0,  1449,  1451,   275,     0,     0,   276,   277,
    2245      278,   279,    40,    41,     0,   280,   281,     0,     0,     0,
    2246        0,   808,     0,   282,     0,     0,     0,     0,     0,     0,
    2247        0,     0,     0,     0,     0,     0,   861,   283,  1476,   361,
    2248     1232,     0,   362,   364,     0,     0,   285,   363,   287,   288,
    2249      289,   290,  1486,     0,     0,     0,   492,   496,   492,   499,
    2250        0,     0,     0,     0,   328,   346,   502,   503,     0,     0,
    2251        0,   492,   492,     0,     0,     0,   395,     0,     0,     0,
    2252        0,   395,     0,   492,   328,     0,     0,     0,     0,   395,
    2253        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2254        0,     0,   598,   598,     0,     0,     0,     0,     0,     0,
    2255        0,     0,   492,     0,     0,     0,     0,     0,     0,     0,
    2256        0,     0,     0,     0,     0,     0,   346,     0,     0,     0,
    2257        0,     0,     0,   395,     0,     0,     0,     0,     0,     0,
    2258      808,     0,     0,     0,     0,     0,     0,     0,     0,   492,
    2259        0,     0,   395,  1136,     0,     0,     0,   754,  1139,   964,
    2260      346,     0,     0,     0,     0,   969,     0,     0,     0,     0,
    2261        0,   395,  1153,   979,   598,   598,  1158,     0,     0,     0,
    2262        0,     0,     0,     0,     0,     0,     0,   346,   346,   346,
     2297      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2298       0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
     2299      31,     0,   977,     0,     0,     0,     0,     0,     0,     0,
     2300       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
     2301       0,   875,    33,     0,    34,     0,    35,    36,     0,    37,
     2302      38,    39,     0,     0,     0,   407,  1253,  1254,    40,    41,
     2303       0,     0,     0,     0,     0,     0,     0,     0,     0,   277,
     2304       0,   278,     0,     0,   407,   407,     0,     0,     0,     0,
     2305       0,     0,     0,    42,     0,    43,     0,     0,   504,     0,
     2306       0,     0,   279,    44,   407,     0,     0,     0,   280,     0,
     2307     504,     0,   281,     0,     0,   282,   283,   284,   285,    40,
     2308      41,     0,   286,   287,     0,     0,     0,     0,     0,     0,
     2309     288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2310       0,     0,     0,   977,   289,     0,   373,     0,     0,   974,
     2311       0,   504,     0,   291,   375,   293,   294,   295,   296,     0,
     2312       0,     1,     2,   202,     4,     5,     6,     7,     8,     9,
     2313      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2314      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2315      28,     0,     0,    29,   277,    30,  1042,  1043,     0,  1044,
     2316       0,     0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,
     2317       0,  1053,     0,     0,  1054,    32,     0,   279,    33,   504,
     2318      34,     0,    35,   640,     0,    37,    38,   281,     0,     0,
     2319     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2320       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2321       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2322       0,  1055,   504,     0,   167,     0,     0,     0,   291,   292,
     2323     293,   294,   295,   296,     0,     0,   504,   504,     0,     0,
     2324    1402,     0,  -126,     0,     1,     2,   202,     4,     5,     6,
     2325       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2326      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2327      25,    26,    27,    28,     0,     0,    29,   277,    30,   278,
    22632328       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    22642329       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2265      328,     0,     0,   993,   994,   328,     8,     9,    10,    11,
    2266       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2267       22,    23,    24,     0,   328,    25,    26,    27,     0,     0,
    2268        0,     0,     0,    30,  1218,     0,     0,     0,     0,     0,
    2269      346,   808,   395,  1225,     0,     0,     0,     0,     0,     0,
    2270        0,     0,     0,     0,   598,     0,    33,     0,     0,     0,
    2271        0,     0,     0,   199,   200,  1031,     0,     0,     0,   364,
    2272        0,     0,     0,     0,     0,     0,   808,     0,     0,     0,
    2273        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2274       16,    17,    18,    19,    20,    21,    22,    23,    24,   346,
    2275      328,    25,    26,    27,  1139,   346,   346,   605,     0,    30,
    2276      434,   492,   492,   492,   492,   492,   492,   492,   492,   492,
    2277      492,   492,   492,   492,   492,   492,   492,   492,   492,     0,
    2278        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2279       38,     0,     0,     0,     0,     0,     0,     0,   310,     0,
    2280      492,   271,     0,   272,     0,     0,     0,     0,     0,     0,
    2281        0,  1116,  1117,     0,   346,     0,     0,     0,     0,   364,
    2282        0,     0,     0,     0,   273,   435,   969,     0,  1139,  1127,
    2283      274,   741,     0,   108,   275,     0,   346,   276,   277,   278,
    2284      279,    40,    41,     0,   280,   281,     0,     0,  1145,     0,
    2285        0,     0,   282,     0,     0,     0,     0,     0,     0,     0,
    2286        0,     0,     0,     0,     0,  1164,   283,     0,   361,     0,
    2287        0,     0,     0,     0,   783,   285,   363,   287,   288,   289,
    2288      290,     0,     0,     0,     0,     0,   346,   346,   364,     0,
    2289     1183,     0,     0,     0,     0,     0,     0,     0,     0,   492,
    2290        0,     0,     0,     0,     0,  1205,     0,     0,     0,     0,
     2330     279,    33,     0,    34,     0,    35,   280,  1454,    37,    38,
     2331     281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
     2332     286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
    22912333       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2292     1139,   492,     0,     0,  1214,     0,     0,     0,     0,     0,
    2293        0,     0,     0,     0,   492,   754,     1,     2,   198,     4,
     2334       0,     0,   289,     0,  1055,     0,     0,     0,     0,     0,
     2335     316,   291,   292,   293,   294,   295,   296,     0,     0,     0,
     2336       0,     0,     0,     0,     0,  -126,     1,     2,   202,     4,
    22942337       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    22952338      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2296        0,     0,    25,    26,    27,    28,     0,     0,    29,     0,
    2297       30,     0,     0,   969,     0,     0,     0,   492,     0,     0,
    2298        0,     0,   808,     0,     0,     0,     0,     0,     0,     0,
    2299        0,     0,     0,    33,   861,    34,     0,    35,     0,     0,
    2300       37,    38,     0,     0,     0,     0,   346,     0,     0,   492,
    2301        0,     0,  1269,     0,  1270,     0,     0,     0,     8,     9,
     2339       0,     0,    25,    26,    27,    28,     0,     0,    29,   277,
     2340      30,   278,     8,     9,    10,    11,    12,    13,    14,    15,
     2341      16,    17,    18,    19,    20,    21,    22,    23,    24,  -278,
     2342       0,     0,   279,    33,     0,    34,     0,    35,   280,    30,
     2343      37,    38,   281,     0,     0,   282,   283,   284,   285,    40,
     2344      41,     0,   286,   287,     0,     0,     0,   504,     0,     0,
     2345     288,     0,    33,     0,     0,     0,     0,     0,     0,     0,
     2346       0,     0,     0,  -278,   289,     0,    43,     0,     0,     0,
     2347       0,     0,     0,   291,   292,   293,   294,   295,   296,     0,
     2348       0,     0,     2,   202,     4,     5,     6,     7,     8,     9,
    23022349      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2303       20,    21,    22,    23,    24,  -279,    43,    25,    26,    27,
    2304        0,     0,     0,     0,   108,    30,     0,     0,     0,     0,
    2305        0,     0,     0,     0,     0,     0,     0,     0,     0,   754,
    2306        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2307        0,     0,     0,    36,     0,   805,    38,    39,     0,  -279,
    2308        0,   395,     0,     0,    40,    41,     0,     0,     0,     0,
    2309        0,     0,     0,     0,   969,     0,     0,     0,     0,     0,
    2310      395,   395,     0,     0,     0,     0,     0,     0,     0,  1021,
    2311        0,   567,     0,     0,   492,     0,     0,     0,     0,   610,
    2312      395,     1,     2,   198,     4,     5,     6,     7,     8,     9,
    2313       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2314       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2315       28,     0,     0,    29,   271,    30,  1040,  1041,     0,  1042,
    2316        0,     0,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,
    2317        0,  1051,     0,     0,  1052,    32,     0,   273,    33,     0,
    2318       34,     0,    35,   624,     0,    37,    38,   275,     0,     0,
    2319      276,   277,   278,   279,    40,    41,     0,   280,   281,     0,
    2320        0,     0,     0,     0,     0,   282,     0,     0,   492,     0,
    2321        0,     0,     0,     0,     0,     0,     0,     0,   492,   283,
    2322        0,  1053,     0,     0,   165,     0,     0,     0,   285,   286,
    2323      287,   288,   289,   290,     0,     0,     0,     0,     0,     0,
    2324     1426,     0,  -126,     0,     0,     0,     0,     0,     0,     0,
     2350      20,    21,    22,    23,    24,   504,   504,    25,    26,    27,
     2351       0,     0,     0,     0,   277,    30,   278,     8,     9,    10,
     2352      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2353      21,    22,    23,    24,  -279,     0,     0,   279,    33,     0,
     2354      34,     0,    35,   280,    30,    37,    38,   281,     0,     0,
     2355     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2356       0,     0,     0,     0,     0,   288,     0,    33,     0,     0,
     2357       0,     0,     0,     0,     0,     0,     0,     0,  -279,   289,
     2358       0,   916,     0,     0,     0,     0,   768,     0,   291,   339,
     2359     293,   294,   295,   296,     2,   202,     4,     5,     6,     7,
     2360       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2361      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2362      26,    27,     0,     0,     0,     0,   277,    30,   278,     8,
     2363       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2364      19,    20,    21,    22,    23,    24,     0,     0,     0,   279,
     2365      33,     0,    34,     0,    35,   280,    30,    37,    38,   281,
     2366       0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
     2367     287,     0,     0,     0,     0,     0,     0,   288,     0,    33,
    23252368       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2326        0,     0,     0,     0,     0,     0,   492,     0,     0,     0,
    2327        1,     2,   198,     4,     5,     6,     7,     8,     9,    10,
    2328       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2329       21,    22,    23,    24,     0,     0,    25,    26,    27,    28,
    2330        0,     0,    29,   271,    30,   272,     0,     0,     0,  1478,
    2331        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2332        0,     0,   271,     0,   272,     0,   273,    33,     0,    34,
    2333        0,    35,   274,     0,    37,    38,   275,     0,   492,   276,
    2334      277,   278,   279,    40,    41,   273,   280,   281,     0,     0,
    2335        0,   274,   310,     0,   282,   275,     0,     0,   276,   277,
    2336      278,   279,    40,    41,     0,   280,   281,     0,   283,     0,
    2337     1053,     0,     0,   282,     0,     0,     0,   285,   286,   287,
    2338      288,   289,   290,     0,     0,     0,     0,   283,   492,   361,
    2339        0,  -126,     0,     0,   752,     0,   285,   363,   287,   288,
    2340      289,   290,     0,   492,   492,     1,     2,   198,     4,     5,
     2369       0,   289,     0,   916,     0,     0,     0,     0,   768,     0,
     2370     291,   591,   293,   294,   295,   296,     2,   202,     4,     5,
    23412371       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    23422372      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2343        0,    25,    26,    27,    28,     0,     0,    29,   271,    30,
    2344      272,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2345       17,    18,    19,    20,    21,    22,    23,    24,  -280,     0,
    2346        0,   273,    33,     0,    34,     0,    35,   274,    30,    37,
    2347       38,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2348        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
    2349        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
    2350        0,     0,  -280,   283,     0,    43,     0,     0,     0,     0,
    2351        0,     0,   285,   286,   287,   288,   289,   290,     0,     0,
    2352        0,     0,     0,     2,   198,     4,     5,     6,     7,     8,
    2353        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2354       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2355       27,     0,     0,     0,     0,   271,    30,   272,     8,     9,
    2356       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2357       20,    21,    22,    23,    24,     0,     0,     0,   273,    33,
    2358        0,    34,     0,    35,   274,    30,    37,    38,   275,     0,
    2359        0,   276,   277,   278,   279,    40,    41,     0,   280,   281,
    2360        0,     0,     0,     0,     0,     0,   282,     0,    33,     0,
     2373       0,    25,    26,    27,     0,     0,     0,     0,   277,    30,
     2374     278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23612375       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2362      283,     0,   325,    -3,     0,     0,     0,   752,   492,   285,
    2363      326,   287,   288,   289,   290,     2,   198,     4,     5,     6,
    2364        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2365       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2366       25,    26,    27,     0,     0,     0,     0,   271,    30,   272,
     2376       0,   279,    33,     0,    34,     0,    35,   280,     0,    37,
     2377      38,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2378       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    23672379       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2368        0,     0,     0,     0,     0,     0,   492,   492,     0,     0,
    2369      273,    33,     0,    34,     0,    35,   274,     0,    37,    38,
    2370      275,     0,     0,   276,   277,   278,   279,    40,    41,     0,
    2371      280,   281,     0,     0,     0,     0,     0,     0,   282,     0,
    2372        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2373        0,     0,   283,     0,   906,    -3,     0,     0,     0,   752,
    2374        0,   285,   326,   287,   288,   289,   290,     2,   198,     4,
    2375        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2376       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2377        0,     0,    25,    26,    27,     0,     0,     0,     0,   271,
    2378       30,   272,     0,     0,     0,     0,     0,     0,     0,     0,
    2379        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2380        0,     0,   273,    33,     0,    34,     0,    35,   274,     0,
    2381       37,    38,   275,     0,     0,   276,   277,   278,   279,    40,
    2382       41,     0,   280,   281,     0,     0,     0,     0,     0,     0,
    2383      282,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2384        0,     0,     0,     0,   283,     0,   906,    -3,     0,     0,
    2385        0,   752,     0,   285,   574,   287,   288,   289,   290,     2,
    2386      198,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2387       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2388       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2389        0,   271,    30,   272,     0,     0,     0,     0,     0,     0,
    2390        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2391        0,     0,     0,     0,   273,    33,     0,    34,     0,    35,
    2392      274,     0,    37,    38,   275,     0,     0,   276,   277,   278,
    2393      279,    40,    41,     0,   280,   281,     0,     0,     0,     0,
    2394        0,     0,   282,     0,     0,     0,     0,     0,     0,     0,
    2395        0,     0,     0,     0,     0,     0,   283,     0,   325,    -3,
    2396        0,     0,     0,     0,     0,   285,   326,   287,   288,   289,
    2397      290,     2,   198,     4,     5,     6,     7,     8,     9,    10,
    2398       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2399       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2400        0,     0,     0,   271,    30,   272,     0,     0,     0,     0,
    2401        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2402        0,     0,     0,     0,     0,     0,   273,    33,     0,    34,
    2403        0,    35,   274,     0,    37,    38,   275,     0,     0,   276,
    2404      277,   278,   279,    40,    41,     0,   280,   281,     0,     0,
    2405        0,     0,     0,     0,   282,     0,     0,     0,     0,     0,
    2406        0,     0,     0,     0,     0,     0,     0,     0,   283,     0,
    2407      906,    -3,     0,     0,     0,     0,     0,   285,   326,   287,
    2408      288,   289,   290,     2,   198,     4,     5,     6,     7,     8,
    2409        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2410       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2411       27,     0,     0,     0,     0,   271,    30,   272,     0,     0,
    2412        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2413        0,     0,     0,     0,     0,     0,     0,     0,   273,    33,
    2414        0,    34,     0,    35,   274,     0,   199,   200,   275,     0,
    2415        0,   276,   277,   278,   279,    40,    41,     0,   280,   281,
    2416        0,     0,     0,     0,     0,     0,   282,     0,     0,     0,
    2417        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2418      283,     0,   991,     0,     0,     0,     0,     0,     0,   285,
    2419      992,   287,   288,   289,   290,     2,   198,     4,     5,     6,
    2420        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2421       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2422       25,    26,    27,     0,     0,     0,     0,   271,    30,   272,
    2423        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2424        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2425      273,    33,     0,    34,     0,    35,   274,     0,   199,   200,
    2426      275,     0,     0,   276,   277,   278,   279,    40,    41,     0,
    2427      280,   281,     0,     0,     0,     0,     0,     0,   282,     0,
    2428        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2429        0,     0,   283,     0,   361,     0,     0,     0,     0,     0,
    2430        0,   285,   363,   287,   288,   289,   290,  -497,     0,     0,
    2431        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    2432       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2433       21,    22,    23,    24,     0,     0,    25,    26,    27,    28,
    2434        0,     0,    29,     0,    30,    31,     0,     0,     0,     0,
    2435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2436        0,     0,     0,     0,    32,     0,     0,    33,     0,    34,
    2437        0,    35,    36,     0,    37,    38,    39,     0,     0,     0,
    2438        0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    2439        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2440        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
    2441       43,     0,     0,     0,     0,     0,     0,     0,    44,     1,
    2442        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2443       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2444       22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
    2445        0,    29,     0,    30,    31,     0,     0,     0,     0,     0,
    2446        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2447        0,     0,     0,    32,     0,     0,    33,     0,    34,     0,
    2448       35,    36,     0,    37,    38,    39,     0,     0,     0,     0,
    2449        0,     0,    40,    41,     0,     0,     0,     0,     0,     0,
    2450        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2451        0,     0,     0,     0,     0,     0,     0,    42,     0,    43,
    2452        0,     0,     0,  -501,     0,     0,     0,    44,     1,     2,
    2453        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2454       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2455       23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
    2456       29,     0,    30,    31,     0,     0,     0,     0,     0,     0,
    2457        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2458        0,     0,    32,     0,     0,    33,     0,    34,     0,    35,
    2459       36,     0,    37,    38,    39,     0,     0,     0,     0,     0,
    2460        0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
    2461        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2462        0,     0,     0,     0,     0,     0,    42,     0,    43,     0,
    2463        0,     0,     0,     0,     0,     0,    44,   197,     2,   198,
     2380       0,     0,     0,   289,     0,   338,     0,     0,     0,     0,
     2381       0,     0,   291,   339,   293,   294,   295,   296,     2,   202,
    24642382       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    24652383      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    24662384      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2467        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
     2385     277,    30,   278,     0,     0,     0,     0,     0,     0,     0,
    24682386       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2469        0,     0,     0,     0,    33,     0,    34,     0,    35,    36,
    2470        0,   199,   200,    39,     0,     0,     0,     0,     0,     0,
    2471       40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
     2387       0,     0,     0,   279,    33,     0,    34,     0,    35,   280,
     2388       0,    37,    38,   281,     0,     0,   282,   283,   284,   285,
     2389      40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
     2390       0,   288,     0,     0,     0,     0,     0,     0,     0,     0,
     2391       0,     0,     0,     0,     0,   289,     0,   916,     0,     0,
     2392       0,     0,     0,     0,   291,   339,   293,   294,   295,   296,
     2393       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2394      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2395      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2396       0,     0,   277,    30,   278,     0,     0,     0,     0,     0,
    24722397       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2473        0,     0,     0,     0,     0,    42,     0,   201,     0,     0,
    2474        0,     0,     0,     0,     0,   202,   197,     2,   198,     4,
     2398       0,     0,     0,     0,     0,   279,    33,     0,    34,     0,
     2399      35,   280,     0,   203,    38,   281,     0,     0,   282,   283,
     2400     284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
     2401       0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
     2402       0,     0,     0,     0,     0,     0,     0,   289,     0,  1000,
     2403       0,     0,     0,     0,     0,     0,   291,  1001,   293,   294,
     2404     295,   296,     2,   202,     4,     5,     6,     7,     8,     9,
     2405      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2406      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2407       0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
     2408       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2409       0,     0,     0,     0,     0,     0,     0,   279,    33,     0,
     2410      34,     0,    35,   280,     0,   203,    38,   281,     0,     0,
     2411     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2412       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2413       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2414       0,   373,     0,     0,     0,     0,     0,     0,   291,   375,
     2415     293,   294,   295,   296,     1,     2,     3,     4,     5,     6,
     2416       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2417      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2418      25,    26,    27,    28,     0,     0,    29,     0,    30,    31,
     2419       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2420       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
     2421       0,    33,     0,    34,     0,    35,    36,     0,    37,    38,
     2422      39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
     2423       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2424       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2425       0,     0,    42,     0,    43,     0,     0,     0,  -501,     0,
     2426       0,     0,    44,     1,     2,     3,     4,     5,     6,     7,
     2427       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2428      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2429      26,    27,    28,     0,     0,    29,     0,    30,    31,     0,
     2430       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2431       0,     0,     0,     0,     0,     0,     0,    32,     0,     0,
     2432      33,     0,    34,     0,    35,    36,     0,    37,    38,    39,
     2433       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
     2434       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2435       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2436       0,    42,     0,    43,     0,     0,     0,     0,     0,     0,
     2437       0,    44,     1,     2,   202,     4,     5,     6,     7,     8,
     2438       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2439      19,    20,    21,    22,    23,    24,  -278,     0,    25,    26,
     2440      27,    28,     0,     0,    29,     0,    30,     0,     0,     0,
     2441       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2442       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2443       0,    34,     0,    35,     0,     0,    37,    38,     0,     0,
     2444    -278,   201,     2,   202,     4,     5,     6,     7,     8,     9,
     2445      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2446      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2447       0,     0,    43,     0,     0,    30,     0,     0,     0,     0,
     2448     109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2449       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2450      34,     0,    35,     0,     0,   203,    38,     2,   202,     4,
    24752451       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    24762452      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    24772453       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2478       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2454      30,   204,     0,     0,     0,     0,     0,     0,     0,   267,
    24792455       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2480        0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
    2481      199,   200,     2,   198,     4,     5,     6,     7,     8,     9,
     2456       0,     0,     0,    33,     0,    34,     0,    35,    36,     0,
     2457     203,    38,    39,     0,     0,     0,     0,     0,     0,    40,
     2458      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2459       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2460       0,     0,     0,     0,    42,     0,   204,     0,     0,     0,
     2461       0,     0,     0,     0,   205,     2,   202,     4,     5,     6,
     2462       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2463      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2464      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
     2465       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2466       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2467       0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
     2468       0,     0,     2,   202,     4,     5,     6,     7,     8,     9,
    24822469      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    24832470      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2484        0,     0,     0,     0,     0,    30,   201,     0,     0,     0,
    2485        0,     0,     0,     0,   261,     0,     0,     0,     0,     0,
    2486        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2487       34,     0,    35,    36,     0,   199,   200,    39,     0,     0,
    2488        0,     0,     0,     0,    40,    41,     0,     0,     0,     0,
    2489        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2490        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
    2491        0,   201,     0,     0,     0,     0,     0,     0,     0,   202,
    2492        2,   198,     4,     5,     6,     7,     8,     9,    10,    11,
    2493       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2494       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2495        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2496        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2497        0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
    2498       35,     0,     0,    37,    38,     2,   198,     4,     5,     6,
    2499        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2500       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2501       25,    26,    27,     0,     0,     0,     0,     0,    30,   661,
    2502       -3,     0,     0,     0,     0,     0,     0,   610,     0,     0,
    2503        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2504        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2505        0,     0,     2,   198,     4,     5,     6,     7,     8,     9,
    2506       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2507       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2508        0,     0,     0,  -384,   661,    30,     0,     0,     0,     0,
    2509        0,     0,   610,     0,     0,     0,     0,     0,     0,     0,
     2471       0,     0,     0,  -383,   676,    30,     0,     0,     0,     0,
     2472       0,     0,   625,     0,     0,     0,     0,     0,     0,     0,
    25102473       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    25112474      34,     0,    35,     0,     0,    37,    38,     0,     0,     0,
    25122475       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2513        0,     0,     0,     0,     0,     0,     0,  1355,     0,     0,
     2476       0,     0,     0,     0,     0,     0,     0,  1334,     0,     0,
    25142477       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2515        0,   661,     0,     0,     0,     0,     0,     0,     0,   610,
    2516        2,   198,     4,     5,     6,     7,     8,     9,    10,    11,
     2478       0,   676,     0,     0,     0,     0,     0,     0,     0,   625,
     2479       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    25172480      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    25182481      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     
    25222485      35,    30,     0,    37,    38,     0,     0,     0,     0,     0,
    25232486       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2524        0,     0,     0,     0,    33,  1357,     0,     0,     0,   107,
    2525        0,    37,    38,     0,     0,     0,     0,     0,     0,   661,
    2526        0,     0,     0,     0,     0,     0,     0,   610,     2,   198,
     2487       0,     0,     0,     0,    33,  1336,     0,     0,     0,   108,
     2488       0,    37,    38,     0,     0,     0,     0,     0,     0,   676,
     2489       0,     0,     0,     0,     0,     0,     0,   625,     2,   202,
    25272490       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    25282491      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    25312494       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25322495       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2533        0,   199,   200,     2,   198,     4,     5,     6,     7,     8,
     2496       0,   203,    38,     2,   202,     4,     5,     6,     7,     8,
    25342497       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    25352498      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2536       27,     0,     0,     0,     0,     0,    30,   260,     0,     0,
    2537        0,     0,     0,     0,     0,   605,     0,     0,     0,     0,
     2499      27,     0,     0,     0,     0,     0,    30,   266,     0,     0,
     2500       0,     0,     0,     0,     0,   620,     0,     0,     0,     0,
    25382501       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2539        0,    34,     0,    35,     0,     0,    37,    38,     2,   198,
     2502       0,    34,     0,    35,     0,     0,    37,    38,     2,   202,
    25402503       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    25412504      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    25422505      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2543        0,    30,   573,     0,     0,     0,     0,     0,     0,     0,
    2544      610,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2506       0,    30,   676,     0,     0,     0,     0,     0,     0,     0,
     2507     625,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25452508       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2546        0,    37,    38,     2,   198,     4,     5,     6,     7,     8,
     2509       0,    37,    38,     2,   202,     4,     5,     6,     7,     8,
    25472510       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    25482511      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2549       27,     0,     0,     0,     0,     0,    30,   661,     0,     0,
    2550        0,     0,     0,     0,     0,   610,     0,     0,     0,     0,
     2512      27,     0,     0,     0,     0,     0,    30,   590,     0,     0,
     2513       0,     0,     0,     0,     0,   625,     0,     0,     0,     0,
    25512514       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2552        0,    34,     0,    35,     0,     0,   199,   200,     8,     9,
     2515       0,    34,     0,    35,     0,     0,   203,    38,     8,     9,
    25532516      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    25542517      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2555        0,     0,     0,     0,   271,    30,   272,     0,     0,     0,
    2556        0,     0,   201,     0,     0,     0,     0,     0,     0,     0,
    2557      261,     0,     0,     0,     0,     0,     0,   273,    33,     0,
    2558        0,     0,     0,   274,     0,    37,    38,   275,     0,     0,
    2559      276,   277,   278,   279,    40,    41,     0,   280,   281,     0,
    2560        0,     0,     0,     0,     0,   282,     0,     0,     0,     0,
    2561        0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
    2562        0,   505,     0,     0,   165,     0,     0,     0,   285,   286,
    2563      287,   288,   289,   290,     8,     9,    10,    11,    12,    13,
     2518       0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
     2519       0,     0,   204,     0,     0,     0,     0,     0,     0,     0,
     2520     267,     0,     0,     0,     0,     0,     0,   279,    33,     0,
     2521       0,     0,     0,   280,     0,    37,    38,   281,     0,     0,
     2522     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2523       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2524       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2525       0,   590,    -3,     0,     0,     0,     0,     0,   291,   591,
     2526     293,   294,   295,   296,     8,     9,    10,    11,    12,    13,
    25642527      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    25652528      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2566      271,    30,   272,     0,     0,     0,     0,     0,     0,     0,
     2529     277,    30,   278,     0,     0,     0,     0,     0,     0,     0,
    25672530       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,   273,    33,     0,     0,     0,     0,   274,
    2569        0,    37,    38,   275,     0,     0,   276,   277,   278,   279,
    2570       40,    41,     0,   280,   281,     0,     0,     0,     0,     0,
    2571        0,   282,     0,     0,     0,     0,     0,     0,     0,     0,
    2572        0,     0,     0,     0,     0,   283,     0,   573,    -3,     0,
    2573        0,     0,     0,     0,   285,   574,   287,   288,   289,   290,
     2531       0,     0,     0,   279,    33,     0,     0,     0,     0,   640,
     2532       0,    37,    38,   281,     0,     0,   282,   283,   284,   285,
     2533      40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
     2534       0,   288,     0,     0,     0,     0,     0,     0,     0,     0,
     2535       0,     0,     0,     0,     0,   289,   -35,   753,     0,     0,
     2536       0,     0,     0,     0,   291,   292,   293,   294,   295,   296,
    25742537       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    25752538      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2576       26,    27,     0,     0,     0,     0,   271,    30,   272,     0,
     2539      26,    27,     0,     0,     0,     0,   277,    30,   278,     0,
    25772540       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2578        0,     0,     0,     0,     0,     0,     0,     0,     0,   273,
    2579       33,     0,     0,     0,     0,   624,     0,    37,    38,   275,
    2580        0,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2581      281,     0,     0,     0,     0,     0,     0,   282,     0,     0,
     2541       0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
     2542      33,     0,     0,     0,     0,   280,     0,    37,    38,   281,
     2543       0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
     2544     287,     0,     0,     0,     0,     0,     0,   288,     0,     0,
    25822545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2583        0,   283,   -35,   738,     0,     0,     0,     0,     0,     0,
    2584      285,   286,   287,   288,   289,   290,     8,     9,    10,    11,
     2546       0,   289,     0,   290,     0,     0,     0,     0,     0,     0,
     2547     291,   292,   293,   294,   295,   296,     8,     9,    10,    11,
    25852548      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    25862549      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2587        0,     0,   271,    30,   272,     0,     0,     0,     0,     0,
     2550       0,     0,   277,    30,   278,     0,     0,     0,     0,     0,
    25882551       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2589        0,     0,     0,     0,     0,   273,    33,     0,     0,     0,
    2590        0,   274,     0,    37,    38,   275,     0,     0,   276,   277,
    2591      278,   279,    40,    41,     0,   280,   281,     0,     0,     0,
    2592        0,     0,     0,   282,     0,     0,     0,     0,     0,     0,
    2593        0,     0,     0,     0,     0,     0,     0,   283,     0,   284,
    2594        0,     0,     0,     0,     0,     0,   285,   286,   287,   288,
    2595      289,   290,     8,     9,    10,    11,    12,    13,    14,    15,
     2552       0,     0,     0,     0,     0,   279,    33,     0,     0,     0,
     2553       0,   280,     0,    37,    38,   281,     0,     0,   282,   283,
     2554     284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
     2555       0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
     2556       0,     0,     0,     0,     0,     0,     0,   289,     0,   154,
     2557       0,     0,     0,     0,     0,     0,   291,   292,   293,   294,
     2558     295,   296,     8,     9,    10,    11,    12,    13,    14,    15,
    25962559      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2597        0,    25,    26,    27,     0,     0,     0,     0,   271,    30,
    2598      272,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2560       0,    25,    26,    27,     0,     0,     0,     0,   277,    30,
     2561     278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25992562       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2600        0,   273,    33,     0,     0,     0,     0,   274,     0,    37,
    2601       38,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2602        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
     2563       0,   279,    33,     0,     0,     0,     0,   280,     0,    37,
     2564      38,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2565       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    26032566       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2604        0,     0,     0,   283,     0,   152,     0,     0,     0,     0,
    2605        0,     0,   285,   286,   287,   288,   289,   290,     8,     9,
     2567       0,     0,     0,   289,     0,   590,     0,     0,     0,     0,
     2568       0,     0,   291,   591,   293,   294,   295,   296,     8,     9,
    26062569      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    26072570      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2608        0,     0,     0,     0,   271,    30,   272,     0,     0,     0,
     2571       0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
    26092572       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2610        0,     0,     0,     0,     0,     0,     0,   273,    33,     0,
    2611        0,     0,     0,   274,     0,    37,    38,   275,     0,     0,
    2612      276,   277,   278,   279,    40,    41,     0,   280,   281,     0,
    2613        0,     0,     0,     0,     0,   282,     0,     0,     0,     0,
    2614        0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
    2615        0,   573,     0,     0,     0,     0,     0,     0,   285,   574,
    2616      287,   288,   289,   290,     8,     9,    10,    11,    12,    13,
    2617       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2618       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2619      271,    30,   272,     0,     0,     0,     0,     0,     0,     0,
     2573       0,     0,     0,     0,     0,     0,     0,   279,    33,     0,
     2574       0,     0,     0,   280,     0,    37,    38,   281,     0,     0,
     2575     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2576       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2577       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2578       0,   373,     0,     0,     0,     0,     0,     0,   291,   375,
     2579     293,   294,   295,   296,   467,     2,   202,     4,     5,     6,
     2580       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2581      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2582      25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
     2583       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2584      19,    20,    21,    22,    23,    24,  -278,     0,    25,    26,
     2585      27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
     2586       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2587      16,    17,    18,    19,    20,    21,    22,    23,    24,    33,
     2588       0,    25,    26,    27,    36,     0,   331,   332,    39,    30,
     2589    -278,     0,     0,     0,     0,    40,    41,    -3,     0,     0,
    26202590       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2621        0,     0,     0,   273,    33,     0,     0,     0,     0,   274,
    2622        0,    37,    38,   275,     0,     0,   276,   277,   278,   279,
    2623       40,    41,     0,   280,   281,     0,     0,     0,     0,     0,
    2624        0,   282,     0,     0,     0,     0,     0,     0,     0,     0,
    2625        0,     0,     0,     0,     0,   283,     0,   361,     0,     0,
    2626        0,     0,     0,     0,   285,   363,   287,   288,   289,   290,
    2627      455,     2,   198,     4,     5,     6,     7,     8,     9,    10,
    2628       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2629       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2630        0,     0,     0,     0,    30,     8,     9,    10,    11,    12,
    2631       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2632       23,    24,  -279,     0,    25,    26,    27,    33,     0,    34,
    2633        0,    35,    30,     0,    37,    38,     0,     0,     8,     9,
    2634       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2635       20,    21,    22,    23,    24,    33,     0,    25,    26,    27,
    2636       36,     0,   805,    38,    39,    30,  -279,     0,     0,     0,
    2637        0,    40,    41,    -3,     0,     0,     0,     0,     0,     0,
    2638        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2639        0,     0,     0,    36,     0,    37,    38,    39,   567,     0,
    2640        0,     0,     0,     0,    40,    41,   108,     8,     9,    10,
    2641       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2642       21,    22,    23,    24,     0,     0,    25,    26,    27,    42,
    2643        0,   152,     0,     0,    30,     0,     0,     0,     0,    44,
     2591       0,     0,    33,     0,     0,     0,     0,    36,     0,    37,
     2592      38,    39,   333,     0,     0,     0,     0,     0,    40,    41,
     2593     109,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2594      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2595      25,    26,    27,    42,     0,   154,     0,     0,    30,     0,
     2596       0,     0,     0,    44,     0,     0,     0,     0,     0,     0,
    26442597       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2645        0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2646        0,     0,    36,     0,    37,    38,    39,     0,     0,     0,
    2647        0,     0,     0,    40,    41,     8,     9,    10,    11,    12,
    2648       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2649       23,    24,     0,     0,    25,    26,    27,     0,    42,     0,
    2650       43,     0,    30,     0,     0,     0,     0,     0,    44,     0,
    2651        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2652        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2653       36,     0,   199,   200,    39,     0,     0,     0,     0,     0,
    2654        0,    40,    41,     8,     9,    10,    11,    12,    13,    14,
    2655       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2656        0,     0,    25,    26,    27,     0,    42,     0,   260,     0,
    2657       30,     0,     0,     0,     0,     0,   202,     0,     0,     0,
    2658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2659        0,     0,     0,    33,     0,     0,     0,     0,    36,     0,
    2660      805,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2661       41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2662       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2663       25,    26,    27,     0,  1021,     0,   567,     0,    30,     0,
    2664        0,     0,     0,     0,   610,     0,     0,     0,     0,     0,
    2665        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2666        0,    33,     0,     0,     0,     0,    36,     0,   805,    38,
     2598       0,    33,     0,     0,     0,     0,    36,     0,    37,    38,
    26672599      39,     0,     0,     0,     0,     0,     0,    40,    41,     8,
    26682600       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26692601      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2670       27,     0,     0,     0,   567,     0,    30,   434,     0,     0,
    2671        0,     0,   108,     0,     0,     0,     0,     0,     0,     0,
     2602      27,     0,    42,     0,    43,     0,    30,     0,     0,     0,
     2603       0,     0,    44,     0,     0,     0,     0,     0,     0,     0,
    26722604       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2673        0,     0,     0,     0,     0,     0,    37,    38,     8,     9,
    2674       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2675       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2676        0,     0,     0,     0,     0,    30,   434,     0,     0,     0,
    2677        0,     0,   435,     0,     0,     0,   685,     0,     0,     0,
    2678      108,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2679        0,     0,     0,     0,     0,    37,    38,     8,     9,    10,
     2605       0,     0,     0,     0,    36,     0,   203,    38,    39,     0,
     2606       0,     0,     0,     0,     0,    40,    41,     8,     9,    10,
    26802607      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    26812608      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2682        0,     0,     0,     0,    30,   434,     0,     0,     0,     0,
    2683        0,   435,     0,     0,     0,   922,     0,     0,     0,   108,
     2609      42,     0,   266,     0,    30,     0,     0,     0,     0,     0,
     2610     205,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2611       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2612       0,     0,    36,     0,   331,   332,    39,     0,     0,     0,
     2613       0,     0,     0,    40,    41,     8,     9,    10,    11,    12,
     2614      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2615      23,    24,     0,     0,    25,    26,    27,     0,   634,     0,
     2616     333,     0,    30,     0,     0,     0,     0,     0,   625,     0,
     2617       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2618       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2619      36,     0,   331,   332,    39,     0,     0,     0,     0,     0,
     2620       0,    40,    41,     8,     9,    10,    11,    12,    13,    14,
     2621      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2622    -278,     0,    25,    26,    27,     0,     0,     0,   333,     0,
     2623      30,     0,     0,     0,     0,     0,   109,     0,     0,     0,
     2624       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2625       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2626      37,    38,     0,     0,  -278,     8,     9,    10,    11,    12,
     2627      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2628      23,    24,  -278,     0,    25,    26,    27,     0,     0,     0,
     2629       0,     0,    30,     0,   634,     0,   333,     0,     0,     0,
     2630       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2631       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2632       0,     0,    37,    38,     0,     0,  -278,     8,     9,    10,
     2633      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2634      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2635       0,     0,     0,     0,    30,   446,   634,     0,   333,     0,
     2636       0,     0,     0,     0,     0,     0,   625,     0,     0,     0,
    26842637       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    26852638       0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
     
    26872640      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    26882641       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2689      435,     0,     0,     0,  1221,     0,     0,     0,   108,     0,
     2642     447,     0,     0,     0,  1209,     0,     0,     0,   109,     0,
    26902643       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2691        0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
     2644       0,   108,     0,    37,    38,     8,     9,    10,    11,    12,
    26922645      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26932646      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2694        0,     0,    30,     0,     0,     0,     0,  1021,     0,   567,
    2695        0,     0,     0,     0,     0,     0,     0,   108,     0,     0,
     2647       0,     0,    30,   446,     0,     0,     0,     0,     0,    43,
     2648       0,     0,     0,     0,     0,     0,     0,   109,     0,     0,
    26962649       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    26972650       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    26982651      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    26992652      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2700        0,    30,     0,     0,     0,     0,  1021,     0,   567,     0,
    2701        0,     0,     0,     0,     0,     0,   610,     0,     0,     0,
     2653       0,    30,     0,     0,     0,     0,     0,     0,   447,     0,
     2654       0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
    27022655       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    27032656       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
    27042657      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    27052658       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2706       30,     0,     0,     0,     0,     0,     0,   247,     0,     0,
    2707        0,     0,     0,     0,     0,   108,     0,     0,     0,     0,
     2659      30,     0,     0,     0,     0,   634,     0,   333,     0,     0,
     2660       0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    27082661       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    27092662      37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
    27102663      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    27112664       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2712        0,     0,     0,     0,     0,     0,   152,     0,     0,     0,
    2713        0,     0,     0,     0,   108,     0,     0,     0,     0,     0,
    2714        0,     0,    33,     0,     0,     0,     0,     0,     0,   199,
    2715      200,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2665       0,     0,     0,     0,   634,     0,   333,     0,     0,     0,
     2666       0,     0,     0,     0,   625,     0,     0,     0,     0,     0,
     2667       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
     2668      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    27162669      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    27172670      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2718        0,     0,     0,     0,     0,   260,     0,     0,     0,     0,
    2719        0,     0,     0,   261,     0,     0,     0,     0,     0,     0,
     2671       0,     0,     0,     0,     0,   253,     0,     0,     0,     0,
     2672       0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    27202673       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
    27212674       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    27222675      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    27232676      26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
    2724        0,     0,     0,     0,   247,     0,     0,     0,     0,     0,
    2725        0,     0,   610,     0,     0,     0,     0,     0,     0,     0,
    2726       33,     0,     0,     0,     0,     0,     0,    37,    38,     8,
     2677       0,     0,     0,     0,   154,     0,     0,     0,     0,     0,
     2678       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
     2679      33,     0,     0,     0,     0,     0,     0,   203,    38,     8,
    27272680       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    27282681      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    27292682      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2730        0,     0,     0,   567,     0,     0,     0,     0,     0,     0,
    2731        0,   610,     0,     0,     0,     0,     0,     0,     0,    33,
     2683       0,     0,     0,   266,     0,     0,     0,     0,     0,     0,
     2684       0,   267,     0,     0,     0,     0,     0,     0,     0,    33,
    27322685       0,     0,     0,     0,     0,     0,    37,    38,     8,     9,
    27332686      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    27342687      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    27352688       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2736        0,     0,   435,     0,     0,     0,     0,     0,     0,     0,
    2737      108,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2738        0,     0,     0,     0,     0,   199,   200,     8,     9,    10,
     2689       0,     0,   253,     0,     0,     0,     0,     0,     0,     0,
     2690     625,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2691       0,     0,     0,     0,     0,    37,    38,     8,     9,    10,
    27392692      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    27402693      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    27412694       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2742        0,   260,     0,     0,     0,     0,     0,     0,     0,   605,
     2695       0,   333,     0,     0,     0,     0,     0,     0,     0,   625,
    27432696       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    27442697       0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
     
    27462699      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    27472700       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2748      573,     0,     0,     0,     0,     0,     0,     0,   610,     0,
     2701     447,     0,     0,     0,     0,     0,     0,     0,   109,     0,
    27492702       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2750        0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
     2703       0,     0,     0,   203,    38,     8,     9,    10,    11,    12,
    27512704      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    27522705      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2753        0,     0,    30,     0,     0,     0,     0,     0,     0,    43,
    2754        0,     0,     0,     0,     0,     0,     0,   108,     0,     0,
     2706       0,     0,    30,     0,     0,     0,     0,     0,     0,   266,
     2707       0,     0,     0,     0,     0,     0,     0,   620,     0,     0,
    27552708       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2756        0,     0,    37,    38,     2,   198,     4,     5,     6,     7,
    2757        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2758       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2759       26,    27,     0,     0,     0,     0,     0,    30,   567,     0,
    2760        0,     0,     0,     0,     0,     0,   108,     0,     0,     0,
     2709       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
     2710      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2711      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2712       0,    30,     0,     0,     0,     0,     0,     0,   590,     0,
     2713       0,     0,     0,     0,     0,     0,   625,     0,     0,     0,
     2714       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2715       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
     2716      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2717       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2718      30,     0,     0,     0,     0,     0,     0,   333,     0,     0,
     2719       0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
     2720       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2721      37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
     2722      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2723       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2724       0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
     2725       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2726       0,     0,    33,     0,     0,     0,     0,     0,     0,   203,
     2727      38,     2,   202,     4,     5,     6,     7,     8,     9,    10,
     2728      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2729      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2730       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2731       0,     0,     0,   620,     0,     0,     0,     0,     0,     0,
     2732       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2733       0,    35,     0,     0,    37,    38,     0,   277,     0,   278,
     2734    1043,     0,  1044,     0,     0,  1045,  1046,  1047,  1048,  1049,
     2735    1050,  1051,  1052,  1482,  1053,     0,     0,  1054,    32,     0,
     2736     279,     0,     0,     0,     0,     0,   640,     0,     0,  -396,
     2737     281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
     2738     286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
    27612739       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2762       33,     0,    34,     0,    35,     0,     0,    37,    38,     0,
    2763      271,     0,   272,  1041,     0,  1042,     0,     0,  1043,  1044,
    2764     1045,  1046,  1047,  1048,  1049,  1050,  1506,  1051,     0,     0,
    2765     1052,    32,     0,   273,     0,     0,     0,     0,     0,   624,
    2766        0,     0,  -397,   275,     0,     0,   276,   277,   278,   279,
    2767       40,    41,     0,   280,   281,     0,     0,     0,     0,     0,
    2768        0,   282,     0,     0,     0,     0,     0,     0,     0,     0,
    2769        0,     0,     0,     0,     0,   283,     0,   361,     0,     0,
    2770      165,     0,     0,     0,   285,   363,   287,   288,   289,   290,
    2771        0,   271,     0,   272,  1041,     0,  1042,     0,  -126,  1043,
    2772     1044,  1045,  1046,  1047,  1048,  1049,  1050,     0,  1051,     0,
    2773        0,  1052,    32,     0,   273,     0,     0,     0,     0,     0,
    2774      624,     0,     0,     0,   275,     0,     0,   276,   277,   278,
    2775      279,    40,    41,     0,   280,   281,     0,     0,     0,     0,
    2776        0,     0,   282,     0,     0,     0,     0,     0,     0,     0,
    2777        0,     0,     0,     0,     0,     0,   283,     0,   361,     0,
    2778        0,   165,     0,     0,     0,   285,   363,   287,   288,   289,
    2779      290,     0,     0,     0,     0,     0,     0,     0,     0,  -126,
    2780        2,   198,     4,     5,     6,     7,     8,     9,    10,    11,
    2781       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2782       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2783        0,     0,     0,    30,     8,     9,    10,    11,    12,    13,
    2784       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2785       24,     0,     0,    25,    26,    27,    33,     0,    34,     0,
    2786       35,    30,     0,    37,    38,     0,   271,     0,   272,  1041,
    2787        0,  1042,  1402,  1403,  1043,  1044,  1045,  1046,  1047,  1048,
    2788     1049,  1050,  1506,  1051,    33,  1314,  1052,    32,     0,   273,
    2789        0,    37,    38,     0,     0,   624,     0,     0,     0,   275,
    2790        0,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2791      281,     0,     0,     0,     0,     0,     0,   282,     0,     0,
     2740       0,     0,   289,     0,   373,     0,     0,   167,     0,     0,
     2741       0,   291,   375,   293,   294,   295,   296,     0,   277,     0,
     2742     278,  1043,     0,  1044,     0,  -126,  1045,  1046,  1047,  1048,
     2743    1049,  1050,  1051,  1052,     0,  1053,     0,     0,  1054,    32,
     2744       0,   279,     0,     0,     0,     0,     0,   640,     0,     0,
     2745       0,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2746       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    27922747       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2793        0,   283,     0,   361,     0,     0,   165,     0,     0,     0,
    2794      285,   363,   287,   288,   289,   290,   271,     0,   272,  1041,
    2795        0,  1042,  1402,  1403,  1043,  1044,  1045,  1046,  1047,  1048,
    2796     1049,  1050,     0,  1051,     0,     0,  1052,    32,     0,   273,
    2797        0,     0,     0,     0,     0,   624,     0,     0,     0,   275,
    2798        0,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2799      281,     0,     0,     0,     0,     0,     0,   282,     0,     0,
     2748       0,     0,     0,   289,     0,   373,     0,     0,   167,     0,
     2749       0,     0,   291,   375,   293,   294,   295,   296,     0,     0,
     2750       0,     0,     0,     0,     0,     0,  -126,     2,   202,     4,
     2751       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2752      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2753       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2754      30,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2755      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2756      25,    26,    27,    33,     0,    34,     0,    35,    30,     0,
     2757      37,    38,     0,   277,     0,   278,  1043,     0,  1044,  1378,
     2758    1379,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,  1482,
     2759    1053,    33,  1295,  1054,    32,     0,   279,     0,    37,    38,
     2760       0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
     2761     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2762       0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
     2763       0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
     2764     373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
     2765     294,   295,   296,   277,     0,   278,  1043,     0,  1044,  1378,
     2766    1379,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
     2767    1053,     0,     0,  1054,    32,     0,   279,     0,     0,     0,
     2768       0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
     2769     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2770       0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
     2771       0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
     2772     373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
     2773     294,   295,   296,   277,     0,   278,  1043,     0,  1044,     0,
     2774       0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
     2775    1053,     0,     0,  1054,    32,     0,   279,     0,     0,     0,
     2776       0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
     2777     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2778       0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
     2779     277,     0,   278,     0,     0,     0,     0,     0,   289,     0,
     2780     373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
     2781     294,   295,   296,   279,     0,     0,     0,     0,     0,   280,
     2782       0,     0,     0,   281,     0,     0,   282,   283,   284,   285,
     2783      40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
     2784       0,   288,     0,     0,     0,     0,     0,   277,     0,   278,
     2785       0,     0,     0,     0,     0,   289,     0,   373,     0,     0,
     2786       0,     0,   768,     0,   291,   375,   293,   294,   295,   296,
     2787     279,     0,     0,     0,     0,     0,   280,     0,     0,     0,
     2788     281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
     2789     286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
     2790       0,     0,     0,     0,   277,     0,   278,     0,     0,     0,
     2791       0,     0,   289,     0,   373,     0,     0,     0,     0,     0,
     2792       0,   291,   375,   293,   294,   295,   296,   279,     0,     0,
     2793       0,     0,     0,   280,     0,     0,     0,   281,     0,     0,
     2794     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2795       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2796       0,   277,     0,   278,     0,     0,     0,     0,     0,   289,
     2797       0,   373,     0,     0,     0,     0,     0,     0,   291,   723,
     2798     293,   294,   295,   296,   279,     0,     0,     0,     0,     0,
     2799     640,     0,     0,     0,   281,     0,     0,   282,   283,   284,
     2800     285,    40,    41,     0,   286,   287,     0,     0,     0,     0,
     2801       0,     0,   288,     0,     0,     0,     0,     0,   277,     0,
     2802     278,     0,     0,     0,     0,     0,   289,     0,   772,     0,
     2803       0,     0,     0,     0,     0,   291,   375,   293,   294,   295,
     2804     296,   279,     0,     0,     0,     0,     0,   280,     0,     0,
     2805       0,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2806       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
     2807       0,     0,     0,     0,     0,   277,     0,   278,     0,     0,
     2808       0,     0,     0,   289,     0,   373,     0,     0,     0,     0,
     2809       0,     0,   291,   813,   293,   294,   295,   296,   279,     0,
     2810       0,     0,     0,     0,   280,     0,     0,     0,   281,     0,
     2811       0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
     2812       0,     0,     0,     0,     0,     0,   288,     0,     0,     0,
     2813       0,     0,   277,     0,   278,     0,     0,     0,     0,     0,
     2814     289,     0,     0,     0,     0,     0,     0,     0,     0,   291,
     2815     375,   293,   294,   295,   296,   279,     0,     0,     0,     0,
     2816       0,   280,     0,     0,     0,   281,     0,     0,   282,   283,
     2817     284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
     2818       0,     0,     0,   288,     0,     0,     0,     0,     0,   277,
     2819       0,   278,     0,     0,     0,     0,     0,   507,     0,     0,
     2820       0,     0,     0,     0,     0,     0,   291,   375,   293,   294,
     2821     295,   296,   279,     0,     0,     0,     0,     0,   280,     0,
     2822       0,     0,   281,     0,     0,   282,   283,   284,   285,    40,
     2823      41,     0,   286,   287,     0,     0,     0,     0,     0,     0,
     2824     288,     0,     0,     0,     0,     0,   277,     0,   278,     0,
     2825       0,     0,     0,     0,   510,     0,     0,     0,     0,     0,
     2826       0,     0,     0,   291,   375,   293,   294,   295,   296,   279,
     2827       0,     0,     0,     0,     0,   280,     0,     0,     0,   281,
     2828       0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
     2829     287,     0,     0,     0,     0,     0,     0,   288,     0,     0,
    28002830       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2801        0,   283,     0,   361,     0,     0,   165,     0,     0,     0,
    2802      285,   363,   287,   288,   289,   290,   271,     0,   272,  1041,
    2803        0,  1042,     0,     0,  1043,  1044,  1045,  1046,  1047,  1048,
    2804     1049,  1050,     0,  1051,     0,     0,  1052,    32,     0,   273,
    2805        0,     0,     0,     0,     0,   624,     0,     0,     0,   275,
    2806        0,     0,   276,   277,   278,   279,    40,    41,     0,   280,
    2807      281,     0,     0,     0,     0,     0,     0,   282,     0,     0,
    2808        0,     0,     0,   271,     0,   272,     0,     0,     0,     0,
    2809        0,   283,     0,   361,     0,     0,   165,     0,     0,     0,
    2810      285,   363,   287,   288,   289,   290,   273,     0,     0,     0,
    2811        0,     0,   274,     0,     0,     0,   275,     0,     0,   276,
    2812      277,   278,   279,    40,    41,     0,   280,   281,     0,     0,
    2813        0,     0,     0,     0,   282,     0,     0,     0,     0,     0,
    2814      271,     0,   272,     0,     0,     0,     0,     0,   283,     0,
    2815      361,     0,     0,   966,     0,     0,     0,   285,   363,   287,
    2816      288,   289,   290,   273,     0,     0,     0,     0,     0,   274,
    2817        0,     0,     0,   275,     0,     0,   276,   277,   278,   279,
    2818       40,    41,     0,   280,   281,     0,     0,     0,     0,     0,
    2819        0,   282,     0,     0,     0,     0,     0,   271,     0,   272,
    2820        0,     0,     0,     0,     0,   283,     0,   361,     0,     0,
    2821        0,     0,     0,     0,   285,   363,   287,   288,   289,   290,
    2822      273,     0,     0,     0,     0,     0,   274,     0,     0,     0,
    2823      275,     0,     0,   276,   277,   278,   279,    40,    41,     0,
    2824      280,   281,     0,     0,     0,     0,     0,     0,   282,     0,
    2825        0,     0,     0,     0,   271,     0,   272,     0,     0,     0,
    2826        0,     0,   283,     0,   361,     0,     0,     0,     0,     0,
    2827        0,   285,   708,   287,   288,   289,   290,   273,     0,     0,
    2828        0,     0,     0,   624,     0,     0,     0,   275,     0,     0,
    2829      276,   277,   278,   279,    40,    41,     0,   280,   281,     0,
    2830        0,     0,     0,     0,     0,   282,     0,     0,     0,     0,
    2831        0,   271,     0,   272,     0,     0,     0,     0,     0,   283,
    2832        0,   757,     0,     0,     0,     0,     0,     0,   285,   363,
    2833      287,   288,   289,   290,   273,     0,     0,     0,     0,     0,
    2834      274,     0,     0,     0,   275,     0,     0,   276,   277,   278,
    2835      279,    40,    41,     0,   280,   281,     0,     0,     0,     0,
    2836        0,     0,   282,     0,     0,     0,     0,     0,   271,     0,
    2837      272,     0,     0,     0,     0,     0,   283,     0,   361,     0,
    2838        0,     0,     0,     0,     0,   285,   888,   287,   288,   289,
    2839      290,   273,     0,     0,     0,     0,     0,   274,     0,     0,
    2840        0,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2841        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
    2842        0,     0,     0,     0,     0,   271,     0,   272,     0,     0,
    2843        0,     0,     0,   498,     0,     0,     0,     0,     0,     0,
    2844        0,     0,   285,   363,   287,   288,   289,   290,   273,     0,
    2845        0,     0,     0,     0,   274,     0,     0,     0,   275,     0,
    2846        0,   276,   277,   278,   279,    40,    41,     0,   280,   281,
    2847        0,     0,     0,     0,     0,     0,   282,     0,     0,     0,
    2848        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2849      501,     0,     0,     0,     0,     0,     0,     0,     0,   285,
    2850      363,   287,   288,   289,   290,     2,   198,     4,     5,     6,
    2851        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2852       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2853        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
     2831       0,   513,     0,     0,     0,     0,     0,     0,     0,     0,
     2832     291,   375,   293,   294,   295,   296,     2,   202,     4,     5,
     2833       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2834      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2835       0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    28542836       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28552837       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2856        0,    33,     0,    34,     0,    35,    36,     0,   168,   169,
    2857       39,     0,     0,     0,     0,     0,     0,    40,    41,   197,
    2858        2,   198,     4,     5,     6,     7,     8,     9,    10,    11,
    2859       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2860       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2861        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2862        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2863        0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
    2864       35,     0,     0,   199,   200,   455,     2,   198,     4,     5,
    2865        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2866       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2867        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2868        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2869        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2870        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2871       38,     2,   198,     4,     5,     6,     7,     8,     9,    10,
     2838       0,     0,    33,     0,    34,     0,    35,    36,     0,   170,
     2839     171,    39,     0,     0,     0,     0,     0,     0,    40,    41,
     2840     201,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    28722841      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    28732842      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     
    28752844       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28762845       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2877        0,    35,     0,     0,   199,   200,     8,     9,    10,    11,
    2878       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2879       22,    23,    24,     0,     0,    25,    26,    27,   473,   474,
    2880      475,     0,     0,    30,     8,     9,    10,    11,    12,    13,
    2881       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2882       24,     0,     0,    25,    26,    27,    33,     0,     0,     0,
    2883        0,    30,     0,    37,    38,     0,     0,     0,     0,     0,
     2846       0,    35,     0,     0,   203,    38,   467,     2,   202,     4,
     2847       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2848      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2849       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2850      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28842851       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2885        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2886        0,   199,   200
     2852       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
     2853      37,    38,     2,   202,     4,     5,     6,     7,     8,     9,
     2854      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2855      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2856       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
     2857       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2858       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2859      34,     0,    35,     0,     0,   203,    38,     8,     9,    10,
     2860      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2861      21,    22,    23,    24,     0,     0,    25,    26,    27,   485,
     2862     486,   487,     0,     0,    30,     8,     9,    10,    11,    12,
     2863      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2864      23,    24,     0,     0,    25,    26,    27,    33,     0,     0,
     2865       0,     0,    30,     0,    37,    38,     0,     0,     0,     0,
     2866       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2867       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2868       0,     0,   203,    38
    28872869};
    28882870
    28892871#define yypact_value_is_default(yystate) \
    2890   ((yystate) == (-1282))
     2872  ((yystate) == (-1269))
    28912873
    28922874#define yytable_value_is_error(yytable_value) \
     
    28952877static const yytype_int16 yycheck[] =
    28962878{
    2897        1,    42,     0,    42,     0,    42,   178,     1,   230,   180,
    2898      178,   178,   270,    32,   112,   179,   629,   178,   519,   178,
    2899      178,   163,   102,   178,   269,   211,   980,   326,   587,   179,
    2900      331,   672,   733,    31,   437,    31,   672,   672,   480,   605,
    2901      973,   585,   484,   873,    42,   587,    44,   585,    44,   621,
    2902      399,     0,   585,   346,  1020,  1324,    54,   350,   557,   436,
    2903       31,    37,    60,   635,    60,    63,   873,    63,    66,   418,
    2904       66,   443,    66,    65,   751,    42,    75,   426,    37,  1033,
    2905      251,   252,    31,   255,   697,     0,     1,   255,   255,     0,
    2906        1,   101,   256,    65,   255,   193,   255,   255,   478,   585,
    2907      255,  1019,  1020,   585,    37,   103,   256,   748,   106,     0,
    2908       42,   585,   748,   748,   112,   585,    31,   407,   408,   111,
    2909       31,    27,     0,    42,   101,  1406,   220,   103,   102,    44,
    2910       42,    43,   509,    88,   108,    37,    65,   178,   710,   178,
    2911       31,   178,   101,   237,   103,   143,   123,   143,    63,    65,
    2912     1419,    66,   124,    31,    52,    66,    57,   155,     0,   155,
    2913       37,    42,    43,   108,    42,    71,    44,   122,   101,  1402,
    2914      103,   470,  1040,    37,   103,   476,    75,   196,    44,   124,
    2915      178,   179,    60,   179,   121,    63,   123,   246,    66,    31,
    2916      412,   588,   482,   108,   106,   193,    94,   594,   113,   101,
    2917      101,   103,  1483,   102,   202,   391,   202,  1488,   124,   589,
    2918      500,   178,   210,   593,   255,   213,   255,   213,   255,   108,
    2919        0,    78,  1503,   387,   101,   106,   103,   142,  1461,  1510,
    2920        0,     1,   718,  1040,   614,   124,   718,   387,   618,   101,
    2921      155,   242,   108,   241,   718,   241,   178,    65,   105,   104,
    2922       54,    31,   108,   108,   620,   621,    65,   255,   256,   178,
    2923      256,    31,  1228,   822,   262,   143,   101,   811,   124,   635,
    2924      241,   269,   436,   811,   564,   574,   142,   155,   811,   377,
    2925      822,   282,   123,    63,    65,   103,   436,   202,   186,   692,
    2926       37,   790,   241,    63,   103,   106,    66,   102,   213,   103,
    2927      178,   179,   106,   108,   468,   982,   605,   405,  1241,   108,
    2928      208,   610,   410,  1279,     3,   230,   231,   666,   468,   317,
    2929      218,   317,   103,   616,   202,   811,   241,    42,    43,   811,
    2930      241,    89,   330,   331,     3,   213,   202,   811,   253,    89,
    2931      399,   811,   108,   108,   710,   102,   261,  1488,  1049,   347,
    2932      241,     0,   109,   351,   101,   246,   103,   115,   124,   418,
    2933     1278,  1279,    65,   241,   230,   115,    69,   426,   283,  1510,
    2934        0,   286,   671,    76,    77,   101,   935,   255,   123,   377,
    2935     1210,   108,    65,   104,    67,   283,    69,   108,   101,   387,
    2936      934,   387,   107,    76,    77,   261,   934,   124,   101,   241,
    2937      103,   934,    65,  1210,    67,    68,   210,   405,   111,   108,
    2938       65,   326,   410,   108,    69,   673,   813,   332,   101,   101,
    2939      286,    76,    77,   102,  1292,   124,   992,   470,   111,   124,
    2940      109,   108,  1398,   213,  1388,  1389,   108,   695,   436,   317,
    2941      103,   108,   101,   213,   123,   744,   101,   124,    65,  1021,
    2942       67,    68,   124,   331,   455,     1,   111,   124,   262,   104,
    2943      326,   241,   460,   108,   844,   269,   103,   108,   639,   106,
    2944      468,   241,   468,   102,   472,   104,   472,   978,   476,   108,
    2945     1398,     0,   104,   124,   101,  1292,   108,   732,   630,   106,
    2946      101,   102,   407,   408,   123,   124,   102,   412,    44,   500,
    2947      672,   943,   582,   109,   672,   672,  1119,   101,   399,   387,
    2948      674,   672,    31,   672,   672,   516,   101,   672,   519,   434,
    2949      521,   822,   437,   472,   674,   423,   330,   418,   443,    65,
    2950      902,    67,    68,   108,   108,   426,   913,  1096,   108,   637,
    2951      101,   407,   408,   347,   921,  1464,   412,   351,   101,   124,
    2952      124,  1470,   332,   102,   124,   470,   102,   472,   436,   457,
    2953      940,   472,   108,   113,   114,   101,  1485,   482,   569,    63,
    2954      106,  1490,  1440,   210,   102,  1147,  1148,   620,   621,  1447,
    2955      495,   472,   107,   498,   582,   500,   501,   585,   965,   587,
    2956     1488,  1292,   635,   102,   472,   102,   142,   495,   476,   108,
    2957      498,   102,   109,   501,   102,  1503,    44,   666,   606,  1006,
    2958     1007,    65,  1510,    67,   102,    69,   482,   102,  1486,   113,
    2959      108,   111,    76,    77,   622,   262,   116,   117,   671,   101,
    2960      472,   103,   269,  1440,   500,   636,   634,   638,   939,   637,
    2961     1447,    10,    11,    12,    13,    14,   104,   101,   707,   564,
    2962      108,   197,    83,    84,   102,  1021,   202,   111,   103,   574,
    2963      105,   155,   577,   103,   109,   105,  1367,   710,    37,   109,
    2964      108,    81,    82,   859,   672,   101,   674,   103,  1081,  1486,
    2965      495,   461,   101,   498,   230,   231,   501,   118,   119,   101,
    2966      605,    60,   472,   992,   880,   610,   283,   990,   564,   124,
    2967      102,   744,   472,   101,   705,   103,   108,   585,   574,   587,
    2968      347,   102,   101,   111,   351,   261,   101,   108,   264,   213,
    2969      718,   719,   241,   945,   866,    85,    86,   246,   808,    65,
    2970      572,    67,    68,    57,   732,   102,   653,   283,   101,   605,
    2971      286,   108,   101,  1444,   610,  1446,   102,   102,    65,   913,
    2972       67,    68,   108,   108,   652,   249,   671,   921,   101,   253,
    2973      103,   102,   124,   913,   202,   663,   106,   108,   111,   667,
    2974      106,   921,   106,   853,   270,   666,   124,   692,   582,   102,
    2975      326,  1147,  1148,    67,    65,   108,  1487,    71,   106,   106,
    2976       74,   124,    76,   231,   672,   101,   674,   712,    75,    83,
    2977      346,   101,   606,   103,   350,     4,     5,     6,     7,     8,
    2978        9,   111,    65,   811,    67,    68,   707,   112,   622,   102,
    2979      407,   408,   272,   261,   822,   108,   102,   607,   102,   744,
    2980      634,   102,   108,   102,   108,   285,   286,   108,   332,   108,
    2981      718,   719,  1141,   102,   102,   283,  1139,   297,   286,   108,
    2982      108,  1492,   102,  1146,  1112,   120,  1492,  1492,   108,   108,
    2983      109,   407,   408,    62,   121,    64,   412,    87,   101,   786,
    2984      103,    65,   873,    67,    68,    69,   326,   102,   103,   796,
    2985      399,   123,    76,    77,   101,   800,   103,   101,   434,   103,
    2986      103,   437,   972,  1035,   101,   812,   103,   443,   104,   418,
    2987      898,     4,     5,     6,     7,     8,     9,   426,   495,   455,
    2988      101,   498,   103,   363,   501,   913,   102,   411,   698,  1177,
    2989     1178,   205,   101,   921,   103,   124,   102,  1220,   732,  1228,
    2990       54,    55,   712,   811,   480,    65,   482,    67,   484,    69,
    2991      101,   939,   103,   677,   822,   679,    76,    77,   102,   495,
    2992      944,   470,   498,   472,   500,   501,   108,   109,   873,    62,
    2993      802,    64,   873,    78,    79,    80,   553,   461,   102,   606,
    2994      102,   101,   101,   103,   975,   102,  1019,   978,  1021,   980,
    2995      103,   111,   873,    42,    43,   622,   101,   902,   103,   108,
    2996      105,  1010,   990,   101,   102,   103,   434,   634,   123,   437,
    2997      538,   539,   900,  1083,   106,   443,  1104,   540,   541,     4,
    2998        5,     6,     7,     8,     9,   101,   102,   103,   564,  1312,
    2999      800,    10,    11,    12,    13,    14,   546,   547,   574,   944,
    3000      945,   873,  1033,   944,   101,   913,   582,    32,  1118,   101,
    3001      102,   103,  1043,   921,   102,  1046,  1047,  1048,    37,   102,
    3002      334,   108,   336,   104,    65,   897,    67,   495,    69,   605,
    3003      498,   939,   104,   501,   610,    76,    77,    62,   104,    64,
    3004      616,    60,    65,    28,    67,    68,    69,   992,   109,   945,
    3005      101,   102,   103,   577,   109,   535,   536,   537,    75,   102,
    3006      102,   873,   109,   873,   898,   732,  1473,   104,  1141,  1016,
    3007     1017,   452,   107,   873,  1147,  1148,  1104,   542,   543,   544,
    3008      545,   102,   101,   607,   103,  1247,  1248,  1249,   612,    65,
    3009      108,   107,   111,    69,   574,  1040,   992,   107,   101,  1040,
    3010       76,    77,   102,    75,   124,  1512,   102,   102,   422,     0,
    3011        1,   109,   102,   102,  1402,   102,   692,   666,   104,  1040,
    3012      108,   102,   671,  1051,   102,   101,  1073,  1074,    10,    11,
    3013       12,    13,    14,   102,   104,   111,  1081,   101,   101,   104,
    3014       31,    32,   102,   102,   944,   102,   722,   673,   102,   102,
    3015      102,   102,     3,    44,   102,    37,   990,   102,   707,    10,
    3016       11,    12,    13,    14,   107,  1189,    28,   123,  1040,   695,
    3017      104,   104,  1460,  1461,   698,    66,   102,   102,    60,  1210,
    3018      102,   102,   101,   107,   104,   995,    37,    65,   712,    67,
    3019      108,    69,  1220,     3,   104,   744,  1141,   102,    76,    77,
    3020       10,    11,    12,    13,    14,  1278,   102,   108,  1232,    60,
    3021     1082,   102,   102,   108,   106,   104,  1247,  1248,  1249,   101,
    3022      108,   103,   102,   101,   692,   103,   102,    37,   708,   111,
    3023     1040,  1043,   808,   111,    65,   104,    67,    68,    69,   104,
    3024     1040,   104,   108,  1188,  1189,    76,    77,  1499,  1189,   108,
    3025       60,   104,   143,  1381,   102,   101,   101,   783,   101,   101,
    3026      151,   101,   109,   124,  1374,  1210,   107,   102,   102,  1210,
    3027      101,   751,   653,   102,   104,  1306,   800,   853,   102,   107,
    3028      106,   108,   121,  1228,   104,   108,   124,  1232,   179,  1210,
    3029     1492,  1232,   104,   102,  1492,  1492,   104,   104,   104,  1493,
    3030     1324,  1492,   193,  1492,  1492,   196,   197,  1492,  1255,    29,
    3031      102,   202,    45,  1493,   104,   102,   104,   102,  1512,  1266,
    3032     1267,  1268,   104,   124,   873,   124,   902,   124,   124,   124,
    3033     1361,   222,  1512,  1364,   107,   226,   862,   228,  1210,   104,
    3034      107,   102,  1287,   107,   235,  1473,  1374,  1292,   104,   104,
    3035      241,  1292,  1380,  1381,   104,   246,   104,  1388,  1389,   104,
    3036       80,    81,   104,   104,   104,   256,  1313,   943,   944,   945,
    3037      102,  1292,  1300,   264,   102,  1406,   101,   104,  1188,  1324,
    3038     1411,   104,   101,  1324,    55,    54,  1220,   104,  1188,  1189,
    3039      102,   102,   106,   124,    75,  1419,   972,   102,  1210,   109,
    3040     1210,    63,   102,  1434,   101,   786,   104,     0,   888,   104,
    3041     1210,    73,   102,   104,   990,   796,   992,   102,   107,    89,
    3042     1292,  1492,   104,  1492,   102,  1492,   102,   102,   102,   108,
    3043       40,   812,  1232,    89,   902,   326,   109,   124,    31,   102,
    3044      124,   102,   333,  1474,   124,  1473,    75,   124,   102,   109,
    3045      107,   113,  1483,   104,   104,   346,   982,  1488,   124,   350,
    3046      101,   107,   353,   107,  1492,  1493,   102,  1493,   102,   124,
    3047     1501,   995,  1503,    66,  1419,   649,  1507,  1287,  1419,  1510,
    3048      548,   550,  1292,  1120,  1512,  1516,  1512,  1287,   551,  1520,
    3049      549,  1040,  1292,   155,  1306,  1440,   552,  1461,  1301,  1440,
    3050     1210,  1369,  1447,  1520,  1449,  1081,  1447,  1083,   399,  1115,
    3051     1476,  1037,   992,   233,  1447,  1114,  1069,   434,   434,  1440,
    3052     1448,    65,   413,    67,  1324,    69,  1447,   418,   679,   923,
    3053      921,  1476,    76,    77,   446,   426,   569,   966,   866,   722,
    3054     1374,  1486,  1118,   941,  1232,  1486,  1380,  1475,   556,  1361,
    3055      556,   213,  1364,   631,  1499,   732,    -1,   101,   151,   103,
    3056     1040,   452,   556,  1139,   455,  1486,   472,   111,  1440,    -1,
    3057     1146,    -1,    -1,  1190,  1191,  1447,  1193,    -1,    -1,   470,
    3058       -1,   472,  1199,  1511,  1492,  1202,  1112,   249,    -1,   480,
    3059       -1,   253,  1141,   484,  1406,  1523,    -1,    -1,    65,  1411,
    3060       67,    68,    69,  1499,    -1,    -1,    -1,   269,    -1,    76,
    3061       77,    -1,    -1,  1081,  1486,    -1,     3,    -1,    -1,  1419,
    3062       -1,   512,  1434,    10,    11,    12,    13,    14,    -1,   222,
    3063     1440,    -1,    -1,    -1,   101,  1016,  1017,  1447,    -1,    -1,
    3064     1440,    -1,   362,    44,  1220,    -1,    -1,  1447,   241,    -1,
    3065       37,  1177,  1178,   246,    -1,    -1,  1232,    -1,    -1,    60,
    3066       -1,  1210,    63,    -1,  1188,    66,   557,    -1,    -1,    -1,
    3067      332,    -1,     0,    60,    -1,    -1,  1486,    -1,    -1,  1228,
    3068       -1,   572,  1162,   574,    -1,    -1,  1486,    -1,    -1,  1501,
    3069       -1,   582,  1073,  1074,    -1,  1507,   587,    -1,    -1,    -1,
    3070       -1,   452,    -1,    31,  1516,    -1,    -1,    -1,  1520,    -1,
    3071       -1,    -1,    -1,  1380,   605,    -1,    -1,    -1,    -1,   610,
    3072       -1,   441,    -1,    -1,    -1,   616,   446,    -1,    -1,   620,
    3073      621,    10,    11,    12,    13,    14,  1312,    -1,    66,    -1,
    3074      333,    -1,   143,  1292,   635,    -1,  1363,    -1,  1324,   411,
    3075       -1,    -1,    -1,    -1,   155,    -1,    -1,    -1,    37,   479,
    3076      353,   481,   653,  1287,    -1,    -1,   428,    -1,    -1,    -1,
    3077       -1,    -1,    -1,    -1,    -1,   666,    -1,    -1,   179,    -1,
    3078      671,    60,    -1,   674,    -1,    -1,    -1,    -1,    -1,    -1,
    3079       -1,    65,    -1,    67,    -1,    69,    -1,    -1,  1374,   461,
    3080       -1,   202,    76,    77,    -1,    -1,   399,    -1,    -1,    -1,
    3081       -1,    -1,   213,    -1,    -1,    -1,   707,    -1,    -1,   710,
    3082      413,    -1,   101,   151,   103,   418,    -1,   101,   719,   103,
    3083       -1,   722,   111,   426,    -1,   109,    -1,   111,    -1,    -1,
    3084       -1,    -1,    -1,  1419,    -1,  1226,    -1,    -1,    -1,    -1,
    3085       -1,    -1,    -1,   744,    -1,    -1,    -1,    -1,   749,   452,
    3086       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
    3087       -1,    -1,    -1,  1449,  1255,    -1,  1402,   470,    -1,   472,
    3088       -1,    -1,    -1,    -1,    -1,  1266,  1267,  1268,    -1,    -1,
    3089       -1,  1440,    -1,   123,    -1,   786,    -1,    -1,  1447,    -1,
    3090     1476,    -1,   653,    -1,    -1,   796,   626,    -1,    -1,    -1,
    3091      801,   802,    -1,   241,    -1,   577,   317,   808,   246,   512,
    3092       -1,   812,    -1,  1499,    -1,    -1,    -1,    -1,    -1,    -1,
    3093      821,    -1,  1313,    -1,  1460,  1461,    -1,  1486,    -1,    -1,
    3094       -1,    -1,    -1,    -1,    -1,   607,    -1,    -1,   668,    -1,
    3095      612,    -1,    -1,    -1,    -1,    -1,   182,    10,    11,    12,
    3096       13,    14,   853,   189,    -1,    -1,    -1,   687,    -1,    -1,
    3097       -1,    -1,    -1,   693,    -1,    -1,    -1,    -1,    -1,   572,
    3098       -1,  1449,   873,    -1,    37,    -1,   387,    -1,    -1,    -1,
    3099       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,
    3100       -1,    -1,    -1,    -1,    -1,   333,   897,    60,  1476,    -1,
    3101       -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,    -1,
    3102       -1,    -1,    -1,    76,    77,   353,    -1,   620,   621,    -1,
    3103       31,    -1,   258,    -1,    -1,   786,   698,    -1,    25,    26,
    3104       27,    -1,   635,    -1,   935,   796,    -1,    -1,   101,    -1,
    3105      712,    -1,   943,   944,    -1,    -1,    -1,    -1,   111,    -1,
    3106      653,   812,    -1,    -1,    -1,    66,    -1,   958,    -1,    -1,
    3107      732,   399,    -1,   666,    -1,    -1,    -1,    -1,   671,    -1,
    3108       -1,   972,    -1,    -1,    -1,   413,   312,    -1,    -1,    -1,
    3109      418,    -1,    -1,    -1,   320,    -1,    -1,   323,   426,   990,
    3110       -1,   992,    -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,
    3111       97,    -1,    -1,    -1,   707,    -1,    -1,   710,    -1,  1010,
    3112       -1,    -1,    -1,    -1,   452,  1016,  1017,    -1,  1019,  1020,
    3113     1021,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   800,    -1,
    3114       -1,    -1,   470,    -1,   472,    -1,   866,    -1,    -1,  1040,
    3115      151,   744,   872,   379,    -1,    -1,    -1,   383,    -1,     0,
     2879       1,    42,     0,   235,     0,   215,    42,   687,    42,   181,
     2880     103,   181,     1,   687,    32,   687,   165,   620,   181,   275,
     2881     343,     0,   183,  1023,    31,   182,   987,   748,   449,   455,
     2882     181,   181,   645,    31,   600,    31,   181,  1305,   602,   182,
     2883     600,     0,   181,   532,    42,   276,    44,   276,    44,   492,
     2884       1,   600,    31,   496,   570,   343,    54,   603,   887,   152,
     2885     887,   980,    60,   609,    60,    63,    42,    63,    66,    37,
     2886      66,   600,    31,   767,  1035,    42,   448,    66,   113,  1042,
     2887     602,     0,     0,    42,   764,    44,   600,    42,    65,   261,
     2888     764,   261,   764,    44,   490,   600,   257,   258,   261,   712,
     2889      75,    60,   419,   420,    63,   262,   104,    66,    44,   107,
     2890     261,   261,    31,    31,   102,   113,   261,   411,   101,   262,
     2891      65,   109,   261,    27,   600,     0,     1,  1395,  1022,  1023,
     2892      57,   339,    65,     0,   111,   103,   430,    89,    52,    78,
     2893     181,    42,    43,    89,   438,   181,   144,   181,   144,   521,
     2894      37,  1378,   103,    88,   152,   108,    31,   101,   109,   157,
     2895     101,   157,   197,   115,    31,    37,   105,    71,    37,   115,
     2896     103,   124,   358,   109,   101,    37,   362,   494,   224,   124,
     2897     252,    95,   200,   181,   182,   144,   182,   122,    63,    42,
     2898      43,    66,   143,   403,   104,   512,    63,   243,   157,   197,
     2899     488,   152,   635,   636,   733,   181,   107,   205,   604,   205,
     2900    1437,   123,   608,  1042,   181,  1215,   214,    75,   651,   217,
     2901     261,   217,   181,   182,     0,   261,   181,   261,   733,   101,
     2902      54,   103,   101,   629,   103,    37,  1382,   633,    65,   101,
     2903     247,   103,   399,   336,   102,   101,   205,   248,   108,   247,
     2904     201,   247,    44,   106,   205,    31,   399,   733,   217,   825,
     2905     577,   106,  1262,   261,   262,   825,   262,   123,   247,   205,
     2906     268,   102,   365,   837,   482,   189,   825,   275,   109,   602,
     2907     104,   827,    37,   107,   235,   236,   707,   288,   247,   805,
     2908       3,   448,   725,     0,     1,   989,   825,   124,   212,   101,
     2909     236,   103,   261,   102,  1464,   448,    42,    43,   222,  1228,
     2910     109,   825,  1275,  1459,    65,   837,   267,   109,  1464,   270,
     2911     825,  1464,    65,   480,    31,   323,  1486,   323,   247,   247,
     2912    1051,   267,     3,  1479,   252,   108,  1479,   480,   289,   411,
     2913    1486,   292,   217,  1486,   342,   343,   101,   108,   103,   825,
     2914     217,   143,   103,   289,   389,   102,   292,   101,   430,    66,
     2915     103,   359,   109,   124,   323,   363,   438,  1261,  1262,     0,
     2916     106,  1200,   247,  1200,  1374,   289,   123,   943,    65,     0,
     2917     247,   814,   417,   591,   343,   336,   680,   422,   339,   123,
     2918     214,   389,   101,    65,   943,    67,    68,    65,  1001,    67,
     2919      68,   399,   588,   399,  1440,  1366,  1367,   358,    54,   102,
     2920    1446,   362,   620,   205,   365,   108,   103,   625,    65,   417,
     2921      67,    68,   944,   108,   422,  1461,   424,   101,   102,   943,
     2922    1466,   524,   108,   101,   106,   634,   635,   636,   106,   124,
     2923     399,   102,   101,   235,   268,   631,  1275,   108,   124,   101,
     2924     448,   275,   651,  1416,   102,   289,   103,   688,   104,   688,
     2925    1423,   107,   101,   859,  1010,  1011,   467,   108,   419,   420,
     2926     464,   247,    83,    84,   472,   267,   252,   344,   686,   710,
     2927    1374,   710,   480,   124,   480,   108,   484,   913,   484,   448,
     2928     488,   747,   101,   411,   655,   446,   985,   646,   449,  1462,
     2929     292,   124,   101,  1116,   455,   484,   152,   118,   119,   952,
     2930     446,   512,   430,   449,   837,   687,   467,   687,   342,   455,
     2931     438,   435,   108,   104,   687,   484,   725,   108,   529,   488,
     2932     104,   532,   689,   534,   108,   359,   687,   687,   124,   363,
     2933     247,   492,   687,   494,   108,   496,   689,   339,   687,   837,
     2934     922,   108,   760,   949,  1275,   469,   507,   482,   930,   510,
     2935     124,   512,   513,   108,   482,   484,   484,   124,   214,   798,
     2936     101,   507,  1094,   524,   510,   108,   111,   513,   104,   124,
     2937     581,   116,   117,   101,   108,   419,   420,  1416,   102,   108,
     2938     588,   124,   685,   507,  1423,    65,   510,    67,    68,   513,
     2939     124,   973,   600,    67,   602,   124,   473,    71,   680,   484,
     2940      74,   101,    76,   103,   102,   814,   108,   484,   653,    83,
     2941     108,   111,   268,   621,   102,  1346,   577,   419,   420,   275,
     2942     816,   101,   124,  1462,   820,   411,   106,   588,   104,   637,
     2943     591,   600,   108,   602,   102,   104,   101,   876,   103,   108,
     2944     722,   652,   650,   654,   430,   653,   111,   113,   114,  1080,
     2945     948,   102,   438,   104,   874,   507,   759,   108,   510,   620,
     2946     589,   513,   101,   507,   625,   669,   510,   104,   102,   513,
     2947     631,   108,   123,   124,   894,   101,   103,   103,   105,   687,
     2948     102,   689,   109,    65,   102,   111,   342,    69,   101,  1420,
     2949     108,  1422,   494,   107,    76,    77,    85,    86,   484,   634,
     2950     635,   636,   103,   359,   105,   102,    57,   363,   109,   720,
     2951     512,   108,   954,   909,   108,   109,   651,   102,   687,   101,
     2952     689,   880,   566,   108,   685,   733,   734,   102,   124,   111,
     2953     102,   102,  1463,   108,   208,   102,   108,   108,   101,   747,
     2954      29,   108,   102,   102,   668,   622,   707,   101,   108,   108,
     2955     989,   686,   680,   677,   102,   922,   102,   681,   686,   104,
     2956     108,   707,   108,   930,   733,   734,   124,   484,   424,   922,
     2957      65,   106,    67,    68,    69,   577,   737,   930,  1468,   102,
     2958     106,    76,    77,  1001,  1468,   108,  1468,   621,   124,   591,
     2959     725,    80,    81,    63,   722,   124,   102,   801,   759,    65,
     2960    1039,    65,   108,   637,   106,    69,   101,   811,   102,   102,
     2961      80,    44,    76,    77,   108,   108,   650,   825,   620,   101,
     2962     102,   103,   826,   625,   121,   760,   123,    60,   101,   837,
     2963      63,    75,   760,    66,    81,    82,   713,   101,   278,    10,
     2964      11,    12,    13,    14,   114,   104,    65,   111,    67,    68,
     2965     727,   291,   292,   102,   103,   816,   825,   112,    65,   820,
     2966      67,    68,    69,   303,   120,   101,    37,   103,   837,  1110,
     2967     121,  1110,   346,     3,   348,   101,   887,   103,  1037,   814,
     2968      10,    11,    12,    13,    14,  1081,   101,   157,   103,    60,
     2969      87,   101,   821,   103,   680,   123,    78,    79,    80,   339,
     2970     103,   909,   555,   556,   557,   558,   101,    37,   101,   102,
     2971     103,   144,   101,   747,   922,   101,   102,   103,  1136,   101,
     2972     104,   103,   930,   105,   157,   104,  1167,  1168,  1167,  1168,
     2973      60,   101,   588,   103,   102,   375,   722,   101,   102,   103,
     2974     948,   818,  1234,  1235,  1236,    54,    55,   217,   909,   182,
     2975     239,   102,   913,   922,   953,   101,   101,   103,   887,   887,
     2976     434,   930,   101,   104,   103,   621,    65,   913,    67,    68,
     2977      69,   982,   205,   101,   985,   103,   987,    76,    77,   948,
     2978     101,   637,   103,   102,   217,   255,  1014,   911,   692,   259,
     2979     694,   952,   953,   954,   650,   108,   109,  1215,    42,    43,
     2980     551,   552,   887,   104,     4,     5,     6,     7,     8,     9,
     2981     887,   553,   554,   559,   560,  1019,  1020,   102,   102,   102,
     2982     887,   103,   108,   101,  1035,   123,   106,   104,   102,     0,
     2983       1,   102,   104,   109,  1045,   104,   104,  1048,  1049,  1050,
     2984    1001,   104,     4,     5,     6,     7,     8,     9,   109,   108,
     2985      28,    75,   102,   102,   106,   109,   104,  1102,   124,   102,
     2986      31,    32,    62,   108,    64,   107,   107,  1449,   953,   107,
     2987      32,  1075,  1076,    44,   344,   101,    10,    11,    12,    13,
     2988      14,   102,    75,   102,   102,   374,   109,  1022,   102,   102,
     2989     323,   747,   102,  1196,  1102,    66,   108,   102,   102,   102,
     2990      62,   887,    64,    37,   102,   102,  1488,   102,   548,   549,
     2991     550,   102,   102,  1042,  1042,   102,   102,   102,   102,  1080,
     2992    1081,   102,    28,   102,   124,   107,    60,  1004,   104,  1053,
     2993     102,    65,   103,   102,  1080,    69,   104,  1378,   102,  1378,
     2994     123,   107,    76,    77,   104,   108,   102,   102,   102,   108,
     2995     101,   591,   954,   423,   106,   108,   104,  1042,   108,   102,
     2996     102,   108,   108,   102,   453,  1042,   399,   101,   104,   458,
     2997     887,   101,   101,   144,   101,   101,   101,   111,  1045,   124,
     2998    1179,   152,   153,   104,   107,   109,   102,   102,  1196,  1200,
     2999     102,   124,   106,   121,   107,  1436,  1437,  1436,  1437,  1001,
     3000     108,  1136,   491,   473,   493,   104,   108,   104,  1136,  1213,
     3001     102,   182,   102,   102,   102,    45,    63,   104,   104,   104,
     3002    1219,   104,   104,  1234,  1235,  1236,   197,   104,   124,   200,
     3003     201,   124,   101,  1475,   205,  1196,   953,   107,  1242,   102,
     3004       4,     5,     6,     7,     8,     9,  1250,  1251,  1252,   124,
     3005     669,   124,   124,   909,   107,   226,  1042,   102,  1219,   230,
     3006     104,   232,   104,   104,   107,   104,   104,   114,   104,   104,
     3007     241,  1200,  1200,   104,   102,   102,   247,  1288,   104,   104,
     3008     101,   252,    55,   723,    54,   102,  1468,  1215,  1468,   102,
     3009    1294,   262,   106,  1178,  1179,  1468,    75,     0,    62,   270,
     3010      64,  1178,  1469,   109,   124,   104,  1305,  1468,  1468,   104,
     3011     157,   102,   104,  1468,  1359,  1200,  1469,   102,    89,  1468,
     3012     101,  1488,   104,  1200,   594,  1042,  1261,   767,    31,  1340,
     3013     107,    40,  1343,  1200,  1219,  1488,  1180,  1181,   124,  1183,
     3014     102,   102,   102,   102,  1305,  1189,  1275,  1275,  1192,   124,
     3015    1358,  1359,   622,   642,   108,  1366,  1367,   627,   109,  1283,
     3016     102,    89,   102,    66,   464,   336,   124,    75,   339,   124,
     3017     217,  1382,   109,   813,   345,   102,  1387,   107,   104,   104,
     3018     124,   101,   801,   107,   107,  1270,   102,   358,   124,   102,
     3019    1275,   362,   811,  1270,   365,   561,  1395,   665,  1275,  1410,
     3020     562,   564,   563,  1117,  1449,   565,  1200,   826,   255,  1348,
     3021    1437,  1496,   259,   702,  1200,  1284,  1452,  1468,  1112,   708,
     3022    1305,  1288,  1468,  1113,  1468,  1071,  1423,   930,   458,   446,
     3023     446,   694,   581,    65,  1395,    67,    68,    69,   932,  1450,
     3024     411,  1449,   974,   713,    76,    77,   647,   880,  1459,   737,
     3025     153,   950,  1219,  1464,   425,   484,   747,   727,   569,   430,
     3026    1468,  1469,  1179,  1469,  1425,   569,  1477,   438,  1479,   101,
     3027      -1,    -1,  1483,  1340,   569,  1486,  1343,    -1,    -1,  1425,
     3028    1488,  1492,  1488,  1200,    -1,  1496,    -1,  1416,  1416,  1275,
     3029      -1,  1452,    -1,   464,  1423,  1423,   467,   344,  1342,  1468,
     3030    1424,    -1,  1219,    -1,    -1,    65,  1452,    67,    68,    69,
     3031    1395,   482,    -1,   484,  1475,  1382,    76,    77,    -1,    -1,
     3032    1387,   492,    -1,   226,  1358,   496,    -1,  1451,    -1,    -1,
     3033      -1,  1416,    -1,  1462,  1462,    -1,    -1,    -1,  1423,  1416,
     3034    1196,   101,    -1,  1410,   247,    -1,  1423,    -1,   818,   252,
     3035      -1,   111,    -1,   524,   525,    -1,    -1,    -1,  1275,    -1,
     3036      -1,  1001,    65,  1487,    67,    68,    69,    -1,    -1,   669,
     3037      -1,    -1,    -1,    76,    77,  1499,   423,  1462,    10,    11,
     3038      12,    13,    14,    -1,    -1,  1462,    -1,    -1,  1305,    -1,
     3039      -1,   880,    -1,    -1,    -1,    -1,    -1,   886,   101,   570,
     3040    1019,  1020,  1042,    -1,    -1,    37,    -1,    -1,   111,    -1,
     3041    1477,    -1,    -1,    -1,    -1,     0,  1483,   588,   589,    -1,
     3042     591,    -1,    -1,    -1,    -1,  1492,   473,    -1,    60,  1496,
     3043    1416,   602,    -1,    -1,    -1,    -1,    -1,  1423,    -1,    -1,
     3044      -1,    -1,   345,    -1,    -1,    -1,    31,    -1,    -1,   620,
     3045      -1,    -1,    -1,    -1,   625,    -1,  1075,  1076,    -1,    -1,
     3046     631,    -1,    -1,   634,   635,   636,    -1,    -1,    -1,   101,
     3047      -1,   103,    -1,  1475,    -1,    -1,  1462,    -1,  1395,   111,
     3048     651,    66,    63,    -1,    -1,   974,    -1,    -1,    -1,    -1,
     3049      -1,    -1,    73,    -1,     0,     1,    -1,    -1,   669,  1416,
     3050      -1,   801,  1358,    -1,    -1,    -1,  1423,    -1,   411,   680,
     3051      -1,   811,    65,  1153,   685,   686,    69,    -1,   689,    -1,
     3052      -1,     3,   425,    76,    77,    31,   826,   430,    10,    11,
     3053      12,    13,    14,   114,  1004,   438,    -1,    -1,    -1,    -1,
     3054      -1,    -1,    -1,    -1,    -1,  1462,    -1,   594,   101,    -1,
     3055     103,   722,    -1,    -1,   725,    37,    -1,    63,   111,    -1,
     3056      66,   464,     3,   734,    -1,    -1,   737,    -1,   153,    10,
     3057      11,    12,    13,    14,    -1,   622,   157,    -1,    60,   482,
     3058     627,   484,  1071,    -1,    -1,    -1,    -1,    -1,   759,   760,
     3059      -1,    -1,    -1,    -1,   765,    -1,    37,    -1,    -1,    -1,
     3060      -1,    -1,    10,    11,    12,    13,    14,    -1,    10,    11,
     3061      12,    13,    14,    -1,    -1,    -1,    -1,    -1,   185,    60,
     3062      -1,    -1,   525,  1242,    -1,   192,    -1,    -1,    -1,    37,
     3063     801,  1250,  1251,  1252,    -1,    37,   217,    -1,    -1,    -1,
     3064     811,    -1,    -1,   814,    -1,   816,    -1,   153,   819,   820,
     3065     821,    -1,    60,    -1,    -1,   826,    -1,    65,    60,    67,
     3066      68,    69,   247,    -1,    -1,   836,   713,   252,    76,    77,
     3067      -1,    -1,    -1,    -1,   255,  1294,    -1,    -1,   259,    -1,
     3068     727,    -1,    -1,     0,    -1,  1174,   589,    -1,    -1,    -1,
     3069      -1,    -1,    -1,   101,   275,   103,    -1,   264,    -1,   101,
     3070      -1,   103,    -1,   111,    -1,    -1,    -1,    -1,  1178,   111,
     3071      -1,   217,    -1,    -1,    31,    -1,   887,    -1,    -1,  1019,
     3072    1020,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3073      -1,   634,   635,   636,    -1,    -1,    -1,    -1,   909,    -1,
     3074      -1,   247,    -1,    -1,    -1,    -1,    -1,    -1,   651,    66,
     3075      -1,   318,    -1,    10,    11,    12,    13,    14,    -1,   326,
     3076     345,    -1,   329,   344,    -1,    -1,   669,    -1,    -1,    -1,
     3077      -1,   818,    -1,   944,    -1,  1075,  1076,   680,    -1,    -1,
     3078      37,   952,   953,   686,    -1,    -1,    -1,    65,    -1,    67,
     3079      68,    69,    -1,    25,    26,    27,   967,    -1,    76,    77,
     3080    1270,    -1,    -1,    60,    90,    91,    92,    93,    94,    95,
     3081      96,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,   722,
     3082      -1,    -1,   725,   101,   391,   103,   411,    -1,   395,    -1,
     3083    1001,   109,    -1,   111,    -1,    -1,   153,   123,    -1,    -1,
     3084     425,    -1,   423,  1014,   101,   430,   103,    -1,  1019,  1020,
     3085      -1,  1022,  1023,   438,   111,    -1,    -1,   760,    -1,   440,
     3086      -1,    -1,    -1,    -1,    96,    -1,    98,    -1,    -1,    -1,
     3087      -1,  1042,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   464,
     3088      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3089      -1,    -1,   473,    -1,    -1,    -1,    -1,   482,   801,   484,
     3090      -1,    -1,    -1,    -1,  1075,  1076,    -1,    -1,   811,    37,
     3091    1081,   814,   479,  1213,    -1,    -1,   819,    -1,   821,   425,
     3092      -1,    -1,    -1,   826,    -1,    -1,    -1,    -1,    -1,    -1,
     3093     247,    -1,    60,    -1,    -1,   252,    -1,    65,    -1,    -1,
     3094     525,    69,  1242,    -1,    -1,   177,    -1,    -1,    76,    77,
     3095    1250,  1251,  1252,    -1,    -1,   187,   188,  1004,    -1,    -1,
     3096     192,    -1,   194,   195,    -1,  1136,    -1,    -1,    -1,    -1,
     3097      -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,   484,    -1,
     3098      -1,    -1,    -1,   111,   887,    65,    -1,    67,    68,    69,
     3099      -1,    -1,    -1,    -1,  1294,    -1,    76,    77,    -1,    -1,
     3100      -1,     0,   569,   570,   589,    -1,    -1,    -1,  1179,    -1,
     3101      -1,    -1,    -1,   594,    -1,    -1,    -1,    -1,    -1,   525,
     3102      -1,   101,    -1,   103,    -1,  1196,    -1,    -1,   345,  1200,
     3103      -1,   111,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3104      -1,   622,  1213,    -1,  1215,    -1,   627,    -1,  1219,   634,
     3105     635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3106      -1,    -1,    -1,    -1,   967,    -1,   651,    66,    -1,    -1,
     3107      -1,  1242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1250,
     3108    1251,  1252,    -1,   589,   669,    -1,    -1,    -1,    -1,   656,
     3109    1261,  1262,    -1,   660,   411,   680,    -1,    -1,    -1,    -1,
     3110      -1,   686,    -1,    -1,  1275,    -1,    -1,    -1,   425,    -1,
     3111      -1,    -1,    -1,   430,    -1,    -1,  1019,  1020,    -1,  1022,
     3112    1023,   438,    -1,  1294,    -1,    -1,   693,    -1,   634,   635,
     3113     636,  1178,   713,    -1,  1305,    -1,    -1,   722,    -1,  1042,
     3114     725,    -1,    -1,    -1,    -1,   651,   727,   464,    -1,    -1,
     3115      -1,    -1,    -1,    -1,   153,    -1,    -1,    -1,    -1,    -1,
     3116      -1,    -1,    -1,    -1,    -1,   482,   747,   484,    -1,    -1,
     3117      -1,    -1,  1075,  1076,    -1,   760,    -1,    -1,    -1,    -1,
     3118      -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3119      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3120      25,    26,    -1,  1374,    29,    30,    31,    -1,   525,    -1,
     3121      -1,    -1,    37,    38,    -1,    -1,   801,    -1,    -1,   725,
     3122      -1,    -1,    -1,  1270,  1395,    -1,   811,    -1,    -1,   814,
     3123      -1,    -1,    -1,  1136,   819,    60,   821,   818,   805,    -1,
     3124      -1,   826,    67,    68,    -1,  1416,    -1,    -1,   247,    -1,
     3125      -1,    -1,  1423,   252,    -1,    -1,    -1,    -1,    -1,    -1,
     3126      -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3127      14,    -1,   589,    -1,    -1,    -1,  1179,    -1,   103,    -1,
     3128      -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3129      -1,  1462,    65,    37,    67,    68,    69,  1200,  1469,    -1,
     3130      -1,    -1,   887,    76,    77,    -1,    -1,    -1,   814,    -1,
     3131    1213,    -1,  1215,    -1,    -1,   821,    60,   634,   635,   636,
     3132      -1,    65,    -1,    67,    68,    69,    -1,    -1,   101,    -1,
     3133     103,    -1,    76,    77,   651,    -1,    -1,    -1,   111,  1242,
     3134      -1,   573,   574,    -1,    -1,    -1,   345,  1250,  1251,  1252,
     3135     917,    -1,   669,    -1,    -1,    -1,    -1,   101,  1261,  1262,
     3136      -1,    -1,    -1,   680,    -1,    -1,    -1,   111,    -1,   686,
     3137      -1,   603,  1275,    -1,   606,   607,    -1,   609,    -1,   611,
     3138     612,   887,   967,    -1,   616,   617,    -1,    -1,    -1,    -1,
     3139      -1,  1294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3140      -1,    -1,    -1,    -1,    -1,   722,    -1,    -1,   725,    -1,
     3141      -1,    -1,   411,    -1,    -1,    -1,    65,    -1,    67,    68,
     3142      69,    -1,    -1,  1004,   991,    -1,   425,    76,    77,    -1,
     3143      -1,   430,    -1,    -1,  1019,  1020,    -1,  1022,  1023,   438,
     3144    1007,    -1,    -1,   760,    50,    -1,    52,   953,    -1,    55,
     3145      56,    57,   101,    59,   103,    -1,    -1,  1042,    -1,    -1,
     3146      -1,   967,   111,    -1,    -1,   464,   698,   699,    74,    -1,
     3147      -1,  1374,   704,    10,    11,    12,    13,    14,    -1,    -1,
     3148      86,    87,    -1,   482,   801,   484,    -1,    -1,    -1,    -1,
     3149    1075,  1076,    -1,    -1,   811,    -1,    -1,   814,    -1,    -1,
     3150      37,    -1,   819,    -1,   821,    -1,    -1,    -1,    -1,   826,
     3151      -1,    -1,    -1,  1416,    -1,  1082,  1022,  1023,    -1,    -1,
     3152    1423,    -1,    -1,    60,    -1,    -1,   525,    -1,    65,    -1,
     3153      67,    68,    69,    -1,    -1,    -1,  1042,    -1,    -1,    76,
     3154      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3155      -1,  1136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1462,
     3156      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3157     887,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3158      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3159     589,    -1,    -1,    -1,  1179,    -1,    -1,  1178,    10,    11,
     3160      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3161      22,    23,    24,    25,    26,  1200,    -1,    29,    30,    31,
     3162      -1,    -1,    -1,    -1,    -1,    37,    38,    -1,  1213,    -1,
     3163    1215,    -1,    -1,    -1,    -1,   634,   635,   636,    -1,    -1,
     3164      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3165     967,    -1,   651,    -1,    -1,    67,    68,  1242,    -1,    -1,
     3166      -1,    -1,    -1,    -1,    -1,  1250,  1251,  1252,    -1,    -1,
     3167     669,    -1,  1178,  1179,    -1,    -1,  1261,  1262,    -1,    -1,
     3168      -1,   680,    -1,    -1,    -1,    -1,    -1,   686,    -1,  1270,
     3169    1275,   103,    -1,    -1,  1200,   107,    -1,    -1,    -1,   111,
     3170      -1,    -1,  1019,  1020,    -1,  1022,  1023,    -1,    -1,  1294,
     3171      -1,    -1,    -1,  1219,    -1,    -1,    -1,    -1,    -1,    -1,
     3172      -1,    -1,    -1,   722,    -1,  1042,   725,    -1,    -1,    -1,
     3173      -1,    -1,    -1,   339,   340,    -1,    -1,    -1,    -1,    -1,
     3174      -1,    -1,    -1,    -1,    -1,   351,   352,    -1,    -1,    -1,
     3175      -1,    -1,    -1,    -1,    -1,  1261,  1262,    -1,  1075,  1076,
     3176      -1,   760,    -1,    -1,  1270,    -1,    -1,    -1,    -1,  1275,
     3177      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3178      19,    20,    21,    22,    23,    24,    25,    26,    27,  1374,
     3179      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,  1305,
     3180      -1,    -1,   801,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3181      -1,    -1,   811,    -1,    -1,   814,    -1,    -1,    -1,  1136,
     3182     819,    60,   821,    -1,    -1,    -1,    -1,   826,    67,    68,
     3183      -1,  1416,    71,    -1,    -1,    -1,    -1,    -1,  1423,    -1,
     3184      -1,    -1,    -1,    -1,    -1,  1077,    -1,    10,    11,    12,
     3185      13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3186      -1,    -1,  1179,    -1,   103,    -1,    -1,    -1,  1374,    -1,
     3187      -1,    -1,   111,    -1,    37,    -1,    -1,  1462,    -1,    -1,
     3188      -1,    -1,    -1,  1200,    -1,    -1,    -1,    -1,   887,  1395,
     3189      -1,    -1,    -1,    -1,    -1,    -1,  1213,    60,  1215,    -1,
     3190      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
     3191    1416,    -1,    -1,    76,    77,    -1,    -1,  1423,    -1,    -1,
     3192      -1,    -1,    -1,    -1,    -1,  1242,    -1,    -1,    -1,    -1,
     3193      -1,    -1,    -1,  1250,  1251,  1252,    -1,    -1,   101,    -1,
     3194     103,    -1,    -1,    -1,  1261,  1262,    -1,    -1,   111,    -1,
     3195      -1,    -1,    -1,    -1,    -1,    -1,  1462,    -1,  1275,    -1,
     3196      -1,    -1,    -1,    -1,    -1,  1197,    -1,    -1,   967,    -1,
     3197      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1294,    -1,     7,
     3198      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3199      -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,
     3200      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,    37,
     3201      38,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,
     3202    1019,  1020,    -1,  1022,  1023,    -1,    -1,    -1,    -1,    -1,
     3203      -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,    -1,
     3204      -1,    69,    -1,  1042,    72,    73,    74,    75,    76,    77,
     3205      -1,    79,    80,    -1,    -1,    -1,    -1,  1374,    -1,    87,
     3206      -1,   109,    -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,
     3207      -1,    -1,    -1,   101,    -1,   103,  1075,  1076,    -1,    -1,
     3208      -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
     3209      -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,    -1,  1416,
     3210      -1,    -1,    -1,    -1,    -1,   153,  1423,    -1,   714,   157,
     3211     716,    -1,    -1,    -1,    -1,    -1,    -1,   723,   724,    -1,
     3212      -1,    -1,   728,    -1,     7,    -1,    -1,    10,    11,    12,
     3213      13,    14,    -1,    -1,   740,    -1,    -1,  1136,    -1,   745,
     3214      -1,    -1,    -1,    -1,    -1,  1462,    -1,    -1,    -1,    -1,
     3215      -1,    -1,    -1,    36,    37,    38,    -1,   205,    -1,    -1,
     3216      -1,    -1,    -1,   769,    -1,    -1,    -1,    -1,    -1,   217,
     3217      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
     3218    1179,    -1,    65,    -1,    -1,    -1,    69,   235,   236,    72,
     3219      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3220      -1,  1200,    -1,    -1,    87,    -1,    -1,   813,    -1,    -1,
     3221      -1,   259,    -1,    -1,  1213,    -1,  1215,    -1,   101,   267,
     3222     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3223     113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3224      -1,   289,    -1,  1242,   292,    -1,    -1,    -1,    -1,    -1,
     3225      -1,  1250,  1251,  1252,    -1,    -1,    -1,    -1,    -1,    -1,
     3226      -1,    -1,  1261,  1262,   870,   871,   872,   873,    -1,   875,
     3227      -1,    -1,    -1,    -1,    -1,    -1,  1275,    -1,    -1,    -1,
     3228      -1,    -1,    -1,    -1,   890,    -1,    -1,    -1,    -1,    -1,
     3229      -1,   339,    -1,    -1,    -1,  1294,   344,    -1,   904,    -1,
     3230      -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
     3231      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3232      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3233      30,    31,    32,    -1,    -1,    35,   942,    37,    -1,    -1,
     3234      -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,
     3235      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3236      60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,
     3237      -1,   419,   420,   979,    -1,  1374,    -1,   425,    -1,    -1,
     3238     986,    -1,    -1,    -1,   990,    -1,    -1,    -1,    -1,   995,
     3239      -1,   997,    -1,    -1,    -1,  1001,  1002,  1003,   446,    -1,
     3240    1006,   449,    -1,   103,    -1,    -1,    -1,   455,    -1,  1015,
     3241      -1,   111,    -1,    96,    -1,    98,    -1,  1416,    -1,    -1,
     3242      -1,    -1,    -1,    -1,  1423,    -1,    -1,  1033,  1034,    10,
     3243      11,    12,    13,    14,   482,    -1,    -1,    -1,    -1,   122,
     3244      -1,    -1,    -1,    -1,    -1,    -1,   494,    -1,    -1,    -1,
     3245      -1,    -1,  1058,    -1,    -1,  1061,    37,    -1,    -1,   507,
     3246      -1,    -1,   510,  1462,   512,   513,    -1,    -1,    -1,    -1,
     3247      -1,    -1,    -1,    -1,    -1,    -1,    -1,   525,    -1,    60,
     3248      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     3249      -1,    -1,    -1,  1099,   177,    76,    77,    -1,    -1,  1105,
     3250    1106,    -1,   185,    -1,   187,   188,    -1,    -1,  1114,   192,
     3251      -1,   194,   195,  1119,    -1,    -1,  1122,    -1,  1124,    -1,
     3252     101,  1127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   577,
     3253     111,    -1,    -1,    -1,  1140,    -1,    -1,    -1,    -1,    -1,
     3254      -1,   589,    -1,   591,    -1,    -1,   594,  1153,    -1,  1155,
     3255    1156,  1157,  1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3256      -1,    -1,    -1,    -1,    -1,  1171,    -1,  1173,    -1,    -1,
     3257      -1,  1177,   620,    -1,    -1,    -1,    -1,   625,    -1,    -1,
     3258      -1,   264,    -1,    -1,    -1,    -1,   634,   635,   636,    -1,
     3259      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1205,
     3260    1206,    -1,    -1,   651,    -1,    -1,    -1,    63,    -1,    -1,
     3261      -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,    75,
     3262      -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,
     3263      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,
     3264      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1253,  1254,    -1,
     3265      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1263,   114,   707,
     3266     116,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3267      -1,    -1,    -1,    -1,    -1,    -1,    -1,   725,    -1,   727,
     3268      -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,
     3269      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3270      -1,   157,    -1,  1309,    -1,    -1,    -1,    -1,    -1,    -1,
     3271      -1,    -1,   760,    -1,    -1,  1321,    -1,  1323,  1324,  1325,
     3272      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1335,
     3273      -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,  1344,    -1,
     3274      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3275    1356,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3276      -1,   217,    -1,   219,   220,   221,   814,    -1,    -1,    -1,
     3277     818,    -1,    -1,   821,    -1,    -1,    -1,    -1,    -1,    -1,
     3278      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3279      -1,    99,    -1,    -1,    -1,    -1,    -1,  1403,  1404,   255,
     3280      -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,    -1,    -1,
     3281    1416,    -1,    -1,    -1,    -1,    -1,    -1,  1423,    -1,   275,
    31163282      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    31173283      20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
    3118       30,    31,  1073,  1074,   512,    -1,    -1,    37,   175,    -1,
    3119       31,  1082,  1083,   786,    -1,    -1,    -1,   184,   185,    -1,
    3120       -1,    -1,   189,   796,   191,   192,    -1,    -1,   801,   802,
    3121       60,    -1,    10,    11,    12,    13,    14,    67,    68,   812,
    3122       -1,    71,    -1,    -1,    -1,    66,    -1,  1118,    -1,    -1,
    3123       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,
    3124      241,   467,    -1,    -1,   572,   246,   966,    -1,  1139,    -1,
    3125     1141,   101,    -1,   103,    -1,  1146,  1147,  1148,    -1,    -1,
    3126       -1,   111,    60,    -1,    -1,  1016,  1017,    65,    -1,    67,
    3127       -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
    3128      873,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3129       -1,    -1,   620,   621,    -1,     0,     1,    -1,  1189,    -1,
    3130       -1,    -1,    -1,   101,   897,   103,    -1,   635,    -1,    -1,
    3131      151,    -1,    -1,   111,    -1,  1206,    -1,    -1,    -1,  1210,
    3132       -1,    -1,  1073,  1074,    -1,   653,    31,    -1,    -1,  1220,
    3133      556,   557,   333,   995,    -1,  1226,    -1,  1228,   666,    -1,
    3134       -1,  1232,    -1,   671,    10,    11,    12,    13,    14,  1069,
    3135       -1,    -1,   353,    -1,    -1,    -1,    -1,    -1,    63,    -1,
    3136       -1,    66,    -1,    -1,  1255,   958,    -1,    -1,    -1,    -1,
    3137       -1,    37,    -1,    -1,    -1,  1266,  1267,  1268,    -1,   707,
    3138       -1,    -1,   710,    -1,    -1,    -1,    -1,  1278,  1279,    -1,
    3139       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,   399,    65,
    3140      241,  1292,    -1,    69,    -1,   246,    -1,    -1,    -1,    -1,
    3141       76,    77,   413,    -1,   640,    -1,   744,   418,   644,    -1,
    3142       -1,  1312,  1313,  1016,  1017,   426,  1019,  1020,  1021,    -1,
    3143       -1,    -1,    -1,  1324,    -1,   101,    10,    11,    12,    13,
    3144       14,    -1,    -1,    -1,    -1,   111,   151,  1040,    -1,    -1,
    3145       -1,   452,   678,    -1,    -1,    -1,    -1,    -1,   786,    -1,
    3146       -1,    -1,    -1,    37,  1184,    -1,    -1,    -1,   796,   470,
    3147       -1,   472,    -1,   801,   802,  1226,    -1,    -1,    -1,    -1,
    3148     1073,  1074,    -1,  1374,   812,    -1,    60,    -1,    -1,  1082,
    3149       -1,    65,   333,    67,    -1,    69,    -1,    -1,    -1,    -1,
    3150       -1,    -1,    76,    77,  1255,    -1,    -1,  1398,   213,    -1,
    3151       -1,   512,   353,    -1,    -1,  1266,  1267,  1268,    -1,    -1,
    3152       -1,    -1,    -1,    -1,    -1,    -1,  1188,   101,  1419,   103,
    3153       -1,    -1,    -1,    -1,    -1,    -1,   241,   111,    -1,    -1,
    3154       -1,    -1,    -1,    -1,    -1,   873,    -1,    -1,  1141,  1440,
    3155       -1,    -1,    -1,    -1,  1147,  1148,  1447,    -1,   399,    -1,
    3156       -1,    -1,  1313,    -1,   790,    -1,    -1,    -1,    -1,   897,
    3157       -1,   572,   413,   560,   561,    -1,    -1,   418,    -1,    -1,
    3158       -1,    -1,    -1,    -1,    -1,   426,    -1,    -1,    -1,    -1,
    3159       -1,    -1,    -1,    -1,    -1,  1486,  1189,    -1,    -1,    -1,
    3160       -1,   588,  1493,    -1,   591,   592,    -1,   594,    -1,   596,
    3161      597,   452,    -1,  1206,   601,   602,    -1,  1210,    -1,   620,
    3162      621,    -1,    -1,    -1,    -1,  1287,    -1,    -1,    -1,   470,
    3163      958,   472,    -1,  1226,   635,  1228,    -1,    -1,    -1,    -1,
    3164       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   353,    -1,
    3165       -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3166       -1,    -1,  1255,    -1,    -1,   666,    -1,    -1,    -1,    -1,
    3167      671,   512,    -1,  1266,  1267,  1268,    -1,    -1,    -1,    -1,
    3168       -1,    -1,   908,    -1,    -1,  1278,  1279,    -1,  1016,  1017,
    3169       -1,  1019,  1020,  1021,    -1,    -1,   683,   684,    -1,  1292,
    3170       -1,    -1,   689,    -1,    -1,    -1,   707,    -1,   413,   710,
    3171       -1,    -1,  1040,    -1,    -1,    10,    11,    12,    13,    14,
    3172     1313,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3173       -1,   572,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3174       -1,    -1,    37,   744,    -1,  1073,  1074,    -1,    -1,    -1,
    3175       -1,    -1,    -1,    -1,  1082,    -1,    -1,    -1,   984,    -1,
    3176       -1,    -1,    -1,    -1,    -1,    60,    -1,   472,    -1,    -1,
    3177       65,    -1,    67,    -1,    69,    -1,    -1,  1003,    -1,   620,
    3178      621,    76,    77,    -1,    -1,   786,    -1,    -1,    -1,    -1,
    3179       -1,    -1,    -1,    -1,   635,   796,    -1,    -1,    -1,    -1,
    3180      801,   802,    -1,    -1,    -1,  1398,   101,   512,   103,    -1,
    3181       -1,   812,   653,  1141,    -1,    -1,   111,    -1,    -1,  1147,
    3182     1148,    -1,    -1,    -1,    -1,   666,    -1,    -1,    -1,    -1,
    3183      671,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3184       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1440,    -1,    -1,
    3185       -1,    -1,    -1,    -1,  1447,    -1,    -1,    -1,  1084,    -1,
    3186       -1,  1189,    37,    -1,    -1,    -1,   707,   572,    -1,   710,
    3187       -1,    -1,   873,    -1,    -1,    -1,    -1,    -1,  1206,    -1,
    3188       -1,    -1,  1210,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    3189       65,    -1,    67,  1486,    69,    -1,   897,    -1,  1226,    -1,
    3190     1228,    76,    77,   744,    -1,    -1,    -1,    -1,    -1,    -1,
    3191       -1,    -1,    -1,    -1,    -1,   620,   621,    -1,    -1,    -1,
    3192       10,    11,    12,    13,    14,    -1,   101,  1255,    -1,    -1,
    3193      635,    -1,    -1,    -1,    -1,    -1,   111,    -1,  1266,  1267,
    3194     1268,    -1,    -1,    -1,    -1,   786,    -1,    37,    -1,    -1,
    3195     1278,  1279,    -1,    -1,    -1,   796,    -1,   958,    -1,    -1,
    3196      801,   802,    -1,    -1,  1292,    -1,    -1,    50,    -1,    52,
    3197       60,   812,    55,    56,    57,    65,    59,    -1,    -1,    69,
    3198       -1,    -1,    -1,    -1,    -1,  1313,    76,    77,    -1,    -1,
    3199       -1,    74,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,
    3200       -1,    -1,    85,    86,    -1,   710,    -1,    -1,    -1,    -1,
    3201       -1,   101,    -1,    -1,    -1,  1016,  1017,    -1,  1019,  1020,
    3202     1021,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3203       -1,    -1,   873,    -1,    -1,    -1,    -1,    -1,    -1,  1040,
     3284      30,    31,  1448,    -1,    -1,    -1,   154,    37,    -1,    -1,
     3285      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,
     3286      -1,    -1,    -1,    -1,    -1,   913,    -1,   323,  1474,    -1,
     3287      60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
     3288      -1,    71,   190,    -1,    -1,    -1,    76,    77,   344,    -1,
     3289     573,   574,  1498,   349,   350,    -1,   204,  1503,    -1,    -1,
     3290      -1,   357,    -1,    -1,    -1,   213,   954,    -1,    -1,    -1,
     3291      -1,   101,    -1,   103,    -1,   223,    -1,    -1,    -1,   967,
     3292     603,   111,    -1,   606,   607,    -1,   609,    -1,   611,   612,
     3293      -1,    -1,    -1,   616,   617,    -1,    -1,    -1,    -1,    -1,
     3294     248,    -1,    -1,   399,    -1,   253,    -1,    -1,    -1,    -1,
     3295      -1,    -1,    -1,  1001,    -1,    -1,    -1,    -1,   266,    -1,
     3296      -1,   417,    -1,    -1,   272,    -1,   274,   423,    -1,    -1,
     3297      -1,    -1,    -1,    -1,  1022,  1023,    -1,    -1,    -1,    -1,
     3298      -1,    -1,   290,    -1,   440,    -1,    -1,   443,   444,    -1,
    32043299      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3205       -1,    -1,    -1,    -1,    -1,    -1,   897,    -1,    -1,    -1,
    3206       -1,    -1,    -1,    95,    -1,    97,    -1,    -1,   151,    -1,
    3207     1398,    -1,  1073,  1074,    -1,    -1,    -1,    -1,    -1,    -1,
    3208       -1,  1082,    -1,    -1,    -1,    -1,    -1,    -1,  1075,   121,
    3209       -1,    -1,    -1,    -1,    -1,    -1,    -1,   802,    -1,    -1,
     3300      -1,    -1,    -1,   459,    -1,    -1,    -1,    -1,    -1,    -1,
     3301     693,    -1,    -1,    -1,    -1,   698,   699,   473,    -1,    -1,
     3302      -1,   704,    -1,    -1,   480,   333,    -1,    -1,    -1,    -1,
     3303     338,    -1,  1080,     3,     4,     5,     6,     7,     8,     9,
     3304      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3305      20,    21,    22,    23,    24,    25,    26,    -1,   366,    29,
     3306      30,    31,   370,   371,    -1,   373,    -1,    37,    -1,    -1,
     3307      -1,   379,   380,    -1,   382,   383,    -1,   385,    -1,   387,
     3308      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1136,    -1,
     3309      60,    -1,    62,    -1,    64,    65,   404,    67,    68,    69,
     3310      -1,    -1,    -1,    -1,   412,    -1,    76,    77,    -1,    -1,
     3311      -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
     3312      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
     3313    1178,   101,    -1,   103,    -1,    -1,    59,    -1,   594,   447,
     3314      -1,   111,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3315      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3316      -1,    -1,   470,    -1,    87,    -1,   622,  1215,   476,    -1,
     3317      -1,   627,    -1,   481,    -1,    -1,    -1,    -1,   101,    -1,
     3318     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3319     113,   114,   115,    -1,    -1,    -1,    -1,    -1,   152,   153,
     3320      -1,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   517,
     3321      -1,    -1,    -1,  1261,  1262,    -1,    -1,    -1,    -1,    -1,
     3322      -1,    -1,  1270,    -1,    -1,   533,    -1,    -1,    -1,    -1,
     3323      -1,   185,    -1,    -1,    -1,    -1,    -1,    -1,   192,    10,
     3324      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3325      21,    22,    23,    24,    25,    26,    -1,   713,    29,    30,
     3326      31,   569,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3327     578,   727,    -1,    -1,    -1,    -1,    -1,   585,    -1,    -1,
     3328      -1,    -1,   590,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3329      -1,   747,    -1,   601,    65,    -1,    67,    68,    69,    -1,
     3330      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3331     264,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3332      -1,    -1,    -1,    -1,    -1,    -1,  1374,    -1,    -1,    -1,
     3333     101,    -1,   103,   641,    -1,   106,    -1,    -1,    -1,   110,
     3334     111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,   805,
    32103335      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3211       -1,    -1,  1440,    -1,    -1,    -1,    -1,   958,    -1,  1447,
    3212       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3213       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3214     1141,    -1,    -1,   175,    -1,    -1,  1147,  1148,    37,    -1,
    3215      182,    -1,   184,   185,    -1,    -1,    -1,   189,  1486,   191,
    3216      192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   873,    -1,
    3217       -1,    60,    -1,    -1,    -1,  1016,  1017,    -1,  1019,  1020,
    3218     1021,    -1,    71,    -1,    -1,    -1,    -1,    -1,  1189,    -1,
    3219       -1,    -1,   897,    -1,    -1,    -1,    -1,    -1,    -1,  1040,
    3220       -1,    -1,    -1,    -1,    -1,  1206,    -1,    -1,    -1,  1210,
     3336      -1,    -1,   818,    -1,   318,    -1,    -1,    -1,   676,    -1,
     3337      -1,    -1,   326,   327,    -1,   329,   330,  1425,    -1,    -1,
     3338      -1,   837,    -1,    -1,    -1,   339,    -1,    -1,    -1,   343,
     3339      -1,    -1,    -1,    -1,  1077,    -1,    -1,    -1,    -1,    -1,
     3340      -1,    -1,    -1,    -1,  1452,    -1,    -1,    -1,   362,    -1,
     3341      -1,   365,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3342      -1,    -1,    -1,   731,    -1,    -1,    -1,  1475,    -1,    -1,
     3343      -1,    -1,    -1,   741,   742,    -1,    -1,   391,    -1,    -1,
     3344      -1,   395,    -1,    -1,    -1,   753,    -1,    -1,    -1,    -1,
    32213345      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3222     1207,    -1,    -1,    -1,    -1,  1226,   258,  1228,    -1,    -1,
    3223       -1,    -1,  1073,  1074,    -1,    -1,    -1,    -1,    -1,   944,
    3224       -1,  1082,    -1,   326,    -1,   328,    -1,    -1,    -1,    -1,
    3225       -1,    -1,    -1,   958,  1255,    -1,   339,   340,    -1,    -1,
    3226       -1,    -1,    -1,    -1,    -1,  1266,  1267,  1268,    -1,    63,
    3227      353,    -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,    73,
    3228       -1,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,
    3229       84,  1292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3230     1141,    -1,    -1,    -1,    -1,    -1,  1147,  1148,    -1,    -1,
    3231       -1,    -1,  1313,    -1,  1019,  1020,  1021,    -1,    -1,   113,
    3232       -1,   115,   116,   117,    -1,    -1,    -1,    -1,    -1,    -1,
    3233      413,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
    3234       -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,  1189,    -1,
     3346      -1,    -1,   770,    -1,   772,    -1,   922,    -1,   776,    -1,
     3347      -1,   425,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3348      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,
     3349      -1,    -1,   948,    -1,   448,    -1,    -1,    -1,   153,    -1,
    32353350      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3236       -1,   155,    -1,    -1,    -1,  1206,    -1,    -1,    -1,  1210,
    3237       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1082,    -1,    -1,
    3238       -1,    -1,    -1,    -1,    -1,  1226,    -1,  1228,    -1,    -1,
    3239       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1398,    -1,    -1,
     3351     165,    -1,    -1,    -1,  1197,    -1,    -1,   973,    -1,    -1,
     3352      -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,   482,    -1,
     3353      -1,    -1,    -1,   841,    -1,    -1,    -1,    -1,    -1,    -1,
     3354     848,    -1,    -1,    -1,    -1,    36,    -1,    38,  1004,    -1,
     3355      -1,    -1,    -1,   861,    -1,   863,    -1,    -1,    -1,  1015,
     3356      -1,    -1,    -1,    -1,    -1,    -1,    -1,   521,    59,   877,
     3357     524,   525,    -1,    -1,    65,   883,    -1,    -1,    69,    -1,
     3358     235,    72,    73,    74,    75,    76,    77,   895,    79,    80,
     3359     898,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3360      -1,    -1,    -1,    -1,    -1,   260,    -1,    -1,   916,    -1,
     3361     101,    -1,   103,    -1,    -1,   569,   570,    -1,   109,   110,
     3362     111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
     3363      -1,    -1,    -1,    -1,   588,   589,    -1,   591,  1094,    -1,
     3364      -1,    -1,    -1,    -1,    -1,    -1,   600,    -1,   602,   603,
     3365      -1,    -1,    -1,    -1,    -1,   609,    -1,    -1,    -1,    -1,
     3366      -1,    -1,    -1,    -1,    -1,   619,   620,    -1,    -1,    -1,
     3367      -1,   625,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3368     634,   635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3369      -1,    -1,  1000,    -1,    -1,    -1,    -1,   651,    -1,    -1,
     3370      -1,    -1,   656,   657,    -1,    -1,   660,   661,    -1,    -1,
     3371      -1,    -1,    -1,   667,    -1,    -1,    -1,    -1,    -1,   374,
     3372      -1,    -1,  1178,    36,    -1,    38,    -1,    -1,    -1,    -1,
     3373      -1,   685,   686,   687,    -1,   689,    -1,    -1,    -1,   693,
     3374      -1,    -1,    -1,    -1,    -1,    -1,    59,  1055,    -1,    -1,
     3375      -1,    -1,    65,  1061,    67,    68,    69,    -1,    -1,    72,
     3376      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3377      -1,   725,   726,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3378      -1,    -1,  1090,    -1,    -1,    -1,    -1,  1095,   101,    -1,
     3379     103,    -1,   105,   106,    -1,  1103,    -1,   110,   111,   112,
     3380     113,   114,   115,    -1,    -1,   759,   760,    -1,    -1,    -1,
     3381     764,   765,    -1,    -1,  1270,   276,   277,   278,   279,   474,
     3382      -1,    -1,    -1,  1131,    -1,   286,   287,    -1,    -1,    -1,
     3383     291,   292,    -1,    -1,    -1,  1143,    -1,    -1,  1146,    -1,
     3384    1148,    -1,   303,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3385      -1,   805,    -1,    -1,  1162,  1163,    -1,   512,    -1,    -1,
     3386     814,    -1,    -1,    -1,    -1,    -1,   820,   821,    -1,    -1,
     3387     525,   825,    -1,   827,    -1,    -1,  1184,   532,   339,    -1,
     3388      -1,    -1,    -1,   837,    -1,    -1,    -1,    -1,    -1,    -1,
     3389     545,   546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3390      -1,    -1,  1210,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3391      -1,    -1,   567,    -1,   375,    -1,    -1,    -1,    -1,    -1,
     3392      -1,    -1,   577,    -1,    -1,    -1,    -1,    -1,    -1,   584,
     3393      -1,    -1,    -1,    -1,   589,    -1,    -1,    -1,    10,    11,
     3394      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3395      22,    23,    24,    25,    26,   909,    -1,    29,    30,    31,
     3396      -1,    -1,    -1,   917,    -1,    37,    -1,    -1,   922,    -1,
     3397      -1,    -1,    -1,    -1,    -1,    -1,   930,    -1,    -1,    -1,
     3398      -1,    -1,    -1,    -1,   639,    -1,    -1,    -1,    60,   943,
     3399     944,   646,  1300,    -1,  1302,    67,    68,    -1,    -1,    -1,
     3400      -1,    -1,    -1,    -1,    -1,  1313,    -1,  1315,    -1,    -1,
     3401      -1,    -1,    -1,   967,    -1,    -1,    -1,    -1,    -1,   973,
     3402      -1,    -1,    -1,    -1,    -1,  1333,    -1,    -1,    -1,    -1,
     3403      -1,   686,  1488,    -1,    -1,    -1,    -1,   991,   992,   111,
     3404      -1,  1349,    -1,    -1,    -1,    -1,    -1,  1001,    -1,  1357,
     3405      -1,    -1,  1360,  1007,  1008,    -1,  1010,  1011,  1012,    -1,
     3406      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1022,  1023,
     3407      -1,    -1,  1380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3408      -1,  1389,    -1,    -1,  1392,  1393,    -1,   548,   549,   550,
     3409     551,   552,   553,   554,   555,   556,   557,   558,   559,   560,
     3410     561,   562,   563,   564,   565,   760,    -1,   762,    -1,    -1,
     3411      -1,    -1,    -1,   768,    -1,    -1,    -1,    -1,    -1,  1427,
     3412     775,  1429,    -1,    -1,    -1,    -1,    -1,  1081,  1082,  1083,
     3413     591,    -1,    -1,  1441,    -1,    -1,    -1,    -1,    -1,    -1,
     3414    1094,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32403415      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3241       -1,    -1,    -1,    -1,  1255,    -1,    -1,    -1,    -1,   213,
    3242       -1,   215,   216,   217,    -1,  1266,  1267,  1268,    -1,   512,
    3243       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,  1440,
    3244       -1,    -1,  1147,  1148,    -1,    -1,  1447,    -1,    -1,    -1,
    3245       -1,  1292,    -1,    -1,    -1,   249,    -1,    -1,    -1,   253,
     3416      -1,    -1,    -1,   818,   819,    -1,   821,    -1,    -1,    -1,
    32463417      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3247       -1,    36,  1313,    38,    -1,   269,    -1,    -1,    -1,    -1,
    3248       -1,    -1,    -1,  1188,  1189,  1486,    -1,    -1,    -1,   572,
    3249       -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
    3250       65,  1206,    -1,    -1,    69,  1210,    -1,    72,    73,    74,
    3251       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3252       -1,    -1,    87,   317,    -1,    -1,    -1,  1232,   560,   561,
    3253       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   332,    -1,
    3254      623,    -1,    -1,   337,   338,   110,   111,   112,   113,   114,
    3255      115,   345,    -1,    -1,    -1,    -1,   588,  1398,    -1,   591,
    3256      592,    -1,   594,    -1,   596,   597,    -1,    -1,   651,   601,
    3257      602,    -1,    -1,  1278,  1279,    -1,    -1,    -1,    -1,    -1,
    3258       -1,    -1,  1287,    -1,    -1,    -1,    -1,  1292,   671,    -1,
    3259       -1,    -1,    -1,   387,    -1,    -1,    -1,    -1,    -1,  1440,
    3260       -1,    -1,    -1,    -1,    -1,    -1,  1447,    -1,    -1,    -1,
    3261       -1,   405,    -1,    -1,    -1,    -1,   699,   411,   701,  1324,
    3262       -1,    -1,    -1,    -1,    -1,   708,   709,    -1,    -1,    -1,
    3263      713,    -1,    -1,    -1,   428,    -1,    -1,   431,   432,    -1,
    3264       43,    -1,   725,    -1,    -1,  1486,   678,   730,    -1,    -1,
    3265       -1,   683,   684,   447,    -1,    -1,    -1,   689,    -1,    -1,
    3266       -1,   744,    -1,    -1,    -1,    -1,    -1,   461,    -1,    -1,
    3267       -1,   754,    -1,    -1,   468,    -1,    -1,    -1,    -1,    -1,
    3268       -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,
    3269       -1,    -1,    -1,  1398,    -1,    98,    10,    11,    12,    13,
    3270       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3271       24,    25,    26,    27,  1419,    29,    30,    31,    -1,   802,
    3272       -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    3273       -1,    -1,    -1,    -1,    -1,  1440,    -1,    -1,   821,    -1,
    3274       -1,    -1,  1447,    -1,    -1,    -1,    60,    -1,    -1,   152,
    3275       -1,    -1,    -1,    67,    68,    -1,    -1,    71,    -1,    -1,
    3276       -1,    -1,   165,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3277       -1,   854,    -1,   856,   857,   858,    -1,    -1,   861,   862,
    3278       -1,  1486,    -1,   577,   187,    -1,    -1,   101,    -1,   103,
    3279       -1,    -1,    -1,   876,    -1,    -1,    -1,   111,   201,    -1,
    3280       -1,    -1,    -1,    -1,    -1,   888,   209,    -1,   891,    -1,
    3281       -1,    -1,    -1,   607,   897,    -1,   219,    -1,   612,    -1,
    3282       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3283       18,    19,    20,    21,    22,    23,    24,    25,    26,   242,
    3284       -1,    29,    30,    31,   247,    -1,    -1,    -1,    -1,    37,
    3285      933,    -1,    -1,    -1,    -1,    -1,    -1,   260,    -1,    -1,
    3286       -1,    -1,    -1,   266,    -1,   268,    -1,    -1,    -1,    -1,
    3287       -1,    -1,    60,    -1,    -1,   958,    -1,    65,    -1,    67,
    3288       68,   284,    -1,    -1,    -1,    -1,    -1,    -1,   971,    -1,
    3289       -1,    -1,    -1,   976,    -1,    -1,   979,    -1,    -1,    -1,
    3290      983,    -1,    -1,    -1,   698,   988,    -1,    -1,    -1,   992,
    3291      993,   994,    -1,    -1,    -1,   103,    -1,    -1,   712,  1002,
    3292       -1,    -1,   325,   111,    -1,    -1,    -1,    -1,    -1,  1012,
    3293       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   732,    -1,
    3294       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1031,  1032,
    3295       -1,   354,    -1,    -1,    -1,   358,   359,    -1,   361,    -1,
    3296       -1,    -1,    -1,    -1,   367,   368,    -1,   370,   371,    -1,
    3297      373,    -1,   375,  1056,    -1,    -1,  1059,    -1,    -1,    -1,
    3298       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   392,
    3299       -1,    -1,    -1,    -1,    -1,    -1,   790,   400,    -1,  1082,
    3300       -1,    -1,    -1,    -1,    -1,    -1,   800,    -1,    -1,    -1,
    3301       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1101,    -1,
    3302       -1,   424,    -1,    -1,  1107,  1108,    -1,    -1,   822,    -1,
    3303       -1,    -1,   435,  1116,    36,    -1,    38,    -1,    -1,  1122,
    3304       -1,    -1,  1125,  1075,  1127,    -1,    -1,  1130,    -1,    -1,
    3305       -1,    -1,    -1,    -1,    -1,   458,    -1,    59,  1141,    -1,
    3306       -1,   464,  1145,    65,    -1,    -1,   469,    69,    -1,    -1,
    3307       72,    73,    74,    75,    76,    77,    -1,    79,    80,  1162,
    3308       -1,  1164,  1165,  1166,  1167,    87,    -1,    -1,    -1,    -1,
    3309       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1181,   101,
    3310     1183,   103,   505,    -1,  1187,    -1,    -1,    -1,   110,   111,
    3311      112,   113,   114,   115,    -1,    -1,    -1,   520,    -1,   913,
    3312       -1,    -1,   124,  1206,    -1,    -1,    -1,    -1,    -1,    -1,
    3313       -1,    -1,  1215,  1216,    -1,    -1,    -1,    -1,    -1,    -1,
    3314       -1,    -1,    -1,    -1,    -1,   939,    -1,    -1,    -1,    -1,
    3315       -1,    -1,    -1,   556,    -1,    -1,    -1,    -1,    -1,    -1,
    3316       -1,    -1,   565,    -1,   567,    -1,    -1,    -1,    -1,    -1,
    3317      573,   965,    -1,    -1,    -1,  1207,    -1,    -1,    -1,    -1,
    3318     1263,  1264,    -1,   586,    -1,    -1,  1269,  1270,    -1,    -1,
    3319       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1280,    -1,    -1,
    3320       -1,   995,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3321       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,
    3322       -1,    -1,   625,    -1,    -1,    -1,    -1,    10,    11,    12,
    3323       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3324       23,    24,    25,    26,    27,  1328,    29,    30,    31,    -1,
    3325       -1,    -1,    -1,    -1,    37,    -1,    -1,  1340,   661,    -1,
    3326       -1,  1344,  1345,  1346,    -1,    -1,    -1,    -1,    -1,    -1,
    3327       -1,    -1,    -1,  1356,    -1,    -1,    -1,    60,    -1,    -1,
    3328       -1,    -1,  1365,    -1,    67,    68,    -1,    -1,    71,    -1,
    3329       -1,    -1,    -1,    -1,    -1,  1378,    -1,    -1,    -1,    -1,
    3330       -1,    -1,  1096,     7,    -1,    -1,    10,    11,    12,    13,
    3331       14,    -1,    -1,   716,    -1,    -1,    -1,    -1,    -1,    -1,
    3332      103,    -1,    -1,   726,   727,    -1,    -1,    -1,   111,   151,
    3333       -1,    -1,    36,    37,    38,   738,    -1,    -1,    -1,    -1,
    3334       -1,    -1,    -1,    -1,  1427,  1428,    -1,    -1,    -1,    -1,
    3335       -1,    -1,   755,    -1,   757,    59,    60,  1440,   761,    -1,
    3336      182,    65,    -1,    -1,  1447,    69,    -1,   189,    72,    73,
    3337       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3338       -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,  1472,
    3339       -1,    -1,    -1,    -1,  1188,    -1,    -1,   101,    -1,   103,
    3340       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    3341      114,   115,    -1,    -1,    -1,  1498,    -1,    -1,    -1,    -1,
    3342       -1,    -1,    -1,   826,    -1,    -1,    -1,    -1,    -1,    -1,
    3343      833,    -1,    -1,    -1,    -1,    -1,   258,    -1,    -1,  1522,
    3344       -1,    -1,    -1,   846,  1527,   848,    -1,    -1,    -1,    -1,
     3418      -1,   836,  1136,     4,     5,     6,     7,     8,     9,    10,
     3419      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3420      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3421      31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3422      -1,   876,    -1,    -1,    -1,   880,    -1,   688,    -1,    -1,
     3423      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3424      -1,    62,  1196,    64,    65,    -1,    67,    68,    69,   710,
     3425      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3426      -1,  1215,   723,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    33453427      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3346      863,    -1,    -1,    -1,    -1,    -1,   869,    -1,    -1,    -1,
    3347       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   881,    -1,
    3348       -1,   884,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3349      312,    -1,    -1,  1287,    -1,    -1,    -1,    -1,   320,   321,
    3350       -1,   323,   324,   906,   326,    -1,    -1,    -1,    -1,   331,
     3428     101,    -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,
     3429     111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,   954,
     3430      -1,    -1,    -1,    -1,    -1,    -1,   767,  1261,  1262,    -1,
     3431      -1,    -1,   967,   968,    -1,    -1,    -1,    -1,    36,   974,
     3432      38,    -1,    -1,    -1,    -1,   980,    -1,    -1,   983,    -1,
     3433     985,    -1,    -1,    -1,    -1,    -1,    -1,   798,    -1,    -1,
     3434      -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,  1004,
     3435      -1,    69,   813,    -1,    72,    73,    74,    75,    76,    77,
     3436    1015,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    33513437      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3352       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,    -1,
    3353       -1,   353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,
    3354       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3355       21,    22,    23,    24,    25,    26,    -1,   379,    29,    30,
    3356       31,   383,    -1,    -1,    -1,   142,    37,    -1,    -1,    -1,
    3357       -1,    -1,    -1,    -1,   151,    -1,    -1,    -1,    -1,    -1,
    3358       -1,    -1,    -1,    -1,    -1,    -1,   163,    -1,   991,    60,
    3359       -1,   413,    -1,    -1,   997,   998,    67,    68,    -1,    -1,
     3438      -1,    -1,  1037,   101,  1039,   103,    -1,    -1,   106,    -1,
     3439      -1,    -1,   110,   111,   112,   113,   114,   115,    -1,  1054,
    33603440      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361       -1,    -1,    -1,    -1,   436,     3,     4,     5,     6,     7,
     3441      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1073,    -1,
     3442    1374,    -1,     0,    -1,    -1,     3,     4,     5,     6,     7,
    33623443       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3363       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3364      111,    29,    30,    31,    32,   467,    -1,    35,   470,    37,
    3365     1053,    -1,    -1,   230,    -1,    -1,  1059,    -1,    -1,    -1,
    3366       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,    -1,
    3367       38,    -1,    60,    -1,    62,    -1,    64,   254,    -1,    67,
    3368       68,    -1,    -1,    71,    -1,    -1,    -1,   509,    -1,  1092,
    3369      512,    59,    -1,    -1,  1097,    -1,    -1,    65,    -1,    -1,
    3370       -1,    69,  1105,    -1,    72,    73,    74,    75,    76,    77,
    3371       -1,    79,    80,    -1,    -1,   103,    -1,    -1,  1512,    87,
    3372       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3373       -1,  1134,    -1,   101,   556,   557,    -1,    -1,    -1,    -1,
    3374       -1,    -1,   110,   111,   112,   113,   114,   115,  1151,    -1,
    3375      572,  1154,   574,  1156,    -1,    -1,    -1,    -1,    -1,    -1,
    3376      582,    -1,    -1,   585,    -1,   587,   588,    -1,    -1,    -1,
    3377     1173,  1174,   594,    -1,     7,    -1,   353,    10,    11,    12,
    3378       13,    14,   604,   605,    -1,   362,    -1,    -1,   610,    -1,
    3379       -1,  1194,    -1,    -1,    -1,    -1,    -1,    -1,   620,   621,
    3380       -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    3381       -1,    -1,    -1,   635,    -1,    -1,    -1,    -1,   640,   641,
    3382     1223,    -1,   644,   645,    -1,    -1,    59,    60,    -1,    -1,
    3383       -1,    -1,    65,    -1,    -1,   412,    69,    -1,    -1,    72,
    3384       73,    74,    75,    76,    77,    -1,    79,    80,    -1,   671,
    3385      672,    -1,   674,    -1,    87,    -1,   678,    -1,    -1,    -1,
    3386       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    36,
    3387      103,    38,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    3388      113,   114,   115,    -1,    -1,   462,    -1,    -1,   710,   711,
    3389       -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3390       67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
    3391       77,    -1,    79,    80,    -1,    -1,  1319,    -1,  1321,    -1,
    3392       87,    -1,   744,   500,    -1,    -1,   748,   749,    -1,  1332,
    3393       -1,  1334,    -1,    -1,   101,   512,   103,    -1,   105,   106,
    3394       -1,    -1,   519,   110,   111,   112,   113,   114,   115,    -1,
    3395       -1,  1354,    -1,    -1,    -1,   532,   533,    -1,    -1,    -1,
    3396       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1370,   790,    -1,
    3397       -1,    -1,    -1,    -1,    -1,    -1,  1379,   554,    -1,  1382,
    3398      802,    -1,    36,    -1,    38,    -1,    -1,   564,    -1,   811,
    3399       -1,   813,    -1,    -1,    -1,   572,    -1,    -1,    -1,    -1,
    3400      822,  1404,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
    3401     1413,    65,    -1,  1416,  1417,    69,    -1,    -1,    72,    73,
    3402       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3403       -1,   853,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3404       -1,    -1,    -1,    -1,    -1,    -1,   623,   101,  1451,   103,
    3405     1453,    -1,   106,   630,    -1,    -1,   110,   111,   112,   113,
    3406      114,   115,  1465,    -1,    -1,    -1,   270,   271,   272,   273,
    3407       -1,    -1,    -1,    -1,   651,   897,   280,   281,    -1,    -1,
    3408       -1,   285,   286,    -1,    -1,    -1,   908,    -1,    -1,    -1,
    3409       -1,   913,    -1,   297,   671,    -1,    -1,    -1,    -1,   921,
    3410       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3411       -1,    -1,   934,   935,    -1,    -1,    -1,    -1,    -1,    -1,
    3412       -1,    -1,   326,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3413       -1,    -1,    -1,    -1,    -1,    -1,   958,    -1,    -1,    -1,
    3414       -1,    -1,    -1,   965,    -1,    -1,    -1,    -1,    -1,    -1,
    3415      972,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   363,
    3416       -1,    -1,   984,   985,    -1,    -1,    -1,   744,   990,   746,
    3417      992,    -1,    -1,    -1,    -1,   752,    -1,    -1,    -1,    -1,
    3418       -1,  1003,  1004,   760,  1006,  1007,  1008,    -1,    -1,    -1,
    3419       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1019,  1020,  1021,
    3420       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3421       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3422      797,    -1,    -1,   800,   801,   802,    10,    11,    12,    13,
    3423       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3424       24,    25,    26,    -1,   821,    29,    30,    31,    -1,    -1,
    3425       -1,    -1,    -1,    37,  1076,    -1,    -1,    -1,    -1,    -1,
    3426     1082,  1083,  1084,  1085,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,    -1,    -1,    -1,  1096,    -1,    60,    -1,    -1,    -1,
    3428       -1,    -1,    -1,    67,    68,   862,    -1,    -1,    -1,   866,
    3429       -1,    -1,    -1,    -1,    -1,    -1,  1118,    -1,    -1,    -1,
    3430       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3431       18,    19,    20,    21,    22,    23,    24,    25,    26,  1141,
    3432      897,    29,    30,    31,  1146,  1147,  1148,   111,    -1,    37,
    3433       38,   535,   536,   537,   538,   539,   540,   541,   542,   543,
    3434      544,   545,   546,   547,   548,   549,   550,   551,   552,    -1,
    3435       -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3436       68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   945,    -1,
    3437      574,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3438       -1,   958,   959,    -1,  1206,    -1,    -1,    -1,    -1,   966,
    3439       -1,    -1,    -1,    -1,    59,   103,   973,    -1,  1220,   976,
    3440       65,   978,    -1,   111,    69,    -1,  1228,    72,    73,    74,
    3441       75,    76,    77,    -1,    79,    80,    -1,    -1,   995,    -1,
    3442       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3443       -1,    -1,    -1,    -1,    -1,  1012,   101,    -1,   103,    -1,
    3444       -1,    -1,    -1,    -1,   109,   110,   111,   112,   113,   114,
    3445      115,    -1,    -1,    -1,    -1,    -1,  1278,  1279,  1035,    -1,
    3446     1037,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   673,
    3447       -1,    -1,    -1,    -1,    -1,  1052,    -1,    -1,    -1,    -1,
    3448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3449     1312,   695,    -1,    -1,  1071,    -1,    -1,    -1,    -1,    -1,
    3450       -1,    -1,    -1,    -1,   708,  1082,     3,     4,     5,     6,
    3451        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3452       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3453       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,
    3454       37,    -1,    -1,  1120,    -1,    -1,    -1,   751,    -1,    -1,
    3455       -1,    -1,  1374,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3456       -1,    -1,    -1,    60,  1141,    62,    -1,    64,    -1,    -1,
    3457       67,    68,    -1,    -1,    -1,    -1,  1398,    -1,    -1,   783,
    3458       -1,    -1,  1159,    -1,  1161,    -1,    -1,    -1,    10,    11,
    3459       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3460       22,    23,    24,    25,    26,    27,   103,    29,    30,    31,
    3461       -1,    -1,    -1,    -1,   111,    37,    -1,    -1,    -1,    -1,
    3462       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1206,
    3463       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3464       -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    71,
    3465       -1,  1473,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,
    3466       -1,    -1,    -1,    -1,  1241,    -1,    -1,    -1,    -1,    -1,
    3467     1492,  1493,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3468       -1,   103,    -1,    -1,   888,    -1,    -1,    -1,    -1,   111,
    3469     1512,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3444      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3445      -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
     3446      38,    -1,  1117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3447      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
     3448      -1,  1136,    60,    -1,    62,    -1,    64,    65,    -1,    67,
     3449      68,    69,    -1,    -1,    -1,  1449,  1151,  1152,    76,    77,
     3450      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,
     3451      -1,    38,    -1,    -1,  1468,  1469,    -1,    -1,    -1,    -1,
     3452      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   989,    -1,
     3453      -1,    -1,    59,   111,  1488,    -1,    -1,    -1,    65,    -1,
     3454    1001,    -1,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3455      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3456      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3457      -1,    -1,    -1,  1228,   101,    -1,   103,    -1,    -1,   106,
     3458      -1,  1042,    -1,   110,   111,   112,   113,   114,   115,    -1,
     3459      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    34703460      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    34713461      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    34723462      32,    -1,    -1,    35,    36,    37,    38,    39,    -1,    41,
    34733463      -1,    -1,    44,    45,    46,    47,    48,    49,    50,    51,
    3474       -1,    53,    -1,    -1,    56,    57,    -1,    59,    60,    -1,
     3464      -1,    53,    -1,    -1,    56,    57,    -1,    59,    60,  1110,
    34753465      62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
    34763466      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3477       -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,   982,    -1,
    3478       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   992,   101,
    3479       -1,   103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,
    3480      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
    3481     1387,    -1,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3482       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3483       -1,    -1,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,
    3484        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3485       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3486       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    3487       -1,    -1,    35,    36,    37,    38,    -1,    -1,    -1,  1456,
    3488       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3489       -1,    -1,    36,    -1,    38,    -1,    59,    60,    -1,    62,
    3490       -1,    64,    65,    -1,    67,    68,    69,    -1,  1112,    72,
    3491       73,    74,    75,    76,    77,    59,    79,    80,    -1,    -1,
    3492       -1,    65,  1499,    -1,    87,    69,    -1,    -1,    72,    73,
    3493       74,    75,    76,    77,    -1,    79,    80,    -1,   101,    -1,
    3494      103,    -1,    -1,    87,    -1,    -1,    -1,   110,   111,   112,
    3495      113,   114,   115,    -1,    -1,    -1,    -1,   101,  1162,   103,
    3496       -1,   124,    -1,    -1,   108,    -1,   110,   111,   112,   113,
    3497      114,   115,    -1,  1177,  1178,     3,     4,     5,     6,     7,
    3498        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3499       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3500       -1,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
    3501       38,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3502       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3503       -1,    59,    60,    -1,    62,    -1,    64,    65,    37,    67,
    3504       68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3505       -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    3506       -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3507       -1,    -1,    71,   101,    -1,   103,    -1,    -1,    -1,    -1,
    3508       -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
    3509       -1,    -1,    -1,     4,     5,     6,     7,     8,     9,    10,
    3510       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3511       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3512       31,    -1,    -1,    -1,    -1,    36,    37,    38,    10,    11,
    3513       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3514       22,    23,    24,    25,    26,    -1,    -1,    -1,    59,    60,
    3515       -1,    62,    -1,    64,    65,    37,    67,    68,    69,    -1,
    3516       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3517       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    60,    -1,
    3518       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3519      101,    -1,   103,   104,    -1,    -1,    -1,   108,  1402,   110,
    3520      111,   112,   113,   114,   115,     4,     5,     6,     7,     8,
     3467      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3468      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3469      -1,   103,  1153,    -1,   106,    -1,    -1,    -1,   110,   111,
     3470     112,   113,   114,   115,    -1,    -1,  1167,  1168,    -1,    -1,
     3471    1365,    -1,   124,    -1,     3,     4,     5,     6,     7,     8,
    35213472       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    35223473      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3523       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    3524       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3525       -1,    -1,    -1,    -1,    -1,    -1,  1460,  1461,    -1,    -1,
    3526       59,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
    3527       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    3528       79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    3529       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3530       -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,   108,
    3531       -1,   110,   111,   112,   113,   114,   115,     4,     5,     6,
    3532        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3533       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3534       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
    3535       37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3536       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3537       -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,
    3538       67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
    3539       77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
    3540       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3541       -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,
    3542       -1,   108,    -1,   110,   111,   112,   113,   114,   115,     4,
    3543        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3544       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3545       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3546       -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3547       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3548       -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
    3549       65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
    3550       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3551       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3552       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,
    3553       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3554      115,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3555       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3556       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3557       -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    3558       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3559       -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,
    3560       -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,    72,
    3561       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3562       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    3563       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    3564      103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    3565      113,   114,   115,     4,     5,     6,     7,     8,     9,    10,
    3566       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3567       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3568       31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
    3569       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3570       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
    3571       -1,    62,    -1,    64,    65,    -1,    67,    68,    69,    -1,
    3572       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3573       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    3574       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3575      101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    3576      111,   112,   113,   114,   115,     4,     5,     6,     7,     8,
    3577        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3578       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3579       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3474      29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
    35803475      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35813476      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3582       59,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3477      59,    60,    -1,    62,    -1,    64,    65,  1432,    67,    68,
    35833478      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    35843479      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    35853480      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35863481      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3587       -1,   110,   111,   112,   113,   114,   115,     0,    -1,    -1,
    3588        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3482    1475,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
     3483      -1,    -1,    -1,    -1,    -1,   124,     3,     4,     5,     6,
     3484       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3485      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3486      -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
     3487      37,    38,    10,    11,    12,    13,    14,    15,    16,    17,
     3488      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3489      -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,    37,
     3490      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3491      77,    -1,    79,    80,    -1,    -1,    -1,  1378,    -1,    -1,
     3492      87,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3493      -1,    -1,    -1,    71,   101,    -1,   103,    -1,    -1,    -1,
     3494      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,    -1,
     3495      -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3496      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3497      22,    23,    24,    25,    26,  1436,  1437,    29,    30,    31,
     3498      -1,    -1,    -1,    -1,    36,    37,    38,    10,    11,    12,
    35893499      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3590       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    3591       -1,    -1,    35,    -1,    37,    38,    -1,    -1,    -1,    -1,
     3500      23,    24,    25,    26,    27,    -1,    -1,    59,    60,    -1,
     3501      62,    -1,    64,    65,    37,    67,    68,    69,    -1,    -1,
     3502      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3503      -1,    -1,    -1,    -1,    -1,    87,    -1,    60,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,   101,
     3505      -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,
     3506     112,   113,   114,   115,     4,     5,     6,     7,     8,     9,
     3507      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3508      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3509      30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    10,
     3510      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3511      21,    22,    23,    24,    25,    26,    -1,    -1,    -1,    59,
     3512      60,    -1,    62,    -1,    64,    65,    37,    67,    68,    69,
     3513      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3514      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    60,
    35923515      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3593       -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    62,
    3594       -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
    3595       -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,
     3516      -1,   101,    -1,   103,    -1,    -1,    -1,    -1,   108,    -1,
     3517     110,   111,   112,   113,   114,   115,     4,     5,     6,     7,
     3518       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3519      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3520      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
     3521      38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35963522      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3597       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    3598      103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     3,
    3599        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3600       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3601       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
    3602       -1,    35,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,
     3523      -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,    67,
     3524      68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     3525      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    36033526      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3604       -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    62,    -1,
    3605       64,    65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
    3606       -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,
    3607       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3608       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3609       -1,    -1,    -1,   107,    -1,    -1,    -1,   111,     3,     4,
    3610        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3611       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3612       25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
    3613       35,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3615       -1,    -1,    57,    -1,    -1,    60,    -1,    62,    -1,    64,
    3616       65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,
    3617       -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3618       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3619       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3620       -1,    -1,    -1,    -1,    -1,    -1,   111,     3,     4,     5,
     3527      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
     3528      -1,    -1,   110,   111,   112,   113,   114,   115,     4,     5,
    36213529       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    36223530      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    36233531      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3624       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3532      36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36253533      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3626       -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    65,
    3627       -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
    3628       76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3534      -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,
     3535      -1,    67,    68,    69,    -1,    -1,    72,    73,    74,    75,
     3536      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     3537      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3538      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     3539      -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     3540       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3541      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3542      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3543      -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
    36293544      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3630       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3631       -1,    -1,    -1,    -1,    -1,   111,     3,     4,     5,     6,
     3545      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,
     3546      64,    65,    -1,    67,    68,    69,    -1,    -1,    72,    73,
     3547      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3548      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3549      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3550      -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
     3551     114,   115,     4,     5,     6,     7,     8,     9,    10,    11,
     3552      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3553      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3554      -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
     3555      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3556      -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
     3557      62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
     3558      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3559      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3560      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3561      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3562     112,   113,   114,   115,     3,     4,     5,     6,     7,     8,
     3563       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3564      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3565      29,    30,    31,    32,    -1,    -1,    35,    -1,    37,    38,
     3566      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3567      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
     3568      -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3569      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,
     3570      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3571      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3572      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,   107,    -1,
     3573      -1,    -1,   111,     3,     4,     5,     6,     7,     8,     9,
     3574      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3575      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3576      30,    31,    32,    -1,    -1,    35,    -1,    37,    38,    -1,
     3577      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3578      -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
     3579      60,    -1,    62,    -1,    64,    65,    -1,    67,    68,    69,
     3580      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
     3581      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3582      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3583      -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     3584      -1,   111,     3,     4,     5,     6,     7,     8,     9,    10,
     3585      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3586      21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
     3587      31,    32,    -1,    -1,    35,    -1,    37,    -1,    -1,    -1,
     3588      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3589      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3590      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,
     3591      71,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3592      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3593      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     3594      -1,    -1,   103,    -1,    -1,    37,    -1,    -1,    -1,    -1,
     3595     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3596      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3597      62,    -1,    64,    -1,    -1,    67,    68,     4,     5,     6,
    36323598       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    36333599      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    36343600      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3635       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3601      37,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    36363602      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3637       -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,
    3638       67,    68,     4,     5,     6,     7,     8,     9,    10,    11,
    3639       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3640       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3641       -1,    -1,    -1,    -1,    -1,    37,   103,    -1,    -1,    -1,
    3642       -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3643       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3644       62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
    3645       -1,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,
     3603      -1,    -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,
     3604      67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
     3605      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36463606      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3647       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3648       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    3649        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3650       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3651       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3652       -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    3653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3654       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
    3655       64,    -1,    -1,    67,    68,     4,     5,     6,     7,     8,
     3607      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3608      -1,    -1,    -1,    -1,   111,     4,     5,     6,     7,     8,
    36563609       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    36573610      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3658       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,   103,
    3659      104,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3611      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     3612      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36603613      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36613614      -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,
     
    37173670      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    37183671      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3719       -1,   103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,
     3672      -1,   103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,
    37203673     112,   113,   114,   115,    10,    11,    12,    13,    14,    15,
    37213674      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     
    37273680      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    37283681      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3729       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,
     3682      -1,    -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,
    37303683      -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
    37313684      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    37383691      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    37393692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3740       -1,   101,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
    37413694     110,   111,   112,   113,   114,   115,    10,    11,    12,    13,
    37423695      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    37713724      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    37723725      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3773      112,   113,   114,   115,    10,    11,    12,    13,    14,    15,
    3774       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3775       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3776       36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3726     112,   113,   114,   115,     3,     4,     5,     6,     7,     8,
     3727       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3728      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3729      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
     3730      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3731      21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
     3732      31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
     3733      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3734      18,    19,    20,    21,    22,    23,    24,    25,    26,    60,
     3735      -1,    29,    30,    31,    65,    -1,    67,    68,    69,    37,
     3736      71,    -1,    -1,    -1,    -1,    76,    77,   106,    -1,    -1,
    37773737      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3778       -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,
    3779       -1,    67,    68,    69,    -1,    -1,    72,    73,    74,    75,
    3780       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3781       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3782       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3783       -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
    3784        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3738      -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,
     3739      68,    69,   103,    -1,    -1,    -1,    -1,    -1,    76,    77,
     3740     111,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3741      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3742      29,    30,    31,   101,    -1,   103,    -1,    -1,    37,    -1,
     3743      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3744      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3745      -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3746      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    10,
     3747      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3748      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3749      31,    -1,   101,    -1,   103,    -1,    37,    -1,    -1,    -1,
     3750      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3751      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3752      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     3753      -1,    -1,    -1,    -1,    -1,    76,    77,    10,    11,    12,
    37853754      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    37863755      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3787       -1,    -1,    -1,    -1,    37,    10,    11,    12,    13,    14,
    3788       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3789       25,    26,    27,    -1,    29,    30,    31,    60,    -1,    62,
    3790       -1,    64,    37,    -1,    67,    68,    -1,    -1,    10,    11,
    3791       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3792       22,    23,    24,    25,    26,    60,    -1,    29,    30,    31,
    3793       65,    -1,    67,    68,    69,    37,    71,    -1,    -1,    -1,
    3794       -1,    76,    77,   106,    -1,    -1,    -1,    -1,    -1,    -1,
    3795       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3796       -1,    -1,    -1,    65,    -1,    67,    68,    69,   103,    -1,
    3797       -1,    -1,    -1,    -1,    76,    77,   111,    10,    11,    12,
    3798       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3799       23,    24,    25,    26,    -1,    -1,    29,    30,    31,   101,
    3800       -1,   103,    -1,    -1,    37,    -1,    -1,    -1,    -1,   111,
    3801       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3756     101,    -1,   103,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3757     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38023758      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
    38033759      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
     
    38113767      -1,    76,    77,    10,    11,    12,    13,    14,    15,    16,
    38123768      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3813       -1,    -1,    29,    30,    31,    -1,   101,    -1,   103,    -1,
     3769      27,    -1,    29,    30,    31,    -1,    -1,    -1,   103,    -1,
    38143770      37,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    38153771      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3816       -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,
    3817       67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
    3818       77,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3819       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3820       29,    30,    31,    -1,   101,    -1,   103,    -1,    37,    -1,
     3772      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3773      67,    68,    -1,    -1,    71,    10,    11,    12,    13,    14,
     3774      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3775      25,    26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,
     3776      -1,    -1,    37,    -1,   101,    -1,   103,    -1,    -1,    -1,
    38213777      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3822       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3823       -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
    3824       69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    10,
    3825       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3826       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3827       31,    -1,    -1,    -1,   103,    -1,    37,    38,    -1,    -1,
    3828       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3830       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,    11,
    3831       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3832       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3833       -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    -1,    -1,
    3834       -1,    -1,   103,    -1,    -1,    -1,   107,    -1,    -1,    -1,
    3835      111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3836       -1,    -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,
     3778      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     3779      -1,    -1,    67,    68,    -1,    -1,    71,    10,    11,    12,
    38373780      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    38383781      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3839       -1,    -1,    -1,    -1,    37,    38,    -1,    -1,    -1,    -1,
    3840       -1,   103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,
     3782      -1,    -1,    -1,    -1,    37,    38,   101,    -1,   103,    -1,
     3783      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    38413784      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
    38423785      -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,    13,
     
    38463789     103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,
    38473790      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
    3848       -1,    -1,    -1,    67,    68,    10,    11,    12,    13,    14,
     3791      -1,    65,    -1,    67,    68,    10,    11,    12,    13,    14,
    38493792      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    38503793      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3851       -1,    -1,    37,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3794      -1,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,   103,
    38523795      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    38533796      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     
    38553798      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    38563799      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3857       -1,    37,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3800      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
    38583801      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    38593802      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     
    38613804      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    38623805      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3863       37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3806      37,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    38643807      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    38653808      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     
    38673810      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    38683811      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3869       -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
     3812      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
    38703813      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    38713814      -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     
    39113854      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    39123855      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    3913       -1,    -1,    67,    68,     4,     5,     6,     7,     8,     9,
    3914       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3915       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3916       30,    31,    -1,    -1,    -1,    -1,    -1,    37,   103,    -1,
     3856      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
     3857      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3858      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3859      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
    39173860      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3861      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     3862      -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
     3863      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3864      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3865      37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3866      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3867      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3868      67,    68,    10,    11,    12,    13,    14,    15,    16,    17,
     3869      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3870      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3871      -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
     3872      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3873      -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3874      68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3875      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3876      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3877      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3878      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3879      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
     3880      -1,    64,    -1,    -1,    67,    68,    -1,    36,    -1,    38,
     3881      39,    -1,    41,    -1,    -1,    44,    45,    46,    47,    48,
     3882      49,    50,    51,    52,    53,    -1,    -1,    56,    57,    -1,
     3883      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,   102,
     3884      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3885      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    39183886      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3919       60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,
    3920       36,    -1,    38,    39,    -1,    41,    -1,    -1,    44,    45,
    3921       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    3922       56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,
    3923       -1,    -1,   102,    69,    -1,    -1,    72,    73,    74,    75,
    3924       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3925       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3926       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3927      106,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
    3928       -1,    36,    -1,    38,    39,    -1,    41,    -1,   124,    44,
    3929       45,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
    3930       -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
    3931       65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    3932       75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    3933       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3934       -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3935       -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    3936      115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,
    3937        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3938       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3939       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3940       -1,    -1,    -1,    37,    10,    11,    12,    13,    14,    15,
    3941       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3942       26,    -1,    -1,    29,    30,    31,    60,    -1,    62,    -1,
    3943       64,    37,    -1,    67,    68,    -1,    36,    -1,    38,    39,
    3944       -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
    3945       50,    51,    52,    53,    60,    89,    56,    57,    -1,    59,
    3946       -1,    67,    68,    -1,    -1,    65,    -1,    -1,    -1,    69,
    3947       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3948       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3887      -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,
     3888      -1,   110,   111,   112,   113,   114,   115,    -1,    36,    -1,
     3889      38,    39,    -1,    41,    -1,   124,    44,    45,    46,    47,
     3890      48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    57,
     3891      -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
     3892      -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     3893      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    39493894      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3950       -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
    3951      110,   111,   112,   113,   114,   115,    36,    -1,    38,    39,
    3952       -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
    3953       50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,    59,
    3954       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
    3955       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3956       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    3957       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3958       -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
    3959      110,   111,   112,   113,   114,   115,    36,    -1,    38,    39,
    3960       -1,    41,    -1,    -1,    44,    45,    46,    47,    48,    49,
    3961       50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,    59,
    3962       -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
    3963       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3964       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    3965       -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
    3966       -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
    3967      110,   111,   112,   113,   114,   115,    59,    -1,    -1,    -1,
     3895      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
     3896      -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
     3897      -1,    -1,    -1,    -1,    -1,    -1,   124,     4,     5,     6,
     3898       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3899      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3900      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3901      37,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3902      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3903      29,    30,    31,    60,    -1,    62,    -1,    64,    37,    -1,
     3904      67,    68,    -1,    36,    -1,    38,    39,    -1,    41,    42,
     3905      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
     3906      53,    60,    89,    56,    57,    -1,    59,    -1,    67,    68,
     3907      -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3908      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3909      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3910      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3911     103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
     3912     113,   114,   115,    36,    -1,    38,    39,    -1,    41,    42,
     3913      43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
     3914      53,    -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,
     3915      -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3916      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3917      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3918      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3919     103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
     3920     113,   114,   115,    36,    -1,    38,    39,    -1,    41,    -1,
     3921      -1,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
     3922      53,    -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,
    39683923      -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
    39693924      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     
    39763931      -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
    39773932      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3978       -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     3933      -1,    -1,   108,    -1,   110,   111,   112,   113,   114,   115,
    39793934      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    39803935      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     
    39983953      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    39993954      -1,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,
    4000       -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
     3955      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
    40013956      -1,    -1,   110,   111,   112,   113,   114,   115,    59,    -1,
    40023957      -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,
    40033958      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    40043959      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3960      -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,
     3961     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3962     111,   112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,
     3963      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
     3964      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3965      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,
     3966      -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
     3967      -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
     3968     114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
     3969      -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3970      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3971      87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,
     3972      -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
     3973      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,    59,
     3974      -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3975      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3976      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    40053977      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4006      101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    4007      111,   112,   113,   114,   115,     4,     5,     6,     7,     8,
    4008        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    4009       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    4010       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     3978      -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3979     110,   111,   112,   113,   114,   115,     4,     5,     6,     7,
     3980       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3981      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3982      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,
    40113983      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40123984      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4013       -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
    4014       69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,     3,
    4015        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    4016       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    4017       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    4018       -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    4019       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4020       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
    4021       64,    -1,    -1,    67,    68,     3,     4,     5,     6,     7,
    4022        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    4023       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    4024       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    4025       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4026       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4027       -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
    4028       68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3985      -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,
     3986      68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
     3987       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    40293988      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    40303989      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     
    40323991      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40333992      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
    4034       -1,    64,    -1,    -1,    67,    68,    10,    11,    12,    13,
    4035       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    4036       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    33,
    4037       34,    -1,    -1,    37,    10,    11,    12,    13,    14,    15,
    4038       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4039       26,    -1,    -1,    29,    30,    31,    60,    -1,    -1,    -1,
    4040       -1,    37,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,
     3993      -1,    64,    -1,    -1,    67,    68,     3,     4,     5,     6,
     3994       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3995      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3996      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3997      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40413998      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4042       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
    4043       -1,    67,    68
     3999      -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,
     4000      67,    68,     4,     5,     6,     7,     8,     9,    10,    11,
     4001      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     4002      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
     4003      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
     4004      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4005      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     4006      62,    -1,    64,    -1,    -1,    67,    68,    10,    11,    12,
     4007      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4008      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
     4009      33,    34,    -1,    -1,    37,    10,    11,    12,    13,    14,
     4010      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     4011      25,    26,    -1,    -1,    29,    30,    31,    60,    -1,    -1,
     4012      -1,    -1,    37,    -1,    67,    68,    -1,    -1,    -1,    -1,
     4013      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4014      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     4015      -1,    -1,    67,    68
    40444016};
    40454017
     
    40564028     213,   214,   215,   216,   217,   218,   220,   221,   222,   223,
    40574029     224,   225,   226,   227,   229,   230,   231,   232,   233,   234,
    4058      235,   243,   244,   270,   271,   279,   282,   288,   289,   291,
    4059      293,   294,   300,   305,   309,   310,   311,   312,   313,   314,
    4060      315,   316,   336,   353,   354,   355,   356,    65,   111,   131,
    4061      204,   206,   214,   216,   226,   230,   232,   271,    75,   101,
    4062      298,   299,   300,   298,   298,    65,    67,    68,    69,   130,
    4063      131,   260,   261,   280,   281,    67,    68,   261,   101,   291,
    4064      215,   216,   101,   111,   305,   310,   311,   312,   314,   315,
    4065      316,   126,   103,   207,   214,   216,   309,   313,   352,   353,
    4066      356,   357,   127,   123,   264,   106,   127,   164,    67,    68,
    4067      129,   259,   127,   127,   127,   108,   127,    67,   101,   111,
    4068      295,   304,   305,   306,   307,   308,   309,   313,   317,   318,
    4069      319,   320,   321,     3,    27,    71,   228,     3,     5,    67,
    4070       68,   103,   111,   206,   217,   221,   224,   233,   309,   313,
    4071      356,   204,   206,   216,   226,   230,   232,   271,   309,   313,
    4072       32,   222,   222,   217,   224,   127,   222,   217,   222,   217,
    4073      101,   106,   261,   106,   261,   222,   217,   108,   127,   127,
    4074        0,   126,   101,   164,   298,   298,   126,   103,   214,   216,
    4075      354,   259,   259,   216,   123,   101,   111,   295,   305,   309,
    4076      103,   111,   356,   292,   219,   300,   101,   276,   101,   101,
    4077      101,    36,    38,    59,    65,    69,    72,    73,    74,    75,
    4078       79,    80,    87,   101,   103,   110,   111,   112,   113,   114,
    4079      115,   128,   132,   133,   134,   135,   140,   141,   142,   143,
    4080      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
    4081      155,   157,   214,   263,   278,   352,   357,   216,   102,   102,
    4082      102,   102,   102,   102,   102,   103,   111,   127,   155,   206,
    4083      207,   213,   216,   220,   221,   226,   229,   230,   232,   249,
    4084      250,   254,   255,   256,   257,   271,   336,   348,   349,   350,
    4085      351,   356,   357,   126,   101,   309,   313,   356,   101,   108,
    4086      124,   103,   106,   111,   155,   265,   107,   126,   108,   124,
    4087      101,   108,   124,   108,   124,   108,   124,   298,   124,   305,
    4088      306,   307,   308,   318,   319,   320,   321,   216,   304,   317,
    4089       57,   297,   103,   298,   335,   336,   298,   298,   164,   126,
    4090      101,   298,   335,   298,   298,   216,   295,   101,   101,   215,
    4091      214,   216,   101,   126,   214,   352,   357,   164,   126,   259,
    4092      264,   206,   221,   309,   313,   164,   126,   280,   216,   226,
    4093      124,   216,   216,   278,    38,   103,   214,   236,   237,   238,
    4094      239,   352,   356,   106,   245,   261,   106,   216,   280,   124,
    4095      124,   291,   126,   131,   258,     3,   127,   196,   197,   211,
    4096      213,   216,   126,   297,   101,   297,   155,   305,   216,   101,
    4097      126,   259,   106,    32,    33,    34,   214,   272,   273,   275,
    4098      126,   121,   123,   277,   126,   217,   223,   224,   259,   301,
    4099      302,   303,   140,   153,   154,   101,   140,   142,   101,   140,
    4100      101,   101,   140,   140,   131,   103,   155,   160,   164,   214,
    4101      262,   352,   126,   142,   142,    75,    78,    79,    80,   101,
    4102      103,   105,    90,    91,    92,    93,    94,    95,    96,    97,
    4103       98,    99,   123,   159,   142,   111,   116,   117,   113,   114,
    4104       81,    82,    83,    84,   118,   119,    85,    86,   112,   120,
    4105      121,    87,    88,   122,   123,   359,   101,   111,   331,   332,
    4106      333,   334,   335,   102,   108,   101,   335,   103,   336,   101,
    4107      335,   336,   126,   103,   111,   127,   214,   216,   347,   348,
    4108      356,   357,   104,   127,    67,   101,   103,   111,   305,   322,
    4109      323,   324,   325,   326,   327,   328,   329,   330,   336,   337,
    4110      338,   339,   340,   341,   342,   111,   356,   216,   127,   127,
    4111      111,   214,   216,   349,   259,   214,   336,   349,   259,   127,
    4112      126,   126,   126,   126,    65,   103,   105,   261,   265,   266,
    4113      267,   268,   269,   126,   126,   126,   126,   126,   126,   295,
    4114      102,   102,   102,   102,   102,   102,   102,   304,   317,   101,
    4115      264,   126,   196,   126,   295,   160,   263,   160,   263,   295,
    4116      278,   103,   127,   196,   297,   164,   126,   196,   102,   238,
    4117      239,   126,   101,   109,   111,   240,   242,   304,   305,   317,
    4118      335,   343,   344,   345,   346,   107,   237,   108,   124,   108,
    4119      124,   261,   236,   108,   358,   123,   246,   245,   216,   251,
    4120      252,   253,   256,   257,   102,   108,   164,   126,   111,   155,
    4121      126,   213,   216,   250,   348,   356,   289,   290,   101,   111,
    4122      322,   102,   108,   359,   261,   272,   101,   106,   261,   263,
    4123      272,   102,   108,   101,   102,   109,   262,   262,   103,   131,
    4124      137,   155,   263,   262,   126,   102,   108,   102,   101,   111,
    4125      343,   102,   108,   127,   155,   103,   131,   103,   136,   137,
    4126      126,   103,   131,   155,   155,   142,   142,   142,   143,   143,
    4127      144,   144,   145,   145,   145,   145,   146,   146,   147,   148,
    4128      149,   150,   151,   109,   160,   155,   126,   332,   333,   334,
    4129      216,   331,   298,   298,   155,   263,   126,   126,   258,   127,
    4130      216,   220,   126,   104,   356,    67,   129,   214,   336,   354,
    4131      104,   101,   126,   305,   323,   324,   325,   328,   338,   339,
    4132      340,   126,   216,   322,   326,   337,   101,   298,   341,   359,
    4133      298,   298,   359,   101,   298,   341,   298,   298,   298,   298,
    4134      336,   214,   347,   357,   259,   104,   108,   104,   108,   359,
    4135      214,   349,   359,   104,   247,   248,   249,   250,   247,   259,
    4136      127,   155,   126,   103,   261,   109,   108,   358,   265,   103,
    4137      109,   269,    28,   198,   199,   259,   247,   131,   295,   131,
    4138      297,   101,   335,   336,   101,   335,   336,   133,   111,   127,
    4139      164,   251,   102,   102,   102,   102,   102,   126,   104,   164,
    4140      196,   164,   106,   261,   124,   124,   103,   127,   305,   344,
    4141      345,   346,   154,   216,   343,   241,   242,   241,   298,   298,
    4142      261,   298,   107,   261,   107,   154,   358,   127,   127,   131,
    4143      211,   127,   127,   247,   101,   111,   356,   127,   107,   216,
    4144      273,   274,   127,   126,   126,   101,   127,   102,   302,   160,
    4145      161,   124,    75,   190,   191,   192,   102,   102,   126,   109,
    4146      102,   102,   102,   127,   155,   216,   106,   142,   157,   155,
    4147      156,   158,   104,   108,   127,   126,   126,   102,   108,   155,
    4148      126,   153,   109,   251,   102,   102,   102,   331,   251,   102,
    4149      104,   103,   111,   155,   155,   216,   127,   101,   101,   214,
    4150      354,   328,   251,   102,   102,   102,   102,   102,   102,   102,
    4151        7,   127,   216,   322,   326,   337,   126,   126,   359,   126,
    4152      126,   101,   127,   127,   127,   127,   264,   104,   127,   153,
    4153      154,   155,   296,   126,   265,   267,   107,   126,   200,   261,
    4154       38,    39,    41,    44,    45,    46,    47,    48,    49,    50,
    4155       51,    53,    56,   103,   131,   161,   162,   163,   164,   165,
    4156      166,   168,   169,   181,   183,   184,   189,   201,   294,    28,
    4157      127,   123,   264,   126,   126,   102,   104,   127,   127,    67,
    4158      164,   236,   126,   104,   102,   102,   102,   343,   240,   246,
    4159      107,   102,   108,   104,   104,   127,   216,   108,   359,   276,
    4160      102,   272,   204,   206,   214,   284,   285,   286,   287,   278,
    4161      102,   102,   101,   102,   109,   108,   155,   155,   104,   266,
    4162      108,   127,   158,   104,   131,   138,   139,   155,   137,   127,
    4163      138,   153,   157,   127,   101,   335,   336,   127,   214,   336,
    4164      349,   126,   127,   127,   127,   155,   104,   126,   126,   102,
    4165      127,   101,   335,   336,   101,   341,   101,   341,   336,   215,
    4166      104,     7,   111,   127,   155,   251,   251,   250,   254,   254,
    4167      255,   247,   102,   108,   108,   102,   104,    89,   115,   127,
     4030     235,   243,   244,   270,   271,   272,   280,   283,   289,   290,
     4031     292,   294,   295,   301,   306,   310,   311,   312,   313,   314,
     4032     315,   316,   317,   337,   354,   355,   356,   357,    65,   111,
     4033     131,   204,   206,   214,   216,   226,   230,   232,   271,    75,
     4034     101,   299,   300,   301,   299,   299,    65,    67,    68,    69,
     4035     130,   131,   260,   261,   281,   282,    67,    68,   261,   101,
     4036     292,   215,   216,   101,   111,   306,   311,   312,   313,   315,
     4037     316,   317,   104,   126,   103,   207,   214,   216,   310,   314,
     4038     353,   354,   357,   358,   127,   123,   264,   106,   127,   164,
     4039      67,    68,   129,   259,   127,   127,   127,   108,   127,    67,
     4040      68,   101,   111,   296,   305,   306,   307,   308,   309,   310,
     4041     314,   318,   319,   320,   321,   322,   328,     3,    27,    71,
     4042     228,     3,     5,    67,   103,   111,   206,   217,   221,   224,
     4043     233,   272,   310,   314,   357,   204,   206,   216,   226,   230,
     4044     232,   271,   310,   314,    32,   222,   222,   217,   224,   127,
     4045     222,   217,   222,   217,    68,   101,   106,   261,   272,   106,
     4046     261,   222,   217,   108,   127,   127,     0,   126,   101,   164,
     4047     299,   299,   126,   103,   214,   216,   355,   259,   259,   216,
     4048     123,   101,   111,   296,   306,   310,   103,   111,   357,   293,
     4049     219,   301,   101,   277,   101,   101,   101,    36,    38,    59,
     4050      65,    69,    72,    73,    74,    75,    79,    80,    87,   101,
     4051     103,   110,   111,   112,   113,   114,   115,   128,   132,   133,
     4052     134,   135,   140,   141,   142,   143,   144,   145,   146,   147,
     4053     148,   149,   150,   151,   152,   153,   155,   157,   214,   263,
     4054     279,   353,   358,   216,   102,   102,   102,   102,   102,   102,
     4055     102,    67,    68,   103,   214,   259,   337,   355,   103,   111,
     4056     155,   206,   207,   213,   216,   220,   221,   226,   229,   230,
     4057     232,   249,   250,   254,   255,   256,   257,   271,   337,   349,
     4058     350,   351,   352,   357,   358,   104,   101,   310,   314,   357,
     4059     101,   108,   124,   103,   106,   111,   155,   265,   107,   126,
     4060     108,   124,   101,   108,   124,   108,   124,   108,   124,   299,
     4061     124,   306,   307,   308,   309,   319,   320,   321,   322,   216,
     4062     305,   318,    57,   298,   103,   299,   336,   337,   299,   299,
     4063     164,   126,   101,   299,   336,   299,   299,   216,   296,   101,
     4064     101,   215,   214,   216,   104,   126,   214,   353,   358,   164,
     4065     126,   259,   264,   206,   221,   310,   314,   164,   126,   281,
     4066     216,   226,   124,   216,   216,   279,    38,   103,   214,   236,
     4067     237,   238,   239,   353,   357,   106,   245,   261,   106,   216,
     4068     281,   124,   124,   292,   126,   131,   258,     3,   127,   196,
     4069     197,   211,   213,   216,   126,   298,   101,   298,   155,   306,
     4070     216,   101,   126,   259,   106,    32,    33,    34,   214,   273,
     4071     274,   276,   126,   121,   123,   278,   126,   217,   223,   224,
     4072     259,   302,   303,   304,   140,   153,   154,   101,   140,   142,
     4073     101,   140,   101,   101,   140,   140,   131,   103,   155,   160,
     4074     164,   214,   262,   353,   104,   126,   142,   142,    75,    78,
     4075      79,    80,   101,   103,   105,    90,    91,    92,    93,    94,
     4076      95,    96,    97,    98,    99,   123,   159,   142,   111,   116,
     4077     117,   113,   114,    81,    82,    83,    84,   118,   119,    85,
     4078      86,   112,   120,   121,    87,    88,   122,   123,   360,   101,
     4079     111,   332,   333,   334,   335,   336,   102,   108,   101,   336,
     4080     337,   101,   336,   337,   126,   101,   214,   355,   104,   126,
     4081     103,   111,   127,   214,   216,   348,   349,   357,   358,   127,
     4082     101,   103,   111,   306,   323,   324,   325,   326,   327,   328,
     4083     329,   330,   331,   337,   338,   339,   340,   341,   342,   343,
     4084     111,   357,   216,   127,   127,   111,   214,   216,   350,   259,
     4085     214,   337,   350,   259,   101,   126,   126,   126,   104,   126,
     4086      65,   103,   105,   261,   265,   266,   267,   268,   269,   126,
     4087     126,   126,   126,   126,   126,   296,   102,   102,   102,   102,
     4088     102,   102,   102,   305,   318,   101,   264,   104,   196,   126,
     4089     296,   160,   263,   160,   263,   296,   103,   196,   298,   164,
     4090     126,   196,   102,   238,   239,   104,   126,   101,   109,   111,
     4091     240,   242,   305,   306,   318,   336,   344,   345,   346,   347,
     4092     107,   237,   108,   124,   108,   124,   261,   236,   108,   359,
     4093     123,   246,   245,   216,   251,   252,   253,   256,   257,   102,
     4094     108,   164,   126,   111,   155,   126,   213,   216,   250,   349,
     4095     357,   290,   291,   101,   111,   323,   102,   108,   360,   261,
     4096     273,   101,   106,   261,   263,   273,   102,   108,   101,   102,
     4097     109,   262,   262,   103,   131,   137,   155,   263,   262,   104,
     4098     126,   102,   108,   102,   101,   111,   344,   102,   108,   155,
     4099     103,   131,   103,   136,   137,   126,   103,   131,   155,   155,
     4100     142,   142,   142,   143,   143,   144,   144,   145,   145,   145,
     4101     145,   146,   146,   147,   148,   149,   150,   151,   109,   160,
     4102     155,   126,   333,   334,   335,   216,   332,   299,   299,   155,
     4103     263,   126,   258,   111,   126,   214,   337,   350,   216,   220,
     4104     104,   126,   104,   357,   104,   101,   126,   306,   324,   325,
     4105     326,   329,   339,   340,   341,   104,   126,   216,   323,   327,
     4106     338,   101,   299,   342,   360,   299,   299,   360,   101,   299,
     4107     342,   299,   299,   299,   299,   337,   214,   348,   358,   259,
     4108     104,   108,   104,   108,   360,   214,   350,   360,   247,   248,
     4109     249,   250,   247,   247,   259,   155,   126,   103,   261,   109,
     4110     108,   359,   265,   103,   109,   269,    28,   198,   199,   259,
     4111     247,   131,   296,   131,   298,   101,   336,   337,   101,   336,
     4112     337,   133,   337,   164,   251,   102,   102,   102,   102,   104,
     4113     164,   196,   164,   106,   124,   124,   103,   306,   345,   346,
     4114     347,   154,   216,   344,   241,   242,   241,   299,   299,   261,
     4115     299,   107,   261,   107,   154,   359,   127,   127,   131,   211,
     4116     127,   127,   247,   101,   111,   357,   127,   107,   216,   274,
     4117     275,   127,   126,   126,   101,   127,   102,   303,   160,   161,
     4118     124,    75,   190,   191,   192,   102,   102,   126,   109,   102,
     4119     102,   102,   155,   216,   106,   142,   157,   155,   156,   158,
     4120     108,   127,   126,   126,   102,   108,   155,   126,   153,   109,
     4121     251,   102,   102,   102,   332,   251,   102,   247,   214,   350,
     4122     103,   111,   155,   155,   216,   329,   251,   102,   102,   102,
     4123     102,   102,   102,   102,     7,   216,   323,   327,   338,   126,
     4124     126,   360,   126,   126,   102,   127,   127,   127,   127,   264,
     4125     127,   153,   154,   155,   297,   126,   265,   267,   107,   126,
     4126     200,   261,    38,    39,    41,    44,    45,    46,    47,    48,
     4127      49,    50,    51,    53,    56,   103,   131,   161,   162,   163,
     4128     164,   165,   166,   168,   169,   181,   183,   184,   189,   201,
     4129     295,    28,   127,   123,   264,   126,   126,   102,   127,   164,
     4130     236,   104,   102,   102,   102,   344,   240,   246,   107,   102,
     4131     108,   104,   104,   127,   216,   108,   360,   277,   102,   273,
     4132     204,   206,   214,   285,   286,   287,   288,   279,   102,   102,
     4133     101,   102,   109,   108,   155,   155,   266,   108,   127,   158,
     4134     104,   131,   138,   139,   155,   137,   127,   138,   153,   157,
     4135     127,   101,   336,   337,   127,   127,   126,   127,   127,   127,
     4136     155,   102,   127,   101,   336,   337,   101,   342,   101,   342,
     4137     337,   215,     7,   111,   127,   155,   251,   251,   250,   254,
     4138     254,   255,   108,   108,   102,   102,   104,    89,   115,   127,
    41684139     127,   138,   265,   155,   108,   124,   201,   205,   216,   220,
    41694140     101,   101,   162,   101,   101,   124,   131,   124,   131,   111,
    4170      131,   161,   101,   164,   124,   155,   126,   109,   124,   127,
    4171      126,   127,   200,   102,   155,   251,   251,   298,   336,   102,
    4172      104,   107,   127,   101,   335,   336,   126,   102,   126,   127,
    4173      295,   107,   126,   127,   127,   102,   106,   154,   124,   190,
    4174      192,   108,   127,   358,   156,   104,   127,    78,   105,   108,
    4175      127,   127,   104,   127,   102,   126,   102,   214,   349,   104,
    4176      104,   104,   127,   247,   247,   102,   126,   126,   126,   155,
    4177      155,   127,   104,   127,   127,   127,   127,   102,   126,   126,
    4178      154,   154,   104,   104,   127,   127,   261,   216,   160,   160,
    4179       45,   160,   126,   124,   124,   160,   124,   124,   160,    54,
    4180       55,   185,   186,   187,   124,   127,   298,   166,   107,   124,
    4181      127,   127,   104,   126,    89,   256,   257,   102,   285,   108,
    4182      124,   108,   124,   107,   283,   102,   102,   109,   158,   104,
    4183      107,   104,   103,   139,   103,   139,   139,   104,   104,   104,
    4184      251,   104,   127,   127,   251,   251,   251,   127,   127,   104,
    4185      104,   102,   102,   104,   108,    89,   250,    89,   127,   104,
    4186      104,   102,   102,   101,   102,   161,   182,   201,   124,   102,
    4187      101,   164,   187,    54,   104,   162,   102,   102,   251,   106,
    4188      126,   126,   284,   124,    75,   193,   127,   109,   126,   126,
    4189      127,   102,   102,   127,   127,   127,   104,   104,   126,   127,
    4190      104,   162,    42,    43,   106,   172,   173,   174,   160,   162,
    4191      127,   102,   161,   106,   174,    89,   126,   101,   127,   126,
    4192      259,   295,   107,   102,   108,   104,   155,   138,   138,   102,
    4193      102,   102,   102,   254,    40,   154,   170,   171,   296,   109,
    4194      126,   162,   172,   102,   124,   162,   124,   126,   102,   126,
    4195       89,   126,   102,   284,   124,    75,   109,   127,   127,   162,
    4196       89,   108,   109,   127,   194,   195,   201,   124,   161,   161,
    4197      194,   164,   188,   214,   352,   102,   126,   107,   155,   104,
    4198      104,   154,   170,   173,   175,   176,   126,   124,   173,   177,
    4199      178,   127,   101,   111,   295,   343,   131,   164,   188,   101,
    4200      162,   167,   107,   173,   201,   161,    52,   167,   180,   107,
    4201      173,   102,   216,   127,   278,   162,   167,   124,   179,   180,
    4202      167,   180,   164,   102,   102,   179,   127,   164,   127
     4141     131,   161,   101,   164,   124,   155,   104,   109,   124,   127,
     4142     126,   127,   200,   102,   155,   251,   251,   299,   102,   107,
     4143     101,   336,   337,   126,   102,   126,   127,   296,   107,   126,
     4144     127,   127,   102,   106,   154,   124,   190,   192,   108,   127,
     4145     359,   156,   104,   127,    78,   105,   108,   127,   127,   104,
     4146     127,   102,   126,   102,   102,   104,   104,   104,   127,   102,
     4147     126,   126,   126,   155,   155,   127,   104,   127,   127,   127,
     4148     127,   126,   126,   154,   154,   104,   104,   127,   127,   261,
     4149     216,   160,   160,    45,   160,   126,   124,   124,   160,   124,
     4150     124,   160,    54,    55,   185,   186,   187,   124,   299,   166,
     4151     107,   124,   127,   127,   126,    89,   256,   257,   102,   286,
     4152     108,   124,   108,   124,   107,   284,   102,   102,   109,   158,
     4153     104,   107,   104,   103,   139,   103,   139,   139,   104,   104,
     4154     104,   251,   104,   251,   251,   251,   127,   127,   104,   104,
     4155     102,   102,   104,   108,    89,   250,    89,   127,   104,   104,
     4156     102,   102,   101,   102,   161,   182,   201,   124,   102,   101,
     4157     164,   187,    54,   162,   102,   102,   251,   106,   126,   126,
     4158     285,   124,    75,   193,   127,   109,   126,   126,   127,   127,
     4159     127,   127,   104,   104,   126,   127,   104,   162,    42,    43,
     4160     106,   172,   173,   174,   160,   162,   127,   102,   161,   106,
     4161     174,    89,   126,   101,   127,   126,   259,   296,   107,   102,
     4162     108,   104,   155,   138,   138,   102,   102,   102,   102,   254,
     4163      40,   154,   170,   171,   297,   109,   126,   162,   172,   102,
     4164     124,   162,   124,   126,   102,   126,    89,   126,   102,   285,
     4165     124,    75,   109,   127,   127,   162,    89,   108,   109,   127,
     4166     194,   195,   201,   124,   161,   161,   194,   164,   188,   214,
     4167     353,   102,   126,   107,   155,   104,   104,   154,   170,   173,
     4168     175,   176,   126,   124,   173,   177,   178,   127,   101,   111,
     4169     296,   344,   131,   164,   188,   101,   162,   167,   107,   173,
     4170     201,   161,    52,   167,   180,   107,   173,   102,   216,   127,
     4171     279,   162,   167,   124,   179,   180,   167,   180,   164,   102,
     4172     102,   179,   127,   164,   127
    42034173};
    42044174
     
    63136283#line 1024 "parser.yy"
    63146284    {
    6315                         typedefTable.setNextIdentifier( *( (yyvsp[(5) - (10)].tok) ) );
    6316                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(5) - (10)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(8) - (10)].decl), 0, true );
     6285                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
    63176286                }
    63186287    break;
     
    63216290
    63226291/* Line 1806 of yacc.c  */
    6323 #line 1029 "parser.yy"
    6324     {
    6325                         typedefTable.setNextIdentifier( *( (yyvsp[(5) - (10)].tok) ) );
    6326                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(5) - (10)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(8) - (10)].decl), 0, true );
    6327                 }
    6328     break;
    6329 
    6330   case 251:
    6331 
    6332 /* Line 1806 of yacc.c  */
    6333 #line 1042 "parser.yy"
     6292#line 1047 "parser.yy"
    63346293    {
    63356294                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63376296    break;
    63386297
    6339   case 252:
    6340 
    6341 /* Line 1806 of yacc.c  */
    6342 #line 1046 "parser.yy"
     6298  case 251:
     6299
     6300/* Line 1806 of yacc.c  */
     6301#line 1051 "parser.yy"
    63436302    {
    63446303                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63466305    break;
    63476306
     6307  case 252:
     6308
     6309/* Line 1806 of yacc.c  */
     6310#line 1058 "parser.yy"
     6311    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6312    break;
     6313
    63486314  case 253:
    63496315
    63506316/* Line 1806 of yacc.c  */
    6351 #line 1053 "parser.yy"
    6352     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6317#line 1062 "parser.yy"
     6318    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    63536319    break;
    63546320
    63556321  case 254:
    6356 
    6357 /* Line 1806 of yacc.c  */
    6358 #line 1057 "parser.yy"
    6359     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    6360     break;
    6361 
    6362   case 255:
    6363 
    6364 /* Line 1806 of yacc.c  */
    6365 #line 1062 "parser.yy"
    6366     {
    6367                         typedefTable.addToEnclosingScope( TypedefTable::TD );
    6368                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
    6369                 }
    6370     break;
    6371 
    6372   case 256:
    63736322
    63746323/* Line 1806 of yacc.c  */
     
    63806329    break;
    63816330
    6382   case 257:
     6331  case 255:
    63836332
    63846333/* Line 1806 of yacc.c  */
    63856334#line 1072 "parser.yy"
     6335    {
     6336                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     6337                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     6338                }
     6339    break;
     6340
     6341  case 256:
     6342
     6343/* Line 1806 of yacc.c  */
     6344#line 1077 "parser.yy"
    63866345    {
    63876346                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    63906349    break;
    63916350
    6392   case 258:
    6393 
    6394 /* Line 1806 of yacc.c  */
    6395 #line 1083 "parser.yy"
     6351  case 257:
     6352
     6353/* Line 1806 of yacc.c  */
     6354#line 1088 "parser.yy"
    63966355    {
    63976356                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64006359    break;
    64016360
    6402   case 259:
    6403 
    6404 /* Line 1806 of yacc.c  */
    6405 #line 1088 "parser.yy"
     6361  case 258:
     6362
     6363/* Line 1806 of yacc.c  */
     6364#line 1093 "parser.yy"
    64066365    {
    64076366                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64106369    break;
    64116370
    6412   case 260:
    6413 
    6414 /* Line 1806 of yacc.c  */
    6415 #line 1093 "parser.yy"
     6371  case 259:
     6372
     6373/* Line 1806 of yacc.c  */
     6374#line 1098 "parser.yy"
    64166375    {
    64176376                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64206379    break;
    64216380
    6422   case 261:
    6423 
    6424 /* Line 1806 of yacc.c  */
    6425 #line 1098 "parser.yy"
     6381  case 260:
     6382
     6383/* Line 1806 of yacc.c  */
     6384#line 1103 "parser.yy"
    64266385    {
    64276386                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64306389    break;
    64316390
    6432   case 262:
    6433 
    6434 /* Line 1806 of yacc.c  */
    6435 #line 1103 "parser.yy"
     6391  case 261:
     6392
     6393/* Line 1806 of yacc.c  */
     6394#line 1108 "parser.yy"
    64366395    {
    64376396                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64406399    break;
    64416400
    6442   case 263:
    6443 
    6444 /* Line 1806 of yacc.c  */
    6445 #line 1112 "parser.yy"
     6401  case 262:
     6402
     6403/* Line 1806 of yacc.c  */
     6404#line 1117 "parser.yy"
    64466405    {
    64476406                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    64506409    break;
    64516410
    6452   case 264:
    6453 
    6454 /* Line 1806 of yacc.c  */
    6455 #line 1117 "parser.yy"
     6411  case 263:
     6412
     6413/* Line 1806 of yacc.c  */
     6414#line 1122 "parser.yy"
    64566415    {
    64576416                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    64606419    break;
    64616420
    6462   case 269:
    6463 
    6464 /* Line 1806 of yacc.c  */
    6465 #line 1134 "parser.yy"
     6421  case 268:
     6422
     6423/* Line 1806 of yacc.c  */
     6424#line 1139 "parser.yy"
    64666425    {
    64676426                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64706429    break;
    64716430
    6472   case 270:
    6473 
    6474 /* Line 1806 of yacc.c  */
    6475 #line 1139 "parser.yy"
     6431  case 269:
     6432
     6433/* Line 1806 of yacc.c  */
     6434#line 1144 "parser.yy"
    64766435    {
    64776436                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64806439    break;
    64816440
    6482   case 279:
    6483 
    6484 /* Line 1806 of yacc.c  */
    6485 #line 1161 "parser.yy"
     6441  case 278:
     6442
     6443/* Line 1806 of yacc.c  */
     6444#line 1166 "parser.yy"
    64866445    { (yyval.decl) = 0; }
    64876446    break;
    64886447
    6489   case 282:
    6490 
    6491 /* Line 1806 of yacc.c  */
    6492 #line 1173 "parser.yy"
     6448  case 281:
     6449
     6450/* Line 1806 of yacc.c  */
     6451#line 1178 "parser.yy"
    64936452    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    64946453    break;
    64956454
     6455  case 283:
     6456
     6457/* Line 1806 of yacc.c  */
     6458#line 1184 "parser.yy"
     6459    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
     6460    break;
     6461
    64966462  case 284:
    64976463
    64986464/* Line 1806 of yacc.c  */
    6499 #line 1179 "parser.yy"
    6500     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
     6465#line 1189 "parser.yy"
     6466    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65016467    break;
    65026468
     
    65046470
    65056471/* Line 1806 of yacc.c  */
    6506 #line 1184 "parser.yy"
    6507     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6472#line 1191 "parser.yy"
     6473    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65086474    break;
    65096475
     
    65116477
    65126478/* Line 1806 of yacc.c  */
    6513 #line 1186 "parser.yy"
    6514     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6479#line 1193 "parser.yy"
     6480    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65156481    break;
    65166482
     
    65186484
    65196485/* Line 1806 of yacc.c  */
    6520 #line 1188 "parser.yy"
    6521     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6486#line 1195 "parser.yy"
     6487    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    65226488    break;
    65236489
     
    65256491
    65266492/* Line 1806 of yacc.c  */
    6527 #line 1190 "parser.yy"
    6528     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6493#line 1197 "parser.yy"
     6494    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    65296495    break;
    65306496
     
    65326498
    65336499/* Line 1806 of yacc.c  */
    6534 #line 1192 "parser.yy"
    6535     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6536     break;
    6537 
    6538   case 290:
    6539 
    6540 /* Line 1806 of yacc.c  */
    6541 #line 1194 "parser.yy"
     6500#line 1199 "parser.yy"
    65426501    {
    65436502                        typedefTable.enterScope();
     
    65456504    break;
    65466505
    6547   case 291:
    6548 
    6549 /* Line 1806 of yacc.c  */
    6550 #line 1198 "parser.yy"
     6506  case 290:
     6507
     6508/* Line 1806 of yacc.c  */
     6509#line 1203 "parser.yy"
    65516510    {
    65526511                        typedefTable.leaveScope();
     
    65556514    break;
    65566515
     6516  case 292:
     6517
     6518/* Line 1806 of yacc.c  */
     6519#line 1212 "parser.yy"
     6520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6521    break;
     6522
    65576523  case 293:
    65586524
    65596525/* Line 1806 of yacc.c  */
    6560 #line 1207 "parser.yy"
     6526#line 1214 "parser.yy"
     6527    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6528    break;
     6529
     6530  case 295:
     6531
     6532/* Line 1806 of yacc.c  */
     6533#line 1225 "parser.yy"
    65616534    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65626535    break;
    65636536
    6564   case 294:
    6565 
    6566 /* Line 1806 of yacc.c  */
    6567 #line 1209 "parser.yy"
     6537  case 297:
     6538
     6539/* Line 1806 of yacc.c  */
     6540#line 1234 "parser.yy"
     6541    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6542    break;
     6543
     6544  case 298:
     6545
     6546/* Line 1806 of yacc.c  */
     6547#line 1236 "parser.yy"
     6548    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6549    break;
     6550
     6551  case 299:
     6552
     6553/* Line 1806 of yacc.c  */
     6554#line 1238 "parser.yy"
     6555    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6556    break;
     6557
     6558  case 300:
     6559
     6560/* Line 1806 of yacc.c  */
     6561#line 1240 "parser.yy"
     6562    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6563    break;
     6564
     6565  case 301:
     6566
     6567/* Line 1806 of yacc.c  */
     6568#line 1242 "parser.yy"
     6569    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6570    break;
     6571
     6572  case 302:
     6573
     6574/* Line 1806 of yacc.c  */
     6575#line 1244 "parser.yy"
     6576    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6577    break;
     6578
     6579  case 303:
     6580
     6581/* Line 1806 of yacc.c  */
     6582#line 1246 "parser.yy"
     6583    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6584    break;
     6585
     6586  case 304:
     6587
     6588/* Line 1806 of yacc.c  */
     6589#line 1248 "parser.yy"
     6590    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6591    break;
     6592
     6593  case 305:
     6594
     6595/* Line 1806 of yacc.c  */
     6596#line 1253 "parser.yy"
     6597    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6598    break;
     6599
     6600  case 306:
     6601
     6602/* Line 1806 of yacc.c  */
     6603#line 1255 "parser.yy"
     6604    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6605    break;
     6606
     6607  case 307:
     6608
     6609/* Line 1806 of yacc.c  */
     6610#line 1257 "parser.yy"
     6611    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6612    break;
     6613
     6614  case 308:
     6615
     6616/* Line 1806 of yacc.c  */
     6617#line 1259 "parser.yy"
     6618    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6619    break;
     6620
     6621  case 309:
     6622
     6623/* Line 1806 of yacc.c  */
     6624#line 1261 "parser.yy"
     6625    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6626    break;
     6627
     6628  case 310:
     6629
     6630/* Line 1806 of yacc.c  */
     6631#line 1263 "parser.yy"
     6632    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6633    break;
     6634
     6635  case 311:
     6636
     6637/* Line 1806 of yacc.c  */
     6638#line 1265 "parser.yy"
     6639    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6640    break;
     6641
     6642  case 312:
     6643
     6644/* Line 1806 of yacc.c  */
     6645#line 1267 "parser.yy"
     6646    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6647    break;
     6648
     6649  case 313:
     6650
     6651/* Line 1806 of yacc.c  */
     6652#line 1269 "parser.yy"
     6653    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6654    break;
     6655
     6656  case 314:
     6657
     6658/* Line 1806 of yacc.c  */
     6659#line 1271 "parser.yy"
     6660    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6661    break;
     6662
     6663  case 315:
     6664
     6665/* Line 1806 of yacc.c  */
     6666#line 1273 "parser.yy"
     6667    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6668    break;
     6669
     6670  case 316:
     6671
     6672/* Line 1806 of yacc.c  */
     6673#line 1275 "parser.yy"
     6674    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6675    break;
     6676
     6677  case 318:
     6678
     6679/* Line 1806 of yacc.c  */
     6680#line 1282 "parser.yy"
     6681    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6682    break;
     6683
     6684  case 319:
     6685
     6686/* Line 1806 of yacc.c  */
     6687#line 1284 "parser.yy"
     6688    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6689    break;
     6690
     6691  case 320:
     6692
     6693/* Line 1806 of yacc.c  */
     6694#line 1286 "parser.yy"
    65686695    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    65696696    break;
    65706697
    6571   case 296:
    6572 
    6573 /* Line 1806 of yacc.c  */
    6574 #line 1220 "parser.yy"
     6698  case 321:
     6699
     6700/* Line 1806 of yacc.c  */
     6701#line 1288 "parser.yy"
     6702    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6703    break;
     6704
     6705  case 323:
     6706
     6707/* Line 1806 of yacc.c  */
     6708#line 1294 "parser.yy"
     6709    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6710    break;
     6711
     6712  case 325:
     6713
     6714/* Line 1806 of yacc.c  */
     6715#line 1301 "parser.yy"
     6716    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6717    break;
     6718
     6719  case 326:
     6720
     6721/* Line 1806 of yacc.c  */
     6722#line 1303 "parser.yy"
    65756723    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65766724    break;
    65776725
    6578   case 298:
    6579 
    6580 /* Line 1806 of yacc.c  */
    6581 #line 1229 "parser.yy"
    6582     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6583     break;
    6584 
    6585   case 299:
    6586 
    6587 /* Line 1806 of yacc.c  */
    6588 #line 1231 "parser.yy"
    6589     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6590     break;
    6591 
    6592   case 300:
    6593 
    6594 /* Line 1806 of yacc.c  */
    6595 #line 1233 "parser.yy"
    6596     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6597     break;
    6598 
    6599   case 301:
    6600 
    6601 /* Line 1806 of yacc.c  */
    6602 #line 1235 "parser.yy"
    6603     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6604     break;
    6605 
    6606   case 302:
    6607 
    6608 /* Line 1806 of yacc.c  */
    6609 #line 1237 "parser.yy"
    6610     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6611     break;
    6612 
    6613   case 303:
    6614 
    6615 /* Line 1806 of yacc.c  */
    6616 #line 1239 "parser.yy"
    6617     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6618     break;
    6619 
    6620   case 304:
    6621 
    6622 /* Line 1806 of yacc.c  */
    6623 #line 1241 "parser.yy"
    6624     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6625     break;
    6626 
    6627   case 305:
    6628 
    6629 /* Line 1806 of yacc.c  */
    6630 #line 1243 "parser.yy"
    6631     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6632     break;
    6633 
    6634   case 306:
    6635 
    6636 /* Line 1806 of yacc.c  */
    6637 #line 1248 "parser.yy"
    6638     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6639     break;
    6640 
    6641   case 307:
    6642 
    6643 /* Line 1806 of yacc.c  */
    6644 #line 1250 "parser.yy"
    6645     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6646     break;
    6647 
    6648   case 308:
    6649 
    6650 /* Line 1806 of yacc.c  */
    6651 #line 1252 "parser.yy"
    6652     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6653     break;
    6654 
    6655   case 309:
    6656 
    6657 /* Line 1806 of yacc.c  */
    6658 #line 1254 "parser.yy"
    6659     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6660     break;
    6661 
    6662   case 310:
    6663 
    6664 /* Line 1806 of yacc.c  */
    6665 #line 1256 "parser.yy"
    6666     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6667     break;
    6668 
    6669   case 311:
    6670 
    6671 /* Line 1806 of yacc.c  */
    6672 #line 1258 "parser.yy"
    6673     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6674     break;
    6675 
    6676   case 312:
    6677 
    6678 /* Line 1806 of yacc.c  */
    6679 #line 1260 "parser.yy"
    6680     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6681     break;
    6682 
    6683   case 313:
    6684 
    6685 /* Line 1806 of yacc.c  */
    6686 #line 1262 "parser.yy"
    6687     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6688     break;
    6689 
    6690   case 314:
    6691 
    6692 /* Line 1806 of yacc.c  */
    6693 #line 1264 "parser.yy"
    6694     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6695     break;
    6696 
    6697   case 315:
    6698 
    6699 /* Line 1806 of yacc.c  */
    6700 #line 1266 "parser.yy"
    6701     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6702     break;
    6703 
    6704   case 316:
    6705 
    6706 /* Line 1806 of yacc.c  */
    6707 #line 1268 "parser.yy"
    6708     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6709     break;
    6710 
    6711   case 317:
    6712 
    6713 /* Line 1806 of yacc.c  */
    6714 #line 1270 "parser.yy"
    6715     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6716     break;
    6717 
    6718   case 319:
    6719 
    6720 /* Line 1806 of yacc.c  */
    6721 #line 1277 "parser.yy"
     6726  case 327:
     6727
     6728/* Line 1806 of yacc.c  */
     6729#line 1305 "parser.yy"
     6730    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6731    break;
     6732
     6733  case 328:
     6734
     6735/* Line 1806 of yacc.c  */
     6736#line 1310 "parser.yy"
     6737    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6738    break;
     6739
     6740  case 329:
     6741
     6742/* Line 1806 of yacc.c  */
     6743#line 1312 "parser.yy"
     6744    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6745    break;
     6746
     6747  case 330:
     6748
     6749/* Line 1806 of yacc.c  */
     6750#line 1314 "parser.yy"
     6751    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6752    break;
     6753
     6754  case 331:
     6755
     6756/* Line 1806 of yacc.c  */
     6757#line 1316 "parser.yy"
     6758    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6759    break;
     6760
     6761  case 333:
     6762
     6763/* Line 1806 of yacc.c  */
     6764#line 1322 "parser.yy"
    67226765    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67236766    break;
    67246767
    6725   case 320:
    6726 
    6727 /* Line 1806 of yacc.c  */
    6728 #line 1279 "parser.yy"
     6768  case 334:
     6769
     6770/* Line 1806 of yacc.c  */
     6771#line 1324 "parser.yy"
    67296772    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67306773    break;
    67316774
    6732   case 321:
    6733 
    6734 /* Line 1806 of yacc.c  */
    6735 #line 1281 "parser.yy"
     6775  case 335:
     6776
     6777/* Line 1806 of yacc.c  */
     6778#line 1326 "parser.yy"
    67366779    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67376780    break;
    67386781
    6739   case 322:
    6740 
    6741 /* Line 1806 of yacc.c  */
    6742 #line 1283 "parser.yy"
    6743     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6744     break;
    6745 
    6746   case 324:
    6747 
    6748 /* Line 1806 of yacc.c  */
    6749 #line 1289 "parser.yy"
    6750     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6751     break;
    6752 
    6753   case 326:
    6754 
    6755 /* Line 1806 of yacc.c  */
    6756 #line 1296 "parser.yy"
     6782  case 337:
     6783
     6784/* Line 1806 of yacc.c  */
     6785#line 1332 "parser.yy"
    67576786    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67586787    break;
    67596788
    6760   case 327:
    6761 
    6762 /* Line 1806 of yacc.c  */
    6763 #line 1298 "parser.yy"
     6789  case 338:
     6790
     6791/* Line 1806 of yacc.c  */
     6792#line 1334 "parser.yy"
    67646793    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67656794    break;
    67666795
    6767   case 328:
    6768 
    6769 /* Line 1806 of yacc.c  */
    6770 #line 1300 "parser.yy"
    6771     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6772     break;
    6773 
    6774   case 329:
    6775 
    6776 /* Line 1806 of yacc.c  */
    6777 #line 1305 "parser.yy"
    6778     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6779     break;
    6780 
    6781   case 330:
    6782 
    6783 /* Line 1806 of yacc.c  */
    6784 #line 1307 "parser.yy"
    6785     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6786     break;
    6787 
    6788   case 331:
    6789 
    6790 /* Line 1806 of yacc.c  */
    6791 #line 1309 "parser.yy"
    6792     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6793     break;
    6794 
    6795   case 332:
    6796 
    6797 /* Line 1806 of yacc.c  */
    6798 #line 1311 "parser.yy"
    6799     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6800     break;
    6801 
    6802   case 334:
    6803 
    6804 /* Line 1806 of yacc.c  */
    6805 #line 1317 "parser.yy"
     6796  case 340:
     6797
     6798/* Line 1806 of yacc.c  */
     6799#line 1340 "parser.yy"
    68066800    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68076801    break;
    68086802
    6809   case 335:
    6810 
    6811 /* Line 1806 of yacc.c  */
    6812 #line 1319 "parser.yy"
     6803  case 341:
     6804
     6805/* Line 1806 of yacc.c  */
     6806#line 1342 "parser.yy"
    68136807    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68146808    break;
    68156809
    6816   case 336:
    6817 
    6818 /* Line 1806 of yacc.c  */
    6819 #line 1321 "parser.yy"
     6810  case 342:
     6811
     6812/* Line 1806 of yacc.c  */
     6813#line 1344 "parser.yy"
    68206814    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68216815    break;
    68226816
    6823   case 338:
    6824 
    6825 /* Line 1806 of yacc.c  */
    6826 #line 1327 "parser.yy"
     6817  case 343:
     6818
     6819/* Line 1806 of yacc.c  */
     6820#line 1349 "parser.yy"
     6821    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6822    break;
     6823
     6824  case 344:
     6825
     6826/* Line 1806 of yacc.c  */
     6827#line 1351 "parser.yy"
     6828    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6829    break;
     6830
     6831  case 345:
     6832
     6833/* Line 1806 of yacc.c  */
     6834#line 1353 "parser.yy"
     6835    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6836    break;
     6837
     6838  case 348:
     6839
     6840/* Line 1806 of yacc.c  */
     6841#line 1363 "parser.yy"
     6842    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
     6843    break;
     6844
     6845  case 349:
     6846
     6847/* Line 1806 of yacc.c  */
     6848#line 1365 "parser.yy"
     6849    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
     6850    break;
     6851
     6852  case 350:
     6853
     6854/* Line 1806 of yacc.c  */
     6855#line 1367 "parser.yy"
     6856    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
     6857    break;
     6858
     6859  case 351:
     6860
     6861/* Line 1806 of yacc.c  */
     6862#line 1369 "parser.yy"
     6863    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
     6864    break;
     6865
     6866  case 352:
     6867
     6868/* Line 1806 of yacc.c  */
     6869#line 1371 "parser.yy"
     6870    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     6871    break;
     6872
     6873  case 353:
     6874
     6875/* Line 1806 of yacc.c  */
     6876#line 1376 "parser.yy"
     6877    { (yyval.aggKey) = DeclarationNode::Struct; }
     6878    break;
     6879
     6880  case 354:
     6881
     6882/* Line 1806 of yacc.c  */
     6883#line 1378 "parser.yy"
     6884    { (yyval.aggKey) = DeclarationNode::Union; }
     6885    break;
     6886
     6887  case 355:
     6888
     6889/* Line 1806 of yacc.c  */
     6890#line 1383 "parser.yy"
     6891    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
     6892    break;
     6893
     6894  case 356:
     6895
     6896/* Line 1806 of yacc.c  */
     6897#line 1385 "parser.yy"
     6898    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     6899    break;
     6900
     6901  case 358:
     6902
     6903/* Line 1806 of yacc.c  */
     6904#line 1391 "parser.yy"
     6905    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6906    break;
     6907
     6908  case 360:
     6909
     6910/* Line 1806 of yacc.c  */
     6911#line 1394 "parser.yy"
     6912    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6913    break;
     6914
     6915  case 362:
     6916
     6917/* Line 1806 of yacc.c  */
     6918#line 1400 "parser.yy"
     6919    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6920    break;
     6921
     6922  case 363:
     6923
     6924/* Line 1806 of yacc.c  */
     6925#line 1402 "parser.yy"
     6926    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     6927    break;
     6928
     6929  case 364:
     6930
     6931/* Line 1806 of yacc.c  */
     6932#line 1404 "parser.yy"
     6933    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     6934    break;
     6935
     6936  case 365:
     6937
     6938/* Line 1806 of yacc.c  */
     6939#line 1409 "parser.yy"
     6940    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6941    break;
     6942
     6943  case 366:
     6944
     6945/* Line 1806 of yacc.c  */
     6946#line 1411 "parser.yy"
     6947    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     6948    break;
     6949
     6950  case 367:
     6951
     6952/* Line 1806 of yacc.c  */
     6953#line 1416 "parser.yy"
     6954    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     6955    break;
     6956
     6957  case 368:
     6958
     6959/* Line 1806 of yacc.c  */
     6960#line 1418 "parser.yy"
     6961    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     6962    break;
     6963
     6964  case 369:
     6965
     6966/* Line 1806 of yacc.c  */
     6967#line 1421 "parser.yy"
     6968    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6969    break;
     6970
     6971  case 370:
     6972
     6973/* Line 1806 of yacc.c  */
     6974#line 1424 "parser.yy"
     6975    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     6976    break;
     6977
     6978  case 372:
     6979
     6980/* Line 1806 of yacc.c  */
     6981#line 1430 "parser.yy"
     6982    { (yyval.en) = 0; }
     6983    break;
     6984
     6985  case 373:
     6986
     6987/* Line 1806 of yacc.c  */
     6988#line 1432 "parser.yy"
     6989    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     6990    break;
     6991
     6992  case 374:
     6993
     6994/* Line 1806 of yacc.c  */
     6995#line 1437 "parser.yy"
     6996    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     6997    break;
     6998
     6999  case 376:
     7000
     7001/* Line 1806 of yacc.c  */
     7002#line 1446 "parser.yy"
     7003    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     7004    break;
     7005
     7006  case 377:
     7007
     7008/* Line 1806 of yacc.c  */
     7009#line 1448 "parser.yy"
     7010    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
     7011    break;
     7012
     7013  case 378:
     7014
     7015/* Line 1806 of yacc.c  */
     7016#line 1450 "parser.yy"
     7017    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
     7018    break;
     7019
     7020  case 379:
     7021
     7022/* Line 1806 of yacc.c  */
     7023#line 1455 "parser.yy"
     7024    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7025    break;
     7026
     7027  case 380:
     7028
     7029/* Line 1806 of yacc.c  */
     7030#line 1457 "parser.yy"
     7031    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7032    break;
     7033
     7034  case 381:
     7035
     7036/* Line 1806 of yacc.c  */
     7037#line 1462 "parser.yy"
     7038    { (yyval.en) = 0; }
     7039    break;
     7040
     7041  case 382:
     7042
     7043/* Line 1806 of yacc.c  */
     7044#line 1464 "parser.yy"
     7045    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7046    break;
     7047
     7048  case 383:
     7049
     7050/* Line 1806 of yacc.c  */
     7051#line 1471 "parser.yy"
     7052    { (yyval.decl) = 0; }
     7053    break;
     7054
     7055  case 387:
     7056
     7057/* Line 1806 of yacc.c  */
     7058#line 1479 "parser.yy"
     7059    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7060    break;
     7061
     7062  case 388:
     7063
     7064/* Line 1806 of yacc.c  */
     7065#line 1481 "parser.yy"
     7066    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7067    break;
     7068
     7069  case 389:
     7070
     7071/* Line 1806 of yacc.c  */
     7072#line 1483 "parser.yy"
     7073    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7074    break;
     7075
     7076  case 391:
     7077
     7078/* Line 1806 of yacc.c  */
     7079#line 1491 "parser.yy"
     7080    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7081    break;
     7082
     7083  case 392:
     7084
     7085/* Line 1806 of yacc.c  */
     7086#line 1493 "parser.yy"
     7087    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7088    break;
     7089
     7090  case 393:
     7091
     7092/* Line 1806 of yacc.c  */
     7093#line 1495 "parser.yy"
     7094    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7095    break;
     7096
     7097  case 395:
     7098
     7099/* Line 1806 of yacc.c  */
     7100#line 1501 "parser.yy"
     7101    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7102    break;
     7103
     7104  case 396:
     7105
     7106/* Line 1806 of yacc.c  */
     7107#line 1506 "parser.yy"
     7108    { (yyval.decl) = 0; }
     7109    break;
     7110
     7111  case 399:
     7112
     7113/* Line 1806 of yacc.c  */
     7114#line 1513 "parser.yy"
     7115    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7116    break;
     7117
     7118  case 402:
     7119
     7120/* Line 1806 of yacc.c  */
     7121#line 1520 "parser.yy"
     7122    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7123    break;
     7124
     7125  case 403:
     7126
     7127/* Line 1806 of yacc.c  */
     7128#line 1522 "parser.yy"
     7129    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7130    break;
     7131
     7132  case 405:
     7133
     7134/* Line 1806 of yacc.c  */
     7135#line 1531 "parser.yy"
     7136    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7137    break;
     7138
     7139  case 406:
     7140
     7141/* Line 1806 of yacc.c  */
     7142#line 1534 "parser.yy"
     7143    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7144    break;
     7145
     7146  case 407:
     7147
     7148/* Line 1806 of yacc.c  */
     7149#line 1536 "parser.yy"
     7150    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     7151    break;
     7152
     7153  case 412:
     7154
     7155/* Line 1806 of yacc.c  */
     7156#line 1546 "parser.yy"
    68277157    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68287158    break;
    68297159
    6830   case 339:
    6831 
    6832 /* Line 1806 of yacc.c  */
    6833 #line 1329 "parser.yy"
    6834     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6835     break;
    6836 
    6837   case 341:
    6838 
    6839 /* Line 1806 of yacc.c  */
    6840 #line 1335 "parser.yy"
    6841     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6842     break;
    6843 
    6844   case 342:
    6845 
    6846 /* Line 1806 of yacc.c  */
    6847 #line 1337 "parser.yy"
    6848     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6849     break;
    6850 
    6851   case 343:
    6852 
    6853 /* Line 1806 of yacc.c  */
    6854 #line 1339 "parser.yy"
    6855     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6856     break;
    6857 
    6858   case 344:
    6859 
    6860 /* Line 1806 of yacc.c  */
    6861 #line 1344 "parser.yy"
    6862     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6863     break;
    6864 
    6865   case 345:
    6866 
    6867 /* Line 1806 of yacc.c  */
    6868 #line 1346 "parser.yy"
    6869     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6870     break;
    6871 
    6872   case 346:
    6873 
    6874 /* Line 1806 of yacc.c  */
    6875 #line 1348 "parser.yy"
    6876     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6877     break;
    6878 
    6879   case 349:
    6880 
    6881 /* Line 1806 of yacc.c  */
    6882 #line 1358 "parser.yy"
    6883     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    6884     break;
    6885 
    6886   case 350:
    6887 
    6888 /* Line 1806 of yacc.c  */
    6889 #line 1360 "parser.yy"
    6890     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    6891     break;
    6892 
    6893   case 351:
    6894 
    6895 /* Line 1806 of yacc.c  */
    6896 #line 1362 "parser.yy"
    6897     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    6898     break;
    6899 
    6900   case 352:
    6901 
    6902 /* Line 1806 of yacc.c  */
    6903 #line 1372 "parser.yy"
    6904     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    6905     break;
    6906 
    6907   case 353:
    6908 
    6909 /* Line 1806 of yacc.c  */
    6910 #line 1374 "parser.yy"
    6911     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(5) - (5)].tok), (yyvsp[(3) - (5)].en), 0 ); }
    6912     break;
    6913 
    6914   case 354:
    6915 
    6916 /* Line 1806 of yacc.c  */
    6917 #line 1381 "parser.yy"
    6918     { (yyval.aggKey) = DeclarationNode::Struct; }
    6919     break;
    6920 
    6921   case 355:
    6922 
    6923 /* Line 1806 of yacc.c  */
    6924 #line 1383 "parser.yy"
    6925     { (yyval.aggKey) = DeclarationNode::Union; }
    6926     break;
    6927 
    6928   case 356:
    6929 
    6930 /* Line 1806 of yacc.c  */
    6931 #line 1388 "parser.yy"
    6932     { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    6933     break;
    6934 
    6935   case 357:
    6936 
    6937 /* Line 1806 of yacc.c  */
    6938 #line 1390 "parser.yy"
    6939     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    6940     break;
    6941 
    6942   case 359:
    6943 
    6944 /* Line 1806 of yacc.c  */
    6945 #line 1396 "parser.yy"
    6946     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    6947     break;
    6948 
    6949   case 361:
    6950 
    6951 /* Line 1806 of yacc.c  */
    6952 #line 1399 "parser.yy"
    6953     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    6954     break;
    6955 
    6956   case 363:
    6957 
    6958 /* Line 1806 of yacc.c  */
    6959 #line 1405 "parser.yy"
    6960     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    6961     break;
    6962 
    6963   case 364:
    6964 
    6965 /* Line 1806 of yacc.c  */
    6966 #line 1407 "parser.yy"
    6967     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    6968     break;
    6969 
    6970   case 365:
    6971 
    6972 /* Line 1806 of yacc.c  */
    6973 #line 1409 "parser.yy"
    6974     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    6975     break;
    6976 
    6977   case 366:
    6978 
    6979 /* Line 1806 of yacc.c  */
    6980 #line 1414 "parser.yy"
    6981     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6982     break;
    6983 
    6984   case 367:
    6985 
    6986 /* Line 1806 of yacc.c  */
    6987 #line 1416 "parser.yy"
    6988     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    6989     break;
    6990 
    6991   case 368:
    6992 
    6993 /* Line 1806 of yacc.c  */
    6994 #line 1421 "parser.yy"
    6995     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    6996     break;
    6997 
    6998   case 369:
    6999 
    7000 /* Line 1806 of yacc.c  */
    7001 #line 1423 "parser.yy"
    7002     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    7003     break;
    7004 
    7005   case 370:
    7006 
    7007 /* Line 1806 of yacc.c  */
    7008 #line 1426 "parser.yy"
    7009     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7010     break;
    7011 
    7012   case 371:
    7013 
    7014 /* Line 1806 of yacc.c  */
    7015 #line 1429 "parser.yy"
    7016     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7017     break;
    7018 
    7019   case 373:
    7020 
    7021 /* Line 1806 of yacc.c  */
    7022 #line 1435 "parser.yy"
    7023     { (yyval.en) = 0; }
    7024     break;
    7025 
    7026   case 374:
    7027 
    7028 /* Line 1806 of yacc.c  */
    7029 #line 1437 "parser.yy"
    7030     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7031     break;
    7032 
    7033   case 375:
    7034 
    7035 /* Line 1806 of yacc.c  */
    7036 #line 1442 "parser.yy"
    7037     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7038     break;
    7039 
    7040   case 377:
    7041 
    7042 /* Line 1806 of yacc.c  */
    7043 #line 1451 "parser.yy"
    7044     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7045     break;
    7046 
    7047   case 378:
    7048 
    7049 /* Line 1806 of yacc.c  */
    7050 #line 1453 "parser.yy"
    7051     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    7052     break;
    7053 
    7054   case 379:
    7055 
    7056 /* Line 1806 of yacc.c  */
    7057 #line 1455 "parser.yy"
    7058     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    7059     break;
    7060 
    7061   case 380:
    7062 
    7063 /* Line 1806 of yacc.c  */
    7064 #line 1460 "parser.yy"
    7065     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7066     break;
    7067 
    7068   case 381:
    7069 
    7070 /* Line 1806 of yacc.c  */
    7071 #line 1462 "parser.yy"
    7072     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    7073     break;
    7074 
    7075   case 382:
    7076 
    7077 /* Line 1806 of yacc.c  */
    7078 #line 1467 "parser.yy"
    7079     { (yyval.en) = 0; }
    7080     break;
    7081 
    7082   case 383:
    7083 
    7084 /* Line 1806 of yacc.c  */
    7085 #line 1469 "parser.yy"
    7086     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7087     break;
    7088 
    7089   case 384:
    7090 
    7091 /* Line 1806 of yacc.c  */
    7092 #line 1476 "parser.yy"
    7093     { (yyval.decl) = 0; }
    7094     break;
    7095 
    7096   case 388:
    7097 
    7098 /* Line 1806 of yacc.c  */
    7099 #line 1484 "parser.yy"
    7100     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7101     break;
    7102 
    7103   case 389:
    7104 
    7105 /* Line 1806 of yacc.c  */
    7106 #line 1486 "parser.yy"
    7107     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7108     break;
    7109 
    7110   case 390:
    7111 
    7112 /* Line 1806 of yacc.c  */
    7113 #line 1488 "parser.yy"
    7114     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7115     break;
    7116 
    7117   case 392:
    7118 
    7119 /* Line 1806 of yacc.c  */
    7120 #line 1496 "parser.yy"
    7121     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7122     break;
    7123 
    7124   case 393:
    7125 
    7126 /* Line 1806 of yacc.c  */
    7127 #line 1498 "parser.yy"
    7128     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7129     break;
    7130 
    7131   case 394:
    7132 
    7133 /* Line 1806 of yacc.c  */
    7134 #line 1500 "parser.yy"
    7135     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7136     break;
    7137 
    7138   case 396:
    7139 
    7140 /* Line 1806 of yacc.c  */
    7141 #line 1506 "parser.yy"
    7142     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7143     break;
    7144 
    7145   case 397:
    7146 
    7147 /* Line 1806 of yacc.c  */
    7148 #line 1511 "parser.yy"
    7149     { (yyval.decl) = 0; }
    7150     break;
    7151 
    7152   case 400:
    7153 
    7154 /* Line 1806 of yacc.c  */
    7155 #line 1518 "parser.yy"
    7156     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7157     break;
    7158 
    7159   case 403:
    7160 
    7161 /* Line 1806 of yacc.c  */
    7162 #line 1525 "parser.yy"
    7163     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7164     break;
    7165 
    7166   case 404:
    7167 
    7168 /* Line 1806 of yacc.c  */
    7169 #line 1527 "parser.yy"
    7170     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7171     break;
    7172 
    7173   case 406:
    7174 
    7175 /* Line 1806 of yacc.c  */
    7176 #line 1536 "parser.yy"
    7177     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7178     break;
    7179 
    7180   case 407:
    7181 
    7182 /* Line 1806 of yacc.c  */
    7183 #line 1539 "parser.yy"
    7184     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7185     break;
    7186 
    7187   case 408:
    7188 
    7189 /* Line 1806 of yacc.c  */
    7190 #line 1541 "parser.yy"
    7191     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    7192     break;
    7193 
    7194   case 413:
    7195 
    7196 /* Line 1806 of yacc.c  */
    7197 #line 1551 "parser.yy"
    7198     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7160  case 414:
     7161
     7162/* Line 1806 of yacc.c  */
     7163#line 1552 "parser.yy"
     7164    {
     7165                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     7166                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     7167                }
    71997168    break;
    72007169
     
    72097178    break;
    72107179
    7211   case 416:
    7212 
    7213 /* Line 1806 of yacc.c  */
    7214 #line 1562 "parser.yy"
     7180  case 417:
     7181
     7182/* Line 1806 of yacc.c  */
     7183#line 1566 "parser.yy"
     7184    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7185    break;
     7186
     7187  case 418:
     7188
     7189/* Line 1806 of yacc.c  */
     7190#line 1575 "parser.yy"
     7191    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7192    break;
     7193
     7194  case 419:
     7195
     7196/* Line 1806 of yacc.c  */
     7197#line 1577 "parser.yy"
     7198    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7199    break;
     7200
     7201  case 431:
     7202
     7203/* Line 1806 of yacc.c  */
     7204#line 1602 "parser.yy"
     7205    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7206    break;
     7207
     7208  case 435:
     7209
     7210/* Line 1806 of yacc.c  */
     7211#line 1610 "parser.yy"
     7212    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7213    break;
     7214
     7215  case 436:
     7216
     7217/* Line 1806 of yacc.c  */
     7218#line 1615 "parser.yy"
     7219    { (yyval.in) = 0; }
     7220    break;
     7221
     7222  case 437:
     7223
     7224/* Line 1806 of yacc.c  */
     7225#line 1617 "parser.yy"
     7226    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7227    break;
     7228
     7229  case 438:
     7230
     7231/* Line 1806 of yacc.c  */
     7232#line 1621 "parser.yy"
     7233    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7234    break;
     7235
     7236  case 439:
     7237
     7238/* Line 1806 of yacc.c  */
     7239#line 1622 "parser.yy"
     7240    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7241    break;
     7242
     7243  case 441:
     7244
     7245/* Line 1806 of yacc.c  */
     7246#line 1627 "parser.yy"
     7247    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7248    break;
     7249
     7250  case 442:
     7251
     7252/* Line 1806 of yacc.c  */
     7253#line 1628 "parser.yy"
     7254    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
     7255    break;
     7256
     7257  case 443:
     7258
     7259/* Line 1806 of yacc.c  */
     7260#line 1630 "parser.yy"
     7261    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7262    break;
     7263
     7264  case 445:
     7265
     7266/* Line 1806 of yacc.c  */
     7267#line 1646 "parser.yy"
     7268    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
     7269    break;
     7270
     7271  case 447:
     7272
     7273/* Line 1806 of yacc.c  */
     7274#line 1652 "parser.yy"
     7275    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7276    break;
     7277
     7278  case 448:
     7279
     7280/* Line 1806 of yacc.c  */
     7281#line 1658 "parser.yy"
     7282    { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
     7283    break;
     7284
     7285  case 449:
     7286
     7287/* Line 1806 of yacc.c  */
     7288#line 1661 "parser.yy"
     7289    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7290    break;
     7291
     7292  case 450:
     7293
     7294/* Line 1806 of yacc.c  */
     7295#line 1663 "parser.yy"
     7296    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7297    break;
     7298
     7299  case 451:
     7300
     7301/* Line 1806 of yacc.c  */
     7302#line 1665 "parser.yy"
     7303    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ); }
     7304    break;
     7305
     7306  case 452:
     7307
     7308/* Line 1806 of yacc.c  */
     7309#line 1667 "parser.yy"
     7310    { (yyval.en) = (yyvsp[(4) - (6)].en); }
     7311    break;
     7312
     7313  case 454:
     7314
     7315/* Line 1806 of yacc.c  */
     7316#line 1691 "parser.yy"
     7317    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7318    break;
     7319
     7320  case 455:
     7321
     7322/* Line 1806 of yacc.c  */
     7323#line 1693 "parser.yy"
     7324    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7325    break;
     7326
     7327  case 456:
     7328
     7329/* Line 1806 of yacc.c  */
     7330#line 1695 "parser.yy"
     7331    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7332    break;
     7333
     7334  case 458:
     7335
     7336/* Line 1806 of yacc.c  */
     7337#line 1701 "parser.yy"
     7338    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7339    break;
     7340
     7341  case 459:
     7342
     7343/* Line 1806 of yacc.c  */
     7344#line 1703 "parser.yy"
     7345    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7346    break;
     7347
     7348  case 460:
     7349
     7350/* Line 1806 of yacc.c  */
     7351#line 1708 "parser.yy"
     7352    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7353    break;
     7354
     7355  case 462:
     7356
     7357/* Line 1806 of yacc.c  */
     7358#line 1714 "parser.yy"
     7359    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7360    break;
     7361
     7362  case 463:
     7363
     7364/* Line 1806 of yacc.c  */
     7365#line 1719 "parser.yy"
     7366    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7367    break;
     7368
     7369  case 464:
     7370
     7371/* Line 1806 of yacc.c  */
     7372#line 1721 "parser.yy"
     7373    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7374    break;
     7375
     7376  case 466:
     7377
     7378/* Line 1806 of yacc.c  */
     7379#line 1727 "parser.yy"
     7380    { (yyval.tclass) = DeclarationNode::Type; }
     7381    break;
     7382
     7383  case 467:
     7384
     7385/* Line 1806 of yacc.c  */
     7386#line 1729 "parser.yy"
     7387    { (yyval.tclass) = DeclarationNode::Ftype; }
     7388    break;
     7389
     7390  case 468:
     7391
     7392/* Line 1806 of yacc.c  */
     7393#line 1731 "parser.yy"
     7394    { (yyval.tclass) = DeclarationNode::Dtype; }
     7395    break;
     7396
     7397  case 469:
     7398
     7399/* Line 1806 of yacc.c  */
     7400#line 1736 "parser.yy"
     7401    { (yyval.decl) = 0; }
     7402    break;
     7403
     7404  case 470:
     7405
     7406/* Line 1806 of yacc.c  */
     7407#line 1738 "parser.yy"
     7408    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     7409    break;
     7410
     7411  case 471:
     7412
     7413/* Line 1806 of yacc.c  */
     7414#line 1743 "parser.yy"
    72157415    {
    7216                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    7217                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
    7218                 }
    7219     break;
    7220 
    7221   case 418:
    7222 
    7223 /* Line 1806 of yacc.c  */
    7224 #line 1571 "parser.yy"
    7225     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7226     break;
    7227 
    7228   case 419:
    7229 
    7230 /* Line 1806 of yacc.c  */
    7231 #line 1580 "parser.yy"
    7232     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7233     break;
    7234 
    7235   case 420:
    7236 
    7237 /* Line 1806 of yacc.c  */
    7238 #line 1582 "parser.yy"
    7239     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    7240     break;
    7241 
    7242   case 432:
    7243 
    7244 /* Line 1806 of yacc.c  */
    7245 #line 1607 "parser.yy"
    7246     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7247     break;
    7248 
    7249   case 436:
    7250 
    7251 /* Line 1806 of yacc.c  */
    7252 #line 1615 "parser.yy"
    7253     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7254     break;
    7255 
    7256   case 437:
    7257 
    7258 /* Line 1806 of yacc.c  */
    7259 #line 1620 "parser.yy"
    7260     { (yyval.in) = 0; }
    7261     break;
    7262 
    7263   case 438:
    7264 
    7265 /* Line 1806 of yacc.c  */
    7266 #line 1621 "parser.yy"
    7267     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7268     break;
    7269 
    7270   case 439:
    7271 
    7272 /* Line 1806 of yacc.c  */
    7273 #line 1625 "parser.yy"
    7274     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7275     break;
    7276 
    7277   case 440:
    7278 
    7279 /* Line 1806 of yacc.c  */
    7280 #line 1626 "parser.yy"
    7281     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7282     break;
    7283 
    7284   case 442:
    7285 
    7286 /* Line 1806 of yacc.c  */
    7287 #line 1631 "parser.yy"
    7288     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7289     break;
    7290 
    7291   case 443:
    7292 
    7293 /* Line 1806 of yacc.c  */
    7294 #line 1632 "parser.yy"
    7295     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    7296     break;
    7297 
    7298   case 444:
    7299 
    7300 /* Line 1806 of yacc.c  */
    7301 #line 1634 "parser.yy"
    7302     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    7303     break;
    7304 
    7305   case 446:
    7306 
    7307 /* Line 1806 of yacc.c  */
    7308 #line 1650 "parser.yy"
    7309     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    7310     break;
    7311 
    7312   case 448:
    7313 
    7314 /* Line 1806 of yacc.c  */
    7315 #line 1655 "parser.yy"
    7316     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    7317     break;
    7318 
    7319   case 449:
    7320 
    7321 /* Line 1806 of yacc.c  */
    7322 #line 1661 "parser.yy"
    7323     { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
    7324     break;
    7325 
    7326   case 450:
    7327 
    7328 /* Line 1806 of yacc.c  */
    7329 #line 1664 "parser.yy"
    7330     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7331     break;
    7332 
    7333   case 451:
    7334 
    7335 /* Line 1806 of yacc.c  */
    7336 #line 1666 "parser.yy"
    7337     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7338     break;
    7339 
    7340   case 452:
    7341 
    7342 /* Line 1806 of yacc.c  */
    7343 #line 1668 "parser.yy"
    7344     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ); }
    7345     break;
    7346 
    7347   case 453:
    7348 
    7349 /* Line 1806 of yacc.c  */
    7350 #line 1670 "parser.yy"
    7351     { (yyval.en) = (yyvsp[(4) - (6)].en); }
    7352     break;
    7353 
    7354   case 455:
    7355 
    7356 /* Line 1806 of yacc.c  */
    7357 #line 1694 "parser.yy"
    7358     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7359     break;
    7360 
    7361   case 456:
    7362 
    7363 /* Line 1806 of yacc.c  */
    7364 #line 1696 "parser.yy"
    7365     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7366     break;
    7367 
    7368   case 457:
    7369 
    7370 /* Line 1806 of yacc.c  */
    7371 #line 1698 "parser.yy"
    7372     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7373     break;
    7374 
    7375   case 458:
    7376 
    7377 /* Line 1806 of yacc.c  */
    7378 #line 1703 "parser.yy"
    7379     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7380     break;
    7381 
    7382   case 459:
    7383 
    7384 /* Line 1806 of yacc.c  */
    7385 #line 1705 "parser.yy"
    7386     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); }
    7387     break;
    7388 
    7389   case 460:
    7390 
    7391 /* Line 1806 of yacc.c  */
    7392 #line 1707 "parser.yy"
    7393     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7394     break;
    7395 
    7396   case 462:
    7397 
    7398 /* Line 1806 of yacc.c  */
    7399 #line 1713 "parser.yy"
    7400     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    7401     break;
    7402 
    7403   case 463:
    7404 
    7405 /* Line 1806 of yacc.c  */
    7406 #line 1718 "parser.yy"
    7407     { typedefTable.addToEnclosingScope(*( (yyvsp[(2) - (2)].tok) ), TypedefTable::TD ); }
    7408     break;
    7409 
    7410   case 464:
    7411 
    7412 /* Line 1806 of yacc.c  */
    7413 #line 1720 "parser.yy"
    7414     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    7415     break;
    7416 
    7417   case 466:
    7418 
    7419 /* Line 1806 of yacc.c  */
    7420 #line 1726 "parser.yy"
    7421     { (yyval.tclass) = DeclarationNode::Type; }
    7422     break;
    7423 
    7424   case 467:
    7425 
    7426 /* Line 1806 of yacc.c  */
    7427 #line 1728 "parser.yy"
    7428     { (yyval.tclass) = DeclarationNode::Ftype; }
    7429     break;
    7430 
    7431   case 468:
    7432 
    7433 /* Line 1806 of yacc.c  */
    7434 #line 1730 "parser.yy"
    7435     { (yyval.tclass) = DeclarationNode::Dtype; }
    7436     break;
    7437 
    7438   case 469:
    7439 
    7440 /* Line 1806 of yacc.c  */
    7441 #line 1735 "parser.yy"
    7442     { (yyval.decl) = 0; }
    7443     break;
    7444 
    7445   case 470:
    7446 
    7447 /* Line 1806 of yacc.c  */
    7448 #line 1737 "parser.yy"
    7449     { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7450     break;
    7451 
    7452   case 471:
    7453 
    7454 /* Line 1806 of yacc.c  */
    7455 #line 1742 "parser.yy"
    7456     {
    7457                         typedefTable.openContext( *( (yyvsp[(2) - (5)].tok) ) );
     7416                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
    74587417                        (yyval.decl) = DeclarationNode::newContextUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
    74597418                }
     
    74637422
    74647423/* Line 1806 of yacc.c  */
    7465 #line 1747 "parser.yy"
     7424#line 1748 "parser.yy"
    74667425    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    74677426    break;
     
    74707429
    74717430/* Line 1806 of yacc.c  */
    7472 #line 1749 "parser.yy"
     7431#line 1750 "parser.yy"
    74737432    { (yyval.decl) = 0; }
    74747433    break;
     
    74777436
    74787437/* Line 1806 of yacc.c  */
    7479 #line 1754 "parser.yy"
     7438#line 1755 "parser.yy"
    74807439    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    74817440    break;
     
    74847443
    74857444/* Line 1806 of yacc.c  */
    7486 #line 1757 "parser.yy"
     7445#line 1758 "parser.yy"
    74877446    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    74887447    break;
     
    74917450
    74927451/* Line 1806 of yacc.c  */
    7493 #line 1759 "parser.yy"
     7452#line 1760 "parser.yy"
    74947453    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    74957454    break;
     
    74987457
    74997458/* Line 1806 of yacc.c  */
    7500 #line 1764 "parser.yy"
     7459#line 1765 "parser.yy"
    75017460    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    75027461    break;
     
    75057464
    75067465/* Line 1806 of yacc.c  */
    7507 #line 1766 "parser.yy"
     7466#line 1767 "parser.yy"
    75087467    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    75097468    break;
     
    75127471
    75137472/* Line 1806 of yacc.c  */
    7514 #line 1768 "parser.yy"
     7473#line 1769 "parser.yy"
    75157474    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    75167475    break;
     
    75197478
    75207479/* Line 1806 of yacc.c  */
    7521 #line 1773 "parser.yy"
     7480#line 1774 "parser.yy"
    75227481    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    75237482    break;
     
    75267485
    75277486/* Line 1806 of yacc.c  */
    7528 #line 1775 "parser.yy"
     7487#line 1776 "parser.yy"
    75297488    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    75307489    break;
     
    75337492
    75347493/* Line 1806 of yacc.c  */
    7535 #line 1780 "parser.yy"
     7494#line 1781 "parser.yy"
    75367495    {
    75377496                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    75437502
    75447503/* Line 1806 of yacc.c  */
    7545 #line 1785 "parser.yy"
     7504#line 1786 "parser.yy"
    75467505    {
    75477506                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    75537512
    75547513/* Line 1806 of yacc.c  */
    7555 #line 1793 "parser.yy"
     7514#line 1794 "parser.yy"
    75567515    {
    75577516                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    75637522
    75647523/* Line 1806 of yacc.c  */
    7565 #line 1798 "parser.yy"
     7524#line 1799 "parser.yy"
    75667525    {
    75677526                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     
    75737532
    75747533/* Line 1806 of yacc.c  */
    7575 #line 1803 "parser.yy"
     7534#line 1804 "parser.yy"
    75767535    {
    75777536                        typedefTable.leaveContext();
     
    75847543
    75857544/* Line 1806 of yacc.c  */
    7586 #line 1813 "parser.yy"
     7545#line 1814 "parser.yy"
    75877546    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    75887547    break;
     
    75917550
    75927551/* Line 1806 of yacc.c  */
    7593 #line 1823 "parser.yy"
     7552#line 1824 "parser.yy"
    75947553    {
    75957554                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76017560
    76027561/* Line 1806 of yacc.c  */
    7603 #line 1828 "parser.yy"
     7562#line 1829 "parser.yy"
    76047563    {
    76057564                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76117570
    76127571/* Line 1806 of yacc.c  */
    7613 #line 1833 "parser.yy"
     7572#line 1834 "parser.yy"
    76147573    {
    76157574                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76217580
    76227581/* Line 1806 of yacc.c  */
    7623 #line 1841 "parser.yy"
     7582#line 1842 "parser.yy"
    76247583    {
    76257584                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76317590
    76327591/* Line 1806 of yacc.c  */
    7633 #line 1846 "parser.yy"
     7592#line 1847 "parser.yy"
    76347593    {
    76357594                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76417600
    76427601/* Line 1806 of yacc.c  */
    7643 #line 1856 "parser.yy"
     7602#line 1857 "parser.yy"
    76447603    {}
    76457604    break;
     
    76487607
    76497608/* Line 1806 of yacc.c  */
    7650 #line 1858 "parser.yy"
     7609#line 1859 "parser.yy"
    76517610    {
    76527611                        if ( theTree ) {
     
    76617620
    76627621/* Line 1806 of yacc.c  */
    7663 #line 1870 "parser.yy"
     7622#line 1871 "parser.yy"
    76647623    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    76657624    break;
     
    76687627
    76697628/* Line 1806 of yacc.c  */
    7670 #line 1875 "parser.yy"
     7629#line 1876 "parser.yy"
    76717630    { (yyval.decl) = 0; }
    76727631    break;
     
    76757634
    76767635/* Line 1806 of yacc.c  */
    7677 #line 1883 "parser.yy"
     7636#line 1884 "parser.yy"
    76787637    {}
    76797638    break;
     
    76827641
    76837642/* Line 1806 of yacc.c  */
    7684 #line 1885 "parser.yy"
     7643#line 1886 "parser.yy"
    76857644    {
    76867645                        linkageStack.push( linkage );
     
    76927651
    76937652/* Line 1806 of yacc.c  */
    7694 #line 1890 "parser.yy"
     7653#line 1891 "parser.yy"
    76957654    {
    76967655                        linkage = linkageStack.top();
     
    77037662
    77047663/* Line 1806 of yacc.c  */
    7705 #line 1896 "parser.yy"
     7664#line 1897 "parser.yy"
    77067665    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    77077666    break;
     
    80698028    break;
    80708029
    8071   case 584:
    8072 
    8073 /* Line 1806 of yacc.c  */
    8074 #line 2197 "parser.yy"
    8075     {
    8076                         typedefTable.setNextIdentifier( *( (yyvsp[(1) - (1)].tok) ) );
    8077                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    8078                 }
    8079     break;
    8080 
    80818030  case 585:
    80828031
    80838032/* Line 1806 of yacc.c  */
    8084 #line 2202 "parser.yy"
     8033#line 2198 "parser.yy"
    80858034    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80868035    break;
     
    80898038
    80908039/* Line 1806 of yacc.c  */
     8040#line 2203 "parser.yy"
     8041    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8042    break;
     8043
     8044  case 587:
     8045
     8046/* Line 1806 of yacc.c  */
     8047#line 2205 "parser.yy"
     8048    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8049    break;
     8050
     8051  case 588:
     8052
     8053/* Line 1806 of yacc.c  */
    80918054#line 2207 "parser.yy"
     8055    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8056    break;
     8057
     8058  case 589:
     8059
     8060/* Line 1806 of yacc.c  */
     8061#line 2212 "parser.yy"
     8062    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8063    break;
     8064
     8065  case 590:
     8066
     8067/* Line 1806 of yacc.c  */
     8068#line 2214 "parser.yy"
     8069    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8070    break;
     8071
     8072  case 591:
     8073
     8074/* Line 1806 of yacc.c  */
     8075#line 2216 "parser.yy"
     8076    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8077    break;
     8078
     8079  case 592:
     8080
     8081/* Line 1806 of yacc.c  */
     8082#line 2218 "parser.yy"
     8083    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8084    break;
     8085
     8086  case 593:
     8087
     8088/* Line 1806 of yacc.c  */
     8089#line 2223 "parser.yy"
     8090    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8091    break;
     8092
     8093  case 594:
     8094
     8095/* Line 1806 of yacc.c  */
     8096#line 2225 "parser.yy"
     8097    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8098    break;
     8099
     8100  case 595:
     8101
     8102/* Line 1806 of yacc.c  */
     8103#line 2227 "parser.yy"
     8104    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8105    break;
     8106
     8107  case 600:
     8108
     8109/* Line 1806 of yacc.c  */
     8110#line 2244 "parser.yy"
    80928111    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80938112    break;
    80948113
    8095   case 587:
    8096 
    8097 /* Line 1806 of yacc.c  */
    8098 #line 2209 "parser.yy"
     8114  case 601:
     8115
     8116/* Line 1806 of yacc.c  */
     8117#line 2246 "parser.yy"
    80998118    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81008119    break;
    81018120
    8102   case 588:
    8103 
    8104 /* Line 1806 of yacc.c  */
    8105 #line 2211 "parser.yy"
     8121  case 602:
     8122
     8123/* Line 1806 of yacc.c  */
     8124#line 2248 "parser.yy"
    81068125    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81078126    break;
    81088127
    8109   case 589:
    8110 
    8111 /* Line 1806 of yacc.c  */
    8112 #line 2216 "parser.yy"
     8128  case 603:
     8129
     8130/* Line 1806 of yacc.c  */
     8131#line 2253 "parser.yy"
    81138132    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    81148133    break;
    81158134
    8116   case 590:
    8117 
    8118 /* Line 1806 of yacc.c  */
    8119 #line 2218 "parser.yy"
     8135  case 604:
     8136
     8137/* Line 1806 of yacc.c  */
     8138#line 2255 "parser.yy"
    81208139    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81218140    break;
    81228141
    8123   case 591:
    8124 
    8125 /* Line 1806 of yacc.c  */
    8126 #line 2220 "parser.yy"
     8142  case 605:
     8143
     8144/* Line 1806 of yacc.c  */
     8145#line 2257 "parser.yy"
    81278146    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81288147    break;
    81298148
    8130   case 592:
    8131 
    8132 /* Line 1806 of yacc.c  */
    8133 #line 2222 "parser.yy"
     8149  case 606:
     8150
     8151/* Line 1806 of yacc.c  */
     8152#line 2259 "parser.yy"
    81348153    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81358154    break;
    81368155
    8137   case 593:
    8138 
    8139 /* Line 1806 of yacc.c  */
    8140 #line 2227 "parser.yy"
     8156  case 607:
     8157
     8158/* Line 1806 of yacc.c  */
     8159#line 2264 "parser.yy"
    81418160    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81428161    break;
    81438162
    8144   case 594:
    8145 
    8146 /* Line 1806 of yacc.c  */
    8147 #line 2229 "parser.yy"
     8163  case 608:
     8164
     8165/* Line 1806 of yacc.c  */
     8166#line 2266 "parser.yy"
    81488167    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81498168    break;
    81508169
    8151   case 595:
    8152 
    8153 /* Line 1806 of yacc.c  */
    8154 #line 2231 "parser.yy"
     8170  case 609:
     8171
     8172/* Line 1806 of yacc.c  */
     8173#line 2268 "parser.yy"
    81558174    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81568175    break;
    81578176
    8158   case 600:
    8159 
    8160 /* Line 1806 of yacc.c  */
    8161 #line 2248 "parser.yy"
    8162     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8163     break;
    8164 
    8165   case 601:
    8166 
    8167 /* Line 1806 of yacc.c  */
    8168 #line 2250 "parser.yy"
    8169     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8170     break;
    8171 
    8172   case 602:
    8173 
    8174 /* Line 1806 of yacc.c  */
    8175 #line 2252 "parser.yy"
    8176     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8177     break;
    8178 
    8179   case 603:
    8180 
    8181 /* Line 1806 of yacc.c  */
    8182 #line 2257 "parser.yy"
    8183     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8184     break;
    8185 
    8186   case 604:
    8187 
    8188 /* Line 1806 of yacc.c  */
    8189 #line 2259 "parser.yy"
    8190     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8191     break;
    8192 
    8193   case 605:
    8194 
    8195 /* Line 1806 of yacc.c  */
    8196 #line 2261 "parser.yy"
    8197     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8198     break;
    8199 
    8200   case 606:
    8201 
    8202 /* Line 1806 of yacc.c  */
    8203 #line 2263 "parser.yy"
    8204     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8205     break;
    8206 
    8207   case 607:
    8208 
    8209 /* Line 1806 of yacc.c  */
    8210 #line 2268 "parser.yy"
    8211     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8212     break;
    8213 
    8214   case 608:
    8215 
    8216 /* Line 1806 of yacc.c  */
    8217 #line 2270 "parser.yy"
    8218     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8219     break;
    8220 
    8221   case 609:
    8222 
    8223 /* Line 1806 of yacc.c  */
    8224 #line 2272 "parser.yy"
    8225     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8226     break;
    8227 
    82288177  case 614:
    82298178
    82308179/* Line 1806 of yacc.c  */
    8231 #line 2310 "parser.yy"
     8180#line 2306 "parser.yy"
    82328181    {
    82338182                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    82398188
    82408189/* Line 1806 of yacc.c  */
    8241 #line 2318 "parser.yy"
     8190#line 2311 "parser.yy"
     8191    {
     8192                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8193                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     8194                }
     8195    break;
     8196
     8197  case 616:
     8198
     8199/* Line 1806 of yacc.c  */
     8200#line 2319 "parser.yy"
    82428201    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82438202    break;
    82448203
    8245   case 616:
    8246 
    8247 /* Line 1806 of yacc.c  */
    8248 #line 2320 "parser.yy"
     8204  case 617:
     8205
     8206/* Line 1806 of yacc.c  */
     8207#line 2321 "parser.yy"
    82498208    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82508209    break;
    82518210
    8252   case 617:
    8253 
    8254 /* Line 1806 of yacc.c  */
    8255 #line 2322 "parser.yy"
     8211  case 618:
     8212
     8213/* Line 1806 of yacc.c  */
     8214#line 2323 "parser.yy"
    82568215    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82578216    break;
    82588217
    8259   case 618:
    8260 
    8261 /* Line 1806 of yacc.c  */
    8262 #line 2327 "parser.yy"
     8218  case 619:
     8219
     8220/* Line 1806 of yacc.c  */
     8221#line 2328 "parser.yy"
    82638222    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82648223    break;
    82658224
    8266   case 619:
    8267 
    8268 /* Line 1806 of yacc.c  */
    8269 #line 2329 "parser.yy"
     8225  case 620:
     8226
     8227/* Line 1806 of yacc.c  */
     8228#line 2330 "parser.yy"
    82708229    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82718230    break;
    82728231
    8273   case 620:
    8274 
    8275 /* Line 1806 of yacc.c  */
    8276 #line 2334 "parser.yy"
     8232  case 621:
     8233
     8234/* Line 1806 of yacc.c  */
     8235#line 2335 "parser.yy"
    82778236    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    82788237    break;
    82798238
    8280   case 621:
    8281 
    8282 /* Line 1806 of yacc.c  */
    8283 #line 2336 "parser.yy"
     8239  case 622:
     8240
     8241/* Line 1806 of yacc.c  */
     8242#line 2337 "parser.yy"
    82848243    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82858244    break;
    82868245
    8287   case 625:
    8288 
    8289 /* Line 1806 of yacc.c  */
    8290 #line 2356 "parser.yy"
     8246  case 626:
     8247
     8248/* Line 1806 of yacc.c  */
     8249#line 2357 "parser.yy"
    82918250    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    82928251    break;
    82938252
    8294   case 626:
    8295 
    8296 /* Line 1806 of yacc.c  */
    8297 #line 2358 "parser.yy"
     8253  case 627:
     8254
     8255/* Line 1806 of yacc.c  */
     8256#line 2359 "parser.yy"
    82988257    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    82998258    break;
    83008259
    8301   case 627:
    8302 
    8303 /* Line 1806 of yacc.c  */
    8304 #line 2360 "parser.yy"
     8260  case 628:
     8261
     8262/* Line 1806 of yacc.c  */
     8263#line 2361 "parser.yy"
    83058264    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83068265    break;
    83078266
    8308   case 628:
    8309 
    8310 /* Line 1806 of yacc.c  */
    8311 #line 2362 "parser.yy"
     8267  case 629:
     8268
     8269/* Line 1806 of yacc.c  */
     8270#line 2363 "parser.yy"
    83128271    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83138272    break;
    83148273
    8315   case 629:
    8316 
    8317 /* Line 1806 of yacc.c  */
    8318 #line 2364 "parser.yy"
     8274  case 630:
     8275
     8276/* Line 1806 of yacc.c  */
     8277#line 2365 "parser.yy"
    83198278    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83208279    break;
    83218280
    8322   case 631:
    8323 
    8324 /* Line 1806 of yacc.c  */
    8325 #line 2370 "parser.yy"
     8281  case 632:
     8282
     8283/* Line 1806 of yacc.c  */
     8284#line 2371 "parser.yy"
    83268285    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83278286    break;
    83288287
    8329   case 632:
    8330 
    8331 /* Line 1806 of yacc.c  */
    8332 #line 2372 "parser.yy"
     8288  case 633:
     8289
     8290/* Line 1806 of yacc.c  */
     8291#line 2373 "parser.yy"
    83338292    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83348293    break;
    83358294
    8336   case 633:
    8337 
    8338 /* Line 1806 of yacc.c  */
    8339 #line 2374 "parser.yy"
     8295  case 634:
     8296
     8297/* Line 1806 of yacc.c  */
     8298#line 2375 "parser.yy"
    83408299    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83418300    break;
    83428301
    8343   case 634:
    8344 
    8345 /* Line 1806 of yacc.c  */
    8346 #line 2379 "parser.yy"
     8302  case 635:
     8303
     8304/* Line 1806 of yacc.c  */
     8305#line 2380 "parser.yy"
    83478306    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    83488307    break;
    83498308
    8350   case 635:
    8351 
    8352 /* Line 1806 of yacc.c  */
    8353 #line 2381 "parser.yy"
     8309  case 636:
     8310
     8311/* Line 1806 of yacc.c  */
     8312#line 2382 "parser.yy"
    83548313    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83558314    break;
    83568315
    8357   case 636:
    8358 
    8359 /* Line 1806 of yacc.c  */
    8360 #line 2383 "parser.yy"
     8316  case 637:
     8317
     8318/* Line 1806 of yacc.c  */
     8319#line 2384 "parser.yy"
    83618320    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83628321    break;
    83638322
    8364   case 637:
    8365 
    8366 /* Line 1806 of yacc.c  */
    8367 #line 2389 "parser.yy"
     8323  case 638:
     8324
     8325/* Line 1806 of yacc.c  */
     8326#line 2390 "parser.yy"
    83688327    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    83698328    break;
    83708329
    8371   case 638:
    8372 
    8373 /* Line 1806 of yacc.c  */
    8374 #line 2391 "parser.yy"
    8375     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(5) - (5)].decl) ); }
    8376     break;
    8377 
    8378   case 640:
    8379 
    8380 /* Line 1806 of yacc.c  */
    8381 #line 2397 "parser.yy"
     8330  case 639:
     8331
     8332/* Line 1806 of yacc.c  */
     8333#line 2392 "parser.yy"
     8334    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8335    break;
     8336
     8337  case 641:
     8338
     8339/* Line 1806 of yacc.c  */
     8340#line 2398 "parser.yy"
    83828341    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    83838342    break;
    83848343
    8385   case 641:
    8386 
    8387 /* Line 1806 of yacc.c  */
    8388 #line 2399 "parser.yy"
     8344  case 642:
     8345
     8346/* Line 1806 of yacc.c  */
     8347#line 2400 "parser.yy"
    83898348    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    83908349    break;
    83918350
    8392   case 642:
    8393 
    8394 /* Line 1806 of yacc.c  */
    8395 #line 2401 "parser.yy"
     8351  case 643:
     8352
     8353/* Line 1806 of yacc.c  */
     8354#line 2402 "parser.yy"
    83968355    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    83978356    break;
    83988357
    8399   case 643:
    8400 
    8401 /* Line 1806 of yacc.c  */
    8402 #line 2403 "parser.yy"
     8358  case 644:
     8359
     8360/* Line 1806 of yacc.c  */
     8361#line 2404 "parser.yy"
    84038362    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    84048363    break;
    84058364
    8406   case 647:
    8407 
    8408 /* Line 1806 of yacc.c  */
    8409 #line 2423 "parser.yy"
     8365  case 648:
     8366
     8367/* Line 1806 of yacc.c  */
     8368#line 2424 "parser.yy"
    84108369    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    84118370    break;
    84128371
    8413   case 648:
    8414 
    8415 /* Line 1806 of yacc.c  */
    8416 #line 2425 "parser.yy"
     8372  case 649:
     8373
     8374/* Line 1806 of yacc.c  */
     8375#line 2426 "parser.yy"
    84178376    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    84188377    break;
    84198378
    8420   case 649:
    8421 
    8422 /* Line 1806 of yacc.c  */
    8423 #line 2427 "parser.yy"
     8379  case 650:
     8380
     8381/* Line 1806 of yacc.c  */
     8382#line 2428 "parser.yy"
    84248383    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84258384    break;
    84268385
    8427   case 650:
    8428 
    8429 /* Line 1806 of yacc.c  */
    8430 #line 2429 "parser.yy"
     8386  case 651:
     8387
     8388/* Line 1806 of yacc.c  */
     8389#line 2430 "parser.yy"
    84318390    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84328391    break;
    84338392
    8434   case 651:
    8435 
    8436 /* Line 1806 of yacc.c  */
    8437 #line 2431 "parser.yy"
     8393  case 652:
     8394
     8395/* Line 1806 of yacc.c  */
     8396#line 2432 "parser.yy"
    84388397    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84398398    break;
    84408399
    8441   case 653:
    8442 
    8443 /* Line 1806 of yacc.c  */
    8444 #line 2437 "parser.yy"
     8400  case 654:
     8401
     8402/* Line 1806 of yacc.c  */
     8403#line 2438 "parser.yy"
    84458404    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84468405    break;
    84478406
    8448   case 654:
    8449 
    8450 /* Line 1806 of yacc.c  */
    8451 #line 2439 "parser.yy"
     8407  case 655:
     8408
     8409/* Line 1806 of yacc.c  */
     8410#line 2440 "parser.yy"
    84528411    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84538412    break;
    84548413
    8455   case 655:
    8456 
    8457 /* Line 1806 of yacc.c  */
    8458 #line 2441 "parser.yy"
     8414  case 656:
     8415
     8416/* Line 1806 of yacc.c  */
     8417#line 2442 "parser.yy"
    84598418    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84608419    break;
    84618420
    8462   case 656:
    8463 
    8464 /* Line 1806 of yacc.c  */
    8465 #line 2446 "parser.yy"
     8421  case 657:
     8422
     8423/* Line 1806 of yacc.c  */
     8424#line 2447 "parser.yy"
    84668425    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    84678426    break;
    84688427
    8469   case 657:
    8470 
    8471 /* Line 1806 of yacc.c  */
    8472 #line 2448 "parser.yy"
     8428  case 658:
     8429
     8430/* Line 1806 of yacc.c  */
     8431#line 2449 "parser.yy"
    84738432    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84748433    break;
    84758434
    8476   case 658:
    8477 
    8478 /* Line 1806 of yacc.c  */
    8479 #line 2450 "parser.yy"
     8435  case 659:
     8436
     8437/* Line 1806 of yacc.c  */
     8438#line 2451 "parser.yy"
    84808439    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84818440    break;
    84828441
    8483   case 660:
    8484 
    8485 /* Line 1806 of yacc.c  */
    8486 #line 2457 "parser.yy"
     8442  case 661:
     8443
     8444/* Line 1806 of yacc.c  */
     8445#line 2458 "parser.yy"
    84878446    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84888447    break;
    84898448
    8490   case 662:
    8491 
    8492 /* Line 1806 of yacc.c  */
    8493 #line 2468 "parser.yy"
     8449  case 663:
     8450
     8451/* Line 1806 of yacc.c  */
     8452#line 2469 "parser.yy"
    84948453    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    84958454    break;
    84968455
    8497   case 663:
    8498 
    8499 /* Line 1806 of yacc.c  */
    8500 #line 2471 "parser.yy"
     8456  case 664:
     8457
     8458/* Line 1806 of yacc.c  */
     8459#line 2472 "parser.yy"
    85018460    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    85028461    break;
    85038462
    8504   case 664:
    8505 
    8506 /* Line 1806 of yacc.c  */
    8507 #line 2473 "parser.yy"
     8463  case 665:
     8464
     8465/* Line 1806 of yacc.c  */
     8466#line 2474 "parser.yy"
    85088467    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    85098468    break;
    85108469
    8511   case 665:
    8512 
    8513 /* Line 1806 of yacc.c  */
    8514 #line 2476 "parser.yy"
     8470  case 666:
     8471
     8472/* Line 1806 of yacc.c  */
     8473#line 2477 "parser.yy"
    85158474    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    85168475    break;
    85178476
    8518   case 666:
    8519 
    8520 /* Line 1806 of yacc.c  */
    8521 #line 2478 "parser.yy"
     8477  case 667:
     8478
     8479/* Line 1806 of yacc.c  */
     8480#line 2479 "parser.yy"
    85228481    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    85238482    break;
    85248483
    8525   case 667:
    8526 
    8527 /* Line 1806 of yacc.c  */
    8528 #line 2480 "parser.yy"
     8484  case 668:
     8485
     8486/* Line 1806 of yacc.c  */
     8487#line 2481 "parser.yy"
    85298488    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    85308489    break;
    85318490
    8532   case 671:
    8533 
    8534 /* Line 1806 of yacc.c  */
    8535 #line 2499 "parser.yy"
     8491  case 672:
     8492
     8493/* Line 1806 of yacc.c  */
     8494#line 2500 "parser.yy"
    85368495    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85378496    break;
    85388497
    8539   case 672:
    8540 
    8541 /* Line 1806 of yacc.c  */
    8542 #line 2501 "parser.yy"
     8498  case 673:
     8499
     8500/* Line 1806 of yacc.c  */
     8501#line 2502 "parser.yy"
    85438502    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85448503    break;
    85458504
    8546   case 673:
    8547 
    8548 /* Line 1806 of yacc.c  */
    8549 #line 2503 "parser.yy"
     8505  case 674:
     8506
     8507/* Line 1806 of yacc.c  */
     8508#line 2504 "parser.yy"
    85508509    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85518510    break;
    85528511
    8553   case 674:
    8554 
    8555 /* Line 1806 of yacc.c  */
    8556 #line 2505 "parser.yy"
     8512  case 675:
     8513
     8514/* Line 1806 of yacc.c  */
     8515#line 2506 "parser.yy"
    85578516    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85588517    break;
    85598518
    8560   case 675:
    8561 
    8562 /* Line 1806 of yacc.c  */
    8563 #line 2507 "parser.yy"
     8519  case 676:
     8520
     8521/* Line 1806 of yacc.c  */
     8522#line 2508 "parser.yy"
    85648523    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85658524    break;
    85668525
    8567   case 677:
    8568 
    8569 /* Line 1806 of yacc.c  */
    8570 #line 2513 "parser.yy"
     8526  case 678:
     8527
     8528/* Line 1806 of yacc.c  */
     8529#line 2514 "parser.yy"
    85718530    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85728531    break;
    85738532
    8574   case 678:
    8575 
    8576 /* Line 1806 of yacc.c  */
    8577 #line 2515 "parser.yy"
     8533  case 679:
     8534
     8535/* Line 1806 of yacc.c  */
     8536#line 2516 "parser.yy"
    85788537    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85798538    break;
    85808539
    8581   case 679:
    8582 
    8583 /* Line 1806 of yacc.c  */
    8584 #line 2517 "parser.yy"
     8540  case 680:
     8541
     8542/* Line 1806 of yacc.c  */
     8543#line 2518 "parser.yy"
    85858544    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85868545    break;
    85878546
    8588   case 680:
    8589 
    8590 /* Line 1806 of yacc.c  */
    8591 #line 2522 "parser.yy"
     8547  case 681:
     8548
     8549/* Line 1806 of yacc.c  */
     8550#line 2523 "parser.yy"
    85928551    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85938552    break;
    85948553
    8595   case 681:
    8596 
    8597 /* Line 1806 of yacc.c  */
    8598 #line 2524 "parser.yy"
     8554  case 682:
     8555
     8556/* Line 1806 of yacc.c  */
     8557#line 2525 "parser.yy"
    85998558    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86008559    break;
    86018560
    8602   case 684:
    8603 
    8604 /* Line 1806 of yacc.c  */
    8605 #line 2534 "parser.yy"
     8561  case 685:
     8562
     8563/* Line 1806 of yacc.c  */
     8564#line 2535 "parser.yy"
    86068565    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    86078566    break;
    86088567
    8609   case 687:
    8610 
    8611 /* Line 1806 of yacc.c  */
    8612 #line 2544 "parser.yy"
     8568  case 688:
     8569
     8570/* Line 1806 of yacc.c  */
     8571#line 2545 "parser.yy"
    86138572    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    86148573    break;
    86158574
    8616   case 688:
    8617 
    8618 /* Line 1806 of yacc.c  */
    8619 #line 2546 "parser.yy"
     8575  case 689:
     8576
     8577/* Line 1806 of yacc.c  */
     8578#line 2547 "parser.yy"
    86208579    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    86218580    break;
    86228581
    8623   case 689:
    8624 
    8625 /* Line 1806 of yacc.c  */
    8626 #line 2548 "parser.yy"
     8582  case 690:
     8583
     8584/* Line 1806 of yacc.c  */
     8585#line 2549 "parser.yy"
    86278586    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    86288587    break;
    86298588
    8630   case 690:
    8631 
    8632 /* Line 1806 of yacc.c  */
    8633 #line 2550 "parser.yy"
     8589  case 691:
     8590
     8591/* Line 1806 of yacc.c  */
     8592#line 2551 "parser.yy"
    86348593    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    86358594    break;
    86368595
    8637   case 691:
    8638 
    8639 /* Line 1806 of yacc.c  */
    8640 #line 2552 "parser.yy"
     8596  case 692:
     8597
     8598/* Line 1806 of yacc.c  */
     8599#line 2553 "parser.yy"
    86418600    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    86428601    break;
    86438602
    8644   case 692:
    8645 
    8646 /* Line 1806 of yacc.c  */
    8647 #line 2554 "parser.yy"
     8603  case 693:
     8604
     8605/* Line 1806 of yacc.c  */
     8606#line 2555 "parser.yy"
    86488607    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    86498608    break;
    86508609
    8651   case 693:
    8652 
    8653 /* Line 1806 of yacc.c  */
    8654 #line 2561 "parser.yy"
    8655     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8656     break;
    8657 
    86588610  case 694:
    86598611
    86608612/* Line 1806 of yacc.c  */
    8661 #line 2563 "parser.yy"
     8613#line 2562 "parser.yy"
     8614    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8615    break;
     8616
     8617  case 695:
     8618
     8619/* Line 1806 of yacc.c  */
     8620#line 2564 "parser.yy"
    86628621    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    86638622    break;
    86648623
    8665   case 695:
    8666 
    8667 /* Line 1806 of yacc.c  */
    8668 #line 2565 "parser.yy"
    8669     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8670     break;
    8671 
    86728624  case 696:
    86738625
    86748626/* Line 1806 of yacc.c  */
    8675 #line 2567 "parser.yy"
     8627#line 2566 "parser.yy"
     8628    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8629    break;
     8630
     8631  case 697:
     8632
     8633/* Line 1806 of yacc.c  */
     8634#line 2568 "parser.yy"
    86768635    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    86778636    break;
    86788637
    8679   case 697:
    8680 
    8681 /* Line 1806 of yacc.c  */
    8682 #line 2569 "parser.yy"
     8638  case 698:
     8639
     8640/* Line 1806 of yacc.c  */
     8641#line 2570 "parser.yy"
    86838642    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    86848643    break;
    86858644
    8686   case 698:
    8687 
    8688 /* Line 1806 of yacc.c  */
    8689 #line 2571 "parser.yy"
    8690     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8691     break;
    8692 
    86938645  case 699:
    86948646
    86958647/* Line 1806 of yacc.c  */
    8696 #line 2573 "parser.yy"
     8648#line 2572 "parser.yy"
     8649    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8650    break;
     8651
     8652  case 700:
     8653
     8654/* Line 1806 of yacc.c  */
     8655#line 2574 "parser.yy"
    86978656    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    86988657    break;
    86998658
    8700   case 700:
    8701 
    8702 /* Line 1806 of yacc.c  */
    8703 #line 2575 "parser.yy"
    8704     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8705     break;
    8706 
    87078659  case 701:
    87088660
    87098661/* Line 1806 of yacc.c  */
    8710 #line 2577 "parser.yy"
     8662#line 2576 "parser.yy"
     8663    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8664    break;
     8665
     8666  case 702:
     8667
     8668/* Line 1806 of yacc.c  */
     8669#line 2578 "parser.yy"
    87118670    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    87128671    break;
    87138672
    8714   case 702:
    8715 
    8716 /* Line 1806 of yacc.c  */
    8717 #line 2579 "parser.yy"
     8673  case 703:
     8674
     8675/* Line 1806 of yacc.c  */
     8676#line 2580 "parser.yy"
    87188677    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    87198678    break;
    87208679
    8721   case 703:
    8722 
    8723 /* Line 1806 of yacc.c  */
    8724 #line 2584 "parser.yy"
     8680  case 704:
     8681
     8682/* Line 1806 of yacc.c  */
     8683#line 2585 "parser.yy"
    87258684    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87268685    break;
    87278686
    8728   case 704:
    8729 
    8730 /* Line 1806 of yacc.c  */
    8731 #line 2586 "parser.yy"
     8687  case 705:
     8688
     8689/* Line 1806 of yacc.c  */
     8690#line 2587 "parser.yy"
    87328691    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    87338692    break;
    87348693
    8735   case 705:
    8736 
    8737 /* Line 1806 of yacc.c  */
    8738 #line 2591 "parser.yy"
     8694  case 706:
     8695
     8696/* Line 1806 of yacc.c  */
     8697#line 2592 "parser.yy"
    87398698    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    87408699    break;
    87418700
    8742   case 706:
    8743 
    8744 /* Line 1806 of yacc.c  */
    8745 #line 2593 "parser.yy"
     8701  case 707:
     8702
     8703/* Line 1806 of yacc.c  */
     8704#line 2594 "parser.yy"
    87468705    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    87478706    break;
    87488707
    8749   case 708:
    8750 
    8751 /* Line 1806 of yacc.c  */
    8752 #line 2620 "parser.yy"
     8708  case 709:
     8709
     8710/* Line 1806 of yacc.c  */
     8711#line 2621 "parser.yy"
    87538712    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    87548713    break;
    87558714
    8756   case 712:
    8757 
    8758 /* Line 1806 of yacc.c  */
    8759 #line 2631 "parser.yy"
     8715  case 713:
     8716
     8717/* Line 1806 of yacc.c  */
     8718#line 2632 "parser.yy"
    87608719    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87618720    break;
    87628721
    8763   case 713:
    8764 
    8765 /* Line 1806 of yacc.c  */
    8766 #line 2633 "parser.yy"
     8722  case 714:
     8723
     8724/* Line 1806 of yacc.c  */
     8725#line 2634 "parser.yy"
    87678726    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87688727    break;
    87698728
    8770   case 714:
    8771 
    8772 /* Line 1806 of yacc.c  */
    8773 #line 2635 "parser.yy"
     8729  case 715:
     8730
     8731/* Line 1806 of yacc.c  */
     8732#line 2636 "parser.yy"
    87748733    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87758734    break;
    87768735
    8777   case 715:
    8778 
    8779 /* Line 1806 of yacc.c  */
    8780 #line 2637 "parser.yy"
     8736  case 716:
     8737
     8738/* Line 1806 of yacc.c  */
     8739#line 2638 "parser.yy"
    87818740    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87828741    break;
    87838742
    8784   case 716:
    8785 
    8786 /* Line 1806 of yacc.c  */
    8787 #line 2639 "parser.yy"
     8743  case 717:
     8744
     8745/* Line 1806 of yacc.c  */
     8746#line 2640 "parser.yy"
    87888747    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87898748    break;
    87908749
    8791   case 717:
    8792 
    8793 /* Line 1806 of yacc.c  */
    8794 #line 2641 "parser.yy"
     8750  case 718:
     8751
     8752/* Line 1806 of yacc.c  */
     8753#line 2642 "parser.yy"
    87958754    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87968755    break;
    87978756
    8798   case 718:
    8799 
    8800 /* Line 1806 of yacc.c  */
    8801 #line 2648 "parser.yy"
    8802     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8803     break;
    8804 
    88058757  case 719:
    88068758
    88078759/* Line 1806 of yacc.c  */
    8808 #line 2650 "parser.yy"
    8809     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8760#line 2649 "parser.yy"
     8761    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88108762    break;
    88118763
     
    88138765
    88148766/* Line 1806 of yacc.c  */
    8815 #line 2652 "parser.yy"
     8767#line 2651 "parser.yy"
     8768    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8769    break;
     8770
     8771  case 721:
     8772
     8773/* Line 1806 of yacc.c  */
     8774#line 2653 "parser.yy"
    88168775    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88178776    break;
    88188777
    8819   case 721:
    8820 
    8821 /* Line 1806 of yacc.c  */
    8822 #line 2654 "parser.yy"
    8823     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8824     break;
    8825 
    88268778  case 722:
    88278779
    88288780/* Line 1806 of yacc.c  */
    8829 #line 2656 "parser.yy"
    8830     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8781#line 2655 "parser.yy"
     8782    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88318783    break;
    88328784
     
    88348786
    88358787/* Line 1806 of yacc.c  */
    8836 #line 2658 "parser.yy"
     8788#line 2657 "parser.yy"
     8789    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8790    break;
     8791
     8792  case 724:
     8793
     8794/* Line 1806 of yacc.c  */
     8795#line 2659 "parser.yy"
    88378796    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88388797    break;
    88398798
    8840   case 724:
    8841 
    8842 /* Line 1806 of yacc.c  */
    8843 #line 2663 "parser.yy"
     8799  case 725:
     8800
     8801/* Line 1806 of yacc.c  */
     8802#line 2664 "parser.yy"
    88448803    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    88458804    break;
    88468805
    8847   case 725:
    8848 
    8849 /* Line 1806 of yacc.c  */
    8850 #line 2668 "parser.yy"
    8851     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (7)].decl), 0 ); }
    8852     break;
    8853 
    88548806  case 726:
    88558807
    88568808/* Line 1806 of yacc.c  */
    8857 #line 2670 "parser.yy"
     8809#line 2669 "parser.yy"
     8810    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     8811    break;
     8812
     8813  case 727:
     8814
     8815/* Line 1806 of yacc.c  */
     8816#line 2671 "parser.yy"
    88588817    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    88598818    break;
    88608819
    8861   case 727:
    8862 
    8863 /* Line 1806 of yacc.c  */
    8864 #line 2672 "parser.yy"
     8820  case 728:
     8821
     8822/* Line 1806 of yacc.c  */
     8823#line 2673 "parser.yy"
    88658824    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    88668825    break;
    88678826
    8868   case 730:
    8869 
    8870 /* Line 1806 of yacc.c  */
    8871 #line 2696 "parser.yy"
     8827  case 731:
     8828
     8829/* Line 1806 of yacc.c  */
     8830#line 2697 "parser.yy"
    88728831    { (yyval.en) = 0; }
    88738832    break;
    88748833
    8875   case 731:
    8876 
    8877 /* Line 1806 of yacc.c  */
    8878 #line 2698 "parser.yy"
     8834  case 732:
     8835
     8836/* Line 1806 of yacc.c  */
     8837#line 2699 "parser.yy"
    88798838    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    88808839    break;
     
    88838842
    88848843/* Line 1806 of yacc.c  */
    8885 #line 8886 "Parser/parser.cc"
     8844#line 8845 "Parser/parser.cc"
    88868845      default: break;
    88878846    }
     
    91149073
    91159074/* Line 2067 of yacc.c  */
    9116 #line 2701 "parser.yy"
     9075#line 2702 "parser.yy"
    91179076
    91189077// ----end of grammar----
  • src/Parser/parser.yy

    r0df292b r2871210  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun 25 22:36:33 2015
    13 // Update Count     : 1120
     12// Last Modified On : Fri Jul  3 13:53:45 2015
     13// Update Count     : 1220
    1414//
    1515
     
    118118
    119119%type<tok> zero_one  identifier  no_attr_identifier  no_01_identifier
    120 %type<tok> identifier_or_typedef_name  no_attr_identifier_or_typedef_name  no_01_identifier_or_typedef_name
     120%type<tok> identifier_or_type_name  no_attr_identifier_or_type_name  no_01_identifier_or_type_name
    121121%type<constant> string_literal_list
    122122
     
    204204%type<decl> parameter_type_list_opt
    205205
    206 %type<decl> paren_identifier paren_typedef
     206%type<decl> paren_identifier paren_type
    207207
    208208%type<decl> storage_class storage_class_name storage_class_list
     
    213213%type<decl> type_declarator type_declarator_name type_declaring_list
    214214
    215 %type<decl> typedef typedef_array typedef_declaration typedef_declaration_specifier typedef_expression
    216 %type<decl> typedef_function typedef_parameter_array typedef_parameter_function typedef_parameter_ptr
    217 %type<decl> typedef_parameter_redeclarator typedef_ptr typedef_redeclarator typedef_type_specifier
    218 %type<decl> typegen_declaration_specifier typegen_type_specifier
     215%type<decl> typedef type_array typedef_declaration typedef_declaration_specifier typedef_expression
     216%type<decl> type_function type_parameter_array type_parameter_function type_parameter_ptr
     217%type<decl> type_parameter_redeclarator type_ptr type_redeclarator typedef_type_specifier
     218%type<decl> typegen_declaration_specifier typegen_type_specifier typegen_name
    219219
    220220%type<decl> type_name type_name_no_function
     
    376376        | no_attr_identifier ':' assignment_expression
    377377                { $$ = $3->set_asArgName( $1 ); }
    378                 // Only a list of no_attr_identifier_or_typedef_name is allowed in this context. However, there is insufficient
     378                // Only a list of no_attr_identifier_or_type_name is allowed in this context. However, there is insufficient
    379379                // look ahead to distinguish between this list of parameter names and a tuple, so the tuple form must be used
    380380                // with an appropriate semantic check.
     
    564564                // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce conflict with
    565565                // comma_expression in new_identifier_parameter_array and new_abstract_array
    566         '[' push pop ']'
     566        '[' ']'
    567567                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    568568        | '[' push assignment_expression pop ']'
     
    924924
    925925label_list:                                                                                             // GCC, local label
    926         no_attr_identifier_or_typedef_name                      {}
    927         | label_list ',' no_attr_identifier_or_typedef_name {}
     926        no_attr_identifier_or_type_name                 {}
     927        | label_list ',' no_attr_identifier_or_type_name {}
    928928        ;
    929929
     
    965965                        $$ = $2->addQualifiers( $1 );
    966966                }
    967         | new_variable_declaration pop ',' push identifier_or_typedef_name initializer_opt
     967        | new_variable_declaration pop ',' push identifier_or_type_name initializer_opt
    968968                {
    969969                        typedefTable.addToEnclosingScope( *$5, TypedefTable::ID );
     
    975975                // A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static
    976976                // storage-class
    977         new_abstract_declarator_no_tuple identifier_or_typedef_name asm_name_opt
     977        new_abstract_declarator_no_tuple identifier_or_type_name asm_name_opt
    978978                {
    979979                        typedefTable.setNextIdentifier( *$2 );
    980980                        $$ = $1->addName( $2 );
    981981                }
    982         | new_abstract_tuple identifier_or_typedef_name asm_name_opt
     982        | new_abstract_tuple identifier_or_type_name asm_name_opt
    983983                {
    984984                        typedefTable.setNextIdentifier( *$2 );
    985985                        $$ = $1->addName( $2 );
    986986                }
    987         | type_qualifier_list new_abstract_tuple identifier_or_typedef_name asm_name_opt
     987        | type_qualifier_list new_abstract_tuple identifier_or_type_name asm_name_opt
    988988                {
    989989                        typedefTable.setNextIdentifier( *$3 );
     
    10131013                        $$ = $3->addQualifiers( $1 )->addQualifiers( $2 );
    10141014                }
    1015         | new_function_declaration pop ',' push identifier_or_typedef_name
     1015        | new_function_declaration pop ',' push identifier_or_type_name
    10161016                {
    10171017                        typedefTable.addToEnclosingScope( *$5, TypedefTable::ID );
     
    10211021
    10221022new_function_specifier:                                                                 // CFA
    1023         '[' push pop ']' identifier '(' push new_parameter_type_list_opt pop ')'
    1024                 {
    1025                         typedefTable.setNextIdentifier( *( $5 ) );
    1026                         $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true );
    1027                 }
    1028         | '[' push pop ']' TYPEDEFname '(' push new_parameter_type_list_opt pop ')'
    1029                 {
    1030                         typedefTable.setNextIdentifier( *( $5 ) );
    1031                         $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true );
    1032                 }
    1033                 // identifier_or_typedef_name must be broken apart because of the sequence:
     1023        '[' ']' identifier_or_type_name '(' push new_parameter_type_list_opt pop ')' // S/R conflict
     1024                {
     1025                        $$ = DeclarationNode::newFunction( $3, DeclarationNode::newTuple( 0 ), $6, 0, true );
     1026                }
     1027//      '[' ']' identifier '(' push new_parameter_type_list_opt pop ')'
     1028//              {
     1029//                      typedefTable.setNextIdentifier( *$5 );
     1030//                      $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true );
     1031//              }
     1032//      | '[' ']' TYPEDEFname '(' push new_parameter_type_list_opt pop ')'
     1033//              {
     1034//                      typedefTable.setNextIdentifier( *$5 );
     1035//                      $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true );
     1036//              }
     1037//      | '[' ']' typegen_name
     1038                // identifier_or_type_name must be broken apart because of the sequence:
    10341039                //
    1035                 //   '[' ']' identifier_or_typedef_name '(' new_parameter_type_list_opt ')'
     1040                //   '[' ']' identifier_or_type_name '(' new_parameter_type_list_opt ')'
    10361041                //   '[' ']' type_specifier
    10371042                //
    1038                 // type_specifier can resolve to just TYPEDEFname (e.g. typedef int T; int f( T );). Therefore this must be
    1039                 // flattened to allow lookahead to the '(' without having to reduce identifier_or_typedef_name.
    1040         | new_abstract_tuple identifier_or_typedef_name '(' push new_parameter_type_list_opt pop ')'
     1043                // type_specifier can resolve to just TYPEDEFname (e.g., typedef int T; int f( T );). Therefore this must be
     1044                // flattened to allow lookahead to the '(' without having to reduce identifier_or_type_name.
     1045        | new_abstract_tuple identifier_or_type_name '(' push new_parameter_type_list_opt pop ')'
    10411046                // To obtain LR(1 ), this rule must be factored out from function return type (see new_abstract_declarator).
    10421047                {
    10431048                        $$ = DeclarationNode::newFunction( $2, $1, $5, 0, true );
    10441049                }
    1045         | new_function_return identifier_or_typedef_name '(' push new_parameter_type_list_opt pop ')'
     1050        | new_function_return identifier_or_type_name '(' push new_parameter_type_list_opt pop ')'
    10461051                {
    10471052                        $$ = DeclarationNode::newFunction( $2, $1, $5, 0, true );
     
    13571362        aggregate_key '{' field_declaration_list '}'
    13581363                { $$ = DeclarationNode::newAggregate( $1, 0, 0, $3 ); }
    1359         | aggregate_key no_attr_identifier_or_typedef_name
     1364        | aggregate_key no_attr_identifier_or_type_name
    13601365                { $$ = DeclarationNode::newAggregate( $1, $2, 0, 0 ); }
    1361         | aggregate_key no_attr_identifier_or_typedef_name '{' field_declaration_list '}'
     1366        | aggregate_key no_attr_identifier_or_type_name '{' field_declaration_list '}'
    13621367                { $$ = DeclarationNode::newAggregate( $1, $2, 0, $4 ); }
    1363         // | aggregate_key '(' push type_parameter_list pop ')' '{' field_declaration_list '}' // CFA
    1364         //      { $$ = DeclarationNode::newAggregate( $1, 0, $4, 0, $8 ); }
    1365         // | aggregate_key '(' push type_parameter_list pop ')' no_attr_identifier_or_typedef_name // CFA
    1366         //      { $$ = DeclarationNode::newAggregate( $1, $7, $4, 0, 0 ); }
    1367         // | aggregate_key '(' push type_parameter_list pop ')' no_attr_identifier_or_typedef_name '{' field_declaration_list '}' // CFA
    1368         //      { $$ = DeclarationNode::newAggregate( $1, $7, $4, 0, $9 ); }
    1369         // | aggregate_key '(' push type_parameter_list pop ')' '(' type_name_list ')' '{' field_declaration_list '}' // CFA
    1370         //      { $$ = DeclarationNode::newAggregate( $1, 0, $4, $8, $11 ); }
    13711368        | aggregate_key '(' type_name_list ')' '{' field_declaration_list '}' // CFA
    13721369                { $$ = DeclarationNode::newAggregate( $1, 0, $3, $6 ); }
    1373         | aggregate_key '(' type_name_list ')' no_attr_identifier_or_typedef_name // CFA
    1374                 { $$ = DeclarationNode::newAggregate( $1, $5, $3, 0 ); }
    1375         // | aggregate_key '(' push type_parameter_list pop ')' '(' type_name_list ')' no_attr_identifier_or_typedef_name '{' field_declaration_list '}' // CFA
    1376         //      { $$ = DeclarationNode::newAggregate( $1, $10, $4, $8, $12 ); }
     1370        | aggregate_key typegen_name                                            // CFA, S/R conflict
     1371                { $$ = $2; }
    13771372        ;
    13781373
     
    14021397new_field_declaring_list:                                                               // CFA, new style field declaration
    14031398        new_abstract_declarator_tuple                                           // CFA, no field name
    1404         | new_abstract_declarator_tuple no_attr_identifier_or_typedef_name
     1399        | new_abstract_declarator_tuple no_attr_identifier_or_type_name
    14051400                { $$ = $1->addName( $2 ); }
    1406         | new_field_declaring_list ',' no_attr_identifier_or_typedef_name
     1401        | new_field_declaring_list ',' no_attr_identifier_or_type_name
    14071402                { $$ = $1->appendList( $1->cloneType( $3 ) ); }
    14081403        | new_field_declaring_list ','                                          // CFA, no field name
     
    14251420                // A semantic check is required to ensure bit_subrange only appears on base type int.
    14261421                { $$ = $1->addBitfield( $2 ); }
    1427         | typedef_redeclarator bit_subrange_size_opt
     1422        | type_redeclarator bit_subrange_size_opt
    14281423                // A semantic check is required to ensure bit_subrange only appears on base type int.
    14291424                { $$ = $1->addBitfield( $2 ); }
     
    14501445        enum_key '{' enumerator_list comma_opt '}'
    14511446                { $$ = DeclarationNode::newEnum( 0, $3 ); }
    1452         | enum_key no_attr_identifier_or_typedef_name '{' enumerator_list comma_opt '}'
     1447        | enum_key no_attr_identifier_or_type_name '{' enumerator_list comma_opt '}'
    14531448                { $$ = DeclarationNode::newEnum( $2, $4 ); }
    1454         | enum_key no_attr_identifier_or_typedef_name
     1449        | enum_key no_attr_identifier_or_type_name
    14551450                { $$ = DeclarationNode::newEnum( $2, 0 ); }
    14561451        ;
    14571452
    14581453enumerator_list:
    1459         no_attr_identifier_or_typedef_name enumerator_value_opt
     1454        no_attr_identifier_or_type_name enumerator_value_opt
    14601455                { $$ = DeclarationNode::newEnumConstant( $1, $2 ); }
    1461         | enumerator_list ',' no_attr_identifier_or_typedef_name enumerator_value_opt
     1456        | enumerator_list ',' no_attr_identifier_or_type_name enumerator_value_opt
    14621457                { $$ = $1->appendList( DeclarationNode::newEnumConstant( $3, $4 ) ); }
    14631458        ;
     
    15291524
    15301525// Provides optional identifier names (abstract_declarator/variable_declarator), no initialization, different semantics
    1531 // for typedef name by using typedef_parameter_redeclarator instead of typedef_redeclarator, and function prototypes.
     1526// for typedef name by using type_parameter_redeclarator instead of typedef_redeclarator, and function prototypes.
    15321527
    15331528new_parameter_declaration:                                                              // CFA, new & old style parameter declaration
    15341529        parameter_declaration
    1535         | new_identifier_parameter_declarator_no_tuple identifier_or_typedef_name assignment_opt
     1530        | new_identifier_parameter_declarator_no_tuple identifier_or_type_name assignment_opt
    15361531                { $$ = $1->addName( $2 ); }
    1537         | new_abstract_tuple identifier_or_typedef_name assignment_opt
     1532        | new_abstract_tuple identifier_or_type_name assignment_opt
    15381533                // To obtain LR(1), these rules must be duplicated here (see new_abstract_declarator).
    15391534                { $$ = $1->addName( $2 ); }
    1540         | type_qualifier_list new_abstract_tuple identifier_or_typedef_name assignment_opt
     1535        | type_qualifier_list new_abstract_tuple identifier_or_type_name assignment_opt
    15411536                { $$ = $2->addName( $3 )->addQualifiers( $1 ); }
    15421537        | new_function_specifier
     
    15591554                        $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ) );
    15601555                }
    1561         | declaration_specifier typedef_parameter_redeclarator assignment_opt
     1556        | declaration_specifier type_parameter_redeclarator assignment_opt
    15621557                {
    15631558                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    15831578        ;
    15841579
    1585 identifier_or_typedef_name:
     1580identifier_or_type_name:
    15861581        identifier
    15871582        | TYPEDEFname
     
    15891584        ;
    15901585
    1591 no_01_identifier_or_typedef_name:
     1586no_01_identifier_or_type_name:
    15921587        no_01_identifier
    15931588        | TYPEDEFname
     
    15951590        ;
    15961591
    1597 no_attr_identifier_or_typedef_name:
     1592no_attr_identifier_or_type_name:
    15981593        no_attr_identifier
    15991594        | TYPEDEFname
     
    16191614        // empty
    16201615                { $$ = 0; }
    1621         | '=' initializer                                                       { $$ = $2; }
     1616        | '=' initializer
     1617                { $$ = $2; }
    16221618        ;
    16231619
     
    16471643designation:
    16481644        designator_list ':'                                                                     // C99, CFA uses ":" instead of "="
    1649         | no_attr_identifier_or_typedef_name ':'                        // GCC, field name
    1650                                 { $$ = new VarRefNode( $1 ); }
     1645        | no_attr_identifier_or_type_name ':'                           // GCC, field name
     1646                { $$ = new VarRefNode( $1 ); }
    16511647        ;
    16521648
    16531649designator_list:                                                                                // C99
    16541650        designator
    1655         | designator_list designator                                    { $$ = (ExpressionNode *)( $1->set_link( $2 )); }
     1651        | designator_list designator
     1652                { $$ = (ExpressionNode *)( $1->set_link( $2 )); }
    16561653        //| designator_list designator                                          { $$ = new CompositeExprNode( $1, $2 ); }
    16571654        ;
    16581655
    16591656designator:
    1660         '.' no_attr_identifier_or_typedef_name                          // C99, field name
     1657        '.' no_attr_identifier_or_type_name                                     // C99, field name
    16611658                { $$ = new VarRefNode( $2 ); }
    16621659        | '[' push assignment_expression pop ']'                        // C99, single array element
     
    17001697
    17011698typegen_type_specifier:                                                                 // CFA
     1699        typegen_name
     1700        | type_qualifier_list typegen_name
     1701                { $$ = $2->addQualifiers( $1 ); }
     1702        | typegen_type_specifier type_qualifier
     1703                { $$ = $1->addQualifiers( $2 ); }
     1704        ;
     1705
     1706typegen_name:                                                                                   // CFA
    17021707        TYPEGENname '(' type_name_list ')'
    17031708                { $$ = DeclarationNode::newFromTypeGen( $1, $3 ); }
    1704         | type_qualifier_list TYPEGENname '(' type_name_list ')'
    1705                 { $$ = DeclarationNode::newFromTypeGen( $2, $4 )->addQualifiers( $1 ); }
    1706         | typegen_type_specifier type_qualifier
    1707                 { $$ = $1->addQualifiers( $2 ); }
    17081709        ;
    17091710
     
    17151716
    17161717type_parameter:                                                                                 // CFA
    1717         type_class no_attr_identifier_or_typedef_name
    1718                 { typedefTable.addToEnclosingScope(*( $2 ), TypedefTable::TD ); }
     1718        type_class no_attr_identifier_or_type_name
     1719                { typedefTable.addToEnclosingScope( *$2, TypedefTable::TD ); }
    17191720          assertion_list_opt
    17201721                { $$ = DeclarationNode::newTypeParam( $1, $2 )->addAssertions( $4 ); }
     
    17391740
    17401741assertion:                                                                                              // CFA
    1741         '|' no_attr_identifier_or_typedef_name '(' type_name_list ')'
    1742                 {
    1743                         typedefTable.openContext( *( $2 ) );
     1742        '|' no_attr_identifier_or_type_name '(' type_name_list ')'
     1743                {
     1744                        typedefTable.openContext( *$2 );
    17441745                        $$ = DeclarationNode::newContextUse( $2, $4 );
    17451746                }
     
    17771778
    17781779type_declarator_name:                                                                   // CFA
    1779         no_attr_identifier_or_typedef_name
     1780        no_attr_identifier_or_type_name
    17801781                {
    17811782                        typedefTable.addToEnclosingScope( *$1, TypedefTable::TD );
    17821783                        $$ = DeclarationNode::newTypeDecl( $1, 0 );
    17831784                }
    1784         | no_01_identifier_or_typedef_name '(' push type_parameter_list pop ')'
     1785        | no_01_identifier_or_type_name '(' push type_parameter_list pop ')'
    17851786                {
    17861787                        typedefTable.addToEnclosingScope( *$1, TypedefTable::TG );
     
    17901791
    17911792context_specifier:                                                                              // CFA
    1792         CONTEXT no_attr_identifier_or_typedef_name '(' push type_parameter_list pop ')' '{' '}'
     1793        CONTEXT no_attr_identifier_or_type_name '(' push type_parameter_list pop ')' '{' '}'
    17931794                {
    17941795                        typedefTable.addToEnclosingScope( *$2, TypedefTable::ID );
    17951796                        $$ = DeclarationNode::newContext( $2, $5, 0 );
    17961797                }
    1797         | CONTEXT no_attr_identifier_or_typedef_name '(' push type_parameter_list pop ')' '{'
     1798        | CONTEXT no_attr_identifier_or_type_name '(' push type_parameter_list pop ')' '{'
    17981799                {
    17991800                        typedefTable.enterContext( *$2 );
     
    18301831                        $$ = $1;
    18311832                }
    1832         | new_context_declaring_list pop ',' push identifier_or_typedef_name
     1833        | new_context_declaring_list pop ',' push identifier_or_type_name
    18331834                {
    18341835                        typedefTable.addToEnclosingScope2( *$5, TypedefTable::ID );
     
    18991900external_function_definition:
    19001901        function_definition
    1901 
    19021902                // These rules are a concession to the "implicit int" type_specifier because there is a significant amount of
    19031903                // code with functions missing a type-specifier on the return type.  Parsing is possible because
     
    19821982        variable_declarator
    19831983        | function_declarator
    1984         | typedef_redeclarator
     1984        | type_redeclarator
    19851985        ;
    19861986
     
    20212021
    20222022any_word:                                                                                               // GCC
    2023         identifier_or_typedef_name {}
     2023        identifier_or_type_name {}
    20242024        | storage_class_name {}
    20252025        | basic_type_name {}
     
    21032103// This pattern parses a function declarator that is not redefining a typedef name. Because functions cannot be nested,
    21042104// there is no context where a function definition can redefine a typedef name. To allow nested functions requires
    2105 // further separation of variable and function declarators in typedef_redeclarator.  The pattern precludes returning
     2105// further separation of variable and function declarators in type_redeclarator.  The pattern precludes returning
    21062106// arrays and functions versus pointers to arrays and functions.
    21072107
     
    21762176        ;
    21772177
    2178 // This pattern parses a declaration for a variable or function prototype that redefines a typedef name, e.g.:
     2178// This pattern parses a declaration for a variable or function prototype that redefines a type name, e.g.:
    21792179//
    21802180//              typedef int foo;
     
    21862186// and functions versus pointers to arrays and functions.
    21872187
    2188 typedef_redeclarator:
    2189         paren_typedef attribute_list_opt
    2190         | typedef_ptr
    2191         | typedef_array attribute_list_opt
    2192         | typedef_function attribute_list_opt
    2193         ;
    2194 
    2195 paren_typedef:
    2196         TYPEDEFname
    2197                 {
    2198                         typedefTable.setNextIdentifier( *( $1 ) );
    2199                         $$ = DeclarationNode::newName( $1 );
    2200                 }
    2201         | '(' paren_typedef ')'
    2202                 { $$ = $2; }
    2203         ;
    2204 
    2205 typedef_ptr:
    2206         '*' typedef_redeclarator
     2188type_redeclarator:
     2189        paren_type attribute_list_opt
     2190        | type_ptr
     2191        | type_array attribute_list_opt
     2192        | type_function attribute_list_opt
     2193        ;
     2194
     2195paren_type:
     2196        typedef
     2197        | '(' paren_type ')'
     2198                { $$ = $2; }
     2199        ;
     2200
     2201type_ptr:
     2202        '*' type_redeclarator
    22072203                { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); }
    2208         | '*' type_qualifier_list typedef_redeclarator
     2204        | '*' type_qualifier_list type_redeclarator
    22092205                { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); }
    2210         | '(' typedef_ptr ')'
    2211                 { $$ = $2; }
    2212         ;
    2213 
    2214 typedef_array:
    2215         paren_typedef array_dimension
     2206        | '(' type_ptr ')'
     2207                { $$ = $2; }
     2208        ;
     2209
     2210type_array:
     2211        paren_type array_dimension
    22162212                { $$ = $1->addArray( $2 ); }
    2217         | '(' typedef_ptr ')' array_dimension
     2213        | '(' type_ptr ')' array_dimension
    22182214                { $$ = $2->addArray( $4 ); }
    2219         | '(' typedef_array ')' multi_array_dimension           // redundant parenthesis
     2215        | '(' type_array ')' multi_array_dimension                      // redundant parenthesis
    22202216                { $$ = $2->addArray( $4 ); }
    2221         | '(' typedef_array ')'                                                         // redundant parenthesis
    2222                 { $$ = $2; }
    2223         ;
    2224 
    2225 typedef_function:
    2226         paren_typedef '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3)
     2217        | '(' type_array ')'                                                            // redundant parenthesis
     2218                { $$ = $2; }
     2219        ;
     2220
     2221type_function:
     2222        paren_type '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3)
    22272223                { $$ = $1->addParamList( $4 ); }
    2228         | '(' typedef_ptr ')' '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3)
     2224        | '(' type_ptr ')' '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3)
    22292225                { $$ = $2->addParamList( $6 ); }
    2230         | '(' typedef_function ')'                                                      // redundant parenthesis
     2226        | '(' type_function ')'                                                         // redundant parenthesis
    22312227                { $$ = $2; }
    22322228        ;
     
    22992295// functions.
    23002296
    2301 typedef_parameter_redeclarator:
     2297type_parameter_redeclarator:
    23022298        typedef attribute_list_opt
    2303         | typedef_parameter_ptr
    2304         | typedef_parameter_array attribute_list_opt
    2305         | typedef_parameter_function attribute_list_opt
     2299        | type_parameter_ptr
     2300        | type_parameter_array attribute_list_opt
     2301        | type_parameter_function attribute_list_opt
    23062302        ;
    23072303
     
    23122308                        $$ = DeclarationNode::newName( $1 );
    23132309                }
    2314         ;
    2315 
    2316 typedef_parameter_ptr:
    2317         '*' typedef_parameter_redeclarator
     2310        | TYPEGENname
     2311                {
     2312                        typedefTable.setNextIdentifier( *$1 );
     2313                        $$ = DeclarationNode::newName( $1 );
     2314                }
     2315        ;
     2316
     2317type_parameter_ptr:
     2318        '*' type_parameter_redeclarator
    23182319                { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); }
    2319         | '*' type_qualifier_list typedef_parameter_redeclarator
     2320        | '*' type_qualifier_list type_parameter_redeclarator
    23202321                { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); }
    2321         | '(' typedef_parameter_ptr ')'
    2322                 { $$ = $2; }
    2323         ;
    2324 
    2325 typedef_parameter_array:
     2322        | '(' type_parameter_ptr ')'
     2323                { $$ = $2; }
     2324        ;
     2325
     2326type_parameter_array:
    23262327        typedef array_parameter_dimension
    23272328                { $$ = $1->addArray( $2 ); }
    2328         | '(' typedef_parameter_ptr ')' array_parameter_dimension
     2329        | '(' type_parameter_ptr ')' array_parameter_dimension
    23292330                { $$ = $2->addArray( $4 ); }
    23302331        ;
    23312332
    2332 typedef_parameter_function:
     2333type_parameter_function:
    23332334        typedef '(' push parameter_type_list_opt pop ')'        // empty parameter list OBSOLESCENT (see 3)
    23342335                { $$ = $1->addParamList( $4 ); }
    2335         | '(' typedef_parameter_ptr ')' '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3)
     2336        | '(' type_parameter_ptr ')' '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3)
    23362337                { $$ = $2->addParamList( $6 ); }
    23372338        ;
     
    23862387array_dimension:
    23872388                // Only the first dimension can be empty.
    2388         '[' push pop ']'
     2389        '[' ']'
    23892390                { $$ = DeclarationNode::newArray( 0, 0, false ); }
    2390         | '[' push pop ']' multi_array_dimension
    2391                 { $$ = DeclarationNode::newArray( 0, 0, false )->addArray( $5 ); }
     2391        | '[' ']' multi_array_dimension
     2392                { $$ = DeclarationNode::newArray( 0, 0, false )->addArray( $3 ); }
    23922393        | multi_array_dimension
    23932394        ;
     
    24652466
    24662467array_parameter_1st_dimension:
    2467         '[' push pop ']'
     2468        '[' ']'
    24682469                { $$ = DeclarationNode::newArray( 0, 0, false ); }
    24692470        // multi_array_dimension handles the '[' '*' ']' case
     
    25582559                // Only the first dimension can be empty or have qualifiers. Empty dimension must be factored out due to
    25592560                // shift/reduce conflict with new-style empty (void) function return type.
    2560         '[' push pop ']' type_specifier
    2561                 { $$ = $5->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     2561        '[' ']' type_specifier
     2562                { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    25622563        | new_array_parameter_1st_dimension type_specifier
    25632564                { $$ = $2->addNewArray( $1 ); }
    2564         | '[' push pop ']' multi_array_dimension type_specifier
    2565                 { $$ = $6->addNewArray( $5 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     2565        | '[' ']' multi_array_dimension type_specifier
     2566                { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    25662567        | new_array_parameter_1st_dimension multi_array_dimension type_specifier
    25672568                { $$ = $3->addNewArray( $2 )->addNewArray( $1 ); }
    25682569        | multi_array_dimension type_specifier
    25692570                { $$ = $2->addNewArray( $1 ); }
    2570         | '[' push pop ']' new_identifier_parameter_ptr
    2571                 { $$ = $5->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     2571        | '[' ']' new_identifier_parameter_ptr
     2572                { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    25722573        | new_array_parameter_1st_dimension new_identifier_parameter_ptr
    25732574                { $$ = $2->addNewArray( $1 ); }
    2574         | '[' push pop ']' multi_array_dimension new_identifier_parameter_ptr
    2575                 { $$ = $6->addNewArray( $5 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     2575        | '[' ']' multi_array_dimension new_identifier_parameter_ptr
     2576                { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    25762577        | new_array_parameter_1st_dimension multi_array_dimension new_identifier_parameter_ptr
    25772578                { $$ = $3->addNewArray( $2 )->addNewArray( $1 ); }
     
    26022603// These rules need LR(3):
    26032604//
    2604 //              new_abstract_tuple identifier_or_typedef_name
    2605 //              '[' new_parameter_list ']' identifier_or_typedef_name '(' new_parameter_type_list_opt ')'
     2605//              new_abstract_tuple identifier_or_type_name
     2606//              '[' new_parameter_list ']' identifier_or_type_name '(' new_parameter_type_list_opt ')'
    26062607//
    26072608// since a function return type can be syntactically identical to a tuple type:
     
    26102611//              [int, int] f( int );
    26112612//
    2612 // Therefore, it is necessary to look at the token after identifier_or_typedef_name to know when to reduce
     2613// Therefore, it is necessary to look at the token after identifier_or_type_name to know when to reduce
    26132614// new_abstract_tuple. To make this LR(1), several rules have to be flattened (lengthened) to allow the necessary
    26142615// lookahead. To accomplish this, new_abstract_declarator has an entry point without tuple, and tuple declarations are
     
    26452646                // Only the first dimension can be empty. Empty dimension must be factored out due to shift/reduce conflict with
    26462647                // empty (void) function return type.
    2647         '[' push pop ']' type_specifier
    2648                 { $$ = $5->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    2649         | '[' push pop ']' multi_array_dimension type_specifier
    2650                 { $$ = $6->addNewArray( $5 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     2648        '[' ']' type_specifier
     2649                { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     2650        | '[' ']' multi_array_dimension type_specifier
     2651                { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    26512652        | multi_array_dimension type_specifier
    26522653                { $$ = $2->addNewArray( $1 ); }
    2653         | '[' push pop ']' new_abstract_ptr
    2654                 { $$ = $5->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    2655         | '[' push pop ']' multi_array_dimension new_abstract_ptr
    2656                 { $$ = $6->addNewArray( $5 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     2654        | '[' ']' new_abstract_ptr
     2655                { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     2656        | '[' ']' multi_array_dimension new_abstract_ptr
     2657                { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    26572658        | multi_array_dimension new_abstract_ptr
    26582659                { $$ = $2->addNewArray( $1 ); }
     
    26652666
    26662667new_abstract_function:                                                                  // CFA
    2667         '[' push pop ']' '(' new_parameter_type_list_opt ')'
    2668                 { $$ = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), $6, 0 ); }
     2668        '[' ']' '(' new_parameter_type_list_opt ')'
     2669                { $$ = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), $4, 0 ); }
    26692670        | new_abstract_tuple '(' push new_parameter_type_list_opt pop ')'
    26702671                { $$ = DeclarationNode::newFunction( 0, $1, $4, 0 ); }
  • src/ResolvExpr/AlternativeFinder.cc

    r0df292b r2871210  
    1010// Created On       : Sat May 16 23:52:08 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun 22 17:19:54 2015
    13 // Update Count     : 17
     12// Last Modified On : Fri Jul  3 17:58:39 2015
     13// Update Count     : 22
    1414//
    1515
     
    543543
    544544                AlternativeFinder funcFinder( indexer, env ); {
    545                         NameExpr *fname;
     545                        NameExpr *fname = 0;;
    546546                        if ( ( fname = dynamic_cast<NameExpr *>( untypedExpr->get_function()))
    547547                                 && ( fname->get_name() == std::string("&&")) ) {
    548                                 alternatives.push_back( Alternative( untypedExpr->clone(), env, Cost()) );
     548                                VoidType v = Type::Qualifiers();                // resolve to type void *
     549                                PointerType pt( Type::Qualifiers(), v.clone() );
     550                                UntypedExpr *vexpr = untypedExpr->clone();
     551                                vexpr->get_results().push_front( pt.clone() );
     552                                alternatives.push_back( Alternative( vexpr, env, Cost()) );
    549553                                return;
    550554                        }
  • src/ResolvExpr/Resolver.cc

    r0df292b r2871210  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 12:17:01 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jun 24 16:20:35 2015
    13 // Update Count     : 156
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jul  3 16:18:20 2015
     13// Update Count     : 159
    1414//
    1515
     
    274274                // must resolve the argument for a computed goto
    275275                if ( branchStmt->get_type() == BranchStmt::Goto ) { // check for computed goto statement
    276                         if ( NameExpr * arg = dynamic_cast< NameExpr * >( branchStmt->get_computedTarget() ) ) {
     276                        if ( Expression * arg = branchStmt->get_computedTarget() ) {
    277277                                VoidType v = Type::Qualifiers();                // cast to void * for the alternative finder
    278278                                PointerType pt( Type::Qualifiers(), v.clone() );
  • src/SynTree/Statement.cc

    r0df292b r2871210  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jun 23 11:42:09 2015
    13 // Update Count     : 21
     12// Last Modified On : Mon Jun 29 17:37:10 2015
     13// Update Count     : 22
    1414//
    1515
     
    2828using std::endl;
    2929
    30 Statement::Statement( std::list<Label> _labels ) : labels(_labels ) {}
     30Statement::Statement( std::list<Label> _labels ) : labels( _labels ) {}
    3131
    3232void Statement::print( std::ostream &, int indent ) const {}
     
    3434Statement::~Statement() {}
    3535
    36 ExprStmt::ExprStmt( std::list<Label> _labels, Expression *_expr ) : Statement(_labels ), expr(_expr ) {}
     36ExprStmt::ExprStmt( std::list<Label> _labels, Expression *_expr ) : Statement( _labels ), expr( _expr ) {}
    3737
    3838ExprStmt::~ExprStmt() {}
     
    4646
    4747BranchStmt::BranchStmt( std::list<Label> labels, Label _target, Type _type ) throw ( SemanticError ) :
    48         Statement( labels ), originalTarget(_target ), target(_target ), type(_type ) {
     48        Statement( labels ), originalTarget( _target ), target( _target ), computedTarget( NULL ), type( _type ) {
    4949        //actually this is a syntactic error signaled by the parser
    5050        if ( type == BranchStmt::Goto && target.size() == 0 )
     
    5353
    5454BranchStmt::BranchStmt( std::list<Label> labels, Expression *_computedTarget, Type _type ) throw ( SemanticError ) :
    55         Statement( labels ), computedTarget(_computedTarget ), type(_type ) {
     55        Statement( labels ), computedTarget( _computedTarget ), type( _type ) {
    5656        if ( type != BranchStmt::Goto || computedTarget == 0 )
    5757                throw SemanticError("Computed target not valid in branch statement");
     
    7575
    7676IfStmt::IfStmt( std::list<Label> _labels, Expression *_condition, Statement *_thenPart, Statement *_elsePart ):
    77         Statement(_labels ), condition(_condition ), thenPart(_thenPart ), elsePart(_elsePart ) {}
     77        Statement( _labels ), condition( _condition ), thenPart( _thenPart ), elsePart( _elsePart ) {}
    7878
    7979IfStmt::~IfStmt() {}
     
    9393
    9494SwitchStmt::SwitchStmt( std::list<Label> _labels, Expression * _condition, std::list<Statement *> &_branches ):
    95         Statement(_labels ), condition(_condition ), branches(_branches ) {
     95        Statement( _labels ), condition( _condition ), branches( _branches ) {
    9696}
    9797
     
    117117
    118118CaseStmt::CaseStmt( std::list<Label> _labels, Expression *_condition, std::list<Statement *> &_statements, bool deflt ) throw ( SemanticError ) :
    119         Statement(_labels ), condition(_condition ), stmts(_statements ), _isDefault( deflt ) {
     119        Statement( _labels ), condition( _condition ), stmts( _statements ), _isDefault( deflt ) {
    120120        if ( isDefault() && condition != 0 )
    121121                throw SemanticError("default with conditions");
     
    149149//ChooseStmt::ChooseStmt( std::list<Label> labels, Expression *condition, Statement *body ) {}
    150150ChooseStmt::ChooseStmt( std::list<Label> _labels, Expression * _condition, std::list<Statement *> &_branches ):
    151         Statement(_labels ), condition(_condition ), branches(_branches ) {
     151        Statement( _labels ), condition( _condition ), branches( _branches ) {
    152152}
    153153
  • src/Tests/LabelledExit.c

    r0df292b r2871210  
    11int main() {
    2     int i;
    3     int x, y;
     2        int i;
     3        int x, y;
    44
    5     x = 0; y = 0;
     5        x = 0; y = 0;
    66
    7 // block, labelled exits
     7        // block, labelled exits
    88
    99  Block: {
    10         if ( x == y ) {
    11             for ( ; i < y; ) {
    12                 y += 1;
    13                 if ( y < 10 ) break Block;
    14             }
    15         }
    16     }
     10                if ( x == y ) {
     11                        for ( ; i < y; ) {
     12                                y += 1;
     13                                if ( y < 10 ) break Block;
     14                        }
     15                }
     16        }
    1717
    18 // loops, labelled exits
     18        // loops, labelled exits
    1919
    2020  w1: while ( y == 10 );
    2121
    2222  w2: while ( x < 10 ) {
    23       while (y < 5 ) {
    24           if ( y == 3 ) break w2;
    25       }
    26       x += 1;
    27   }
     23                while (y < 5 ) {
     24                        if ( y == 3 ) break w2;
     25                }
     26                x += 1;
     27        }
    2828
    2929  A: for ( i = 0; i < 10; i += 1 ) {
    30     B: for ( i = 0; i < 10; i += 1 ) {
    31       C: for ( i = 0; i < 10; i += 1 ) {
    32           goto A;
    33           goto B;
    34           goto C;
    35           continue A;
    36           continue B;
    37           continue C;
    38           continue;
    39           break A;
    40           break B;
    41           break C;
    42           break;
    43       }
    44     }
    45   }
     30          B: for ( i = 0; i < 10; i += 1 ) {
     31                  C: for ( i = 0; i < 10; i += 1 ) {
     32                                goto A;
     33                                goto B;
     34                                goto C;
     35                                continue A;
     36                                continue B;
     37                                continue C;
     38                                continue;
     39                                break A;
     40                                break B;
     41                                break C;
     42                                break;
     43                        }
     44                }
     45        }
    4646
    4747  D: for ( ;; ) {
    48       break D;
    49       continue D;
    50   }
     48                break D;
     49                continue D;
     50        }
    5151
    52     Z : i += 1;
    53     goto Z;
     52  Z : i += 1;
     53        goto Z;
    5454  X: Y: for ( ;; ) {
    55       i += 1;
    56       if ( i > 5 ) continue X;
    57       if ( i < 5 ) break X;
    58       if ( i < 5 ) break Y;
    59       break;
    60   }
     55                i += 1;
     56                if ( i > 5 ) continue X;
     57                if ( i < 5 ) break X;
     58                if ( i < 5 ) break Y;
     59                break;
     60        }
    6161  XX: for ( ;; ) {
    62     YY: for ( ;; ) {
    63       ZZ: for ( ;; ) {
    64           i += 1;
    65           if ( i > 5 ) continue XX;
    66           if ( i < 5 ) continue YY;
    67           if ( i < 5 ) continue ZZ;
    68           if ( i > 5 ) break XX;
    69           if ( i < 5 ) break YY;
    70           if ( i < 5 ) break ZZ;
    71           break;
    72       }
    73     }
    74   }
     62          YY: for ( ;; ) {
     63                  ZZ: for ( ;; ) {
     64                                i += 1;
     65                                if ( i > 5 ) continue XX;
     66                                if ( i < 5 ) continue YY;
     67                                if ( i < 5 ) continue ZZ;
     68                                if ( i > 5 ) break XX;
     69                                if ( i < 5 ) break YY;
     70                                if ( i < 5 ) break ZZ;
     71                                break;
     72                        }
     73                }
     74        }
    7575
    76     for ( ;; ) ;
    77     for ( int i = 0 ;; ) ;
    78     for (  ; i < 0; ) ;
    79     for (  ; ; i += 1 ) ;
     76        for ( ;; ) ;
     77        for ( int i = 0 ;; ) ;
     78        for (  ; i < 0; ) ;
     79        for (  ; ; i += 1 ) ;
    8080  L0:  L1:  L2:  L3:  L4:  L5:  L6:  L7:  L8:  L9:
    8181  L10: L11: L12: L13: L14: L15: L16: L17: L18: L19:
    8282  L20: L21: L22: L23: L24: L25: L26: L27: L28: L29:
    8383  L31: L32: L33: L34:
    84     for ( ;; ) {
    85         break L0;
    86     }
     84        for ( ;; ) {
     85                break L0;
     86        }
    8787
    88 // switch/choose, labelled exits
     88        // switch/choose, labelled exits
    8989
    9090  Switch: switch ( i ) {
    91     default:
    92       i += 1;
    93     case 0:
    94       i += 1;
    95       break Switch;
    96     case 1:
    97       switch ( i ) {
    98         case 0:
    99           break Switch;
    100         default:
    101           break;
    102       }
    103   }
     91          default:
     92                i += 1;
     93          case 0:
     94                i += 1;
     95                break Switch;
     96          case 1:
     97                switch ( i ) {
     98                  case 0:
     99                        break Switch;
     100                  default:
     101                        ; break;
     102                }
     103        }
    104104
    105105  Choose: choose ( i ) {
    106     default:
    107       i += 1;
    108     case 0:
    109       i += 1;
    110       break Choose;
    111     case 1:
    112       choose ( i ) {
    113         case 0:
    114           break;
    115         default:
    116           break Choose;
    117       }
    118       fallthru;
    119     case 2:
    120       i += 1;
    121   }
    122 #if 0
    123 // computed goto
     106          default:
     107                i += 1;
     108          case 0:
     109                i += 1;
     110                break Choose;
     111          case 1:
     112                choose ( i ) {
     113                  case 0:
     114                        break;
     115                  default:
     116                        break Choose;
     117                }
     118                fallthru;
     119          case 2:
     120                i += 1;
     121        }
    124122
    125     {
    126         static void *array[] = { &&foo, &&bar, &&hack };
     123        // computed goto
     124        {
     125                void *array[] = { &&foo, &&bar, &&hack };
     126          foo: bar: hack:
     127                &&foo;
     128                &&bar;
     129                goto *array[i];
     130        }
    127131
    128       foo: bar: hack:
    129         goto *array[i];
    130     }
    131 #endif
    132132#if 0
    133133  Q: if ( i > 5 ) {
    134       i += 1;
    135       break Q;
    136   } else
    137       i += 1;
     134                i += 1;
     135                break Q;
     136        } else
     137                i += 1;
    138138#endif
    139139}
     140
     141// Local Variables: //
     142// tab-width: 4 //
     143// compile-command: "cfa LabelledExit.c" //
     144// End: //
  • src/main.cc

    r0df292b r2871210  
    1010// Created On       : Fri May 15 23:12:02 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun 22 17:02:11 2015
    13 // Update Count     : 73
     12// Last Modified On : Mon Jun 29 17:09:21 2015
     13// Update Count     : 77
    1414//
    1515
     
    277277                GenPoly::box( translationUnit );
    278278
    279     // print the tree right before code generation
     279                // print tree right before code generation
    280280                if ( codegenp ) {
    281281                        printAll( translationUnit, std::cout );
Note: See TracChangeset for help on using the changeset viewer.