Changes in / [c84e80a:68e6031]


Ignore:
Location:
src
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/CodeGen/CodeGenerator.cc

    rc84e80a r68e6031  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:51:27 2016
    13 // Update Count     : 362
     12// Last Modified On : Wed Jan 18 15:23:08 2017
     13// Update Count     : 414
    1414//
    1515
     
    111111        }
    112112
    113         void CodeGenerator::genAttributes( std::list< Attribute * > & attributes ) {
    114                 if ( ! attributes.empty() ) {
    115                         output << "__attribute__ ((";
    116                         for ( Attribute *& attr : attributes ) {
    117                                 if ( ! attr->empty() ) {
    118                                         output << attr->get_name() << "(";
    119                                         genCommaList( attr->get_parameters().begin(), attr->get_parameters().end() );
    120                                         output << ")";
    121                                 } // if
    122                                 output << ",";
    123                         } // for
    124                         output << ")) ";
    125                 } // if
    126         }
     113        void CodeGenerator::genAttributes( list< Attribute * > & attributes ) {
     114          if ( attributes.empty() ) return;
     115                output << "__attribute__ ((";
     116                for ( list< Attribute * >::iterator attr( attributes.begin() );; ) {
     117                        output << (*attr)->get_name();
     118                        if ( ! (*attr)->get_parameters().empty() ) {
     119                                output << "(";
     120                                genCommaList( (*attr)->get_parameters().begin(), (*attr)->get_parameters().end() );
     121                                output << ")";
     122                        } // if
     123                  if ( ++attr == attributes.end() ) break;
     124                        output << ",";                                                          // separator
     125                } // for
     126                output << ")) ";
     127        } // CodeGenerator::genAttributes
    127128
    128129
  • TabularUnified src/CodeGen/CodeGenerator.h

    rc84e80a r68e6031  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:51:53 2016
    13 // Update Count     : 39
     12// Last Modified On : Tue Jan 17 16:55:40 2017
     13// Update Count     : 48
    1414//
    1515
     
    114114                void extension( Declaration *decl );
    115115          private:
    116 
    117116                Indenter indent;
    118117                int cur_indent;
     
    131130        template< class Iterator >
    132131        void CodeGenerator::genCommaList( Iterator begin, Iterator end ) {
    133                 if ( begin == end ) return;
    134 
     132          if ( begin == end ) return;
    135133                for ( ;; ) {
    136134                        (*begin++)->accept( *this );
    137                         if ( begin == end ) return;
    138                         output << ", ";
     135                  if ( begin == end ) break;
     136                        output << ", ";                                                         // separator
    139137                } // for
    140         }
     138        } // genCommaList
    141139
    142140        inline bool doSemicolon( Declaration* decl ) {
     
    145143                } // if
    146144                return true;
    147         }
     145        } // doSemicolon
    148146
    149147        /// returns C-compatible name of declaration
  • TabularUnified src/Parser/DeclarationNode.cc

    rc84e80a r68e6031  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 14:43:38 2016
    13 // Update Count     : 660
     12// Last Modified On : Sat Jan 14 14:36:23 2017
     13// Update Count     : 669
    1414//
    1515
     
    2222#include "TypeData.h"
    2323
     24#include "SynTree/Attribute.h"
    2425#include "SynTree/Declaration.h"
    2526#include "SynTree/Expression.h"
     
    397398}
    398399
     400DeclarationNode * DeclarationNode::newAttribute( string * name, ExpressionNode * expr ) {
     401        DeclarationNode * newnode = new DeclarationNode;
     402        newnode->type = nullptr;
     403        std::list< Expression * > exprs;
     404        buildList( expr, exprs );
     405        newnode->attributes.push_back( new Attribute( *name, exprs ) );
     406        delete name;
     407        return newnode;
     408}
     409
    399410void appendError( string & dst, const string & src ) {
    400411        if ( src.empty() ) return;
     
    435446                storageClass = q->storageClass;
    436447        } // if
     448        attributes.splice( attributes.end(), q->attributes );
    437449        return this;
    438450} // DeclarationNode::copyStorageClasses
     
    958970
    959971        if ( type ) {
    960                 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, asmName, maybeBuild< Initializer >(initializer) )->set_extension( extension );
     972                return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, asmName, maybeBuild< Initializer >(initializer), attributes )->set_extension( extension );
    961973        } // if
    962974
  • TabularUnified src/Parser/ParseNode.h

    rc84e80a r68e6031  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 15:37:33 2016
    13 // Update Count     : 643
     12// Last Modified On : Wed Jan 18 16:20:43 2017
     13// Update Count     : 650
    1414//
    1515
     
    3535class ExpressionNode;
    3636class InitializerNode;
     37class Attribute;
    3738
    3839//##############################################################################
     
    242243        static DeclarationNode * newTuple( DeclarationNode * members );
    243244        static DeclarationNode * newTypeof( ExpressionNode * expr );
    244         static DeclarationNode * newAttr( std::string *, ExpressionNode * expr );
    245         static DeclarationNode * newAttr( std::string *, DeclarationNode * type );
     245        static DeclarationNode * newAttr( std::string *, ExpressionNode * expr ); // @ attributes
     246        static DeclarationNode * newAttr( std::string *, DeclarationNode * type ); // @ attributes
     247        static DeclarationNode * newAttribute( std::string *, ExpressionNode * expr = nullptr ); // gcc attributes
    246248
    247249        DeclarationNode();
     
    316318        LinkageSpec::Spec linkage;
    317319        ConstantExpr *asmName;
    318         std::list< std::string > attributes;
     320        std::list< Attribute * > attributes;
    319321        InitializerNode * initializer;
    320322        bool extension = false;
     
    344346        Statement * build() const { return const_cast<StatementNode*>(this)->stmt.release(); }
    345347
    346         virtual StatementNode * add_label( const std::string * name ) {
    347                 stmt->get_labels().emplace_back( * name );
     348        virtual StatementNode * add_label( const std::string * name, DeclarationNode * attr = nullptr ) {
     349                stmt->get_labels().emplace_back( * name, nullptr, attr ? std::move( attr->attributes ) : std::list< Attribute * > {} );
     350                delete attr;
    348351                delete name;
    349352                return this;
  • TabularUnified src/Parser/TypeData.cc

    rc84e80a r68e6031  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:40:33 2016
    13 // Update Count     : 420
     12// Last Modified On : Fri Jan 13 15:47:37 2017
     13// Update Count     : 423
    1414//
    1515
     
    721721} // buildTypeof
    722722
    723 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, ConstantExpr *asmName, Initializer * init ) {
     723Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, ConstantExpr *asmName, Initializer * init, std::list< Attribute * > attributes ) {
    724724        if ( td->kind == TypeData::Function ) {
    725725                FunctionDecl * decl;
     
    729729                                CompoundStmt * body = dynamic_cast< CompoundStmt* >( stmt );
    730730                                assert( body );
    731                                 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), body, isInline, isNoreturn );
     731                                decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), body, isInline, isNoreturn, attributes );
    732732                        } else {
    733733                                // list< Label > ls;
    734                                 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( list< Label >() ), isInline, isNoreturn );
     734                                decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( list< Label >() ), isInline, isNoreturn, attributes );
    735735                        } // if
    736736                } else {
    737                         decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), nullptr, isInline, isNoreturn );
     737                        decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), nullptr, isInline, isNoreturn, attributes );
    738738                } // if
    739739                for ( DeclarationNode * cur = td->function.idList; cur != nullptr; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) {
  • TabularUnified src/Parser/TypeData.h

    rc84e80a r68e6031  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 13 13:39:39 2016
    13 // Update Count     : 143
     12// Last Modified On : Fri Jan 13 16:11:23 2017
     13// Update Count     : 144
    1414//
    1515
     
    111111TupleType * buildTuple( const TypeData * );
    112112TypeofType * buildTypeof( const TypeData * );
    113 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, ConstantExpr *asmName, Initializer * init = nullptr );
     113Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, ConstantExpr *asmName, Initializer * init = nullptr, std::list< class Attribute * > attributes = std::list< class Attribute * >() );
    114114FunctionType * buildFunction( const TypeData * );
    115115
  • TabularUnified src/Parser/parser.cc

    rc84e80a r68e6031  
    6767
    6868/* Line 268 of yacc.c  */
    69 #line 42 "parser.yy"
     69#line 41 "parser.yy"
    7070
    7171#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    358358
    359359/* Line 293 of yacc.c  */
    360 #line 120 "parser.yy"
     360#line 119 "parser.yy"
    361361
    362362        Token tok;
     
    609609#define YYFINAL  251
    610610/* YYLAST -- Last index in YYTABLE.  */
    611 #define YYLAST   10466
     611#define YYLAST   10498
    612612
    613613/* YYNTOKENS -- Number of terminals.  */
     
    618618#define YYNRULES  758
    619619/* YYNRULES -- Number of states.  */
    620 #define YYNSTATES  1541
     620#define YYNSTATES  1546
    621621
    622622/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    799799      -1,   177,    -1,   180,    -1,   181,    -1,   185,    -1,   186,
    800800      -1,   198,    -1,   200,    -1,   201,    -1,   206,    -1,   132,
    801      149,   119,   150,   120,   137,    -1,    75,   135,   319,   179,
     801     149,   119,   150,   120,   137,    -1,   279,   135,   319,   179,
    802802      -1,   119,   120,    -1,   119,   139,   139,   217,   182,   140,
    803803     120,    -1,   183,    -1,   182,   139,   183,    -1,   220,    -1,
     
    818818     137,    -1,    51,   114,   139,   199,   115,   179,    -1,   178,
    819819     140,   137,   178,   137,   178,    -1,   220,   178,   137,   178,
    820       -1,    54,    75,   137,    -1,    54,   122,   177,   137,    -1,
    821       53,   137,    -1,    53,    75,   137,    -1,    52,   137,    -1,
    822       52,    75,   137,    -1,    55,   178,   137,    -1,    64,   173,
     820      -1,    54,   279,   137,    -1,    54,   122,   177,   137,    -1,
     821      53,   137,    -1,    53,   279,   137,    -1,    52,   137,    -1,
     822      52,   279,   137,    -1,    55,   178,   137,    -1,    64,   173,
    823823     137,    -1,    65,   173,   137,    -1,    65,   173,    66,   172,
    824824     137,    -1,    60,   181,   202,    -1,    60,   181,   204,    -1,
     
    949949     320,   321,    -1,    42,   114,   114,   322,   115,   115,    -1,
    950950     323,    -1,   322,   121,   323,    -1,    -1,   324,    -1,   324,
    951      114,   178,   115,    -1,   279,    -1,   241,    -1,   242,    -1,
    952      236,    -1,   326,   319,    -1,   327,    -1,   328,   319,    -1,
     951     114,   150,   115,    -1,    75,    -1,    77,    -1,    78,    -1,
     952      10,    -1,   326,   319,    -1,   327,    -1,   328,   319,    -1,
    953953     329,   319,    -1,   142,    -1,   114,   326,   115,    -1,   157,
    954954     325,    -1,   157,   235,   325,    -1,   114,   327,   115,    -1,
     
    10321032static const yytype_uint16 yyrline[] =
    10331033{
    1034        0,   306,   306,   310,   317,   318,   319,   320,   321,   325,
    1035      326,   327,   331,   332,   336,   337,   341,   342,   346,   350,
    1036      351,   362,   364,   366,   367,   369,   374,   375,   381,   383,
    1037      385,   387,   389,   391,   393,   395,   397,   399,   408,   409,
    1038      415,   416,   420,   421,   425,   426,   428,   430,   432,   434,
    1039      436,   441,   443,   445,   457,   458,   466,   469,   471,   473,
    1040      478,   491,   493,   495,   497,   499,   501,   503,   505,   507,
    1041      509,   511,   518,   519,   525,   526,   527,   528,   532,   533,
    1042      540,   541,   543,   545,   550,   551,   553,   558,   559,   561,
    1043      566,   567,   569,   571,   573,   578,   579,   581,   586,   587,
    1044      592,   593,   598,   599,   604,   605,   610,   611,   616,   617,
    1045      620,   627,   632,   633,   641,   642,   646,   647,   648,   649,
    1046      650,   651,   652,   653,   654,   655,   656,   657,   667,   669,
    1047      674,   675,   680,   681,   687,   688,   694,   695,   696,   697,
    1048      698,   699,   700,   701,   702,   712,   719,   721,   731,   732,
    1049      737,   739,   745,   747,   751,   752,   757,   762,   765,   767,
    1050      769,   779,   781,   792,   793,   795,   799,   801,   805,   806,
    1051      811,   812,   816,   821,   822,   826,   828,   834,   835,   839,
    1052      841,   843,   845,   851,   852,   856,   858,   863,   865,   867,
    1053      872,   874,   879,   881,   885,   888,   892,   895,   899,   901,
    1054      903,   905,   910,   912,   914,   919,   921,   923,   925,   927,
    1055      932,   934,   936,   938,   943,   955,   956,   961,   963,   968,
    1056      972,   974,   976,   978,   980,   986,   987,   993,   994,   998,
    1057      999,  1004,  1006,  1012,  1013,  1015,  1021,  1026,  1036,  1038,
    1058     1042,  1043,  1048,  1050,  1054,  1055,  1059,  1061,  1065,  1066,
    1059     1070,  1071,  1075,  1076,  1091,  1092,  1093,  1094,  1095,  1099,
    1060     1104,  1111,  1121,  1126,  1131,  1139,  1144,  1149,  1154,  1159,
    1061     1189,  1194,  1201,  1203,  1210,  1215,  1220,  1231,  1236,  1241,
    1062     1246,  1251,  1260,  1265,  1273,  1274,  1275,  1276,  1282,  1287,
    1063     1295,  1296,  1297,  1298,  1302,  1303,  1304,  1305,  1310,  1311,
    1064     1320,  1321,  1326,  1327,  1332,  1334,  1336,  1338,  1340,  1343,
    1065     1342,  1354,  1355,  1357,  1367,  1368,  1373,  1375,  1377,  1379,
    1066     1381,  1384,  1386,  1389,  1394,  1396,  1398,  1400,  1402,  1404,
    1067     1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1422,  1428,
    1068     1429,  1431,  1433,  1435,  1440,  1441,  1447,  1448,  1450,  1452,
    1069     1457,  1459,  1461,  1463,  1468,  1469,  1471,  1473,  1478,  1479,
    1070     1481,  1486,  1487,  1489,  1491,  1496,  1498,  1500,  1505,  1506,
    1071     1510,  1512,  1518,  1517,  1521,  1523,  1528,  1530,  1536,  1537,
    1072     1542,  1543,  1545,  1546,  1555,  1556,  1558,  1560,  1565,  1567,
    1073     1573,  1574,  1576,  1579,  1582,  1587,  1588,  1593,  1598,  1602,
    1074     1604,  1610,  1609,  1616,  1618,  1624,  1625,  1633,  1634,  1638,
    1075     1639,  1640,  1642,  1644,  1651,  1652,  1654,  1656,  1661,  1662,
    1076     1668,  1669,  1673,  1674,  1679,  1680,  1681,  1683,  1691,  1692,
    1077     1694,  1697,  1699,  1703,  1704,  1705,  1707,  1709,  1713,  1718,
    1078     1726,  1727,  1736,  1738,  1743,  1744,  1745,  1749,  1750,  1751,
    1079     1755,  1756,  1757,  1761,  1762,  1763,  1768,  1769,  1770,  1771,
    1080     1777,  1778,  1780,  1785,  1786,  1791,  1792,  1793,  1794,  1795,
    1081     1810,  1811,  1816,  1817,  1823,  1825,  1828,  1830,  1832,  1855,
    1082     1856,  1858,  1860,  1865,  1866,  1868,  1873,  1878,  1879,  1885,
    1083     1884,  1888,  1892,  1894,  1896,  1898,  1904,  1905,  1910,  1915,
    1084     1917,  1922,  1924,  1925,  1927,  1932,  1934,  1936,  1941,  1943,
    1085     1948,  1953,  1961,  1967,  1966,  1980,  1981,  1986,  1987,  1991,
    1086     1996,  2001,  2009,  2014,  2025,  2026,  2031,  2032,  2038,  2039,
    1087     2043,  2044,  2045,  2048,  2047,  2058,  2067,  2073,  2079,  2088,
    1088     2094,  2100,  2106,  2112,  2120,  2126,  2134,  2140,  2149,  2150,
    1089     2151,  2155,  2161,  2162,  2168,  2169,  2173,  2174,  2179,  2185,
    1090     2186,  2189,  2191,  2192,  2196,  2197,  2198,  2199,  2233,  2235,
    1091     2236,  2238,  2243,  2248,  2253,  2255,  2257,  2262,  2264,  2266,
    1092     2268,  2273,  2275,  2284,  2286,  2287,  2292,  2294,  2296,  2301,
    1093     2303,  2305,  2310,  2312,  2314,  2323,  2324,  2325,  2329,  2331,
    1094     2333,  2338,  2340,  2342,  2347,  2349,  2351,  2366,  2368,  2369,
    1095     2371,  2376,  2377,  2382,  2384,  2386,  2391,  2393,  2395,  2397,
    1096     2402,  2404,  2406,  2416,  2418,  2419,  2421,  2426,  2428,  2430,
    1097     2435,  2437,  2439,  2441,  2446,  2448,  2450,  2481,  2483,  2484,
    1098     2486,  2491,  2496,  2504,  2506,  2508,  2513,  2515,  2520,  2522,
    1099     2536,  2537,  2539,  2544,  2546,  2548,  2550,  2552,  2557,  2558,
    1100     2560,  2562,  2567,  2569,  2571,  2577,  2579,  2581,  2585,  2587,
    1101     2589,  2591,  2605,  2606,  2608,  2613,  2615,  2617,  2619,  2621,
    1102     2626,  2627,  2629,  2631,  2636,  2638,  2640,  2646,  2647,  2649,
    1103     2658,  2661,  2663,  2666,  2668,  2670,  2683,  2684,  2686,  2691,
    1104     2693,  2695,  2697,  2699,  2704,  2705,  2707,  2709,  2714,  2716,
    1105     2724,  2725,  2726,  2731,  2732,  2736,  2738,  2740,  2742,  2744,
    1106     2746,  2753,  2755,  2757,  2759,  2761,  2764,  2766,  2768,  2770,
    1107     2772,  2777,  2779,  2781,  2786,  2812,  2813,  2815,  2819,  2820,
    1108     2824,  2826,  2828,  2830,  2832,  2834,  2841,  2843,  2845,  2847,
    1109     2849,  2851,  2856,  2863,  2865,  2883,  2885,  2890,  2891
     1034       0,   305,   305,   309,   316,   317,   318,   319,   320,   324,
     1035     325,   326,   330,   331,   335,   336,   340,   341,   345,   349,
     1036     350,   361,   363,   365,   366,   368,   373,   374,   380,   382,
     1037     384,   386,   388,   390,   392,   394,   396,   398,   407,   408,
     1038     414,   415,   419,   420,   424,   425,   427,   429,   431,   433,
     1039     435,   440,   442,   444,   456,   457,   465,   468,   470,   472,
     1040     477,   490,   492,   494,   496,   498,   500,   502,   504,   506,
     1041     508,   510,   517,   518,   524,   525,   526,   527,   531,   532,
     1042     539,   540,   542,   544,   549,   550,   552,   557,   558,   560,
     1043     565,   566,   568,   570,   572,   577,   578,   580,   585,   586,
     1044     591,   592,   597,   598,   603,   604,   609,   610,   615,   616,
     1045     619,   626,   631,   632,   640,   641,   645,   646,   647,   648,
     1046     649,   650,   651,   652,   653,   654,   655,   656,   666,   668,
     1047     673,   674,   679,   680,   686,   687,   693,   694,   695,   696,
     1048     697,   698,   699,   700,   701,   711,   718,   720,   730,   731,
     1049     736,   738,   744,   746,   750,   751,   756,   761,   764,   766,
     1050     768,   778,   780,   791,   792,   794,   798,   800,   804,   805,
     1051     810,   811,   815,   820,   821,   825,   827,   833,   834,   838,
     1052     840,   842,   844,   850,   851,   855,   857,   862,   864,   866,
     1053     871,   873,   878,   880,   884,   887,   891,   894,   898,   900,
     1054     902,   904,   909,   911,   913,   918,   920,   922,   924,   926,
     1055     931,   933,   935,   937,   942,   954,   955,   960,   962,   967,
     1056     971,   973,   975,   977,   979,   985,   986,   992,   993,   997,
     1057     998,  1003,  1005,  1011,  1012,  1014,  1020,  1025,  1035,  1037,
     1058    1041,  1042,  1047,  1049,  1053,  1054,  1058,  1060,  1064,  1065,
     1059    1069,  1070,  1074,  1075,  1090,  1091,  1092,  1093,  1094,  1098,
     1060    1103,  1110,  1120,  1125,  1130,  1138,  1143,  1148,  1153,  1158,
     1061    1188,  1193,  1200,  1202,  1209,  1214,  1219,  1230,  1235,  1240,
     1062    1245,  1250,  1259,  1264,  1272,  1273,  1274,  1275,  1281,  1286,
     1063    1294,  1295,  1296,  1297,  1301,  1302,  1303,  1304,  1309,  1310,
     1064    1319,  1320,  1325,  1326,  1330,  1332,  1334,  1336,  1338,  1341,
     1065    1340,  1352,  1353,  1355,  1365,  1366,  1371,  1373,  1375,  1377,
     1066    1379,  1382,  1384,  1387,  1392,  1394,  1396,  1398,  1400,  1402,
     1067    1404,  1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1426,
     1068    1427,  1429,  1431,  1433,  1438,  1439,  1445,  1446,  1448,  1450,
     1069    1455,  1457,  1459,  1461,  1466,  1467,  1469,  1471,  1476,  1477,
     1070    1479,  1484,  1485,  1487,  1489,  1494,  1496,  1498,  1503,  1504,
     1071    1508,  1510,  1516,  1515,  1519,  1521,  1526,  1528,  1534,  1535,
     1072    1540,  1541,  1543,  1544,  1553,  1554,  1556,  1558,  1563,  1565,
     1073    1571,  1572,  1574,  1577,  1580,  1585,  1586,  1591,  1596,  1600,
     1074    1602,  1608,  1607,  1614,  1616,  1622,  1623,  1631,  1632,  1636,
     1075    1637,  1638,  1640,  1642,  1649,  1650,  1652,  1654,  1659,  1660,
     1076    1666,  1667,  1671,  1672,  1677,  1678,  1679,  1681,  1689,  1690,
     1077    1692,  1695,  1697,  1701,  1702,  1703,  1705,  1707,  1711,  1716,
     1078    1724,  1725,  1734,  1736,  1741,  1742,  1743,  1747,  1748,  1749,
     1079    1753,  1754,  1755,  1759,  1760,  1761,  1766,  1767,  1768,  1769,
     1080    1775,  1776,  1778,  1783,  1784,  1789,  1790,  1791,  1792,  1793,
     1081    1808,  1809,  1814,  1815,  1821,  1823,  1826,  1828,  1830,  1853,
     1082    1854,  1856,  1858,  1863,  1864,  1866,  1871,  1876,  1877,  1883,
     1083    1882,  1886,  1890,  1892,  1894,  1896,  1902,  1903,  1908,  1913,
     1084    1915,  1920,  1922,  1923,  1925,  1930,  1932,  1934,  1939,  1941,
     1085    1946,  1951,  1959,  1965,  1964,  1978,  1979,  1984,  1985,  1989,
     1086    1994,  1999,  2007,  2012,  2023,  2024,  2029,  2030,  2036,  2037,
     1087    2041,  2042,  2043,  2046,  2045,  2056,  2065,  2071,  2077,  2086,
     1088    2092,  2098,  2104,  2110,  2118,  2124,  2132,  2138,  2147,  2148,
     1089    2149,  2153,  2159,  2160,  2166,  2167,  2171,  2172,  2177,  2182,
     1090    2183,  2189,  2190,  2192,  2197,  2198,  2199,  2200,  2235,  2237,
     1091    2238,  2240,  2245,  2250,  2255,  2257,  2259,  2264,  2266,  2268,
     1092    2270,  2275,  2277,  2286,  2288,  2289,  2294,  2296,  2298,  2303,
     1093    2305,  2307,  2312,  2314,  2316,  2325,  2326,  2327,  2331,  2333,
     1094    2335,  2340,  2342,  2344,  2349,  2351,  2353,  2368,  2370,  2371,
     1095    2373,  2378,  2379,  2384,  2386,  2388,  2393,  2395,  2397,  2399,
     1096    2404,  2406,  2408,  2418,  2420,  2421,  2423,  2428,  2430,  2432,
     1097    2437,  2439,  2441,  2443,  2448,  2450,  2452,  2483,  2485,  2486,
     1098    2488,  2493,  2498,  2506,  2508,  2510,  2515,  2517,  2522,  2524,
     1099    2538,  2539,  2541,  2546,  2548,  2550,  2552,  2554,  2559,  2560,
     1100    2562,  2564,  2569,  2571,  2573,  2579,  2581,  2583,  2587,  2589,
     1101    2591,  2593,  2607,  2608,  2610,  2615,  2617,  2619,  2621,  2623,
     1102    2628,  2629,  2631,  2633,  2638,  2640,  2642,  2648,  2649,  2651,
     1103    2660,  2663,  2665,  2668,  2670,  2672,  2685,  2686,  2688,  2693,
     1104    2695,  2697,  2699,  2701,  2706,  2707,  2709,  2711,  2716,  2718,
     1105    2726,  2727,  2728,  2733,  2734,  2738,  2740,  2742,  2744,  2746,
     1106    2748,  2755,  2757,  2759,  2761,  2763,  2766,  2768,  2770,  2772,
     1107    2774,  2779,  2781,  2783,  2788,  2814,  2815,  2817,  2821,  2822,
     1108    2826,  2828,  2830,  2832,  2834,  2836,  2843,  2845,  2847,  2849,
     1109    2851,  2853,  2858,  2865,  2867,  2885,  2887,  2892,  2893
    11101110};
    11111111#endif
     
    11981198  "function_definition", "declarator", "subrange", "asm_name_opt",
    11991199  "attribute_list_opt", "attribute_list", "attribute",
    1200   "attribute_parameter_list", "attrib", "any_word", "variable_declarator",
    1201   "paren_identifier", "variable_ptr", "variable_array",
    1202   "variable_function", "function_declarator", "function_no_ptr",
    1203   "function_ptr", "function_array", "old_function_declarator",
    1204   "old_function_no_ptr", "old_function_ptr", "old_function_array",
    1205   "variable_type_redeclarator", "paren_type", "type_ptr", "type_array",
    1206   "type_function", "identifier_parameter_declarator",
    1207   "identifier_parameter_ptr", "identifier_parameter_array",
    1208   "identifier_parameter_function", "type_parameter_redeclarator",
    1209   "typedef", "type_parameter_ptr", "type_parameter_array",
    1210   "type_parameter_function", "abstract_declarator", "abstract_ptr",
    1211   "abstract_array", "abstract_function", "array_dimension",
     1200  "attribute_name_list", "attribute_name", "attr_name",
     1201  "variable_declarator", "paren_identifier", "variable_ptr",
     1202  "variable_array", "variable_function", "function_declarator",
     1203  "function_no_ptr", "function_ptr", "function_array",
     1204  "old_function_declarator", "old_function_no_ptr", "old_function_ptr",
     1205  "old_function_array", "variable_type_redeclarator", "paren_type",
     1206  "type_ptr", "type_array", "type_function",
     1207  "identifier_parameter_declarator", "identifier_parameter_ptr",
     1208  "identifier_parameter_array", "identifier_parameter_function",
     1209  "type_parameter_redeclarator", "typedef", "type_parameter_ptr",
     1210  "type_parameter_array", "type_parameter_function", "abstract_declarator",
     1211  "abstract_ptr", "abstract_array", "abstract_function", "array_dimension",
    12121212  "multi_array_dimension", "abstract_parameter_declarator",
    12131213  "abstract_parameter_ptr", "abstract_parameter_array",
     
    14641464       0,   299,     0,   262,     2,   263,   282,     0,     0,     2,
    14651465     298,   552,   298,   492,   494,   493,   495,     0,     0,   757,
    1466        0,   298,     0,   298,   497,   298,   567,   565,   566,   564,
     1466       0,   298,     0,   298,   497,   298,   567,   564,   565,   566,
    14671467       0,   559,   562,     0,     0,   298,    64,   298,    78,    59,
    14681468     298,    66,   298,   298,    62,    63,     2,   132,     0,     0,
     
    14871487     538,   298,    72,     3,   298,   440,   299,     3,   434,   435,
    14881488       2,     0,     0,     0,   491,   310,   298,     0,   487,   489,
    1489        3,     2,     2,     0,   509,     3,     0,   561,   134,     0,
     1489       3,     2,     2,     0,   509,     3,     0,   561,    40,     0,
    14901490       0,   227,     0,     0,     0,     0,    41,     0,     0,   298,
    14911491      24,     0,    25,     0,   699,   704,   455,   696,   554,   554,
     
    15081508     111,   406,   755,     0,     0,   443,   245,     0,     0,     3,
    15091509       2,   675,   436,     0,   534,     0,   757,   758,   496,     0,
    1510      298,   298,   298,     0,   558,   560,   135,     0,     0,   220,
    1511        0,     0,     0,   228,   229,    65,     0,    67,    70,    71,
    1512        0,   133,     0,     0,     0,   700,   701,   697,   698,   465,
    1513       79,   115,   130,     3,   114,     0,    28,    40,     3,     0,
    1514       37,   110,     0,     3,   657,   661,   664,   656,     3,   599,
    1515      723,   728,     2,    72,   298,     3,     3,   299,     0,     3,
    1516      629,   633,   636,   645,   679,   683,   686,   298,     3,   628,
    1517      644,   678,   298,   298,   431,   298,   298,     0,     0,     0,
    1518        0,   261,   111,     0,     3,     3,     0,   468,     0,   464,
    1519        0,     0,   250,   298,     0,     0,   134,     0,     0,     0,
    1520        0,     0,   134,     0,     0,   114,   114,    21,     0,     0,
    1521        3,   136,   137,     2,   148,   138,   139,   140,   141,   142,
    1522      143,   150,   152,     0,     0,     0,   289,   298,   298,   554,
    1523        0,   547,   298,   381,   383,     0,   397,   700,   392,   396,
    1524      393,   386,   390,   373,   404,     0,   586,     2,   671,   670,
    1525        0,   676,     2,   488,   490,   511,     3,   519,   520,     0,
    1526        2,   515,     3,     3,     0,     0,   563,   227,     0,     0,
    1527        0,   227,     0,     0,   703,   707,   709,   702,   755,   114,
    1528        0,     3,    54,     0,    54,    54,     3,    42,    44,    39,
    1529        0,     3,   109,     0,     2,   659,   660,     0,   298,     0,
    1530        0,     0,     3,   645,     0,     2,   631,   632,     2,   647,
    1531        2,   681,   682,     0,     0,    72,     0,     3,     3,     3,
    1532        3,   416,   415,   419,   754,     2,     2,   753,     0,     0,
    1533        0,     0,     3,   469,     3,     0,   248,   151,     3,   299,
    1534      298,     0,     0,     0,     0,     2,     0,   196,     0,   194,
    1535        0,     0,     0,     0,     0,     0,     0,   554,     0,   156,
    1536      153,   298,     0,     0,   271,   283,     3,     3,   553,   620,
    1537      374,   389,   402,   298,   270,   298,     0,   522,   499,   298,
    1538        0,     0,   498,   513,     0,     0,     0,   221,     0,   230,
    1539       68,     2,   705,   706,     0,   131,   128,     0,    51,     2,
    1540       45,    52,    53,     0,     0,     0,     0,    27,     0,   662,
    1541      298,   587,   731,   732,   733,     0,   684,   298,   298,   298,
    1542        3,     3,     0,   692,     0,     0,     0,     0,   298,   298,
    1543        3,   551,   475,   476,     0,   251,   299,     0,     0,     0,
    1544        0,   298,   197,   195,   192,     0,   198,     0,     0,     0,
    1545        0,   202,   205,   203,   199,     0,   200,   134,    40,   149,
    1546      147,   249,     0,     0,   423,   427,   426,     0,   516,     2,
    1547      517,     2,   518,   512,   298,   233,     0,   231,     0,   233,
    1548      298,    36,   129,    55,     0,    43,    33,     2,    49,     2,
    1549       47,    30,     3,   734,     3,     3,     3,     0,     0,   691,
    1550      693,   634,   648,   273,     2,   413,     3,   412,     0,   478,
    1551      134,     0,     0,   134,     3,     0,   134,   193,     0,     2,
    1552        2,   214,   204,     0,     0,     0,   145,     0,   581,   621,
    1553        2,     0,     0,     2,   234,     0,     0,   222,     0,     3,
    1554        3,     0,     0,     0,     0,     0,     0,   694,   695,   298,
    1555        0,   477,   157,     0,     0,     2,   170,   134,   159,     0,
    1556      187,     0,   134,     0,     2,   161,     0,     2,     0,     2,
    1557        2,     2,   201,    37,   298,   521,   523,   514,     0,     0,
    1558        0,     0,     0,     0,     3,     3,   663,   635,   649,   685,
    1559      417,   134,   163,   166,     0,   165,   169,     3,   172,   171,
    1560        0,   134,   189,   134,     3,     0,   298,     0,   298,     0,
    1561        2,     0,     2,   144,     2,   235,   236,     0,   232,   223,
    1562      708,    46,     0,     0,   158,     0,     0,   168,   238,   173,
    1563        2,   240,   188,     0,   191,   177,   206,     3,   215,   219,
    1564      208,     3,     0,   298,     0,   298,     0,     0,     0,    50,
    1565       48,   164,   167,   134,     0,   174,   298,   134,   134,     0,
    1566      178,     0,     0,   699,   216,   217,   218,     0,   207,     3,
    1567      209,     3,   298,   224,   237,   154,   175,   160,   134,   241,
    1568      190,   185,   183,   179,   162,   134,     0,   700,     0,     0,
    1569        0,     0,   155,   176,   186,   180,   184,   183,   181,     3,
    1570        3,     0,     0,   500,   182,   210,   212,     3,     3,   211,
    1571      213
     1510     298,   298,   298,     0,   558,   560,     0,     0,   220,     0,
     1511       0,     0,   228,   229,    65,     0,    67,    70,    71,     0,
     1512     133,     0,     0,     0,   700,   701,   697,   698,   465,    79,
     1513     115,   130,     3,   114,     0,    28,    40,     3,     0,    37,
     1514     110,     0,     3,   657,   661,   664,   656,     3,   599,   723,
     1515     728,     2,    72,   298,     3,     3,   299,     0,     3,   629,
     1516     633,   636,   645,   679,   683,   686,   298,     3,   628,   644,
     1517     678,   298,   298,   431,   298,   298,     0,     0,     0,     0,
     1518     261,   111,     0,     3,     3,     0,   468,     0,   464,     0,
     1519       0,   250,   298,     0,     0,   134,     0,     0,     0,     0,
     1520       0,   134,     0,     0,   114,   114,    21,   365,   446,    69,
     1521       0,    22,   135,     0,     3,   136,   137,     2,   148,   138,
     1522     139,   140,   141,   142,   143,   150,     0,   152,     0,     0,
     1523       0,   289,   298,   298,   554,     0,   547,   298,   381,   383,
     1524       0,   397,   700,   392,   396,   393,   386,   390,   373,   404,
     1525       0,   586,     2,   671,   670,     0,   676,     2,   488,   490,
     1526     511,     3,   519,   520,     0,     2,   515,     3,     3,     0,
     1527       0,   563,   227,     0,     0,     0,   227,     0,     0,   703,
     1528     707,   709,   702,   755,   114,     0,     3,    54,     0,    54,
     1529      54,     3,    42,    44,    39,     0,     3,   109,     0,     2,
     1530     659,   660,     0,   298,     0,     0,     0,     3,   645,     0,
     1531       2,   631,   632,     2,   647,     2,   681,   682,     0,     0,
     1532      72,     0,     3,     3,     3,     3,   416,   415,   419,   754,
     1533       2,     2,   753,     0,     0,     0,     0,     3,   469,     3,
     1534       0,   248,   151,     3,   299,   298,     0,     0,     0,     0,
     1535       2,   196,     0,   194,     0,     0,     0,     0,     0,     0,
     1536       0,     0,     0,   156,   153,   298,     0,   554,     0,   271,
     1537     283,     3,     3,   553,   620,   374,   389,   402,   298,   270,
     1538     298,     0,   522,   499,   298,     0,     0,   498,   513,     0,
     1539       0,     0,   221,     0,   230,    68,     2,   705,   706,     0,
     1540     131,   128,     0,    51,     2,    45,    52,    53,     0,     0,
     1541       0,     0,    27,     0,   662,   298,   587,   731,   732,   733,
     1542       0,   684,   298,   298,   298,     3,     3,     0,   692,     0,
     1543       0,     0,     0,   298,   298,     3,   551,   475,   476,     0,
     1544     251,   299,     0,     0,     0,     0,   298,   197,   195,     0,
     1545     192,   198,     0,     0,     0,     0,   202,   205,   203,   199,
     1546       0,   200,    40,   149,   147,   134,   249,     0,     0,   423,
     1547     427,   426,     0,   516,     2,   517,     2,   518,   512,   298,
     1548     233,     0,   231,     0,   233,   298,    36,   129,    55,     0,
     1549      43,    33,     2,    49,     2,    47,    30,     3,   734,     3,
     1550       3,     3,     0,     0,   691,   693,   634,   648,   273,     2,
     1551     413,     3,   412,     0,   478,   134,     0,     0,   134,     3,
     1552       0,   134,   193,     0,     2,     2,   214,   204,     0,     0,
     1553       0,     0,   145,   581,   621,     2,     0,     0,     2,   234,
     1554       0,     0,   222,     0,     3,     3,     0,     0,     0,     0,
     1555       0,     0,   694,   695,   298,     0,   477,   157,     0,     0,
     1556       2,   170,   134,   159,     0,   187,     0,   134,     0,     2,
     1557     161,     0,     2,     0,     2,     2,     2,   201,    37,   298,
     1558     521,   523,   514,     0,     0,     0,     0,     0,     0,     3,
     1559       3,   663,   635,   649,   685,   417,   134,   163,   166,     0,
     1560     165,   169,     3,   172,   171,     0,   134,   189,   134,     3,
     1561       0,   298,     0,   298,     0,     2,     0,     2,   144,     2,
     1562     235,   236,     0,   232,   223,   708,    46,     0,     0,   158,
     1563       0,     0,   168,   238,   173,     2,   240,   188,     0,   191,
     1564     177,   206,     3,   215,   219,   208,     3,     0,   298,     0,
     1565     298,     0,     0,     0,    50,    48,   164,   167,   134,     0,
     1566     174,   298,   134,   134,     0,   178,     0,     0,   699,   216,
     1567     217,   218,     0,   207,     3,   209,     3,   298,   224,   237,
     1568     154,   175,   160,   134,   241,   190,   185,   183,   179,   162,
     1569     134,     0,   700,     0,     0,     0,     0,   155,   176,   186,
     1570     180,   184,   183,   181,     3,     3,     0,     0,   500,   182,
     1571     210,   212,     3,     3,   211,   213
    15721572};
    15731573
     
    15761576{
    15771577      -1,   803,   466,   303,    49,   135,   136,   304,   305,   306,
    1578      307,   308,   755,   756,  1116,  1117,  1118,  1228,   309,   380,
     1578     307,   308,   755,   756,  1121,  1122,  1123,  1233,   309,   380,
    15791579     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
    1580      321,   322,   323,  1013,   517,   962,   546,   325,   963,   936,
    1581     1039,  1505,  1041,  1042,  1043,  1044,  1506,  1045,  1046,  1423,
    1582     1424,  1386,  1387,  1388,  1484,  1485,  1489,  1490,  1525,  1526,
    1583     1047,  1345,  1048,  1049,  1281,  1282,  1283,  1467,  1050,   147,
    1584      942,   943,   944,  1365,  1447,  1459,  1460,   467,   468,   863,
    1585      864,  1021,    53,    54,    55,    56,    57,   347,   159,    60,
     1580     321,   322,   323,  1012,   517,   961,   546,   325,   962,  1042,
     1581    1043,  1510,  1045,  1046,  1047,  1048,  1511,  1049,  1050,  1428,
     1582    1429,  1391,  1392,  1393,  1489,  1490,  1494,  1495,  1530,  1531,
     1583    1051,  1350,  1052,  1053,  1286,  1287,  1288,  1472,  1054,   147,
     1584     941,   942,   943,  1370,  1452,  1464,  1465,   467,   468,   863,
     1585     864,  1020,    53,    54,    55,    56,    57,   347,   159,    60,
    15861586      61,    62,    63,    64,   349,    66,    67,   265,    69,    70,
    15871587     275,   351,   352,    73,    74,    75,   120,    77,   205,   354,
    15881588     121,    80,   122,    82,    83,   453,    84,   452,   682,   683,
    1589      684,   896,  1068,   897,    85,    86,   456,   454,   690,   845,
     1589     684,   896,  1073,   897,    85,    86,   456,   454,   690,   845,
    15901590     846,   357,   358,   693,   694,   695,   359,   360,   361,   362,
    1591      464,   178,   137,   138,   521,   327,   171,   639,   640,   641,
     1591     464,  1056,   137,   138,   521,   327,   171,   639,   640,   641,
    15921592     642,   643,    87,   123,    89,   488,   489,   928,   490,   278,
    1593      494,   328,    90,   139,   140,    91,  1304,  1090,  1091,  1092,
    1594     1093,    92,    93,   711,    94,   274,    95,    96,   188,  1015,
     1593     494,   328,    90,   139,   140,    91,  1309,  1095,  1096,  1097,
     1594    1098,    92,    93,   711,    94,   274,    95,    96,   188,  1014,
    15951595     673,   411,   127,    97,   500,   501,   502,   189,   269,   191,
    15961596     192,   193,   270,   100,   101,   102,   103,   104,   105,   106,
    15971597     196,   197,   198,   199,   200,   815,   601,   602,   603,   604,
    15981598     201,   606,   607,   608,   570,   571,   572,   573,   745,   107,
    1599      610,   611,   612,   613,   614,   615,   956,   747,   748,   749,
     1599     610,   611,   612,   613,   614,   615,   955,   747,   748,   749,
    16001600     591,   365,   366,   367,   368,   329,   165,   109,   110,   111,
    16011601     370,   688,   718
     
    16041604/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    16051605   STATE-NUM.  */
    1606 #define YYPACT_NINF -1263
     1606#define YYPACT_NINF -1328
    16071607static const yytype_int16 yypact[] =
    16081608{
    1609     6864,  4432, -1263,    10, -1263, -1263, -1263, -1263, -1263, -1263,
    1610    -1263,   -12, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,
    1611    -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,    67,    67,
    1612       67,   564,   950,    20,  6985,   166, -1263, -1263, -1263, -1263,
    1613    -1263,    71, -1263, -1263, -1263,  1431,   111, -1263, -1263, -1263,
    1614    -1263,  3253, -1263, -1263, -1263, -1263,    83,   193, -1263,  1119,
    1615    -1263, -1263, -1263, -1263,   213,  1691,   349,    98,  7106, -1263,
    1616    -1263,  3253,   817, -1263, -1263,   596,   492,  5210,  1011,  1044,
    1617      596,  1122, -1263, -1263,   838,   957, -1263,   596,  1203, -1263,
    1618      236, -1263,   406,   508, -1263, -1263, -1263, -1263,   429,   193,
    1619       67, -1263,    67, -1263, -1263, -1263, -1263,  4697,  1119, -1263,
    1620    -1263,  1119, -1263,   434, -1263,  7806, -1263, -1263,  2149,  8896,
    1621    -1263,   644,   644,   644, -1263, -1263, -1263,    67, -1263, -1263,
    1622    -1263,   436,   458,   468, -1263, -1263, -1263,   480, -1263, -1263,
    1623    -1263, -1263, -1263,   498,   503, -1263, -1263,    77,  8347,  2436,
    1624      255,   519,   522,   535,   547,   585,   603,  8929,  6488,   597,
    1625    -1263,  4574, -1263, -1263, -1263, -1263,   608, -1263,   -37,  5487,
    1626     5487, -1263,   539,   241, -1263, -1263, -1263, -1263,   624,   287,
    1627      313,   327,    67,   621, -1263, -1263,  1691,  2813,   734, -1263,
    1628      120, -1263,    67,    67,   193, -1263, -1263,   204, -1263,    67,
    1629       67, -1263,  2931,   664,   675,   644,  6274, -1263, -1263, -1263,
    1630     3253, -1263, -1263,   596, -1263, -1263, -1263,   193, -1263,  1119,
    1631       83, -1263,  7457, -1263,   644,   644,   644,   193, -1263,   564,
    1632    -1263,  3379, -1263, -1263,   671,   644, -1263,   644, -1263,    71,
    1633     8347, -1263,   715, -1263,   950,   724,   644, -1263,   564,   704,
    1634      714, -1263,  6985,   544, -1263, -1263, -1263,  8708, -1263, -1263,
    1635     8263, -1263,   734,   123,  9697,  8896,  2149,  2931, -1263,   205,
    1636    -1263, -1263,  7806,  1119,   738,  5343, -1263, -1263,   211, -1263,
    1637    10116,   739,   650,  9756,   757,  9697,  9815, -1263,   763, -1263,
    1638    -1263, -1263, -1263, -1263, -1263,  9874,  9874,  8111,   111, -1263,
    1639    -1263, -1263, -1263, -1263, -1263, -1263,   795, -1263,  1259,  2219,
    1640     8347,  9697, -1263,   496,   315,   375,   430,   719,   760,   770,
    1641      771,   807,   114, -1263, -1263, -1263,   814, -1263,   402, -1263,
    1642    -1263,  2436, -1263, -1263,   104,   792, -1263,   372,   792, -1263,
    1643    -1263,  4697, -1263,   802,   812,  8465, -1263, -1263,   721,  1811,
    1644     7892,  6274,   596, -1263,   596,   644,   644, -1263, -1263, -1263,
    1645    -1263, -1263, -1263,   644,  4697,  1119, -1263, -1263,  8929,  1749,
    1646    -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,  4858,
    1647     9697, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,
    1648    -1263, -1263, -1263, -1263, -1263,  2149, -1263,   677,   823,   827,
    1649      829,   862,   831,   834,   836,  2813, -1263, -1263,   842,    83,
    1650      841, -1263, -1263,   837, -1263, -1263, -1263,  8708, -1263, -1263,
    1651    -1263, -1263, -1263,  2931, -1263,  8347,  8347, -1263,   644,  2149,
    1652     6398,  7967, -1263, -1263, -1263, -1263,  8708,   123, -1263, -1263,
    1653      596,   193, -1263, -1263,  8708, -1263,  5038, -1263, -1263,   644,
    1654      644,   474,  8741,   848,   849,   824,   850,   644, -1263, -1263,
    1655    -1263, -1263,  9167, -1263,   507, 10150, -1263,   193,   853, -1263,
    1656     2149, 10237,  9933, -1263, -1263, -1263, -1263,   898,  2931, -1263,
    1657     7967,   734,  5424, -1263, -1263, -1263, -1263,  1676,   514,   844,
    1658      950,  5343,  1027,  7806, -1263,  5343, -1263, -1263, -1263, -1263,
    1659      545, -1263,   859,   650,   244,  8111, -1263,  9014, -1263, -1263,
    1660     8111, -1263,  8229,  8111, -1263, -1263,   111, -1263,   548,   867,
    1661      926,   872, -1263, -1263,  6240, -1263, -1263,   387, -1263, -1263,
    1662     9697, -1263,   467,  9697, -1263, -1263, -1263, -1263, -1263, -1263,
    1663    -1263, -1263, -1263, -1263, -1263, -1263,  9697, -1263, -1263,  9697,
    1664     9697,  9697,  9697,  9697,  9697,  9697,  9697,  9697,  9697,  9697,
    1665     9697,  9697,  9697,  9697,  9697,  9697,  9697,  4047,   814,  1636,
    1666    -1263, -1263,    67,    67, -1263, -1263,  8347, -1263, -1263,   837,
    1667      544, -1263,   837,  9992, -1263, -1263,  8929,  6240,   873, -1263,
    1668     8896, -1263, -1263,   608, -1263,   880,   787,   882,  2301,   259,
    1669      844, -1263,    67,    67,   844,   286, -1263,    67,    67,   837,
    1670    -1263, -1263,    67,    67, -1263,   792,  9047,  1119, 10388,   450,
    1671      493,  9047, -1263,  8263, -1263,   844, -1263,  4697, -1263,   -35,
    1672     7577,  7577,  1119,  5632,   869, -1263,   326,   874,   889, -1263,
    1673      881,  5487,   342, -1263,   977,  1119,  7577,   544,  2149,   544,
    1674      734,   382,   792, -1263, -1263,   405,   792, -1263, -1263, -1263,
    1675      650, -1263,   792,   193,  9167, -1263,   570,   918,   602,   921,
    1676    -1263,   802,   193, -1263, -1263,  8708,   193,   940,  9014,   111,
    1677    -1263,  1310, -1263,   353,   395,   950, -1263,   950,   941,  9697,
    1678    -1263,   950, 10388, -1263, -1263,   948, -1263, -1263, -1263,   544,
    1679    -1263, 10313,   812, -1263,  7577,   987,  7892, -1263, -1263,   608,
    1680      955,   960,  1676,  3085, -1263, -1263,  5343,  9697, -1263, -1263,
    1681      947, -1263, -1263,   956, -1263,   947,   967, 10116,  9697,   949,
    1682      954,   180,   972,   975,   984,   993, -1263,  1002,  1005,  6240,
    1683    -1263,  9697, -1263,   926,  1965, -1263, -1263, -1263,    67,    67,
    1684     9638,  9697,   992, -1263, -1263,   615, -1263,  9697, -1263, -1263,
    1685      711, -1263, -1263, -1263, -1263,   496,   496,   315,   315,   375,
    1686      375,   375,   375,   430,   430,   719,   760,   770,   771,   807,
    1687     9697,   330,  9167,  1006,  1007,  1008,  1636, -1263, -1263, -1263,
    1688    -1263, -1263,  9167,   620, -1263,  4697, -1263,  6612,  8583, -1263,
    1689    -1263, -1263,   787,  9167,   937,  1012,  1014,  1022,  1023,  1024,
    1690     1029,  1036, -1263,  3424,  2301, -1263, -1263, -1263, -1263, -1263,
    1691    -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,
    1692    -1263, -1263,   837, -1263, -1263, -1263,   844, -1263, -1263, -1263,
    1693    -1263, -1263, -1263, -1263, -1263, -1263, -1263,  1039,  1043, -1263,
    1694       83,   992,  5632, -1263, -1263, -1263,  4858,  1042, -1263, -1263,
    1695    -1263, -1263,   950,  5809,  1095, -1263, -1263, -1263, -1263,  1030,
    1696       83, -1263, -1263,   837, -1263, -1263,   837,  1048,   837, -1263,
    1697    -1263, -1263, -1263, -1263, -1263,  6488, -1263,   193, -1263, -1263,
    1698      407,   410,  6488,  2038,  9697,  2697, -1263, -1263,  1037,    53,
    1699     1037, -1263,   950, -1263,    67, -1263, -1263,  8781,   824, -1263,
    1700    -1263, -1263,   849,  1059,  1021, -1263, -1263,  1062,  1063, -1263,
    1701      987,  2296, -1263,   528, -1263,  3085,   844, -1263, -1263,  1071,
    1702     5343,  7806,  8347,  1073, -1263, -1263,  1074,  1084,  1066, -1263,
    1703     9697,  1088,   282,  1083, -1263,  1091,   544,  1091, -1263, -1263,
    1704     1091, -1263,  1097,  1105,  1115,  1965, -1263, -1263, -1263,  4858,
    1705    -1263, -1263, -1263,  1113,  9697,   605, -1263,  9697, -1263,   605,
    1706    -1263, -1263,  9697, -1263,   424,   792, -1263, -1263, -1263, -1263,
    1707    -1263, -1263, -1263,   812,  8465, -1263, -1263,  6736,  1120, -1263,
    1708      568,   792, -1263,   594,   631,   792, -1263,   644,  3969, -1263,
    1709    -1263, -1263,  9167,  9167, -1263,  7967,  7967,  1123,  1118,  1127,
    1710     1125, -1263,   558,   212,   992, -1263,   605, -1263,  5487, -1263,
    1711     9697,   420, -1263,  6116,  1129,  1135,  9579,  1136,  1137,   146,
    1712      206,   181,  9697,  1140,   193,  9697,  9697,  1106,   305,  1124,
    1713    -1263, -1263, -1263,  1143, -1263, -1263, -1263, -1263, -1263, -1263,
    1714    -1263, -1263, -1263,   950,  1141,  9697, -1263,  9167,  9167,    67,
    1715     1150, -1263,  8856, -1263, -1263,   722, -1263,  2697, -1263, -1263,
    1716    -1263, -1263,  1310, -1263, -1263,  1148, -1263, -1263, -1263, -1263,
    1717     1154,  2296, -1263, -1263,  1139, -1263,   947, -1263, -1263,  2149,
    1718     1158, -1263, -1263, -1263,   627,  1151, -1263,   180,  1138,  9697,
    1719     1146,   180,   180,  1165,   653,   792, -1263, -1263,   881,  9697,
    1720     1164,  1113, -1263,  1068, -1263, -1263,  1163, -1263,   219, -1263,
    1721     1168,  1163, -1263,  1171, -1263, -1263,   837,  1173,  6364,  1172,
    1722     1175,  1177, -1263, -1263,  1180, -1263, -1263,   837, -1263, -1263,
    1723    -1263, -1263,   837,  9697,  9697,   812,  1179, -1263, -1263, -1263,
    1724    -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263,  9697,  9697,
    1725     1182,  1184,  1163, -1263, -1263,   950, -1263, -1263, -1263,  7382,
    1726     7806,  9697,  9697,  1240,  9697, -1263,  1160, -1263,  1170, -1263,
    1727     1174,  9697,  1178,  9697,  1032,  1185,    59,    67,  1380, -1263,
    1728    -1263,  5809,  1189,   442, -1263, -1263, -1263, -1263, -1263, -1263,
    1729    -1263, -1263, -1263,  9395, -1263,  7967,  1190, -1263, -1263,  7806,
    1730      454,   456, -1263,  1197,  1193,   650,  1210, -1263,   295, -1263,
    1731    -1263, -1263, -1263,   837,  1213, -1263, -1263,  1220,  1252, -1263,
    1732    -1263,  1252,  1252,   605,  1222,  1144,  1570, -1263,  1237, -1263,
    1733     9167, -1263, -1263, -1263, -1263,  1238, -1263,  9167,  9167,  9167,
    1734    -1263, -1263,  1239, -1263,  1241,  1242,  1245,   586,  7652,  7772,
    1735    -1263, -1263, -1263, -1263,  1244, -1263,  8042,   635,   640,  1249,
    1736      662,  5981, -1263, -1263, -1263,   460, -1263,   666,  1250,  1251,
    1737      193,  1306,   785, -1263, -1263,  9697, -1263,  9579,  9697, -1263,
    1738    -1263, -1263,  1255,  1257, -1263, -1263, -1263,  1262, -1263, -1263,
    1739    -1263, -1263, -1263, -1263,  7806,   650,  1270, -1263,  1254,   650,
    1740     9167, -1263, -1263, -1263,   605, -1263, -1263, -1263, -1263, -1263,
    1741    -1263, -1263, -1263, -1263, -1263, -1263, -1263,  1278,  1279, -1263,
    1742    -1263, -1263, -1263, -1263, -1263, -1263,  1282, -1263,  1284, -1263,
    1743     9579,    89,  9697,  9579, -1263,  1287,  9697, -1263,   136,  1302,
    1744     1311, -1263, -1263,  1297,  1299,  1280, -1263,   753, -1263, -1263,
    1745    -1263,  1119,  2149,  1300, -1263,   338,  9697, -1263,   667, -1263,
    1746     1163,   605,   605,  1314,  1315,  1320,  1328, -1263, -1263,  7967,
    1747     1304, -1263,  1376,  9697,  1309, -1263, -1263,  9489, -1263,   690,
    1748    -1263,  1313,  9579,  1321, -1263, -1263,  1331, -1263,  1333, -1263,
    1749     1351,  1361, -1263,  1337,  7806, -1263, -1263, -1263,   650,   544,
    1750     1362,  1339,  1365,  1364,  1163,  1163, -1263, -1263, -1263, -1263,
    1751    -1263,  9579,   234, -1263,   427, -1263, -1263,  7227, -1263, -1263,
    1752     1346,  9697, -1263,  9697,  7227,   193,  9014,   193,  9014,  1369,
    1753    -1263,  1370, -1263, -1263,  1367, -1263, -1263,   697, -1263, -1263,
    1754    -1263, -1263,  1371,  1373, -1263,  9697,  9697, -1263, -1263,   839,
    1755       85, -1263, -1263,  1358, -1263,   839, -1263, -1263,  2097,   544,
    1756    -1263, -1263,   193,  9014,   193,  9014,  1387,  1366,   544, -1263,
    1757    -1263, -1263, -1263,  9489,  1384,   839,  7306,  9697,  9399,  1388,
    1758      839,  1392,  2097,  3030, -1263, -1263, -1263,  1399, -1263, -1263,
    1759    -1263, -1263,  8347, -1263, -1263, -1263,  9261, -1263,  9489, -1263,
    1760    -1263,  1378,  9171, -1263, -1263,  9399,   193,  3030,   193,  1401,
    1761     1403,   712, -1263,  9261, -1263, -1263, -1263,  9171, -1263, -1263,
    1762    -1263,   193,   193, -1263, -1263, -1263, -1263, -1263, -1263, -1263,
    1763    -1263
     1609    7094,  5192, -1328,    47, -1328, -1328, -1328, -1328, -1328, -1328,
     1610   -1328,    41, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1611   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,   209,   209,
     1612     209,  1263,  1027,   118,  7336,   312, -1328, -1328, -1328, -1328,
     1613   -1328,   248, -1328, -1328, -1328,  1020,   187, -1328, -1328, -1328,
     1614   -1328,  8977, -1328, -1328, -1328, -1328,   126,   266, -1328,  1653,
     1615   -1328, -1328, -1328, -1328,   285,  1985,   410,    77,  7457, -1328,
     1616   -1328,  8977,   983, -1328, -1328,   602,   416,  4937,   741,  1118,
     1617     602,  1546, -1328, -1328,  1203,   473, -1328,   602,  1860, -1328,
     1618     325, -1328,   471,   476, -1328, -1328, -1328, -1328,   367,   266,
     1619     209, -1328,   209, -1328, -1328, -1328, -1328,  7962,  1653, -1328,
     1620   -1328,  1653, -1328,   375, -1328,  8082, -1328, -1328,  2291,  9246,
     1621   -1328,   847,   847,   847, -1328, -1328, -1328,   209, -1328, -1328,
     1622   -1328,   408,   426,   461, -1328, -1328, -1328,   472, -1328, -1328,
     1623   -1328, -1328, -1328,   508,   512, -1328, -1328,   103,  8623,  1598,
     1624     500,   443,   518,   536,   544,   548,   556,  9286,  6718,   568,
     1625   -1328,  9017, -1328, -1328, -1328, -1328,   575, -1328,   190,  3423,
     1626    3423, -1328,   577,   294, -1328, -1328, -1328, -1328,   578,   352,
     1627     387,   393,   209,   564, -1328, -1328,  1985,  3980,   641, -1328,
     1628      84, -1328,   209,   209,   266, -1328, -1328,   214, -1328,   209,
     1629     209, -1328,  4262,   597,   616,   847,  6752, -1328, -1328, -1328,
     1630    8977, -1328, -1328,   602, -1328, -1328, -1328,   266, -1328,  1653,
     1631     126, -1328,  7808, -1328,   847,   847,   847,   266, -1328,  1263,
     1632   -1328,  6380, -1328, -1328,   600,   847, -1328,   847, -1328,   248,
     1633    8623, -1328,   625, -1328,  1027,   697,   847, -1328,  1263,   667,
     1634     675, -1328,  7336,   663, -1328, -1328, -1328,  3551, -1328, -1328,
     1635    8539, -1328,   641,   128,  5841,  9246,  2291,  4262, -1328,   236,
     1636   -1328, -1328,  8082,  1653,   700, 10420, -1328, -1328,   221, -1328,
     1637     493,   710,   742,  6026,   753,  5841,  9865, -1328,   766, -1328,
     1638   -1328, -1328, -1328, -1328, -1328,  9924,  9924,  8387,   187, -1328,
     1639   -1328, -1328, -1328, -1328, -1328, -1328,   808, -1328,  2340,  2114,
     1640    8623,  5841, -1328,   633,    22,   547,   447,   693,   771,   758,
     1641     785,   800,    32, -1328, -1328, -1328,   572, -1328,   268, -1328,
     1642   -1328,  1598, -1328, -1328,   329,   827, -1328,   417,   827, -1328,
     1643   -1328,  7962, -1328,   807,   834,  8741, -1328, -1328,  1437,  2015,
     1644    8168,  6752,   602, -1328,   602,   847,   847, -1328, -1328, -1328,
     1645   -1328, -1328, -1328,   847,  7962,  1653, -1328, -1328,  9286,  1675,
     1646   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,  4621,
     1647    5841, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1648   -1328, -1328, -1328, -1328, -1328,  2291, -1328,   818,   832,   839,
     1649     851,   857,   865,   870,   881,  3980, -1328, -1328,   888,   126,
     1650     903, -1328, -1328,   889, -1328, -1328, -1328,  3551, -1328, -1328,
     1651   -1328, -1328, -1328,  4262, -1328,  8623,  8623, -1328,   847,  2291,
     1652    6876,  8243, -1328, -1328, -1328, -1328,  3551,   128, -1328, -1328,
     1653     602,   266, -1328, -1328,  3551, -1328,  6628, -1328, -1328,   847,
     1654     847,   552,  5831,   902,   906,   897,   905,   847, -1328, -1328,
     1655   -1328, -1328,  9444, -1328,   569, 10160, -1328,   266,   913, -1328,
     1656    2291, 10200,  9983, -1328, -1328, -1328, -1328,   896,  4262, -1328,
     1657    8243,   641,  7215, -1328, -1328, -1328, -1328,  1315,   613,   907,
     1658    1027, 10420,  1475,  8082, -1328, 10420, -1328, -1328, -1328, -1328,
     1659     654, -1328,   931,   742,   246,  8387, -1328,  9319, -1328, -1328,
     1660    8387, -1328,  8505,  8387, -1328, -1328,   187, -1328,   666,   933,
     1661     695,   936, -1328, -1328,  6470, -1328, -1328,   345, -1328, -1328,
     1662    5841, -1328,   431,  5841, -1328, -1328, -1328, -1328, -1328, -1328,
     1663   -1328, -1328, -1328, -1328, -1328, -1328,  5841, -1328, -1328,  5841,
     1664    5841,  5841,  5841,  5841,  5841,  5841,  5841,  5841,  5841,  5841,
     1665    5841,  5841,  5841,  5841,  5841,  5841,  5841,  4496,   572,   830,
     1666   -1328, -1328,   209,   209, -1328, -1328,  8623, -1328, -1328,   889,
     1667     663, -1328,   889, 10042, -1328, -1328,  9286,  6470,   929, -1328,
     1668    9246, -1328, -1328,   575, -1328,   937,   947,   939,  3082,   257,
     1669     907, -1328,   209,   209,   907,   260, -1328,   209,   209,   889,
     1670   -1328, -1328,   209,   209, -1328,   827,  9404,  1653, 10351,   176,
     1671     238,  9404, -1328,  8539, -1328,   907, -1328,  7962, -1328,     8,
     1672    5680,  5680,  1653,  5204,   927, -1328,   546,   943,   945, -1328,
     1673     950,  3423,   381, -1328,  1033,  1653,  5680,   663,  2291,   663,
     1674     641,   477,   827, -1328, -1328,   604,   827, -1328, -1328, -1328,
     1675     742, -1328,   827,   266,  9444, -1328,   678,   967,   680,   968,
     1676   -1328,   807,   266, -1328, -1328,  3551,   266,   965,  9319,   187,
     1677   -1328,  1893, -1328,   436,   439,  1027, -1328,  1027,   966,  5841,
     1678   -1328,  1027, 10351, -1328, -1328,   972, -1328, -1328, -1328,   663,
     1679   -1328, 10276,   834, -1328,  5680,   707,  8168, -1328, -1328,   575,
     1680     973,   976,  1315,  1837, -1328, -1328, 10420,  5841, -1328, -1328,
     1681     979, -1328, -1328,   993, -1328,   979,   982,   493,  5841,   977,
     1682     974,    26,  1002,   998,  1007,  1008, -1328,  1011,  1012,  6470,
     1683   -1328,  5841, -1328,   695,  1078, -1328, -1328, -1328,   209,   209,
     1684    5376,  5841,  1015, -1328, -1328,   718, -1328,  5841, -1328, -1328,
     1685     733, -1328, -1328, -1328, -1328,   633,   633,    22,    22,   547,
     1686     547,   547,   547,   447,   447,   693,   771,   758,   785,   800,
     1687    5841,   106,  9444,  1023,  1035,  1036,   830, -1328, -1328, -1328,
     1688   -1328, -1328,  9444,   730, -1328,  7962, -1328,  6842,  8859, -1328,
     1689   -1328, -1328,   947,  9444,   952,  1039,  1040,  1041,  1042,  1044,
     1690    1046,  1047, -1328,  4747,  3082, -1328, -1328, -1328, -1328, -1328,
     1691   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1692   -1328, -1328,   889, -1328, -1328, -1328,   907, -1328, -1328, -1328,
     1693   -1328, -1328, -1328, -1328, -1328, -1328, -1328,  1053,  1054, -1328,
     1694     126,  1015,  5204, -1328, -1328, -1328,  4621,  1051, -1328, -1328,
     1695   -1328, -1328,  1027,  6163,  1143, -1328, -1328, -1328, -1328,  1049,
     1696     126, -1328, -1328,   889, -1328, -1328,   889,  1060,   889, -1328,
     1697   -1328, -1328, -1328, -1328, -1328,  6718, -1328,   266, -1328, -1328,
     1698     444,   451,  6718,  2036,  5841,  3709, -1328, -1328,  1045,    40,
     1699    1045, -1328,  1027, -1328,   209, -1328, -1328,  9131,   897, -1328,
     1700   -1328, -1328,   906,  1061,  1056, -1328, -1328,  1069,  1072, -1328,
     1701     707,  1770, -1328,   275, -1328,  1837,   907, -1328, -1328,  1076,
     1702   10420,  8082,  8623,  1081, -1328, -1328,   734,  1058, -1328,  5841,
     1703    1084,   279,  1082, -1328,  1080,   663,  1080, -1328, -1328,  1080,
     1704   -1328,  1087,  1089,  1091,  1078, -1328, -1328, -1328,  4621, -1328,
     1705   -1328, -1328,  1088,  5841,   919, -1328,  5841, -1328,   919, -1328,
     1706   -1328,  5841, -1328,   611,   827, -1328, -1328, -1328, -1328, -1328,
     1707   -1328, -1328,   834,  8741, -1328, -1328,  6966,  1093, -1328,   640,
     1708     827, -1328,   652,   657,   827, -1328,   847,  4999, -1328, -1328,
     1709   -1328,  9444,  9444, -1328,  8243,  8243,  1096,  1094,  1095,  1099,
     1710   -1328,   347,    89,  1015, -1328,   919, -1328,  3423, -1328,  5841,
     1711     464, -1328,  6346,  1103,  1105,  9806,  1107,  1112,   627,   759,
     1712    1566,  5841,  1115,   266,  5841,  5841,  1092,  1104,   248,   228,
     1713     302,  1108,  1123,  1097, -1328, -1328, -1328,  1128, -1328, -1328,
     1714   -1328, -1328, -1328, -1328, -1328, -1328,  1119, -1328,  1027,  1138,
     1715    5841, -1328,  9444,  9444,   209,  1140, -1328,  9171, -1328, -1328,
     1716     806, -1328,  3709, -1328, -1328, -1328, -1328,  1893, -1328, -1328,
     1717    1136, -1328, -1328, -1328, -1328,  1144,  1770, -1328, -1328,  1127,
     1718   -1328,   979, -1328, -1328,  2291,  1145, -1328, -1328, -1328,   749,
     1719    1149, -1328,    26,  1146,  5841,  1132,    26,    26,  1157,   672,
     1720     827, -1328, -1328,   950,  5841,  1159,  1088, -1328,  1148, -1328,
     1721   -1328,  1158, -1328,    81, -1328,  1166,  1158, -1328,  1169, -1328,
     1722   -1328,   889,  1171,  6594,  1173,  1184,  1185, -1328, -1328,  1189,
     1723   -1328, -1328,   889, -1328, -1328, -1328, -1328,   889,  5841,  5841,
     1724     834,  1188, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1725   -1328, -1328, -1328,  5841,  5841,  1190,  1194,  1158, -1328, -1328,
     1726    1027, -1328, -1328, -1328,  7733,  8082,  5841,  5841,  1274,  5841,
     1727   -1328, -1328,  1191, -1328,  1192,  5841,  1199,  1206,  5841,  1013,
     1728    1207,    37,  2395, -1328, -1328,  6163,  1211,   209,   482, -1328,
     1729   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,  9622, -1328,
     1730    8243,  1231, -1328, -1328,  8082,   492,   506, -1328,  1227,  1219,
     1731     742,  1242, -1328,   293, -1328, -1328, -1328, -1328,   889,  1238,
     1732   -1328, -1328,  1243,  1273, -1328, -1328,  1273,  1273,   919,  1245,
     1733    1200,  1221, -1328,  1247, -1328,  9444, -1328, -1328, -1328, -1328,
     1734    1251, -1328,  9444,  9444,  9444, -1328, -1328,  1252, -1328,  1254,
     1735    1257,  1259,   446,  7928,  8048, -1328, -1328, -1328, -1328,  1258,
     1736   -1328,  8318,   754,   762,  1267,   767,  3351, -1328, -1328,   507,
     1737   -1328, -1328,   782,  1269,  1270,   266,  1323,   868, -1328, -1328,
     1738    5841, -1328,  5841, -1328, -1328,  9806, -1328,  1272,  1280, -1328,
     1739   -1328, -1328,  1277, -1328, -1328, -1328, -1328, -1328, -1328,  8082,
     1740     742,  1284, -1328,  1264,   742,  9444, -1328, -1328, -1328,   919,
     1741   -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,
     1742   -1328, -1328,  1285,  1288, -1328, -1328, -1328, -1328, -1328, -1328,
     1743   -1328,  1292, -1328,  1294, -1328,  9806,   292,  5841,  9806, -1328,
     1744    1297,  5841, -1328,   298,  1308,  1314, -1328, -1328,  1302,  1303,
     1745    1282,   817, -1328, -1328, -1328, -1328,  1653,  2291,  1300, -1328,
     1746     139,  5841, -1328,   792, -1328,  1158,   919,   919,  1310,  1312,
     1747    1313,  1317, -1328, -1328,  8243,  1309, -1328,  1388,  5841,  1299,
     1748   -1328, -1328,  9716, -1328,   793, -1328,  1298,  9806,  1304, -1328,
     1749   -1328,  1325, -1328,  1327, -1328,  1342,  1344, -1328,  1316,  8082,
     1750   -1328, -1328, -1328,   742,   663,  1334,  1318,  1337,  1343,  1158,
     1751    1158, -1328, -1328, -1328, -1328, -1328,  9806,   149, -1328,   165,
     1752   -1328, -1328,  7578, -1328, -1328,  1322,  5841, -1328,  5841,  7578,
     1753     266,  9319,   266,  9319,  1351, -1328,  1352, -1328, -1328,  1348,
     1754   -1328, -1328,   794, -1328, -1328, -1328, -1328,  1347,  1355, -1328,
     1755    5841,  5841, -1328, -1328,   893,   117, -1328, -1328,  1338, -1328,
     1756     893, -1328, -1328,  2215,   663, -1328, -1328,   266,  9319,   266,
     1757    9319,  1362,  1341,   663, -1328, -1328, -1328, -1328,  9716,  1365,
     1758     893,  7657,  5841,  9626,  1366,   893,  1367,  2215,  3729, -1328,
     1759   -1328, -1328,  1372, -1328, -1328, -1328, -1328,  8623, -1328, -1328,
     1760   -1328,  9488, -1328,  9716, -1328, -1328,  1353,  5938, -1328, -1328,
     1761    9626,   266,  3729,   266,  1376,  1377,   795, -1328,  9488, -1328,
     1762   -1328, -1328,  5938, -1328, -1328, -1328,   266,   266, -1328, -1328,
     1763   -1328, -1328, -1328, -1328, -1328, -1328
    17641764};
    17651765
     
    17671767static const yytype_int16 yypgoto[] =
    17681768{
    1769    -1263,  3947,  2776, -1263,    44, -1263,   887,   695,  -232, -1263,
    1770    -1263,   487,  -523,  -501,  -842,  -960, -1263,  -216,  4593,     0,
    1771    -1263,   122,   359,   368,   437,   403,   964,   965,   963,   966,
    1772      969, -1263,   998,  -607,  4667,  -955, -1263, -1263,   569,  -183,
    1773     -658,   414, -1263,  1406, -1263,   347, -1148, -1263, -1263,    84,
    1774    -1263,  -949, -1074,   191, -1263, -1263, -1263, -1263,    17, -1186,
    1775    -1263, -1263, -1263, -1263, -1263, -1263,   265, -1262,    33, -1263,
    1776     -866, -1263,   445,   246, -1263,   124, -1263,  -320, -1263, -1263,
    1777    -1263,   506,  -835, -1263, -1263,    19,  -980,    55,   606, -1263,
    1778    -1263, -1263,  -220, -1263,   129,  1096,  -190,  1478,  3486, -1263,
    1779    -1263,    96,   144,  1103,  1793, -1263,  1550, -1263, -1263,    27,
    1780     1989, -1263,  2286,  1081, -1263, -1263, -1263,  -632, -1263,   884,
    1781      886,   488,   668,  -575, -1263, -1263, -1263,   875,   659,  -511,
    1782    -1263,  -466,  -248,   801, -1263, -1263,  -959,  -944,  -218,   636,
    1783      989,    92, -1263,   209,   354,  -244,  -203,  -140,   611,   717,
    1784    -1263,   932, -1263,  2427,  1924,  -447,   860, -1263, -1263,   647,
    1785    -1263,  -235, -1263,   189, -1263, -1263, -1263, -1245,   370, -1263,
    1786    -1263, -1263,  1098, -1263,     2, -1263, -1263,  -849,  -115, -1223,
    1787     -150,  2775, -1263,  2462, -1263,   854, -1263,  -127,    40,  -178,
    1788     -174,  -173,     7,   -43,   -41,   -36,  1803,    12,    18,    21,
    1789     -101,  -168,  -162,  -160,  -144,  -317,  -520,  -513,  -497,  -545,
    1790     -300,  -486, -1263, -1263,  -547,  1009,  1026,  1028,  1598,  4212,
    1791     -563,  -557,  -544,  -532,  -458, -1263,  -514,  -722,  -720,  -718,
    1792     -585,  -194,  -291, -1263, -1263,   769,   138,   -88, -1263,  3371,
    1793      239,  -624,  -483
     1769   -1328,  4218,  2910, -1328,  2669, -1328,   454,     0,  -147, -1328,
     1770   -1328,   463,  -522,  -472,  -935, -1037, -1328,  -158,  4217,  1113,
     1771   -1328,   115,   430,   459,   419,   456,   932,   938,   935,   940,
     1772     941, -1328,  -236,  -629,  5014,  -930, -1328, -1328,   543,  -135,
     1773    -872,  -345, -1328,  1349, -1328,   324,  -967, -1328, -1328,    49,
     1774   -1328, -1273,  -818,   170, -1328, -1328, -1328, -1328,    -5, -1312,
     1775   -1328, -1328, -1328, -1328, -1328, -1328,   244, -1175,    35, -1328,
     1776    -502, -1328,   424,   219, -1328,    95, -1328,  -308, -1328, -1328,
     1777   -1328,   479,  -837, -1328, -1328,     4,  -995,   175,  1139, -1328,
     1778   -1328, -1328,  -119, -1328,    57,   315,  -193,  1470,  3860, -1328,
     1779   -1328,    63,   160,   685,  1861, -1328,  1798, -1328, -1328,    18,
     1780    1913, -1328,  2277,  2037, -1328, -1328, -1328,  -545, -1328,   862,
     1781     867,   458,   646,   -93, -1328, -1328, -1328,   856,   647,  -449,
     1782   -1328,  -478,  -351,  -615, -1328, -1328,  -928,  -975,    -3,   985,
     1783     981,   776, -1328,   107,   366,   -24,  -195,  -132,   609,   706,
     1784   -1328,   926, -1328,  2605,  1917,  -447,   855, -1328, -1328,   645,
     1785   -1328,  -234, -1328,  -136, -1328, -1328, -1328, -1230,   360, -1328,
     1786   -1328, -1328,  1098, -1328,    12, -1328, -1328,  -835,  -110, -1327,
     1787    -138,  2640, -1328,  3073, -1328,   848, -1328,  -166,    72,  -183,
     1788    -179,  -176,     2,   -41,   -36,   -32,    62,    10,    19,    21,
     1789     -98,  -172,  -171,  -170,  -167,  -307,  -494,  -481,  -476,  -551,
     1790    -310,  -510, -1328, -1328,  -515,  1010,  1014,  1017,  1772,  4826,
     1791    -557,  -496,  -482,  -480,  -543, -1328,  -503,  -723,  -721,  -720,
     1792    -573,  -287,  -290, -1328, -1328,   226,   457,    -9, -1328,  3666,
     1793     -27,  -611,  -257
    17941794};
    17951795
     
    18001800static const yytype_int16 yytable[] =
    18011801{
    1802       51,   115,   151,   268,   152,   451,   746,    99,   398,   153,
    1803      760,   735,   399,   400,  1052,   427,   857,   438,   401,   261,
    1804      116,   952,   787,   953,   402,   954,   403,    78,  1051,   382,
    1805      383,   834,   600,    52,    51,   817,   145,   469,   409,   809,
    1806       98,    99,   404,  1168,   720,   149,  1151,  1152,   725,   605,
    1807      504,    51,   810,   816,   907,    58,   117,   154,   162,  1363,
    1808      406,    78,  1153,   155,   811,   187,   156,    52,   210,   342,
    1809      937,    51,   194,   624,    98,   217,   805,   628,   227,   474,
    1810     1185,  1186,   911,   806,   376,   150,   407,   424,   398,    58,
    1811      220,    98,   399,   400,   124,    33,    71,   663,   401,   807,
    1812      377,   717,   125,   177,   402,   190,   403,   115,    98,    33,
    1813      808,    98,   473,   475,   518,   115,   672,   821,   267,   272,
    1814      849,   824,   404,   211,   676,  1285,   221,  1121,   203,    65,
    1815       71,   281,  -239,  -239,   144,   866,  1383,  1384,   108,   108,
    1816      406,   820,   841,   151,    72,   152,   844,   827,   310,   149,
    1817      153,   592,   177,  1230,  1225,   177,   162,   115,   345,  1444,
    1818     1425,   210,    33,    65,   847,   847,   407,   901,   372,   410,
    1819      714,   952,   108,   953,  1162,   954,  1471,   146,    72,   204,
    1820      847,   667,   669,  1383,  1384,   148,   187,   187,  1167,    98,
    1821      408,   282,   805,   919,   162,   169,  1286,   469,   154,   806,
    1822      262,    98,   267,   263,   155,  -239,   661,   156,  1385,   108,
    1823       51,  1499,   213,  1501,   566,   807,   469,   162,   577,   170,
    1824      410,  1176,   210,   151,   469,   152,   397,   190,   157,   441,
    1825      153,  1214,   707,  1425,   253,  1218,   410,   474,   847,   977,
    1826      310,   143,   666,   668,   696,   809,    33,    33,   567,   724,
    1827       98,  1001,    51,   585,   461,  1394,  1180,  1062,   810,    99,
    1828      272,  1153,    98,   177,   291,   272,   267,   267,   737,  1000,
    1829      811,   729,   115,  1315,   162,  1318,  1320,   439,   658,    78,
    1830      650,  1178,   805,  1177,    78,    52,   708,  1066,  1075,   806,
    1831      167,  1168,    98,   242,   245,   796,   940,   310,   605,  1151,
    1832     1152,    33,  1513,  1181,   659,   807,   477,    58,   665,  1235,
    1833      310,   437,   172,  1158,   670,  1153,   988,   177,   418,   479,
    1834      410,   410,   518,  1069,   177,  1069,   569,   518,    33,  1528,
    1835      518,   149,   791,  1098,   182,  1455,   843,  1236,   372,  1159,
    1836     1512,   115,  1052,  1179,   492,   345,   820,   493,    71,   598,
    1837      616,   658,   202,  1004,   167,   887,  1051,   248,   817,   730,
    1838     1523,  1159,   386,   809,   621,   481,   440,  1527,   621,   253,
    1839      332,    98,   499,   818,  1182,   597,   810,   659,   387,   731,
    1840      287,    65,   848,   848,   781,  1483,   470,   330,   811,   599,
    1841      108,  1488,   177,    43,    44,   267,    72,  1100,   848,   834,
    1842      825,   112,   597,   141,   142,   187,   251,   509,   389,   177,
    1843     1308,  1508,   372,   177,    43,    44,  1515,  1101,   445,   513,
    1844     1420,   378,   592,   267,   390,   310,   310,   592,   877,   267,
    1845     1309,   621,   547,   548,   391,  1153,  1346,   458,  1429,   552,
    1846      553,  1107,   853,  1083,    78,   190,   696,  1168,   393,   434,
    1847      392,   741,   115,   455,  1168,   469,   848,   625,   859,  1408,
    1848      636,   629,   112,    78,   394,   972,  1119,   547,   554,   555,
    1849      267,    78,  1370,  1409,   902,    43,    44,   860,   267,   330,
    1850      621,   916,    51,  1086,  1224,   372,   580,   713,   410,    99,
    1851      903,   707,  1216,   115,   213,  -294,   871,   999,   410,   941,
    1852      870,   858,   547,   753,   981,   310,  1168,   115,  -525,    78,
    1853      310,   434,   310,   310,   605,    52,   904,   575,  1001,   874,
    1854      744,   410,    98,   576,   345,   556,   557,   599,   902,  1414,
    1855     1415,   904,   905,   868,  1429,  1139,  1141,    58,  1124,  1429,
    1856      410,  1165,   112,   253,  1063,   708,   470,  1064,  1456,   167,
    1857      -12,  1260,  1261,  1107,   898,    43,    44,  1166,   901,  1429,
    1858      558,   559,  1457,  1165,   696,   470,  1429,   837,   569,   569,
    1859      264,   838,  -448,   470,   696,  1299,   310,  1301,    71,  1291,
    1860      900,   741,  -449,   758,   594,   696,   621,   345,   638,   677,
    1861      616,  1300,  1461,  1302,   277,   576,   598,  1347,   598,  1461,
    1862        2,   207,     4,     5,     6,     7,    59,    59,   999,   705,
    1863      839,    65,   279,  1344,   840,   213,   621,   280,   549,   112,
    1864      108,   621,   698,   616,   550,   551,    72,   621,   699,   715,
    1865      621,   621,    43,    44,   333,   716,   804,   334,   599,   131,
    1866       59,   132,   133,   134,   707,   839,   621,  1011,   267,  1082,
    1867      335,  1509,    43,    44,     8,     9,    10,    11,    12,   384,
    1868      726,   177,   336,   740,   330,   330,   727,  1056,    37,   741,
    1869       38,   762,   763,   764,    59,  -112,   177,    59,   115,  -112,
    1870      112,   895,  1135,   798,   410,   881,    33,  1112,  1393,   177,
    1871     1113,   741,  1114,    43,    44,    50,   114,  1094,   708,   719,
    1872      337,   723,    78,  1333,   621,   921,   616,  1334,  1138,   836,
    1873      597,   371,   713,   713,    36,   398,  1017,   883,   338,   399,
    1874      400,   899,   375,   741,   850,   401,   114,   114,    78,    50,
    1875      966,   402,   330,   403,   291,   979,   967,   865,   388,   345,
    1876       50,   699,  1212,   744,   744,  1140,    50,   597,   576,   404,
    1877     1340,   330,   804,   599,    50,  1341,   741,  1150,   396,  1410,
    1878       50,   741,   440,    50,   348,  1357,    50,  1221,   406,   410,
    1879      952,   177,   953,  1463,   954,  1464,  1422,  1343,   425,   114,
    1880      114,  1348,  1411,   741,   696,   696,   569,   741,  1408,   426,
    1881      592,   253,   332,   410,   407,   621,    39,   984,   175,   176,
    1882       42,   408,   598,    50,   470,  1430,    50,  1143,   448,    43,
    1883       44,   741,  1477,    50,   598,   330,   560,   561,  1478,   499,
    1884      164,     2,   207,     4,     5,     6,     7,  1533,    59,  1510,
    1885      470,   970,   967,   576,  -372,   371,   213,   332,   410,   696,
    1886      696,   459,   804,  -401,    50,   854,  1353,  1354,  1481,  1422,
    1887      213,   460,   229,   503,   599,   835,    50,   482,    59,   732,
    1888      594,   733,    39,   310,   734,   941,    42,   738,   705,   941,
    1889      941,   507,   960,  1403,   967,    43,    44,   512,  1163,   525,
    1890      707,    50,    50,   562,   164,   345,  1383,  1384,   113,    37,
    1891       78,    38,   345,   895,   906,   895,   908,    50,  1231,  1232,
    1892      455,   802,   563,   597,   564,    50,   565,   115,   339,    47,
    1893       48,   765,   766,   112,    50,   141,   239,    50,    58,   586,
    1894      921,   921,   767,   768,   114,   713,    43,    44,   568,    -3,
    1895      410,   115,   310,  1065,   708,   899,    47,    48,   651,   114,
    1896      658,   213,   652,   114,   653,   898,   655,    50,   114,   656,
    1897     1087,   657,   240,   258,  1495,   744,   660,   241,   662,    71,
    1898      689,    50,    50,   773,   774,   599,   659,   686,    50,   691,
    1899      687,   900,  -243,   728,  1207,    50,   418,   654,   410,   433,
    1900      717,   798,   742,  1306,   345,  1295,  1088,   750,  1267,  1268,
    1901      799,  1270,    65,   769,   770,   771,   772,   801,  1275,   812,
    1902     1277,   108,   856,  1107,   -14,   621,   621,    72,   862,   -15,
    1903     1336,   708,   479,   332,   410,     2,   207,     4,     5,     6,
    1904        7,   705,   696,   310,   855,   112,    50,   141,   142,   696,
    1905      696,   696,   112,   882,   141,   142,   884,   348,    43,    44,
    1906      743,   433,   410,    50,    50,    43,    44,  -295,    47,    48,
    1907       78,   818,   332,   597,     8,     9,    10,    11,    12,   889,
    1908       50,   909,   115,  -422,    50,   638,   522,   895,   716,   108,
    1909      932,  1022,   895,  1364,   637,  -529,   244,  1364,    58,   164,
    1910      924,   921,   934,    37,   938,    38,    33,   945,    59,   267,
    1911       50,   939,   696,  1278,  1279,  1280,   946,   118,   697,   947,
    1912       50,   920,   112,   597,   141,   142,   547,   899,   948,    47,
    1913       48,  1071,   899,   964,    36,    43,    44,   949,    50,  1170,
    1914      950,   974,   975,   976,    50,  -296,  1053,   990,   345,   991,
    1915      348,   440,     8,     9,    10,    11,    12,   992,   993,   994,
    1916      463,   721,  1077,   112,   995,   509,   722,   160,    -3,   215,
    1917     1112,   996,   470,  1113,  -410,  1114,    43,    44,  -409,  1389,
    1918      114,   108,  1019,  1059,    33,    50,  1055,    72,   638,   272,
    1919      115,   330,   894,    50,  1076,   230,  1445,    50,   231,  1078,
    1920     1079,   235,    50,   237,  1229,   114,  1085,   114,  1095,   220,
    1921      246,   310,    36,   348,    39,   741,   175,   176,    42,  1096,
    1922      215,  1097,  1099,   259,  1102,   621,  -297,    43,    44,   115,
    1923      959,   160,  1104,     8,     9,    10,    11,    12,    78,   112,
    1924     1105,   685,   114,   835,   211,   221,  1112,   114,  1087,  1113,
    1925     1106,  1114,    43,    44,  1109,  1133,   348,   348,  1154,  1155,
    1926     1157,  1187,   215,  1171,   326,    33,    58,  1406,  1156,  1172,
    1927     1174,  1175,   348,   340,  1183,  1215,  1194,   705,   621,   621,
    1928     1317,  1189,  1022,    -3,  1088,  1199,   272,  1521,  1202,  1204,
    1929     1213,   310,   492,    36,   522,   114,   522,  1040,  1208,   522,
    1930     1220,  1226,   522,  1217,  1233,  1237,  1239,    71,  1241,  1242,
    1931     1269,    50,  1243,    50,  1244,  1246,  1253,  1272,    78,  1262,
    1932      697,  1263,   429,   215,   115,  1297,   432,  1273,   108,  1290,
    1933      348,  1274,    50,   213,   398,  1276,   230,  1303,   399,   400,
    1934       65,   439,  1284,  1087,   401,  1307,    58,    50,  1305,   108,
    1935      402,   114,   403,  1311,   705,    72,   326,  1312,  1313,  1316,
    1936       50,   215,   114,    50,   114,   526,   215,   108,   404,   527,
    1937      528,   529,   113,  1494,  1321,  1323,  1329,  1331,  1330,  1088,
    1938     1332,  1339,   267,  1342,  1349,  1350,   406,  1170,   432,  1280,
    1939     1358,   487,  1359,   530,  1265,   531,    50,   532,   533,   621,
    1940      114,  1360,   114,   497,  1366,    39,   114,   184,   185,    42,
    1941      658,  1367,   407,   520,   114,  1377,  1378,  -411,    43,    44,
    1942      470,  1381,  1392,  1396,   115,   177,   160,    50,    50,   108,
    1943      440,  1400,  1398,  1401,   754,    72,   659,  1402,   697,   759,
    1944     1407,  1421,    50,  1087,   893,  1334,   410,   115,   697,  1416,
    1945     1417,   215,    47,    48,   115,  1418,   115,   584,   115,   697,
    1946     1173,   589,   108,  1419,  1426,   894,  1435,   685,  1437,   151,
    1947     1431,   152,  1439,  1405,    78,   230,   153,   235,  1433,  1088,
    1948      622,    78,  1441,   174,   626,   880,   526,   463,  1493,    59,
    1949      527,   528,   529,   115,  1443,   115,  1449,  1448,    68,   119,
    1950     1450,  1451,    58,  1462,  1472,  1474,   115,  1476,  1479,    58,
    1951     1480,   348,  1493,  1493,   530,  1487,   531,    50,   532,  1288,
    1952      162,  1502,   310,  1503,  1507,   254,    39,  1516,  1514,    50,
    1953       42,   215,    68,    78,  1518,  1524,  1531,  1493,  1532,    43,
    1954       44,   326,   326,  1170,   372,  1188,   775,   777,   776,   161,
    1955     1170,   778,   477,  1111,   867,   779,   869,    59,  1289,  1395,
    1956     1482,    58,   108,   230,  1534,    45,  1352,  1219,   681,   222,
    1957       76,   637,   215,    47,    48,  1368,   470,   114,  1465,  1193,
    1958     1201,   118,   890,   470,   891,   108,   912,  1074,  1070,   793,
    1959     1108,    72,   108,  1018,   861,  1084,   926,   783,    72,  1298,
    1960      710,   935,  1170,   973,    76,   260,   915,   487,    50,   326,
    1961       50,   487,     0,   978,   784,     0,   785,   114,     0,     0,
    1962      416,   520,     0,   520,   989,  1040,   520,     0,   326,   520,
    1963        0,   348,   348,     0,     0,   470,     0,     0,     0,     0,
    1964       50,   223,     0,   435,   108,     0,     0,   331,     0,    59,
    1965       72,     0,     0,   443,     0,   260,   350,     0,   697,   697,
    1966        0,   114,     0,     0,     0,   112,     8,     9,    10,    11,
    1967       12,     0,  1112,     0,   637,  1113,     0,  1114,    43,    44,
    1968      114,     0,     0,     0,   114,   405,     0,     0,     0,     0,
    1969        0,   215,   326,     0,     0,     0,   685,     0,    33,     0,
    1970      423,     0,   794,   428,   430,     0,  1319,   910,   161,     0,
    1971        0,     0,     0,   697,   697,     0,     0,     0,     0,   215,
    1972        0,  1356,     0,   519,   215,     0,    36,     0,   353,   446,
    1973        0,   114,   833,   449,     0,   450,     0,   589,     0,     0,
    1974        0,     0,     0,   842,   457,     0,     0,     0,     0,     0,
    1975       68,     0,     0,     0,     0,   471,     0,     0,     0,     0,
    1976        0,   330,     0,     0,     0,   478,     0,     0,   114,     0,
    1977      568,    39,   410,   430,  1382,    42,     0,  1390,    47,    48,
    1978        0,     0,    50,     0,    43,    44,    39,    50,   184,   185,
    1979       42,     0,     0,   215,   681,    59,    59,     0,   971,    43,
    1980       44,   447,     0,     0,    50,     0,     0,   215,   412,     0,
    1981      712,     0,     0,     0,     0,   420,     0,    59,    47,    48,
    1982        0,  1428,    76,  1148,  1149,   186,  1432,    76,   114,     0,
    1983        0,     0,   487,    47,    48,    59,     0,     0,     0,   260,
    1984        0,     0,     0,   590,    39,     0,   175,   176,    42,   618,
    1985      497,   685,     0,  1103,     0,  1454,     0,    43,    44,  1296,
    1986        0,     0,   623,     0,     0,     0,   623,   674,     0,     0,
    1987     1012,     0,  1115,     0,   163,     0,  1115,     0,  1196,  1197,
    1988      114,   214,     0,   375,   348,   348,     0,   412,   195,     0,
    1989      233,   218,    59,   700,   228,     0,   697,    59,   215,     0,
    1990        0,     0,     0,   697,   697,   697,    39,     0,   184,   185,
    1991       42,   980,   910,     0,     0,   471,     0,     0,     0,    43,
    1992       44,   223,     0,  1115,     0,     0,     0,     0,     0,   350,
    1993       59,   519,   214,     0,   471,     0,   519,     0,     0,   519,
    1994     1522,     0,   471,     0,   574,   596,  1522,   597,   114,     0,
    1995      114,   114,   578,    47,    48,   581,     0,  1522,   910,     0,
    1996      692,  1522,     0,   430,     0,     0,   697,     0,     0,     0,
    1997        0,     0,   163,     0,   214,     0,     0,     0,   706,     0,
    1998       68,     0,     0,     0,   373,     0,     0,    76,     0,   430,
    1999     1122,     0,     0,   430,     0,     8,     9,    10,    11,    12,
    2000        0,   353,     0,     0,     0,   348,    76,     0,     0,    79,
    2001      163,     0,   216,     0,    76,   412,     0,     0,     0,   420,
    2002     1115,     0,   350,   681,     0,     0,     0,    33,   243,   114,
    2003       59,     0,   353,   163,     0,   214,     0,     0,  1012,     0,
    2004        0,     0,     0,    79,     0,   442,   487,  1089,   326,     0,
    2005      353,     0,    76,    59,     0,    36,     0,     0,     0,     0,
    2006       59,  1322,     0,   216,     0,     0,     0,   786,  1324,  1325,
    2007     1326,     0,     0,   214,     0,     0,    50,    50,   214,     0,
    2008      224,     0,     0,     0,   623,   797,   114,   114,   215,   879,
    2009        0,     0,     0,   498,   353,   412,   814,     0,   886,   743,
    2010      833,   410,   888,     0,     0,   216,     0,    47,    48,     0,
    2011        0,     0,    59,     0,   590,     0,     0,   910,     0,   590,
    2012        0,     0,     0,     0,   114,   623,     0,     0,   350,   350,
    2013        0,  1369,     0,    39,     0,   184,   185,    42,     0,     0,
    2014     1115,     0,  1115,  1115,   350,     0,    43,    44,     0,     0,
    2015        0,     0,     0,     0,   373,     0,     0,   353,     0,     0,
    2016        0,     0,   692,   214,     0,     0,   216,   355,     0,     0,
    2017        0,     0,   893,   471,   410,     0,   910,   910,   681,     0,
    2018       47,    48,     0,    50,   114,     0,   574,   574,     0,     0,
    2019        0,     0,    39,   114,   184,   185,    42,     0,     0,   471,
    2020      353,   353,   350,     0,   216,    43,    44,    50,    50,   216,
    2021        0,   925,     0,     0,   430,     0,   353,     0,     0,     0,
    2022        0,  1115,     0,     0,     0,  1469,     0,  1469,   373,     0,
    2023        0,  1492,    50,   410,   353,     0,     0,   706,     0,    47,
    2024       48,     0,   955,   214,    39,    76,   184,   185,    42,     0,
    2025        0,     0,     0,     0,     0,     0,     0,    43,    44,   214,
    2026        0,    79,  1469,     0,  1469,     0,    79,     0,     0,   872,
    2027      215,    76,     0,   875,   353,     0,     0,     0,  1115,  1115,
    2028      692,     0,     0,   266,   214,     0,     0,     0,     0,     0,
    2029      692,    47,    48,   623,   216,     0,   987,     0,     0,     0,
    2030        0,   692,     0,     0,     0,     0,    81,     0,     0,   353,
    2031        0,   998,     0,  1061,     0,     0,  1446,     0,     0,     0,
    2032        0,     0,     0,     0,     0,  1089,     8,     9,    10,    11,
    2033       12,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2034       81,   534,   535,   536,   537,   538,   539,   540,   541,   542,
    2035      543,   544,   353,     0,     0,     0,     0,     0,    33,     0,
    2036      224,    68,   353,    33,     0,     0,     0,   215,   223,     0,
    2037        0,     0,     0,   353,   216,   545,  1496,   225,     0,     0,
    2038        0,     0,     0,   797,   910,  1504,    36,     0,     0,     0,
    2039      706,    36,     0,  1067,     0,     0,    39,     0,   184,   185,
    2040       42,   910,     0,   214,   574,     0,     0,     0,     0,    43,
    2041       44,     0,     0,     0,     0,   216,     0,     0,     0,  1081,
    2042     1089,     0,     0,     0,     0,     0,    79,     0,   430,   119,
    2043      920,   214,   597,    76,     0,   596,   214,   597,    47,    48,
    2044      355,     0,     0,    47,    48,    79,     0,    88,     0,     0,
    2045        0,     0,     0,    79,     0,   353,     0,     0,     0,     0,
    2046     1184,     0,   353,     0,   356,     0,     8,     9,    10,    11,
    2047       12,   355,     0,   910,   910,     0,     0,     0,     0,     0,
    2048        0,    88,   590,     0,     0,     0,     0,     0,     0,   355,
    2049        0,    79,     0,     0,     0,   428,     0,     0,    33,     0,
    2050      692,   692,     0,   350,   350,   214,     0,     0,     0,     0,
    2051      128,   128,   128,     0,     0,     0,     0,   412,   226,   214,
    2052     1089,  1169,     0,     0,     0,     0,    36,     0,     0,     0,
    2053        0,    39,     0,   355,   216,    42,     0,     0,     0,     0,
    2054      498,     0,     0,     0,    43,    44,     0,     0,     0,     0,
    2055        0,     0,  1468,     0,  1468,   692,   692,     0,    81,     0,
    2056        0,     0,   216,    81,     0,     0,     0,   216,     0,     0,
    2057       45,     0,   353,   353,     0,   353,   353,     0,    47,    48,
    2058        0,     0,   128,     0,   128,     0,     0,     0,     0,  1468,
    2059        0,  1468,  1125,    76,     0,     0,   355,     0,     0,     0,
    2060        0,     0,     0,     0,     0,   363,     0,     0,  1136,   276,
    2061      214,     0,     0,     0,     0,     0,     0,     0,   326,     0,
    2062        0,     0,     0,     0,     0,     0,   706,   353,   353,     0,
    2063        0,     0,     0,     0,     0,     0,   216,     0,     0,   355,
    2064      355,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2065      216,     0,     0,     0,     0,   355,     0,   225,     0,     0,
    2066        0,     0,     0,     0,   128,     0,     0,     0,  1266,     0,
    2067        0,     0,   128,   355,   128,   128,     0,     0,     0,   128,
    2068        0,   128,   128,   412,    79,     0,     0,     0,     0,    68,
    2069        0,     0,     0,     0,     0,     0,     0,     0,   353,    88,
    2070        0,   692,     0,   706,    88,     0,  1351,   119,     0,     0,
    2071       79,     0,     0,   355,     0,     0,     0,     0,     0,     0,
    2072        0,     0,  1222,    81,     0,     0,     0,     8,     9,    10,
    2073       11,    12,     0,     0,     0,     0,     0,   356,   692,     0,
    2074      223,   216,    81,     0,     0,   692,   692,   692,   355,     0,
    2075       81,   128,     0,     0,     0,     0,   350,   350,     0,    33,
    2076        0,    76,     0,     0,     0,     0,     0,     0,   356,  1169,
    2077        0,     0,     0,   353,     0,   353,     0,     0,     0,     0,
    2078        0,     0,     0,     0,     0,     0,   356,    36,    81,     0,
    2079        0,   355,    39,     0,   184,   185,    42,     0,   226,     0,
    2080      214,   355,   119,     0,     0,    43,    44,   224,   692,     0,
    2081      353,     0,   355,     0,     0,     0,     0,   353,   353,   353,
    2082        0,     0,     0,   126,   129,   130,     0,     0,   353,   353,
    2083      356,   893,     0,   410,     0,     0,     0,     0,     0,    47,
    2084       48,    76,     0,     8,     9,    10,    11,    12,     0,     0,
    2085        0,   168,     0,   173,     0,     0,   179,   180,   181,     0,
    2086      183,  1466,     0,  1470,    88,     0,     0,     0,     0,     0,
    2087        0,     0,    79,     0,   234,    33,     0,   350,   363,     0,
    2088      353,     0,     0,    88,     0,     0,   249,   250,     0,     0,
    2089        0,    88,     0,   356,   355,   255,     0,   256,  1498,     0,
    2090     1500,   355,   119,    36,     0,     0,     0,     0,    39,   363,
    2091      184,   185,    42,     0,     0,     0,     0,     0,     0,     0,
    2092        0,    43,    44,     0,     0,  1169,     0,   363,     0,    88,
    2093        0,   216,  1169,     0,     0,     0,   356,   356,     0,     0,
    2094        0,     0,  1529,     0,  1530,     0,     0,   186,     0,   353,
    2095        0,     0,   356,     0,     0,    47,    48,  1537,  1538,     0,
    2096        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2097      356,   363,     0,     0,     0,     0,     0,   395,     0,     0,
    2098        0,    81,   214,     0,  1169,     0,     0,   414,   415,     0,
    2099        0,  1517,   419,    33,   421,   422,     0,    76,     0,     0,
    2100        0,     0,     0,     0,    76,     0,     0,    81,     0,     0,
    2101      356,   355,   355,     0,   355,   355,     0,     0,     0,     0,
    2102        0,    36,     0,     0,     0,     0,    39,     0,   184,   185,
    2103       42,     0,    79,     0,   363,     0,     0,     0,     0,    43,
    2104       44,     0,     0,     0,     0,   356,     0,     0,     0,     0,
    2105        0,     0,     0,     0,   128,   128,    76,     0,     0,     0,
    2106        8,     9,    10,    11,    12,   266,   355,   355,     0,     0,
    2107        0,     0,     0,    47,    48,     0,     0,   363,   363,   214,
    2108        0,   128,     0,     0,   128,   128,     0,   128,   356,   128,
    2109      128,     0,    33,   363,   128,   128,     0,     0,   356,     0,
    2110        0,     0,     0,     0,   225,     0,     0,     0,     0,   356,
    2111        0,   363,     0,   216,     0,     8,     9,    10,    11,    12,
    2112       36,     0,    88,     0,     0,    39,     0,   184,   185,    42,
    2113        0,     0,     0,     0,     0,     0,     0,   355,    43,    44,
    2114      588,     0,   595,     0,     0,     0,     0,    33,    88,     0,
    2115        0,   363,     0,   619,   620,     0,     0,     0,     0,     0,
    2116        0,     0,     0,     0,  1492,     0,   410,     0,     0,    81,
    2117        0,     0,    47,    48,     0,    36,     0,     0,     0,   224,
    2118       39,     0,     0,     0,    42,     0,   363,     0,     0,     0,
    2119        0,   356,     0,    43,    44,     0,     0,     0,   356,     0,
    2120       79,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2121      216,     0,   355,     0,   355,     0,     0,     0,     0,   712,
    2122        0,     0,     0,     0,     0,     0,     0,    47,    48,   363,
    2123      128,   128,     0,     0,     0,     0,     0,     0,     0,   363,
    2124        0,     0,     0,     0,     0,   226,     0,     0,     0,   355,
    2125      363,     0,     0,     0,     0,     0,   355,   355,   355,     0,
    2126        0,     0,     0,     0,     0,     0,     0,   355,   355,     0,
     1802      50,   114,    99,   398,   151,   116,   451,   399,   268,   152,
     1803     400,   760,   427,   153,   401,   402,   403,   746,    78,   404,
     1804     951,   406,   952,   953,   167,   438,  1055,  1173,  1057,   857,
     1805    1158,   114,   114,  1126,    50,    52,    99,   382,   383,   605,
     1806     735,   817,   600,   834,   720,    50,   145,   816,   725,   880,
     1807     409,    50,    78,   162,   787,   154,   820,    65,   592,    50,
     1808     911,  1430,   827,    71,   155,    50,   156,   194,    50,    52,
     1809     217,    50,    98,   227,   624,   220,  1156,  1157,   628,  1368,
     1810    1167,  1235,    33,   398,   114,   114,   808,   399,   167,   407,
     1811     400,    65,   424,   445,   401,   402,   403,    71,   261,   404,
     1812     809,   406,   805,  1290,  1190,  1191,    98,   203,    50,   663,
     1813     291,    50,   458,   163,   810,   806,   811,   150,    50,  1434,
     1814     807,   330,   474,    98,   473,   475,    33,   195,   672,   707,
     1815     218,   124,   566,   228,  1430,   504,   676,   190,   469,   143,
     1816      98,   907,   939,    98,   717,   151,   552,   553,   342,    50,
     1817     152,   162,   847,   847,   153,   125,   410,   281,   204,  1187,
     1818      72,    50,   518,   372,  -239,  -239,   567,   972,   847,   407,
     1819     951,  1240,   952,   953,  1291,    58,   117,   977,   901,  1449,
     1820     714,  1518,   849,   434,  1230,  1172,    50,    50,   988,   162,
     1821    1163,   242,   245,   708,    72,   408,   154,   866,   253,  1241,
     1822     410,  1320,    50,  1323,  1325,   155,   936,   156,  1533,    58,
     1823      50,   163,   162,   330,   661,  1434,  1164,   282,   805,    50,
     1824    1434,    98,    50,   373,   441,   151,   847,   741,   213,   114,
     1825     152,   806,   144,    98,   153,  1158,   807,  -239,   169,   658,
     1826    1434,   971,   474,   211,   114,   434,   221,  1434,   114,   163,
     1827    1460,    33,    50,   114,    99,   919,    33,  1000,   397,   190,
     1828    1413,   820,   170,   999,   461,  1071,    50,    50,  1476,   162,
     1829      78,   976,   163,    50,  1414,    78,  1164,   164,    33,   848,
     1830     848,  1173,    98,   167,   442,   650,  1461,    52,   605,  1158,
     1831     666,   668,   987,   837,    98,   848,   796,   838,   469,    33,
     1832    1462,  1080,    33,  1504,   157,  1506,   809,   659,   805,    65,
     1833    1103,   376,   658,   665,   470,    71,   118,   469,   594,   670,
     1834     810,   806,   811,   146,    98,   469,   807,   377,   418,   592,
     1835     410,    50,   585,   372,   592,  1156,  1157,   843,   477,  1388,
     1836    1389,   164,   512,   821,  1067,  1388,  1389,   824,    50,    50,
     1837     479,   455,   410,   848,   492,   839,   729,   493,  1055,   840,
     1838    1057,   730,   148,   -10,   817,    50,   160,   887,   841,    50,
     1839     518,   818,   844,   597,   825,   518,   597,   287,   518,   637,
     1840     659,   731,   440,   575,  1375,   172,  1153,  1154,   707,   576,
     1841      43,    44,   839,   373,  1105,    50,  1087,   439,   330,   330,
     1842     509,   667,   669,    98,  1349,    50,   182,   372,  1313,  1158,
     1843     834,  1390,    72,   202,  1106,   386,   513,  1399,   378,  -294,
     1844     112,   599,   259,    50,   809,   547,   548,    58,  1314,    50,
     1845     160,   387,   781,    43,    44,    78,   433,  1173,   810,  1351,
     1846     811,  1419,  1420,   577,  1173,   410,   248,  1201,  1202,  1144,
     1847    1146,  1112,   708,   910,    78,   113,  1425,   108,   108,   696,
     1848     547,   753,    78,   326,  -112,   114,   330,   373,  -112,   724,
     1849      50,   251,   340,   389,   470,  1221,  -525,   190,    50,  1398,
     1850     372,   253,    50,  1091,    99,   330,   638,    50,   737,   390,
     1851     114,   108,   114,   470,  1124,   547,  1173,   859,   433,   636,
     1852      78,   470,  1229,   496,   605,   980,   112,   998,   391,   858,
     1853     213,   264,   870,   877,   393,   898,   860,    52,  1044,    43,
     1854      44,   429,   -12,   522,   392,   432,  1517,   114,   108,  1000,
     1855     394,   580,   114,   410,  1265,  1266,   164,   705,   868,    65,
     1856    -448,   707,   556,   557,   970,    71,  1528,   758,   112,   330,
     1857     141,   142,   791,  1532,    98,   326,   469,   902,   333,   599,
     1858     904,    43,    44,  1338,  1468,   902,  1469,  1339,   497,  1112,
     1859     498,   499,   904,   903,   901,  -449,   905,   558,   559,  1003,
     1860     114,  1068,   916,   900,   940,  1170,   277,   432,  1069,   835,
     1861     487,   871,   244,   410,   594,  1466,    50,   719,    50,   723,
     1862    1219,  1171,  1466,  1170,  1223,   708,     2,   207,     4,     5,
     1863       6,     7,   520,  1304,   253,   332,  1011,    50,   998,  1296,
     1864    1515,   112,   279,   141,   142,   160,   280,  1306,   741,  1305,
     1865    1327,   213,    50,   334,    43,    44,   114,  1329,  1330,  1331,
     1866     554,   555,    72,  1307,  1352,    50,  1488,   114,    50,   114,
     1867     798,   335,  1493,  1155,  1514,  1010,   584,    58,   910,   336,
     1868     589,   696,   853,   337,   762,   763,   764,   677,   804,  1088,
     1869     599,   338,  1513,   576,    37,  1061,    38,  1520,   685,   622,
     1870    1178,    50,   371,   626,   698,   114,   568,   114,   410,   375,
     1871     699,   114,   388,    78,    47,    48,   592,   384,  1099,   114,
     1872    1374,   396,    39,   910,   175,   176,    42,   463,   408,   108,
     1873     398,   425,    50,    50,   399,    43,    44,   400,   874,    78,
     1874     410,   401,   402,   403,  1016,  1129,   404,   410,   715,   406,
     1875     426,   522,   470,   522,   716,  1127,   522,   448,   112,   522,
     1876     326,   326,  1415,   854,  -372,     2,   207,     4,     5,     6,
     1877       7,    43,    44,   899,  1140,   549,   410,   230,   470,  1427,
     1878     231,   550,   551,   235,  1181,   237,  1143,   681,   597,   726,
     1879    1361,  1145,   246,   597,   951,   727,   952,   953,   440,   696,
     1880     118,   740,   707,  1011,   804,   599,  1226,   741,   410,   696,
     1881     560,   561,   906,   881,   908,   883,   705,   407,   455,   741,
     1882     696,   741,    50,  1148,   459,  1074,   487,  1074,   326,   743,
     1883     487,   410,   460,    37,    50,    38,  -401,    47,    48,   482,
     1884     520,   920,   520,   597,   503,   520,   291,   326,   520,    47,
     1885      48,  1486,  1427,   965,    39,   178,   175,   176,    42,   966,
     1886       8,     9,    10,    11,    12,   978,   708,    43,    44,  1101,
     1887    1044,   699,   213,   969,   966,   966,   637,     8,     9,    10,
     1888      11,    12,   114,  1041,  1217,   959,   213,   507,   910,  1345,
     1889     576,   732,    33,   733,   804,   741,   734,  1346,    -3,   738,
     1890     512,    78,  1348,   741,   262,  1168,   599,   263,   741,    33,
     1891     563,   326,   525,    50,   562,    50,  1183,  1353,   230,   565,
     1892      36,   794,   114,   741,   685,   330,   658,  1416,  1435,  1482,
     1893    1538,   898,  1341,  1413,   741,  1483,   576,    36,   564,   113,
     1894      65,   332,   410,   708,   586,    50,    71,   910,   910,  1358,
     1895    1359,   833,   253,   332,   410,  1092,   589,  1408,   966,   108,
     1896    1388,  1389,   842,   339,   568,   114,   410,   651,   798,   705,
     1897    1362,    -3,    47,    48,   652,   940,   835,   213,   637,   940,
     1898     940,  1236,  1237,   638,   114,  1070,   653,   899,   114,  1021,
     1899    1500,   418,   654,   410,   659,   769,   770,   771,   772,   900,
     1900     655,   754,   765,   766,  1212,   656,   759,     2,   207,     4,
     1901       5,     6,     7,   681,   112,   437,   657,   599,   696,   696,
     1902    1387,  1117,   660,  1395,  1118,   258,  1119,    43,    44,  1076,
     1903     479,   332,   410,   767,   768,   114,   773,   774,   229,  1112,
     1904     662,   686,    39,    72,   691,  1041,    42,   687,    50,    50,
     1905      50,   487,  -243,   689,   463,    43,    44,   230,    58,   235,
     1906      78,  1272,  1273,   717,  1275,   728,   799,  1433,   742,   481,
     1907    1279,   750,  1437,  1282,   801,    37,   812,    38,   114,   696,
     1908     696,   802,   -14,   597,   862,   638,   818,   332,   597,    47,
     1909      48,   856,    50,  1311,  1283,  1284,  1285,    50,   -15,   470,
     1910     855,  1459,   882,   884,   889,  1175,   909,  -422,     8,     9,
     1911      10,    11,    12,  -529,    50,    39,   924,   934,   547,    42,
     1912     716,   867,   112,   869,   141,   142,  1093,   932,    43,    44,
     1913     979,   938,   937,    51,   115,    43,    44,   944,   114,   945,
     1914      33,  -295,   946,   947,   178,   230,   948,   949,     8,     9,
     1915      10,    11,    12,   685,    45,   910,   963,   509,   973,    59,
     1916      59,   625,    47,    48,   899,   629,   440,    51,    36,   899,
     1917     974,   975,   910,   915,   989,   990,   991,   992,   149,   993,
     1918      33,   994,   995,  1369,    51,  1021,  1527,  1369,  -410,  -409,
     1919     114,  1018,  1527,    59,  1058,  1064,  1081,  1082,   187,   220,
     1920     894,   210,    72,  1527,    51,  1060,  1083,  1527,    36,  1084,
     1921     705,  1090,   743,  1102,   410,  1041,  1100,    58,  1104,   958,
     1922      47,    48,  1109,  1107,  1110,  1300,  1111,    59,  1138,  1114,
     1923      59,  1159,  1394,    78,  1162,  1160,  1161,  1176,  1092,  1177,
     1924     115,  1179,   681,   112,   910,   910,  1180,    -9,   115,  1188,
     1925    1117,   267,   272,  1118,  1193,  1119,    43,    44,   114,  -445,
     1926     114,   114,   696,   -11,   741,   487,  1094,   326,    -3,   696,
     1927     696,   696,    65,  1199,  1197,  1204,  1207,  1411,    71,  1209,
     1928     492,   310,   149,  1220,  1234,  1213,  1450,   705,  1218,  1222,
     1929     115,   345,  1225,  1526,   210,   112,  1231,  1270,   112,  1238,
     1930     141,   239,  1117,  1242,  1244,  1118,  1246,  1119,    43,    44,
     1931    1247,    43,    44,   685,    78,  1041,   112,   348,   833,   187,
     1932     187,  1248,  1249,  1117,  1251,  1258,  1118,  1267,  1119,    43,
     1933      44,  1268,   696,  1092,   398,   267,  1322,   240,   399,   114,
     1934     108,   400,   241,    51,  1274,   401,   402,   403,  1277,  1278,
     1935     404,  1294,   406,   470,   213,   210,  1280,  1324,   131,  1175,
     1936     132,   133,   134,  1281,  1289,  1041,  1302,  1308,  1041,   211,
     1937     221,    43,    44,   310,  1310,    72,   658,  1312,  1316,  1318,
     1938    1317,    59,  1321,  1499,  1326,    51,    50,    50,  1328,  1334,
     1939      58,  1335,  1336,   272,  1337,  1344,   114,   114,   272,   267,
     1940     267,  1347,   681,  1354,  1355,   115,  1285,  1363,   108,  1093,
     1941      39,    59,  1041,   836,    42,  1364,  1365,  1041,  1371,  1108,
     1942     407,  1372,  1382,    43,    44,  1383,   174,  -411,   850,  1401,
     1943     310,  1386,  1397,  1092,   114,  1403,  1405,  1406,  1120,  1407,
     1944    1412,   865,  1120,   310,   659,  1421,  1041,  1422,  1423,   712,
     1945    1339,   440,  1424,  1426,  1431,  1436,    72,    47,    48,   569,
     1946    1440,  1438,  1442,  1444,   149,  1446,   439,   697,   254,  1453,
     1947      78,    58,  1455,  1448,   115,  1454,   151,    78,   345,  1467,
     1948    1456,   152,   598,   616,  1484,   153,  1477,  1479,  1481,  1120,
     1949      68,   119,  1485,    50,   114,  1492,  1507,   621,  1508,   108,
     1950     330,   621,  1521,   114,  1093,  1512,  1519,  1523,  1041,   470,
     1951    1529,  1536,  1537,  1041,   775,  1175,   470,    50,    50,   777,
     1952     162,   776,  1175,  1192,    68,   778,  1116,   779,   267,    78,
     1953    1487,  1041,    39,  1041,   175,   176,    42,  1041,   187,  1293,
     1954    1041,   161,    50,  1400,   372,    43,    44,  1539,  1041,  1094,
     1955    1357,  1224,  1041,  1373,  1470,  1206,   267,  1198,   310,   310,
     1956     890,   222,   267,   416,   621,   891,  1075,   912,   470,  -296,
     1957     112,   371,   141,   142,  1175,  1079,     8,     9,    10,    11,
     1958      12,   793,  1017,    43,    44,   115,   435,  1113,   861,   477,
     1959     348,   926,  1120,  1089,  1303,   935,   443,   260,   783,     0,
     1960     710,     0,   784,   267,  1093,   785,     0,     0,    33,   721,
     1961       0,   267,    72,   621,   722,    51,     0,     0,     0,    72,
     1962     713,     0,     0,     0,     0,     0,   115,    58,     8,     9,
     1963      10,    11,    12,     0,    58,     0,    36,     0,   310,   331,
     1964     115,    59,     0,   310,  1094,   310,   310,   260,   350,     0,
     1965       0,     0,   108,   744,     0,     0,     0,   345,     0,     0,
     1966      33,    39,     0,   175,   176,    42,   519,     0,     0,   697,
     1967       0,    72,   108,     0,    43,    44,     0,   405,     0,     0,
     1968       0,     0,     0,   348,     0,     0,    58,  1474,    36,  1474,
     1969       0,   108,   423,    39,     0,   428,   430,    42,     0,     0,
     1970     161,   569,   569,     0,     0,     0,    43,    44,  1185,   310,
     1971       0,     0,  1120,     0,  1120,  1120,     0,     0,     0,   621,
     1972     345,   446,     0,   616,  1474,   449,  1474,   450,     0,   598,
     1973       0,   598,    45,     0,     0,     0,   457,     0,     0,     0,
     1974      47,    48,    68,     0,  1094,     0,   348,   471,    39,   621,
     1975     175,   176,    42,   108,   621,     0,   616,   478,     0,     0,
     1976     621,    43,    44,   621,   621,   430,     0,     0,     0,     0,
     1977      39,     0,   175,   176,    42,     0,  1473,     0,  1473,   621,
     1978       0,   267,     0,    43,    44,     0,   108,   697,     0,   348,
     1979     348,     0,     0,  1120,     0,     0,     0,   697,     0,     0,
     1980       8,     9,    10,    11,    12,   348,     0,     0,   697,   375,
     1981     674,   115,     0,  1473,   895,  1473,     0,     0,    76,     0,
     1982       0,     0,     0,     0,  1182,  1184,  1186,     0,     0,     0,
     1983       0,   260,    33,     0,     0,   590,   700,   621,   921,   616,
     1984       0,   618,   326,     0,     0,   713,   713,     0,     0,     0,
     1985    1120,  1120,    76,     0,   623,     0,     0,     0,   623,     0,
     1986      36,     0,     0,   348,     0,     0,     0,     8,     9,    10,
     1987      11,    12,   345,     0,   519,     0,   744,   744,     0,   519,
     1988       0,     0,   519,  -297,     0,     0,   108,     0,  1451,   223,
     1989       8,     9,    10,    11,    12,     0,     0,     0,     0,    33,
     1990       0,     0,     0,     0,   920,     0,   597,   471,     0,   108,
     1991       0,     0,    47,    48,     0,     0,   108,     0,     0,   569,
     1992       0,   350,    33,     0,     0,     0,   471,    36,   621,     0,
     1993     983,     0,    39,    79,   471,   598,    42,     0,     0,     0,
     1994       0,     0,     0,     0,     0,    43,    44,   598,  1501,   214,
     1995      36,     0,   692,     0,     0,   430,     0,  1509,   233,     0,
     1996       0,     0,     0,     0,     0,     0,     0,    79,   108,     0,
     1997     706,   712,    68,     0,     0,     0,   353,     0,     0,    47,
     1998      48,   430,   412,     0,     0,   430,     0,     0,    39,   420,
     1999     184,   185,    42,     0,     0,     0,   310,     0,     0,     0,
     2000     214,    43,    44,     0,   224,   216,   697,   697,     0,     0,
     2001       0,     0,     0,     0,   350,     0,     0,     0,   345,     0,
     2002       0,   243,    59,     0,     0,   345,   895,   893,   895,   410,
     2003       0,     0,   879,     0,     0,    47,    48,     0,     0,     0,
     2004     115,   886,   214,     0,   348,   888,     0,     0,   894,   447,
     2005       0,     0,     0,   921,   921,     0,   216,     0,   713,   786,
     2006       0,   412,     0,     0,   115,   310,     0,   697,   697,     0,
     2007      76,     0,     0,     0,     0,    76,   623,   797,     0,     0,
     2008      39,     0,   184,   185,    42,     0,     0,   744,   814,     0,
     2009      59,   355,     0,    43,    44,     0,     0,     0,   216,     0,
     2010       0,     0,     0,   214,     0,     0,   590,     0,     0,     0,
     2011      39,   590,   184,   185,    42,     0,   345,   623,   574,   186,
     2012     350,   350,     0,    43,    44,   215,   578,    47,    48,   581,
     2013       0,    39,     0,   184,   185,    42,   350,   621,   621,     0,
     2014       0,   214,     0,     0,    43,    44,   214,     0,     0,   596,
     2015       0,   597,     0,     0,   692,   310,     0,    47,    48,   216,
     2016       0,     0,  1410,   348,   348,   471,     0,     0,     0,   223,
     2017     893,     0,   410,     0,     0,     0,   215,     0,    47,    48,
     2018       0,    59,     0,     0,     0,    79,     0,     0,     0,   412,
     2019      79,   471,     0,   420,   350,     0,     0,   216,     0,     0,
     2020     115,     0,   216,   925,     0,   895,   430,     0,     0,     0,
     2021     895,     0,     0,  1301,     0,     0,     0,     0,   215,   921,
     2022       0,     0,     0,     0,     0,     0,     0,   267,     0,   706,
     2023       0,   214,     0,     0,   954,    76,   534,   535,   536,   537,
     2024     538,   539,   540,   541,   542,   543,   544,     0,     0,   353,
     2025     697,     0,     0,     0,    76,     0,  1066,   697,   697,   697,
     2026       0,     0,    76,     0,     0,     0,   345,     0,     0,   412,
     2027     545,     0,   692,     0,     0,     0,     0,     0,     0,   215,
     2028     353,     0,   692,     0,   224,   623,     0,   216,   986,     0,
     2029       0,     0,     0,   692,     0,     0,     0,    81,   353,     0,
     2030      76,     0,     0,   997,     0,     0,     0,   272,   115,     0,
     2031      39,   214,   184,   185,    42,     0,     0,   215,     0,     0,
     2032     697,     0,   215,    43,    44,     0,     0,   214,   310,     0,
     2033       0,    81,     0,    59,    59,     0,     0,     0,     0,     0,
     2034       0,     0,   353,   621,     0,     0,     0,   115,     0,  1497,
     2035      79,   410,   214,    68,    59,     0,     0,    47,    48,     0,
     2036     574,   574,     0,     0,   355,     0,     0,   216,   225,    79,
     2037       0,     0,     0,    59,     0,   797,     0,    79,     0,     0,
     2038       0,     0,   706,     0,     0,  1072,    39,     0,   184,   185,
     2039      42,     0,     0,     0,     0,   355,   621,   621,     0,    43,
     2040      44,     0,  1189,     0,   272,   353,     0,   215,   216,   310,
     2041       0,  1086,     0,   355,     0,    79,     0,     0,     0,     0,
     2042     430,   119,   348,   348,     0,   266,     0,     0,     0,     0,
     2043      59,     0,     0,    47,    48,    59,     0,     0,     0,     0,
     2044       0,     0,   115,   872,     0,     0,   526,   875,   353,   353,
     2045     527,   528,   529,     0,     0,   356,     0,   355,     0,     0,
     2046       0,     0,     0,     0,   353,     0,     0,     0,    59,     0,
     2047       0,   214,     0,   590,   530,     0,   531,     0,   532,   533,
     2048       0,     0,   353,     0,     0,     0,   428,   215,     0,     0,
     2049       0,   692,   692,    76,   350,   350,     0,     0,     0,   214,
     2050     267,   526,     0,     0,   214,   527,   528,   529,     0,     0,
     2051       0,     0,  1174,     0,     0,     0,     0,   621,     0,    76,
     2052     355,     0,   353,     0,     0,     0,     0,   216,   215,   530,
     2053       0,   531,     0,   532,  1292,     0,     0,     0,     0,     0,
     2054       0,     0,   115,   348,     0,     0,     0,     0,     0,    81,
     2055       0,     0,   692,   692,    81,   216,     0,   353,     0,     0,
     2056     216,     0,     0,   355,   355,   115,     0,     0,    59,     0,
     2057       0,     0,   115,   214,   115,     0,   115,     0,   574,   355,
     2058       0,     0,     0,     0,     0,     0,     0,   214,     0,     0,
     2059       0,    59,     0,     0,     0,     0,     0,   355,    59,     0,
     2060     353,     0,     0,     0,     0,     0,  1498,     0,    79,     0,
     2061     353,   115,     0,   115,     0,     0,   223,     0,     0,     0,
     2062       0,   353,     0,   706,   115,    88,     0,     0,     0,   216,
     2063    1498,  1498,     0,     0,    79,     0,     0,   355,     0,     0,
     2064     310,     0,     0,   216,     0,     0,     0,   215,   225,     0,
     2065      59,     0,     0,     0,  1356,  1498,     0,     0,     0,    88,
     2066       0,     0,     0,     0,     0,  1271,     0,     0,     0,     0,
     2067       0,     0,   355,     0,     0,   215,     0,     0,   214,     0,
     2068     215,    76,     0,     0,     0,    68,     0,     0,   126,   129,
     2069     130,   412,     0,     0,     0,     0,   226,     0,   692,     0,
     2070     706,     0,     0,   353,   119,     0,     0,     0,     0,     0,
     2071     353,     0,     0,     0,    81,   355,     0,     0,     0,     0,
     2072       0,     0,     0,     0,     0,   355,     0,     0,   356,     0,
     2073       0,   224,     0,    81,   216,   692,   355,     0,     0,     0,
     2074       0,    81,   692,   692,   692,     0,     0,     0,   177,   215,
     2075       0,     0,     0,   350,   350,     0,     0,     0,     0,   356,
     2076     255,     0,   256,   215,     0,  1130,  1174,     0,     0,     0,
     2077       0,     0,     0,     0,     0,     0,     0,   356,     0,    81,
     2078       0,  1141,     0,   363,     0,     0,     0,     0,     0,     0,
     2079       0,     0,     0,     0,     0,     0,    79,   177,     0,   119,
     2080     177,     0,     0,     0,     0,   692,     0,     0,     0,  1471,
     2081       0,  1475,     0,     0,     0,     0,     0,     0,   355,   353,
     2082     353,   356,   353,   353,     0,   355,     0,     0,     0,     0,
    21272083       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2128       79,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2129       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2130       25,    26,    27,     0,     0,    28,    29,    30,   356,   356,
    2131       88,   356,   356,     0,     0,    33,     0,     0,     0,   355,
    2132        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
    2133        0,     0,   363,     0,     0,     0,     0,     0,     0,   363,
    2134        0,     0,     0,    36,     0,     0,     0,     0,    39,     0,
    2135       40,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2136        0,    43,    44,   356,   356,     0,     0,   788,   789,     0,
     2084      76,     0,   395,     0,     0,     0,  1503,     0,  1505,     0,
     2085       0,     0,   414,   415,   215,     0,     0,   419,     0,   421,
     2086     422,     0,   412,     0,     0,     0,     0,   214,     0,     0,
     2087       0,     0,     0,     0,   350,     0,     0,    88,     0,     0,
     2088     353,   353,    88,     0,   356,     0,     0,     0,     0,     0,
     2089    1534,     0,  1535,     0,     0,     0,     0,     0,     0,   119,
     2090       0,  1227,     0,     0,     0,  1542,  1543,     0,   177,     0,
    21372091       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2138        0,   128,     0,     0,     0,     0,   128,    45,   355,    46,
    2139        0,     0,     0,     0,   819,    47,    48,   822,   823,     0,
    2140      826,     0,   828,   829,     0,     0,     0,   830,   831,     8,
    2141        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2142       19,    20,    21,    22,    23,    24,    25,    26,    27,  -298,
    2143        0,     0,     0,     0,   356,     0,    79,     0,     0,     0,
    2144        0,    33,   166,    79,     0,     0,     0,     0,     0,   363,
    2145      363,   997,   363,   363,     8,     9,    10,    11,    12,   219,
    2146        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
    2147       88,     0,     0,     0,     0,     0,   225,     0,     0,     0,
    2148     -298,     0,     0,     0,   283,   284,    33,   285,     0,   913,
    2149        0,   914,     0,     0,     0,    79,     0,    81,   917,   918,
    2150        0,     0,     0,   923,   363,   363,   166,     0,     0,   356,
    2151      273,   356,     0,   286,    36,     0,   929,     0,     0,   287,
    2152        0,   933,     0,   288,     0,     0,   289,   290,   291,   292,
    2153      293,   294,    43,    44,     0,   295,   296,     0,     0,   166,
    2154        0,   128,     0,   957,   958,     0,   356,     0,   595,   369,
    2155        0,     0,   374,   356,   356,   356,     0,     0,   297,     0,
    2156      378,     0,     0,     0,   356,   356,   344,    48,   299,   300,
    2157      301,   302,     0,     0,   212,   363,     0,    81,     0,     0,
    2158        0,     0,     0,   232,     0,   236,     0,   238,     0,     0,
    2159        0,     0,     0,     0,   247,     0,     0,     0,     0,     0,
    2160        0,   166,     0,     0,     0,     0,     0,     0,     0,     0,
    2161        0,     0,     0,   219,     0,     0,   356,   226,     0,     0,
    2162        0,     0,     0,     0,     0,   212,     0,   236,   238,   247,
    2163        0,   166,     0,     0,     0,     0,     0,     0,    88,     0,
    2164        0,  1007,     0,  1008,  1009,  1010,     0,     0,     0,     0,
    2165      363,     0,   363,     0,     0,     0,   374,     0,     0,     0,
    2166        0,     0,  1054,   166,     0,     0,     0,   212,     0,   128,
    2167        0,     0,     0,     0,     0,     0,  1060,     0,     0,     0,
    2168        0,     0,     0,     0,     0,   356,     0,   363,   523,     0,
    2169        0,     0,     0,     0,   363,   363,   363,     0,     0,  1072,
    2170        0,   166,     0,     0,     0,   363,   363,     0,     0,     0,
    2171        0,     0,     0,     0,     0,  1080,     0,     0,    88,     0,
    2172        0,     0,     0,     0,     0,     0,     0,     0,   212,     0,
    2173      236,   238,   247,    81,     0,     0,   593,     0,     0,     0,
    2174       81,   617,     0,     0,     0,     0,     0,     0,     0,     0,
    2175        0,     0,     0,     0,     0,     0,     0,   363,     0,  1110,
    2176        0,     0,     0,     0,  1120,     0,   212,     0,     0,  1123,
    2177        0,   212,     0,     0,  1127,     0,     0,     0,     0,  1129,
    2178        0,  1130,  1131,     0,     0,  1134,   496,     0,     0,     0,
    2179        0,     0,    81,     0,  1146,     0,     0,     0,     0,     0,
     2092       0,     0,  1174,   216,     0,     0,     0,   356,   356,  1174,
     2093       0,     0,     0,     0,   355,   355,     0,   355,   355,     0,
     2094       0,     0,     0,   356,     0,     0,     0,     0,     0,     0,
     2095       0,   353,     0,     0,     0,    79,     0,     0,     0,     0,
     2096       0,   356,   177,     0,     0,     0,     0,     0,     0,     0,
     2097       0,     0,    81,     0,     0,     0,   226,     0,     0,     0,
     2098       0,  1174,     0,     0,     0,   168,     0,   173,  1522,     0,
     2099     179,   180,   181,   223,   183,   355,   355,     0,    81,     0,
     2100       0,   356,     0,     0,     0,     0,     0,     0,   234,     0,
     2101       0,     0,     0,    76,     0,     0,     0,     0,     0,     0,
     2102     249,   250,     0,     0,     0,     0,   353,     0,   353,     0,
     2103       0,     0,     0,     0,     0,     0,   356,   177,     0,     0,
     2104       0,     0,    88,   215,     0,     0,     0,     0,     0,     0,
     2105       0,     0,     0,     0,   177,   214,   363,     0,   177,     0,
     2106       0,    88,     0,   353,     0,     0,   355,     0,     0,    88,
     2107     353,   353,   353,     0,     0,     0,     0,     0,     0,   356,
     2108       0,   353,   353,     0,     0,     0,     0,   363,     0,   356,
     2109       0,     0,     0,     0,    76,   225,     0,     0,     0,     0,
     2110     356,     0,     0,     0,     0,   363,     0,    88,   224,     0,
     2111       0,   216,     8,     9,    10,    11,    12,     0,     0,     0,
     2112       0,   128,   128,   128,     0,     0,     0,     0,    79,     0,
     2113       0,     0,     0,   353,     0,     0,     0,     0,     0,     0,
     2114       0,   355,     0,   355,    33,     0,     0,     0,     0,   363,
     2115       0,     0,   214,     0,     0,     0,     0,     0,     0,     0,
     2116      81,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2117       0,     0,    36,     0,     0,     0,     0,    39,   355,   184,
     2118     185,    42,   356,     0,     0,   355,   355,   355,     0,   356,
     2119      43,    44,     0,   128,     0,   128,   355,   355,     0,     0,
     2120       0,     0,   353,     0,     0,     0,     0,     0,   216,    79,
     2121       0,     0,   363,     0,     0,     0,   596,     0,   597,     0,
     2122     276,     0,     0,     0,    47,    48,     0,     0,     0,     0,
     2123       0,   215,   788,   789,     0,     0,     0,     0,     0,     0,
     2124       0,     0,     0,     0,     0,     0,     0,     0,   355,     0,
     2125      76,     0,     0,     0,     0,   363,   363,    76,     0,   819,
     2126       0,     0,   822,   823,     0,   826,     0,   828,   829,     0,
     2127       0,   363,   830,   831,   588,   128,   595,     0,     0,     0,
     2128       0,     0,     0,   128,     0,   128,   128,   619,   620,   363,
     2129     128,     0,   128,   128,     0,     0,     0,     0,   356,   356,
     2130      88,   356,   356,     0,     0,     0,   177,     0,     0,    76,
     2131       0,     0,     0,     0,     0,     0,     0,   355,     0,    81,
     2132       0,   177,     0,     0,     0,     0,    88,     0,   215,   363,
     2133       0,     0,     0,     0,   177,     0,     0,     0,     0,     0,
    21802134       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2181     1160,  1161,     0,     0,     0,     0,   166,   166,     0,     0,
    2182        0,     0,   369,     0,     0,     0,   363,     0,     0,     0,
    2183        0,     0,     0,     0,     0,     0,  1190,   212,     0,  1192,
    2184        0,     0,     0,   523,     0,     0,     0,     0,     0,     0,
    2185        0,     0,     0,     0,  1198,     0,   212,     0,     0,     0,
    2186        0,   236,   238,     0,     0,     0,     0,     0,     0,   247,
    2187        0,   709,     0,     0,    88,     0,     0,     0,     0,     0,
    2188        0,    88,  1206,     0,   166,     0,     0,     0,  1210,  1211,
    2189        0,     0,     0,     0,     0,     0,   523,     0,   523,     0,
    2190        0,   523,     0,   166,   523,     0,     0,  1227,     0,     0,
    2191        0,   212,  1234,     0,     0,   369,     0,  1238,     0,     0,
    2192        0,     0,     0,     0,     0,     0,     0,     0,  1245,   212,
    2193        0,     0,     0,    88,   212,     0,   212,     0,     0,     0,
    2194        0,  1252,     0,  1254,  1255,  1256,  1257,     0,     0,     0,
    2195        0,     0,   212,     0,     0,   212,   212,     0,  1264,     0,
    2196     1160,     0,     0,   212,   173,     0,     0,   166,     0,     0,
    2197        0,     0,     0,     0,     0,     0,     0,   212,   369,     0,
    2198        0,   800,  1287,     0,   212,     0,     0,     0,     0,     0,
    2199        0,     0,  1292,  1293,     0,     0,  1144,     0,     0,     8,
    2200        9,    10,    11,    12,     0,     0,     0,   593,     0,     0,
    2201        0,     0,   593,   158,     0,     0,     0,     0,     0,     0,
    2202        0,   369,   369,     0,     0,     0,     0,     0,     0,   283,
    2203      284,    33,   285,     0,     0,     0,     0,   369,     0,     0,
    2204        0,     0,     0,     0,     0,     0,  1327,  1328,     0,     0,
    2205        0,     0,     0,     0,     0,     0,  1338,     0,   286,    36,
    2206      252,     0,     0,     0,   287,     0,     0,     0,   288,   523,
    2207      257,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2208      295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    2209        0,     0,     0,     0,     0,   369,   212,   922,     0,     0,
    2210        0,     0,     0,   297,     0,   378,     0,   283,   284,     0,
    2211      285,  1145,    48,   299,   300,   301,   302,     0,  1373,     0,
    2212     1374,  1375,  1376,     0,   212,     0,     0,     0,     0,   212,
    2213      709,     0,  1380,     0,     0,     0,   286,     0,     0,   385,
    2214     1391,     0,   287,     0,     0,     0,   288,     0,     0,   289,
    2215      290,   291,   292,   293,   294,    43,    44,     0,   295,   296,
    2216        0,     0,   417,     0,     0,  1412,  1413,     0,     0,     0,
    2217        0,     0,     0,     0,     0,     0,   431,     0,     0,     0,
    2218        0,   297,     0,   378,     0,   436,     0,     0,   617,    47,
    2219       48,   299,   300,   301,   302,   444,     0,     0,   212,     0,
    2220        0,     0,   780,     0,     0,     0,     0,     0,     0,     0,
    2221     1452,  1453,   212,     0,     0,     0,     0,     0,     0,     0,
    2222      462,     0,     0,  1458,     0,   472,     0,     0,     0,     0,
    2223     1458,     0,     0,   496,     0,     0,     0,     0,   480,     0,
    2224        0,     0,     0,     0,   491,     0,   495,     0,     0,     0,
    2225        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2226        0,     0,     0,  1491,     0,   524,     0,  1497,     0,     0,
    2227        0,     0,     0,     0,     0,     0,   369,     0,     0,     0,
    2228        0,     0,     0,   709,     0,     0,     0,     0,     0,     0,
    2229        0,     0,   212,     0,     0,  1519,     0,  1520,   523,     0,
    2230        0,     0,     0,   212,     0,     0,   583,     0,     0,     0,
    2231      587,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2232      212,     0,     0,   166,     0,  1535,  1536,     0,     0,     0,
    2233        0,     0,     0,  1539,  1540,     0,     0,     0,   630,     0,
    2234        0,     0,   631,   632,     0,   633,     0,     0,     0,     0,
    2235        0,     0,   644,   645,     0,   646,   647,     0,   648,     0,
    2236      649,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2237        0,     0,     0,     0,     0,   593,     0,   583,     0,     0,
    2238        0,     0,     0,     0,     0,   664,     0,     0,     0,   341,
    2239      364,     0,     0,     0,     0,     0,   369,   369,     0,     0,
    2240        0,     0,     0,     0,     0,     0,     0,     0,     0,   675,
    2241        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2242        0,     0,   413,     0,     0,     0,     0,     0,     0,   413,
    2243        0,   212,     0,     0,     0,   701,     0,     0,     0,     0,
    2244        0,   704,     0,     0,     0,     0,   462,     0,     0,     0,
    2245        0,     0,     0,   523,     0,     0,     0,     0,     0,     0,
    2246        0,   212,     8,     9,    10,    11,    12,    13,    14,    15,
    2247       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2248       26,    27,     0,   739,    28,    29,    30,     0,     0,     0,
    2249        0,     0,     0,   212,    33,     0,     0,     0,   757,     0,
    2250        0,   413,     0,     0,   212,     0,     0,     0,     0,     0,
    2251        0,     0,     0,     0,     0,     0,     0,     0,     0,   709,
    2252        0,     0,    36,     0,     0,     0,     0,   112,     0,    40,
    2253       41,     0,     0,     0,     0,   782,     0,     0,     0,     0,
    2254       43,    44,     0,     0,   792,     0,     0,     0,     0,     0,
    2255        0,     0,     0,     0,     0,     0,     0,     0,   413,     0,
    2256      219,     0,     0,     0,   813,     0,   413,   579,    46,   413,
    2257      582,     0,     0,   212,    47,    48,     0,   364,     0,     0,
    2258        0,   609,     0,     0,     0,     0,     0,   212,     0,     0,
    2259        0,     0,     0,     0,     0,     0,   709,     0,     0,     0,
    2260      627,     0,   852,     0,     8,     9,    10,    11,    12,    13,
    2261       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2262       24,    25,    26,    27,     0,     0,    28,    29,    30,   413,
    2263        0,     0,     0,   413,     0,     0,    33,     0,   885,     0,
    2264        0,     0,     0,     0,     0,     0,   892,     0,     0,   369,
    2265      369,     0,     0,     0,     0,     0,     0,   219,     0,     0,
    2266        0,     0,     0,   364,    36,     0,     0,     0,     0,    39,
    2267        0,   208,    41,    42,     0,   212,     0,   252,     0,     0,
    2268        0,     0,    43,    44,     0,     0,     0,     0,   930,   931,
    2269        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2270        0,     0,     0,     0,     0,     0,     0,     0,    45,   413,
    2271      271,     0,   364,     0,     0,     0,    47,    48,     0,     0,
    2272      965,     0,     0,     0,     0,   969,     0,     8,     9,    10,
    2273       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2274       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2275       29,    30,   413,     0,     0,     0,   364,     0,     0,    33,
    2276        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2277      369,     0,   212,     0,     0,     0,     0,     0,     0,     0,
    2278        0,     0,     0,     0,     0,  1002,     0,    36,     0,     0,
    2279        0,     0,  1003,     0,    40,    41,     0,     0,     0,     0,
    2280      413,   413,     0,     0,     0,  1005,     0,  1006,     0,     0,
    2281        0,     0,     0,     0,     0,     0,     0,     0,   795,   364,
    2282     1016,     0,     0,     0,     0,     0,  1020,   523,   609,   523,
    2283      609,   609,     0,   258,     0,   324,     0,   609,  1057,    47,
    2284       48,  1058,     0,     0,     0,   346,     0,   832,   364,     0,
    2285        0,     0,     0,   364,     0,     0,   381,   381,     0,     0,
    2286        0,     0,   364,   364,   523,     0,   523,     0,     0,     0,
    2287        0,     0,     0,     0,     0,     0,     0,     0,   364,     0,
    2288        0,     0,     0,   413,   873,     0,     0,   413,   876,     0,
    2289        0,     0,     0,   166,   878,     0,   506,     0,   508,   511,
    2290        0,     0,     0,     0,     0,     0,     0,     0,   514,   515,
    2291        0,     0,     0,   413,     0,     0,     0,     0,   283,   284,
    2292        0,   285,     0,   508,   508,     0,     0,   324,     0,     0,
    2293        0,     0,     0,     0,     0,     0,   364,   609,     0,     0,
    2294        0,     0,     0,     0,     0,     0,     0,   286,     0,  1128,
    2295        0,   476,     0,   634,     0,   141,   142,   288,   508,     0,
    2296      289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
    2297      296,   364,     0,     0,     0,   413,   413,     0,     0,     0,
    2298        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2299        0,     0,   297,   508,   635,     0,   636,   379,     0,     0,
    2300       47,    48,   299,   300,   301,   302,     0,     0,     0,     0,
    2301     1191,     0,     0,     0,     0,     0,     0,     0,   413,     0,
    2302        0,     0,     0,   212,     0,     0,     0,     0,     0,     0,
    2303        0,     0,     0,     0,   609,     0,   609,     0,     0,     0,
    2304        0,     0,     0,     0,  1203,     0,   609,     0,     0,  1205,
    2305        0,     0,     0,     0,     0,     0,     0,  1209,     0,     0,
    2306        0,     0,     0,     0,     0,     0,   381,     0,     8,     9,
    2307       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2308       20,    21,    22,    23,    24,    25,    26,    27,  -299,     0,
    2309        0,  1240,     0,     0,     0,     0,     0,     0,     0,     0,
    2310       33,     0,  1247,     0,     0,  1248,     0,  1249,     0,     0,
    2311        0,     0,     0,     0,     0,     0,     0,   364,     0,     0,
    2312        0,     0,  1258,  1259,   364,   413,     0,   413,    36,     0,
    2313        0,   413,     0,     0,     0,     0,     0,     0,     0,  -299,
    2314        0,     0,  1271,     0,     0,     0,     0,     0,     0,     0,
    2315        0,     0,   609,   609,     0,     0,     0,     0,     0,   703,
    2316        0,     0,   508,   508,   508,   508,   508,   508,   508,   508,
    2317      508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
    2318        0,     0,     0,     0,     0,     0,     0,   413,  1310,     0,
    2319        0,     0,     0,     0,     0,     0,  1314,     0,     0,   736,
    2320        0,     0,     0,     0,     0,     0,   413,  1126,     0,     0,
    2321        0,   752,     0,     0,     0,     0,   364,   736,     0,     0,
    2322      736,     0,   413,  1137,     0,   609,   609,  1142,     0,     0,
    2323        0,     0,     0,   761,     0,     0,     0,   364,   364,     0,
    2324        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2325       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2326        0,     0,     0,   790,     0,     0,  1361,     0,  1362,     0,
    2327      346,     0,    33,     0,   752,     0,     0,     0,     0,     0,
    2328        0,     0,     0,     0,  1371,     0,  1372,     0,     0,     0,
    2329        0,     0,     0,     0,     0,     0,     0,   413,     0,   413,
    2330       36,  1379,   508,     0,   413,     0,     0,     0,     0,     0,
    2331        0,     0,     0,   609,     0,     0,  1397,  1399,     0,     0,
    2332      851,     0,     0,     0,     0,     0,     0,  1404,   381,     0,
    2333     1209,     0,     0,     0,     0,     0,   413,  1223,     0,     0,
    2334        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2335        0,     0,  1427,     0,     0,     0,     0,     0,     0,     0,
    2336      364,  1434,     0,   508,  1436,     0,  1438,  1440,  1442,     0,
    2337        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2338       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2339       25,    26,    27,   508,     0,    28,    29,    30,   483,   484,
    2340      485,   486,     0,     0,   927,    33,     0,  1473,     0,  1475,
    2341        0,  1209,     0,     0,     0,     0,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,     0,   752,  1486,   951,     0,
    2343        0,     0,     0,    36,     0,     0,     0,   364,   961,     0,
    2344       40,    41,     0,     0,   968,     0,     0,     1,     2,     3,
    2345        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2346       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2347       24,    25,    26,    27,     0,     0,    28,    29,    30,    31,
    2348        0,     0,     0,    32,   985,   986,    33,    34,     0,     0,
    2349      364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
    2350      346,     0,     0,     0,     0,     0,     0,   508,     0,     0,
    2351        0,    35,     0,     0,    36,     0,    37,     0,    38,    39,
    2352        0,    40,    41,    42,     0,     0,     0,     0,     0,     0,
    2353        0,     0,    43,    44,     0,     0,     0,     0,     0,  1014,
    2354        0,     0,     0,   381,     0,     0,     0,   283,   284,     0,
    2355      285,     0,     0,   508,     0,     0,     0,     0,    45,     0,
    2356       46,     0,     0,     0,  -528,     0,    47,    48,     0,     0,
    2357        0,     0,   346,     0,     0,     0,   286,     0,     0,   346,
    2358        0,     0,   287,     0,     0,   508,   288,     0,     0,   289,
    2359      290,   291,   292,   293,   294,    43,    44,   508,   295,   296,
    2360        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2361        0,   364,     0,     0,     0,     0,     0,     0,     0,   324,
    2362        0,   297,     0,   378,     0,     0,   379,     0,     0,    47,
    2363       48,   299,   300,   301,   302,     0,   508,     0,     0,     0,
    2364        0,     0,     0,     0,     0,     0,   381,     0,     0,     0,
    2365        0,   961,     0,     0,   736,     0,     0,     0,     0,     0,
    2366        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2367        0,     0,     0,     0,  1132,     0,     0,     0,     0,     0,
    2368        0,     0,     0,     0,     0,  1147,     0,     0,     0,     0,
    2369        0,     0,   283,   284,     0,   285,     0,     0,     0,     0,
    2370      413,     0,     0,     0,     0,   381,     0,  1164,     0,     0,
    2371        0,     0,   508,     0,     0,     0,     0,     0,     0,     0,
    2372        0,   286,   961,   961,   413,   413,     0,   287,     0,     0,
    2373        0,   288,     0,     0,   289,   290,   291,   292,   293,   294,
    2374       43,    44,  1195,   295,   296,     0,     0,     0,     0,   413,
    2375        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2376        0,     0,     0,     0,     0,     0,   297,     0,   378,     0,
    2377        0,   508,   508,   751,    47,    48,   299,   300,   301,   302,
    2378        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2379        0,     0,     0,     0,     0,     0,   961,     0,     0,     0,
    2380        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2381        0,     0,     0,     0,     0,   851,     0,     0,     0,     0,
    2382        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2383     1250,  1251,     1,     2,   207,     4,     5,     6,     7,     8,
    2384        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2385       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2386        0,    28,    29,    30,    31,     0,     0,     0,    32,   283,
    2387      284,    33,  1023,  1024,     0,  1025,     0,     0,  1026,  1027,
    2388     1028,  1029,  1030,  1031,  1032,  1033,     0,     0,     0,  1034,
    2389        0,     0,     0,  1035,  1036,     0,    35,     0,   286,    36,
    2390        0,    37,     0,    38,  1037,     0,    40,    41,   288,     0,
    2391        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2392      295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    2393        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2394        0,     0,     0,   297,     0,   298,     0,     0,   172,     0,
    2395        0,    47,    48,   299,   300,   301,   302,     0,     0,     0,
    2396        0,  1038,     0,     0,     0,     0,  -134,     0,     0,     0,
    2397        0,     0,  1355,     0,     0,   736,     0,     0,     0,   508,
    2398        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2399        0,     0,     0,     0,     0,     0,   508,     0,     0,     0,
    2400        0,     0,     0,     0,     1,     2,   207,     4,     5,     6,
     2135       0,     0,     0,     0,     0,     0,     0,     0,     0,   356,
     2136     356,     0,   128,     0,   363,    79,     0,     0,     0,     0,
     2137       0,     0,    79,     0,     1,     2,   207,     4,     5,     6,
    24012138       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24022139      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2403       27,     0,     0,    28,    29,    30,    31,     0,     0,     0,
    2404       32,   283,   284,    33,   285,     0,     0,     0,     0,     0,
    2405        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2406        0,     0,     0,     0,     0,     0,     0,     0,   508,   508,
     2140      27,     0,     0,    28,    29,    30,    31,   363,   956,   957,
     2141      32,   283,   284,    33,   285,     0,     0,   363,     0,     0,
     2142       0,     0,     0,   226,    79,     0,     0,     0,   363,     0,
     2143     356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24072144     286,    36,     0,    37,     0,    38,   287,     0,    40,    41,
    24082145     288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
    24092146      44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2147       0,     0,   225,     0,     0,     0,     0,     0,     0,     0,
     2148       0,     0,     0,   283,   284,   297,   285,   298,    88,     0,
     2149       0,     0,    81,    47,    48,   299,   300,   301,   302,     0,
     2150       0,     0,     0,     0,     0,   356,     0,   356,  -134,     0,
     2151     363,     0,   286,     0,     0,     0,     0,   363,   287,     0,
     2152       0,     0,   288,     0,     0,   289,   290,   291,   292,   293,
     2153     294,    43,    44,     0,   295,   296,     0,     0,     0,     0,
     2154       0,     0,   356,     0,     0,     0,     0,     0,     0,   356,
     2155     356,   356,   177,     0,     0,     0,     0,   297,     0,   378,
     2156     356,   356,   379,     0,  1077,    47,    48,   299,   300,   301,
     2157     302,     0,     0,    81,   465,     2,   207,     4,     5,     6,
     2158       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2159      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2160      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2161       0,     0,   356,    33,     0,     0,     0,     0,     0,     0,
     2162       0,     0,     0,   913,     0,   914,   363,   363,     0,   363,
     2163     363,     0,   917,   918,     0,     0,     0,   923,     0,     0,
     2164       0,    36,     0,    37,     0,    38,     0,    88,    40,    41,
     2165     929,     0,     0,     0,     0,   933,     0,     0,     0,     0,
     2166       0,     0,     0,     0,     0,   128,   128,     0,     0,     0,
    24102167       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2411        0,     0,     0,     0,     0,   297,     0,   298,     0,     0,
     2168       0,   356,   595,     0,     0,     0,     0,   363,   363,     0,
     2169      -3,     0,   128,     0,     0,   128,   128,     0,   128,     0,
     2170     128,   128,     0,     0,     0,   128,   128,     0,     0,     0,
     2171       0,     0,     0,     0,   177,     0,     0,   177,   177,   177,
     2172       0,     0,     0,     0,  1203,     0,     0,     0,     0,    81,
     2173       0,     0,     0,     0,     0,     0,    81,   166,     0,     8,
     2174       9,    10,    11,    12,     0,     0,     0,     0,     0,     0,
     2175       0,     0,     0,     0,   219,     0,     0,     0,   363,     8,
     2176       9,    10,    11,    12,     0,     0,     0,     0,     0,     0,
     2177       0,    33,     0,     0,     0,  1006,     0,  1007,  1008,  1009,
     2178       0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
     2179       0,    33,     0,     0,     0,     0,  1059,     0,     0,    36,
     2180     226,   166,     0,     0,    39,   273,   184,   185,    42,     0,
     2181    1065,     0,     0,     0,     0,     0,     0,    43,    44,    36,
     2182      88,     0,     0,     0,    39,     0,   184,   185,    42,     0,
     2183       0,     0,     0,   363,   166,   363,     0,    43,    44,     0,
     2184       0,   128,   128,   893,   369,   410,     0,   374,     0,  1085,
     2185       0,    47,    48,     0,     0,     0,     0,  1295,     0,     0,
     2186       0,     0,     0,  1497,     0,   410,     0,     0,     0,     0,
     2187     363,    47,    48,     0,     0,     0,     0,   363,   363,   363,
     2188       0,     0,     0,     0,   177,     0,     0,     0,   363,   363,
     2189       0,     0,  1115,     0,     0,     0,   166,  1125,     0,     0,
     2190       0,    88,  1128,     0,     0,     0,     0,  1132,   219,     0,
     2191       0,     0,  1134,     0,  1135,  1136,     0,     0,  1139,     0,
     2192       0,     0,     0,     0,     0,     0,   166,  1151,     0,     0,
     2193       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2194     363,     0,     0,  1165,  1166,     0,     0,     0,   212,     0,
     2195       0,   374,     0,     0,     0,     0,     0,   232,   166,   236,
     2196       0,   238,     0,     0,     0,     0,     0,     0,   247,     0,
     2197       0,     0,     0,     0,  1194,     0,     0,  1196,     0,     0,
     2198       0,     0,     0,   523,   177,     0,     0,     0,     0,     0,
     2199       0,     0,   128,     0,     0,     0,   166,   128,     0,   212,
     2200       0,   236,   238,   247,     0,     0,     0,     0,     0,   363,
     2201       8,     9,    10,    11,    12,     0,     0,     0,     0,     0,
     2202       0,  1211,     0,     0,     0,     0,     0,  1215,  1216,     0,
     2203       0,   593,     0,     0,   177,     0,   617,   177,     0,     0,
     2204       0,   212,    33,     0,     0,     0,  1232,     0,     0,     0,
     2205       0,  1239,     0,     0,     0,   177,  1243,    88,     0,     0,
     2206       0,     0,     0,     0,    88,     0,     0,  1250,     0,     0,
     2207      36,     0,     0,     0,     0,    39,     0,   184,   185,    42,
     2208    1257,   177,  1259,  1260,  1261,  1262,   177,     0,    43,    44,
     2209       0,     0,     0,     0,     0,     0,     0,  1269,     0,  1165,
     2210       0,     0,   212,   173,   236,   238,   247,     0,     0,     0,
     2211       0,   166,   166,     0,   186,   177,    88,   369,     0,     0,
     2212       0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
     2213       0,  1297,  1298,     0,     0,     0,     0,     0,   523,     0,
     2214     212,     0,     0,     0,     0,   212,     0,     0,     0,     0,
     2215       0,     0,     0,     0,     0,     0,     0,   128,     0,     0,
     2216       0,     0,     0,     0,     0,     0,   709,     0,     0,     0,
     2217       0,     0,     0,     0,     0,     0,     0,   177,     0,   166,
     2218       0,     0,   177,     0,     0,  1332,  1333,     0,     0,     0,
     2219       0,   523,     0,   523,     0,  1343,   523,     0,   166,   523,
     2220     177,     0,   177,     0,     0,     0,   177,     0,     0,   177,
     2221     369,   212,     0,     0,     0,     0,     0,   177,     0,     0,
     2222       0,   177,     0,     0,     0,     0,     0,     0,     0,     0,
     2223     212,     0,     0,     0,     0,   236,   238,     0,     0,     0,
     2224       0,     0,     0,   247,     0,     0,     0,     0,     0,     0,
     2225       0,     0,     0,     0,     0,     0,     0,  1378,     0,  1379,
     2226    1380,  1381,   166,     0,     0,     0,     0,     0,     0,     0,
     2227       0,  1385,     0,   369,     0,     0,   800,     0,     0,  1396,
     2228       0,     0,     0,     0,   158,   212,     0,     0,     0,     0,
     2229     128,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2230       0,     0,   593,   212,  1417,  1418,     0,   593,   212,     0,
     2231     212,     0,     0,     0,     0,     0,   369,   369,     0,     0,
     2232       0,     0,     0,     0,    33,     0,   212,     0,     0,   212,
     2233     212,   252,   369,     0,     0,     0,     0,   212,     0,     0,
     2234       0,   257,     0,     0,     0,     0,     0,     0,     0,  1457,
     2235    1458,   212,    36,     0,     0,     0,     0,    39,   212,   184,
     2236     185,    42,  1463,     0,   523,     0,     0,     0,     0,  1463,
     2237      43,    44,     0,     0,     0,     0,     0,     0,     0,     0,
     2238       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2239     369,     0,   922,     0,     0,     0,   266,     0,     0,     0,
     2240       0,     0,  1496,     0,    47,    48,  1502,     0,     0,     0,
     2241     385,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2242       0,     0,     0,     0,     0,   709,     0,     0,     0,     0,
     2243       0,     0,     0,   417,  1524,     0,  1525,     0,     0,     0,
     2244       0,     0,     0,     0,     0,     0,     0,   431,     0,     0,
     2245       0,     0,     0,     0,     0,     0,   436,     0,     0,     0,
     2246       0,     0,     0,     0,  1540,  1541,   444,     0,     0,     0,
     2247     212,     0,  1544,  1545,     0,     0,     0,     0,     0,     0,
     2248       0,     0,     0,   617,     0,     0,     0,     0,     0,     0,
     2249       0,   462,     0,     0,     0,     0,   472,     0,   212,     0,
     2250       0,     0,     0,   212,     0,     0,     0,     0,     0,   480,
     2251       0,     0,     0,     0,     0,   491,     0,   495,     0,     0,
     2252     506,     0,   508,   511,     0,     0,     0,     0,     0,     0,
     2253       0,     0,   514,   515,     0,     0,   524,     0,     0,     0,
     2254       0,     0,     0,     0,     0,     0,     0,   508,   508,     0,
     2255       0,     0,     0,     0,     0,     0,   283,   284,     0,   285,
     2256       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2257       0,   369,   212,     0,     0,     0,     0,   583,   709,     0,
     2258       0,   587,   508,     0,     0,   286,   212,     0,     0,     0,
     2259       0,   287,     0,   523,     0,   288,     0,     0,   289,   290,
     2260     291,   292,   293,   294,    43,    44,     0,   295,   296,   630,
     2261       0,     0,     0,   631,   632,     0,   633,   508,   166,     0,
     2262       0,     0,     0,   644,   645,     0,   646,   647,     0,   648,
     2263     297,   649,   378,     0,     0,     0,     0,     0,    47,    48,
     2264     299,   300,   301,   302,     0,     0,     0,     0,   583,     0,
     2265       0,   780,     0,     0,     0,     0,   664,     0,     0,     0,
     2266       0,     0,     0,     0,     0,     0,   212,     0,     0,   593,
     2267       0,     0,     0,     0,     0,     0,     0,   212,     0,     0,
     2268     675,   283,   284,     0,   285,     0,     0,     0,     0,     0,
     2269     369,   369,     0,     0,   212,     0,     0,     0,     0,     0,
     2270       0,     0,     0,     0,     0,     0,   701,     0,     0,     0,
     2271     286,     0,   704,     0,     0,     0,   634,   462,   141,   142,
     2272     288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
     2273      44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2274       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2275       0,     0,     0,   523,   739,   297,     0,   635,     0,   636,
     2276     379,     0,     0,    47,    48,   299,   300,   301,   302,   757,
     2277       0,     0,     0,     0,   996,     0,     0,     8,     9,    10,
     2278      11,    12,     0,     0,     0,     0,   508,   508,   508,   508,
     2279     508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
     2280     508,   508,   508,   508,     0,   212,   782,   283,   284,    33,
     2281     285,     0,     0,     0,     0,   792,     0,     0,     0,   709,
     2282       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2283       0,     0,     0,     0,   212,   813,   286,    36,     0,     0,
     2284       0,     0,   287,     0,     0,     0,   288,     0,     0,   289,
     2285     290,   291,   292,   293,   294,    43,    44,     0,   295,   296,
     2286     219,     0,     0,     0,     0,     0,   212,     0,     0,     0,
     2287       0,     0,     0,   852,     0,     0,     0,   212,     0,     0,
     2288       0,   297,     0,   378,     0,     0,     0,     0,     0,   344,
     2289      48,   299,   300,   301,   302,     0,   709,     0,     0,     0,
     2290       0,     0,     0,     0,     0,     0,     0,     0,     0,   885,
     2291       0,     0,     0,     0,     0,     0,     0,   892,     0,     0,
     2292       0,     0,     0,     0,     0,     0,   508,     0,     0,     0,
     2293       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     0,     0,   252,   369,
     2295     369,     0,   212,     0,     0,     0,     0,   219,     0,   930,
     2296     931,     0,     0,     0,     0,     0,   212,     8,     9,    10,
     2297      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2298      21,    22,    23,    24,    25,    26,    27,   508,     0,     0,
     2299       0,   964,     0,     0,     0,     0,   968,     0,     0,    33,
     2300       0,     0,     0,   341,   364,     0,     0,     0,     0,     0,
     2301       0,     0,     0,     0,     0,     0,     0,   508,     0,     0,
     2302       0,     0,     0,     0,     0,     0,  1149,    36,     0,     8,
     2303       9,    10,    11,    12,     0,     0,   413,     0,     0,     0,
     2304       0,     0,     0,   413,     0,     0,     0,     0,     0,     0,
     2305       0,     0,     0,     0,   212,     0,  1001,     0,     0,   283,
     2306     284,    33,   285,  1002,     0,     0,     0,     0,     0,     0,
     2307     369,     0,     0,     0,     0,     0,  1004,     0,  1005,     0,
     2308       0,     0,     0,     0,     0,     0,     0,     0,   286,    36,
     2309       0,  1015,     0,     0,   287,     0,     0,  1019,   288,     0,
     2310       0,   289,   290,   291,   292,   293,   294,    43,    44,  1062,
     2311     295,   296,  1063,     0,     0,   413,     0,     0,     0,     0,
     2312       0,     0,     0,     0,     0,     0,     0,   523,     0,   523,
     2313       0,   508,     0,   297,     0,   378,     0,     0,     0,     0,
     2314       0,  1150,    48,   299,   300,   301,   302,     0,     0,     0,
     2315       0,   212,     0,     0,     0,     0,     0,     0,     0,     0,
     2316       0,     0,     0,     0,   523,     0,   523,     0,     0,     0,
     2317       0,     0,   413,     0,     0,     0,   508,     0,     0,     0,
     2318     413,   579,   324,   413,   582,     0,     0,     0,     0,     0,
     2319       0,   364,   346,   166,     0,   609,     0,     0,     0,     0,
     2320       0,     0,     0,   381,   381,     0,     0,     0,   508,     0,
     2321       0,     0,     0,     0,   627,     0,     0,     0,     0,  1133,
     2322     508,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2323      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2324      26,    27,     0,   413,    28,    29,    30,   413,     0,     0,
     2325       0,     0,     0,     0,    33,     0,     0,     0,     0,   508,
     2326       0,     0,     0,     0,   283,   284,     0,   285,     0,     0,
     2327       0,     0,     0,     0,   324,     0,     0,   364,     0,     0,
     2328       0,     0,    36,     0,     0,  1195,     0,   112,     0,    40,
     2329      41,     0,     0,   286,     0,     0,     0,     0,   476,   287,
     2330      43,    44,     0,   288,     0,     0,   289,   290,   291,   292,
     2331     293,   294,    43,    44,     0,   295,   296,     0,     0,     0,
     2332    1208,     0,     0,   413,     0,  1210,   364,     0,    46,     0,
     2333       0,     0,     0,  1214,    47,    48,     0,     0,   297,     0,
     2334     378,   508,     0,     0,     0,   751,    47,    48,   299,   300,
     2335     301,   302,     0,     0,     0,     0,     0,     0,     0,     0,
     2336       0,     0,     0,     0,     0,     0,   413,  1245,     0,     0,
     2337     364,     0,     0,     0,     0,     0,     0,     0,  1252,     0,
     2338       0,  1253,     0,  1254,     0,     0,     0,     0,     0,     0,
     2339       0,     0,     0,     0,     0,     0,     0,     0,  1263,  1264,
     2340     508,   508,   212,     0,     0,     0,     0,     0,     0,     0,
     2341       0,     0,     0,   381,   413,   413,     0,     0,  1276,     0,
     2342       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2343       0,     0,   795,   364,     0,     0,   283,   284,     0,   285,
     2344       0,     0,   609,     0,   609,   609,     0,     0,     0,     0,
     2345       0,   609,     0,     0,     0,     0,     0,     0,     0,     0,
     2346       0,   832,   364,     0,  1315,   286,     0,   364,     0,     0,
     2347       0,   287,  1319,     0,     0,   288,   364,   364,   289,   290,
     2348     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
     2349       0,     0,   364,     0,     0,     0,     0,   413,   873,     0,
     2350       0,   413,   876,     0,     0,     0,   703,     0,   878,     0,
     2351     297,     0,   378,     0,     0,   958,     0,     0,    47,    48,
     2352     299,   300,   301,   302,     0,     0,     0,   413,     0,     0,
     2353       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2354       0,     0,  1366,     0,  1367,     0,   736,     0,     0,     0,
     2355     364,   609,     0,     0,     0,     0,     0,     0,   752,     0,
     2356    1376,     0,  1377,     0,   736,     0,     0,   736,     0,     0,
     2357       0,     0,     0,     0,     0,     0,     0,  1384,     0,     0,
     2358     761,     0,     0,     0,     0,   364,     0,     0,     0,   413,
     2359     413,     0,  1402,  1404,     0,     0,     0,     0,     0,     0,
     2360       0,     0,     0,  1409,     0,     0,  1214,     0,   508,     0,
     2361     790,     0,     0,     0,     0,     0,     0,   346,     0,     0,
     2362       0,   752,     0,     0,     0,   508,     0,     0,  1432,     0,
     2363       0,     0,   413,     0,     0,     0,     0,  1439,     0,     0,
     2364    1441,     0,  1443,  1445,  1447,     0,     0,     0,   609,     0,
     2365     609,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2366     609,     0,     0,     0,     0,     0,     0,   851,     0,     0,
     2367       0,     0,     0,     0,     0,   381,     0,     0,     0,     0,
     2368       0,     0,     0,  1478,     0,  1480,     0,  1214,     0,     0,
     2369       0,     0,     0,     0,     0,     0,     0,   508,   508,     0,
     2370       0,     0,     0,  1491,     2,   207,     4,     5,     6,     7,
     2371       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2372      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2373       0,   364,    28,    29,    30,     0,     0,     0,   364,   413,
     2374       0,   413,    33,     0,     0,   413,     0,     0,     0,     0,
     2375       0,   927,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,     0,   736,     0,     0,     0,   609,   609,     0,     0,
     2377      36,     0,    37,   752,    38,   950,     0,    40,    41,     0,
     2378       0,     0,     0,     0,     0,   960,     0,     0,     0,     0,
     2379       0,   967,     0,     0,     0,     0,     0,     0,     0,     0,
     2380     413,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2381       0,     0,     0,     0,     0,  -407,   671,     0,     0,   413,
     2382    1131,     0,    47,    48,     0,     0,     0,     0,     0,   364,
     2383       0,   984,   985,     0,     0,   413,  1142,     0,   609,   609,
     2384    1147,     0,     0,     0,     0,     0,     0,   346,     0,     0,
     2385     364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
     2386       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2387      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2388      27,     0,     0,    28,    29,    30,  1013,     0,     0,     0,
     2389     381,     0,     0,    33,   678,     0,     0,     0,     0,     0,
     2390       0,   283,   284,     0,   285,     0,     0,     0,     0,     0,
     2391       0,     0,     0,     0,     0,     0,   413,     0,   413,   346,
     2392       0,    36,     0,   413,     0,     0,   346,     0,    40,    41,
     2393     286,     0,   609,     0,     0,     0,   287,     0,     0,     0,
     2394     288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
     2395      44,     0,   295,   296,     0,   413,  1228,     0,     0,     0,
     2396       0,     0,     0,     0,     0,     0,   324,   679,     0,     0,
     2397       0,   680,     0,    47,    48,   297,     0,   378,     0,   364,
    24122398       0,     0,     0,    47,    48,   299,   300,   301,   302,     0,
    2413        0,     0,     0,     0,     0,     0,     0,     0,  -134,     1,
     2399       0,     0,   381,     0,     0,     0,     0,   960,   283,   284,
     2400     736,   285,  1023,     0,  1024,     0,     0,  1025,  1026,  1027,
     2401    1028,  1029,  1030,  1031,  1032,     0,     0,  1516,  1033,     0,
     2402    1137,     0,  1034,  1035,     0,    35,     0,   286,     0,     0,
     2403       0,  1152,     0,  1036,     0,   175,   176,  1039,     0,     0,
     2404     289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
     2405     296,   381,     0,  1169,     0,     0,   364,     0,     0,     0,
     2406       0,     0,     0,     0,     0,     0,     0,     0,   960,   960,
     2407       0,     0,   297,     0,   378,     0,     0,   172,     0,     0,
     2408      47,    48,   299,   300,   301,   302,   283,   284,     0,   285,
     2409    1040,     0,     0,     0,  1200,  -134,     0,     0,     0,     0,
     2410       0,     0,     0,     0,     0,     0,     0,     0,     0,   364,
     2411     364,     0,     0,     0,     0,   286,     0,     0,     0,     0,
     2412       0,   287,     0,     0,     0,   288,     0,     0,   289,   290,
     2413     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
     2414       0,     0,     0,     0,     0,     0,     0,     0,   960,     0,
     2415       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2416     505,     0,   378,     0,     0,     0,     0,   851,    47,    48,
     2417     299,   300,   301,   302,     0,     0,     0,     0,     0,     0,
     2418       0,     0,  1255,  1256,     0,     0,     1,     2,   207,     4,
     2419       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2420      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2421      25,    26,    27,     0,     0,    28,    29,    30,    31,     0,
     2422       0,     0,    32,   283,   284,    33,  1022,  1023,     0,  1024,
     2423     364,     0,  1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
     2424       0,     0,     0,  1033,     0,     0,     0,  1034,  1035,     0,
     2425      35,     0,   286,    36,     0,    37,     0,    38,  1036,     0,
     2426    1037,  1038,  1039,     0,     0,   289,   290,   291,   292,   293,
     2427     294,    43,    44,     0,   295,   296,     0,     0,     0,     0,
     2428       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2429       0,     0,     0,     0,     0,     0,     0,   297,     0,   298,
     2430       0,     0,   172,     0,     0,    47,    48,   299,   300,   301,
     2431     302,     0,     0,     0,     0,  1040,     0,     0,     0,   413,
     2432    -134,     0,     0,     0,  1360,     0,   736,     0,     0,     0,
     2433       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2434       0,     0,     0,   413,   413,     0,     0,     0,     0,     0,
     2435       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2436       0,     0,     0,     0,     0,     0,     0,     0,   413,     1,
    24142437       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    24152438      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    24162439      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    24172440      30,    31,     0,     0,     0,    32,   283,   284,    33,   285,
    2418        0,     0,     0,     0,     0,     0,     0,     0,     0,   324,
    2419        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2420        0,     0,     0,     0,     0,   286,    36,     0,    37,     0,
    2421       38,   287,     0,    40,    41,   288,     0,     0,   289,   290,
     2441       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2442      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2443    -298,     0,     0,     0,     0,   286,    36,     0,    37,     0,
     2444      38,   287,    33,    40,    41,   288,     0,     0,   289,   290,
    24222445     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
    24232446       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2424        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2425      297,     0,   298,     0,     0,     0,     0,     0,    47,    48,
     2447      36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2448     297,  -298,   298,     0,     0,     0,     0,     0,    47,    48,
    24262449     299,   300,   301,   302,     2,   207,     4,     5,     6,     7,
    24272450       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    24282451      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    24292452       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
    2430      283,   284,    33,   285,     8,     9,    10,    11,    12,    13,
    2431       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2432       24,    25,    26,    27,     0,     0,    28,    29,    30,   286,
    2433       36,     0,    37,     0,    38,   287,    33,    40,    41,   288,
     2453     283,   284,    33,   285,     0,     0,     0,     0,     0,     0,
     2454       0,   324,     0,     0,     0,     0,     0,     0,     0,     0,
     2455       0,     0,     0,     0,     0,     0,     0,     0,     0,   286,
     2456      36,     0,    37,     0,    38,   287,     0,    40,    41,   288,
    24342457       0,     0,   289,   290,   291,   292,   293,   294,    43,    44,
    24352458       0,   295,   296,     0,     0,     0,     0,     0,     0,     0,
    2436        0,     0,     0,     0,    36,     0,     0,     0,     0,     0,
    2437        0,    40,    41,     0,   297,     0,   343,     0,     0,     0,
     2459       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2460       0,     0,     0,     0,   297,     0,   343,     0,     0,     0,
    24382461       0,   751,   344,    48,   299,   300,   301,   302,     2,   207,
    24392462       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     
    24422465       0,     0,     0,     0,   283,   284,    33,   285,     8,     9,
    24432466      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2444       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2445       28,    29,    30,   286,    36,     0,    37,     0,    38,   287,
     2467      20,    21,    22,    23,    24,    25,    26,    27,  -299,     0,
     2468       0,     0,     0,   286,    36,     0,    37,     0,    38,   287,
    24462469      33,    40,    41,   288,     0,     0,   289,   290,   291,   292,
    24472470     293,   294,    43,    44,     0,   295,   296,     0,     0,     0,
    24482471       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2449        0,     0,     0,     0,     0,   208,    41,     0,   297,     0,
     2472       0,     0,     0,     0,     0,     0,     0,     0,   297,  -299,
    24502473     343,     0,     0,     0,     0,   751,    47,    48,   299,   300,
    24512474     301,   302,     2,   207,     4,     5,     6,     7,     8,     9,
     
    24532476      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    24542477      28,    29,    30,     0,     0,     0,     0,     0,   283,   284,
    2455       33,   285,     0,     0,     0,     0,     0,     0,     0,     0,
    2456        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2457        0,     0,     0,     0,     0,     0,     0,   286,    36,     0,
    2458       37,     0,    38,   287,     0,    40,    41,   288,     0,     0,
     2478      33,   285,     8,     9,    10,    11,    12,    13,    14,    15,
     2479      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2480      26,    27,     0,     0,    28,    29,    30,   286,    36,     0,
     2481      37,     0,    38,   287,    33,    40,    41,   288,     0,     0,
    24592482     289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
    24602483     296,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2461        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2462        0,     0,   297,     0,   343,     0,     0,     0,     0,     0,
     2484       0,     0,    36,     0,     0,     0,     0,     0,     0,    40,
     2485      41,     0,   297,     0,   343,     0,     0,     0,     0,     0,
    24632486     344,    48,   299,   300,   301,   302,     2,   207,     4,     5,
    24642487       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    24652488      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    24662489      26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2467        0,     0,   283,   284,    33,   285,     0,     0,     0,     0,
    2468        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2469        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2470        0,   286,    36,     0,    37,     0,    38,   287,     0,   208,
     2490       0,     0,   283,   284,    33,   285,     8,     9,    10,    11,
     2491      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2492      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2493      30,   286,    36,     0,    37,     0,    38,   287,    33,   208,
    24712494      41,   288,     0,     0,   289,   290,   291,   292,   293,   294,
    24722495      43,    44,     0,   295,   296,     0,     0,     0,     0,     0,
    2473        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2474        0,     0,     0,     0,     0,     0,   297,     0,   982,     0,
    2475        0,     0,     0,     0,   983,    48,   299,   300,   301,   302,
     2496       0,     0,     0,     0,     0,     0,    36,     0,     0,     0,
     2497       0,     0,     0,   208,    41,     0,   297,     0,   981,     0,
     2498       0,     0,     0,     0,   982,    48,   299,   300,   301,   302,
    24762499       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    24772500      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     
    25102533       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25112534       0,     0,     0,     0,     0,     0,     0,     0,     0,    45,
    2512        0,    46,     0,     0,     0,     0,     0,    47,    48,   206,
    2513        2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
     2535       0,    46,     0,     0,     0,  -528,     0,    47,    48,     1,
     2536       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    25142537      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    25152538      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2516       30,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2539      30,    31,     0,     0,     0,    32,     0,     0,    33,    34,
    25172540       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25182541       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2519        0,     0,     0,     0,     0,     0,    36,     0,    37,     0,
    2520       38,    39,     0,   208,    41,    42,     0,     0,     0,     0,
     2542       0,     0,     0,    35,     0,     0,    36,     0,    37,     0,
     2543      38,    39,     0,    40,    41,    42,     0,     0,     0,     0,
    25212544       0,     0,     0,     0,    43,    44,     0,     0,     0,     0,
    25222545       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25232546       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2524       45,     0,   209,     0,     0,     0,     0,     0,    47,    48,
    2525        1,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    2526       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2527       21,    22,    23,    24,    25,    26,    27,  -298,     0,    28,
    2528       29,    30,    31,     0,     0,     0,    32,     0,     0,    33,
    2529        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2530        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2532        0,    38,     0,     0,    40,    41,     0,     0,  -298,     1,
    2533        2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    2534       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2535       22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2536       30,    31,     0,    46,     0,    32,     0,     0,    33,    47,
    2537       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2538        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2539        0,     0,     0,     0,     0,     0,    36,     0,    37,     0,
    2540       38,     0,     0,    40,    41,   206,     2,   207,     4,     5,
    2541        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2542       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2543       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2544        0,     0,    46,     0,    33,     0,     0,     0,    47,    48,
    2545        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2546        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2547        0,     0,    36,     0,    37,     0,    38,     0,     0,   208,
    2548       41,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2547      45,     0,    46,     0,     0,     0,     0,     0,    47,    48,
     2548     206,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    25492549      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    25502550      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2551       29,    30,     0,     0,     0,     0,     0,     0,   209,    33,
    2552        0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
     2551      29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
     2552       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25532553       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25542554       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
     
    25582558       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25592559       0,    45,     0,   209,     0,     0,     0,     0,     0,    47,
    2560       48,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2560      48,     1,     2,   207,     4,     5,     6,     7,     8,     9,
     2561      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2562      20,    21,    22,    23,    24,    25,    26,    27,  -298,     0,
     2563      28,    29,    30,    31,     0,     0,     0,    32,     0,     0,
     2564      33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2565       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2566       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2567      37,     0,    38,     0,     0,    40,    41,     0,     0,  -298,
     2568       1,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    25612569      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    25622570      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2563       29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
     2571      29,    30,    31,     0,    46,     0,    32,     0,     0,    33,
     2572      47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
     2573       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2574       0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
     2575       0,    38,     0,     0,    40,    41,   206,     2,   207,     4,
     2576       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2577      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2578      25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
     2579       0,     0,     0,    46,     0,    33,     0,     0,     0,    47,
     2580      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2581       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2582       0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
     2583     208,    41,     2,   207,     4,     5,     6,     7,     8,     9,
     2584      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2585      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2586      28,    29,    30,     0,     0,     0,     0,     0,     0,   209,
     2587      33,     0,     0,     0,     0,    47,    48,     0,     0,     0,
     2588       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2589       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2590      37,     0,    38,    39,     0,   208,    41,    42,     0,     0,
     2591       0,     0,     0,     0,     0,     0,    43,    44,     0,     0,
    25642592       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25652593       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2566        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2567        0,    38,     0,     0,    40,    41,     2,   207,     4,     5,
    2568        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2594       0,     0,    45,     0,   209,     0,     0,     0,     0,     0,
     2595      47,    48,     2,   207,     4,     5,     6,     7,     8,     9,
     2596      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2597      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2598      28,    29,    30,     0,     0,     0,     0,     0,     0,     0,
     2599      33,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    25692600      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2570       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2571        0,     0,  -407,   671,    33,     0,     0,     0,     0,    47,
    2572       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2601      26,    27,     0,     0,    28,    29,    30,     0,    36,     0,
     2602      37,     0,    38,     0,    33,    40,    41,     0,     0,     0,
    25732603       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2574        0,     0,    36,     0,    37,     0,    38,     0,     0,    40,
    2575       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2604       0,     0,     0,     0,     0,     0,     0,     0,     0,  1340,
     2605       0,     0,    36,     0,     0,     0,     0,     0,     0,    40,
     2606      41,     0,     0,     0,   671,     0,     0,     0,     0,     0,
     2607      47,    48,     2,   207,     4,     5,     6,     7,     8,     9,
     2608      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2609      20,    21,    22,    23,    24,    25,    26,    27,   258,     0,
     2610      28,    29,    30,     0,    47,    48,     0,     0,     0,     0,
     2611      33,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2612      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2613      26,    27,     0,     0,    28,    29,    30,     0,    36,     0,
     2614      37,     0,    38,     0,    33,    40,    41,     0,     0,     0,
    25762615       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2577        0,     0,     0,  1335,     0,     0,     0,     0,     0,     0,
    2578        0,     0,     0,     0,     0,     0,     0,     0,   671,     0,
    2579        0,     0,     0,     0,    47,    48,     2,   207,     4,     5,
    2580        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2581       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2582       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2583        0,     0,     0,     0,    33,     0,     8,     9,    10,    11,
    2584       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2585       22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2586       30,     0,    36,     0,    37,     0,    38,     0,    33,    40,
    2587       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2616       0,     0,     0,     0,     0,     0,     0,     0,     0,  1342,
     2617       0,     0,    36,     0,     0,     0,     0,     0,     0,    40,
     2618      41,     0,     0,     0,   671,     0,     0,     0,     0,     0,
     2619      47,    48,     2,   207,     4,     5,     6,     7,     8,     9,
     2620      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2621      20,    21,    22,    23,    24,    25,    26,    27,    46,     0,
     2622      28,    29,    30,     0,    47,    48,     0,     0,     0,     0,
     2623      33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25882624       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2589        0,     0,     0,  1337,     0,     0,    36,     0,     0,     0,
    2590        0,     0,     0,    40,    41,     0,     0,     0,   671,     0,
    2591        0,     0,     0,     0,    47,    48,     2,   207,     4,     5,
    2592        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2593       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2594       26,    27,    46,     0,    28,    29,    30,     0,    47,    48,
    2595        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2625       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2626      37,     0,    38,     0,     0,   208,    41,     2,   207,     4,
     2627       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2628      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2629      25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
     2630       0,     0,     0,     0,   271,    33,     0,     0,     0,     0,
     2631      47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
    25962632       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2633       0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
     2634      40,    41,     2,   207,     4,     5,     6,     7,     8,     9,
     2635      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2636      20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
     2637      28,    29,    30,     0,     0,     0,     0,     0,     0,   671,
     2638      33,     0,     0,     0,     0,    47,    48,     0,     0,     0,
    25972639       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2598        0,     0,    36,     0,    37,     0,    38,     0,     0,   208,
    2599       41,     2,   207,     4,     5,     6,     7,     8,     9,    10,
     2640       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
     2641      37,     0,    38,     0,     0,   208,    41,     8,     9,    10,
    26002642      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    26012643      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2602       29,    30,     0,     0,     0,     0,     0,     0,   271,    33,
    2603        0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    2604        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2605        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2606        0,    38,     0,     0,    40,    41,     2,   207,     4,     5,
    2607        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2608       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2609       26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
    2610        0,     0,     0,   671,    33,     0,     0,     0,     0,    47,
    2611       48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2612        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2613        0,     0,    36,     0,    37,     0,    38,     0,     0,   208,
    2614       41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2615       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2616       27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
    2617        0,   283,   284,    33,   285,     0,     0,     0,   209,     0,
    2618        0,     0,     0,     0,    47,    48,     0,     0,     0,     0,
    2619        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2620      286,    36,     0,     0,     0,     0,   287,     0,    40,    41,
    2621      288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
    2622       44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
    2623        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2624        0,     0,     0,     0,     0,   297,     0,   516,     0,     0,
    2625      172,     0,     0,    47,    48,   299,   300,   301,   302,     8,
    2626        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2627       19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    2628        0,    28,    29,    30,     0,     0,     0,     0,     0,   283,
    2629      284,    33,   285,     8,     9,    10,    11,    12,    13,    14,
    2630       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2631       25,    26,    27,     0,     0,    28,    29,    30,   286,    36,
    2632        0,     0,     0,     0,   287,    33,    40,    41,   288,     0,
    2633        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2634      295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    2635        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
    2636      208,    41,     0,   297,   -40,   298,     0,     0,     0,     0,
    2637        0,    47,    48,   299,   300,   301,   302,     8,     9,    10,
    2638       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2639       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2640       29,    30,     0,     0,     0,    47,    48,   283,   284,    33,
    2641      285,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2642        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2644      29,    30,     0,     0,     0,     0,     0,   283,   284,    33,
     2645     285,     0,     0,     0,   209,     0,     0,     0,     0,     0,
     2646      47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
    26432647       0,     0,     0,     0,     0,     0,   286,    36,     0,     0,
    26442648       0,     0,   287,     0,    40,    41,   288,     0,     0,   289,
     
    26462650       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26472651       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2648        0,   297,     0,   298,     0,     0,     0,     0,     0,    47,
     2652       0,   297,     0,   516,     0,     0,   172,     0,     0,    47,
    26492653      48,   299,   300,   301,   302,     8,     9,    10,    11,    12,
    26502654      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26512655      23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2652        0,     0,     0,     0,     0,   283,   284,    33,   285,     0,
    2653        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2654        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2655        0,     0,     0,     0,   286,    36,     0,     0,     0,     0,
    2656      287,     0,    40,    41,   288,     0,     0,   289,   290,   291,
     2656       0,     0,     0,     0,     0,   283,   284,    33,   285,     8,
     2657       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2658      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2659       0,    28,    29,    30,   286,    36,     0,     0,     0,     0,
     2660     287,    33,    40,    41,   288,     0,     0,   289,   290,   291,
    26572661     292,   293,   294,    43,    44,     0,   295,   296,     0,     0,
    2658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2659        0,     0,     0,     0,     0,     0,     0,     0,     0,   297,
    2660        0,   343,     0,     0,     0,     0,     0,    47,    48,   299,
     2662       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
     2663       0,     0,     0,     0,     0,     0,   208,    41,     0,   297,
     2664     -40,   298,     0,     0,     0,     0,     0,    47,    48,   299,
    26612665     300,   301,   302,     8,     9,    10,    11,    12,    13,    14,
    26622666      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    26632667      25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2664        0,     0,     0,   283,   284,    33,   285,     0,     0,     0,
     2668       0,    47,    48,   283,   284,    33,   285,     0,     0,     0,
    26652669       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26662670       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    26692673     294,    43,    44,     0,   295,   296,     0,     0,     0,     0,
    26702674       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2671        0,     0,     0,     0,     0,     0,     0,   297,     0,   378,
     2675       0,     0,     0,     0,     0,     0,     0,   297,     0,   298,
    26722676       0,     0,     0,     0,     0,    47,    48,   299,   300,   301,
    2673      302,   465,     2,   207,     4,     5,     6,     7,     8,     9,
    2674       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2675       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2676       28,    29,    30,     0,     0,     0,     0,     0,     0,     0,
    2677       33,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2677     302,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26782678      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2679       27,     0,     0,    28,    29,    30,     0,     0,    36,     0,
    2680       37,     0,    38,    33,   678,    40,    41,     0,     0,     0,
     2679      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2680       0,   283,   284,    33,   285,     0,     0,     0,     0,     0,
     2681       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2682       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2683     286,    36,     0,     0,     0,     0,   287,     0,    40,    41,
     2684     288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
     2685      44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2686       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2687       0,     0,     0,     0,     0,   297,     0,   343,     0,     0,
     2688       0,     0,     0,    47,    48,   299,   300,   301,   302,     8,
     2689       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2690      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
     2691       0,    28,    29,    30,     0,     0,     0,     0,     0,   283,
     2692     284,    33,   285,     0,     0,     0,     0,     0,     0,     0,
     2693       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2694       0,     0,     0,     0,     0,     0,     0,     0,   286,    36,
     2695       0,     0,     0,     0,   287,     0,    40,    41,   288,     0,
     2696       0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
     2697     295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
     2698       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2699       0,     0,     0,   297,     0,   378,     0,     0,     0,     0,
     2700       0,    47,    48,   299,   300,   301,   302,     8,     9,    10,
     2701      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2702      21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
     2703      29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
     2704       0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
     2705      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2706      21,    22,    23,    24,    25,    26,    27,    36,     0,    28,
     2707      29,    30,    39,     0,    40,    41,    42,     0,     0,    33,
     2708       0,     0,     0,     0,     0,    43,    44,     0,     0,     0,
     2709       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2710       0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
     2711       0,    45,    39,    46,   208,    41,    42,     0,     0,    47,
     2712      48,     0,     0,     0,     0,    43,    44,     0,     0,     0,
     2713       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2714       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2715       0,    45,     0,   271,     0,     0,     0,     0,     0,    47,
     2716      48,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2717      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2718      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2719       0,     0,     0,    33,   678,     0,     0,     0,     0,     0,
    26812720       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26822721      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    26832722      27,    36,     0,    28,    29,    30,     0,     0,    40,    41,
    2684        0,     0,     0,    33,   678,     0,     0,    -3,     0,     0,
     2723       0,     0,     0,    33,   678,     0,     0,     0,     0,     0,
    26852724       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26862725       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26872726       0,    36,     0,     0,     0,     0,     0,   679,    40,    41,
    2688        0,   680,     0,    47,    48,     0,     8,     9,    10,    11,
     2727       0,  1078,     0,    47,    48,     0,     8,     9,    10,    11,
    26892728      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    26902729      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
    2691       30,     0,     0,     0,     0,     0,     0,   679,    33,   678,
    2692        0,  1073,     0,    47,    48,     0,     8,     9,    10,    11,
     2730      30,     0,     0,     0,     0,     0,     0,   679,    33,     0,
     2731       0,  1205,     0,    47,    48,     0,     8,     9,    10,    11,
    26932732      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    26942733      22,    23,    24,    25,    26,    27,    36,     0,    28,    29,
    2695       30,     0,     0,    40,    41,     0,     0,     0,    33,     8,
     2734      30,     0,     0,   208,    41,     0,     0,     0,    33,     8,
    26962735       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26972736      19,    20,    21,    22,    23,    24,    25,    26,    27,     0,
    26982737       0,    28,    29,    30,     0,     0,    36,     0,     0,     0,
    2699        0,    33,   679,   208,    41,     0,  1200,     0,    47,    48,
     2738       0,    33,   271,    40,    41,     0,     0,     0,    47,    48,
    27002739       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27012740       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
    27022741       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2703        0,     0,   271,     0,     0,     0,     0,     0,    47,    48,
     2742       0,     0,   339,     0,     0,     0,     0,     0,    47,    48,
    27042743       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    27052744      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2706       24,    25,    26,    27,     0,   339,    28,    29,    30,     0,
    2707        0,    47,    48,     0,     0,     0,    33,     8,     9,    10,
    2708       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2709       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2710       29,    30,     0,     0,    36,     0,     0,     0,     0,    33,
    2711        0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
    2712        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2713        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
    2714        0,     0,     0,     0,    40,    41,     0,     0,     0,     0,
    2715      679,     0,     0,     0,     0,     0,    47,    48,     0,     0,
     2745      24,    25,    26,    27,     0,   679,    28,    29,    30,     0,
     2746       0,    47,    48,     0,     0,     0,    33,     0,     2,   207,
     2747       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2748      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2749      24,    25,    26,    27,    36,     0,    28,    29,    30,     0,
     2750       0,    40,    41,     0,     0,     0,    33,     0,     0,     0,
    27162751       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27172752       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2718        0,     0,     0,   671,     0,     0,     0,     0,     0,    47,
    2719       48,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    2720       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2721       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2722       29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
    2723        0,   283,   284,     0,   285,  1024,     0,  1025,     0,     0,
    2724     1026,  1027,  1028,  1029,  1030,  1031,  1032,  1033,     0,     0,
    2725     1511,  1034,     0,     0,     0,  1035,  1036,    36,    35,    37,
    2726      286,    38,     0,     0,    40,    41,  1037,     0,     0,     0,
    2727      288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
    2728       44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2753       0,     0,     0,     0,    36,     0,    37,     0,    38,     0,
     2754     671,    40,    41,     0,     0,     0,    47,    48,   283,   284,
     2755       0,   285,  1023,     0,  1024,     0,     0,  1025,  1026,  1027,
     2756    1028,  1029,  1030,  1031,  1032,     0,     0,     0,  1033,     0,
     2757       0,     0,  1034,  1035,     0,    35,     0,   286,     0,  -420,
     2758       0,     0,     0,  1036,     0,   175,   176,  1039,     0,     0,
     2759     289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
     2760     296,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27292761       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2730        0,     0,  -420,     0,     0,   297,     0,   378,     0,     0,
    2731      172,     0,     0,    47,    48,   299,   300,   301,   302,     0,
    2732        0,   283,   284,  1038,   285,  1024,     0,  1025,  -134,     0,
    2733     1026,  1027,  1028,  1029,  1030,  1031,  1032,  1033,     0,     0,
    2734        0,  1034,     0,     0,     0,  1035,  1036,     0,    35,     0,
    2735      286,     0,     0,     0,     0,     0,  1037,     0,     0,     0,
    2736      288,     0,     0,   289,   290,   291,   292,   293,   294,    43,
    2737       44,     0,   295,   296,     0,     0,     0,     0,     0,     0,
     2762       0,     0,   297,     0,   378,     0,     0,   172,     0,     0,
     2763      47,    48,   299,   300,   301,   302,     0,     0,     0,     0,
     2764    1040,     0,     0,     0,     0,  -134,     2,   207,     4,     5,
     2765       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2766      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2767      26,    27,     0,     0,    28,    29,    30,     0,     0,     0,
     2768       0,     0,     0,     0,    33,     0,   283,   284,     0,   285,
     2769    1023,     0,  1024,  1388,  1389,  1025,  1026,  1027,  1028,  1029,
     2770    1030,  1031,  1032,     0,     0,  1516,  1033,     0,     0,     0,
     2771    1034,  1035,    36,    35,    37,   286,    38,     0,     0,    40,
     2772      41,  1036,     0,   175,   176,  1039,     0,     0,   289,   290,
     2773     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
     2774       0,     0,     0,  1299,     0,     0,     0,     0,     0,     0,
    27382775       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2739        0,     0,     0,     0,     0,   297,     0,   378,     0,     0,
    2740      172,     0,     0,    47,    48,   299,   300,   301,   302,     0,
    2741        0,     0,     0,  1038,     0,     0,     0,     0,  -134,     2,
    2742      207,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2743       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2744       23,    24,    25,    26,    27,     0,     0,    28,    29,    30,
    2745        0,     0,     0,     0,     0,     0,     0,    33,     0,   283,
    2746      284,     0,   285,  1024,     0,  1025,  1383,  1384,  1026,  1027,
    2747     1028,  1029,  1030,  1031,  1032,  1033,     0,     0,  1511,  1034,
    2748        0,     0,     0,  1035,  1036,    36,    35,    37,   286,    38,
    2749        0,     0,    40,    41,  1037,     0,     0,     0,   288,     0,
    2750        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2751      295,   296,     0,     0,     0,     0,  1294,     0,     0,     0,
     2776     297,     0,   378,     0,     0,   172,     0,     0,    47,    48,
     2777     299,   300,   301,   302,     0,     0,   283,   284,  1040,   285,
     2778    1023,     0,  1024,  1388,  1389,  1025,  1026,  1027,  1028,  1029,
     2779    1030,  1031,  1032,     0,     0,     0,  1033,     0,     0,     0,
     2780    1034,  1035,     0,    35,     0,   286,     0,     0,     0,     0,
     2781       0,  1036,     0,   175,   176,  1039,     0,     0,   289,   290,
     2782     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
    27522783       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2753        0,     0,     0,   297,     0,   378,     0,     0,   172,     0,
    2754        0,    47,    48,   299,   300,   301,   302,     0,     0,   283,
    2755      284,  1038,   285,  1024,     0,  1025,  1383,  1384,  1026,  1027,
    2756     1028,  1029,  1030,  1031,  1032,  1033,     0,     0,     0,  1034,
    2757        0,     0,     0,  1035,  1036,     0,    35,     0,   286,     0,
    2758        0,     0,     0,     0,  1037,     0,     0,     0,   288,     0,
    2759        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2760      295,   296,     0,     0,     0,     0,     0,     0,     0,     0,
    27612784       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2762        0,     0,     0,   297,     0,   378,     0,     0,   172,     0,
    2763        0,    47,    48,   299,   300,   301,   302,     0,     0,   283,
    2764      284,  1038,   285,  1024,     0,  1025,     0,     0,  1026,  1027,
    2765     1028,  1029,  1030,  1031,  1032,  1033,     0,     0,     0,  1034,
    2766        0,     0,     0,  1035,  1036,     0,    35,     0,   286,     0,
    2767        0,     0,     0,     0,  1037,     0,     0,     0,   288,     0,
    2768        0,   289,   290,   291,   292,   293,   294,    43,    44,     0,
    2769      295,   296,     0,     0,     0,     0,     0,     0,   283,   284,
    2770        0,   285,     0,     0,     0,     0,     0,     0,     0,     0,
    2771        0,     0,     0,   297,     0,   378,     0,     0,   172,     0,
    2772        0,    47,    48,   299,   300,   301,   302,   286,     0,     0,
    2773        0,  1038,     0,   287,     0,     0,     0,   288,     0,     0,
    2774      289,   290,   291,   292,   293,   294,    43,    44,     0,   295,
    2775      296,     0,     0,     0,     0,     0,     0,   283,   284,     0,
    2776      285,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2777        0,     0,   297,     0,   378,     0,     0,   959,     0,     0,
    2778       47,    48,   299,   300,   301,   302,   286,     0,     0,     0,
    2779        0,     0,   287,     0,     0,     0,   288,     0,     0,   289,
    2780      290,   291,   292,   293,   294,    43,    44,     0,   295,   296,
    2781        0,     0,     0,     0,     0,     0,   283,   284,     0,   285,
    2782        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2783        0,   297,     0,   378,     0,     0,     0,     0,     0,    47,
    2784       48,   299,   300,   301,   302,   286,     0,     0,     0,     0,
    2785        0,   287,     0,     0,     0,   288,     0,     0,   289,   290,
     2785     297,     0,   378,     0,     0,   172,     0,     0,    47,    48,
     2786     299,   300,   301,   302,     0,     0,   283,   284,  1040,   285,
     2787    1023,     0,  1024,     0,     0,  1025,  1026,  1027,  1028,  1029,
     2788    1030,  1031,  1032,     0,     0,     0,  1033,     0,     0,     0,
     2789    1034,  1035,     0,    35,     0,   286,     0,     0,     0,     0,
     2790       0,  1036,     0,   175,   176,  1039,     0,     0,   289,   290,
    27862791     291,   292,   293,   294,    43,    44,     0,   295,   296,     0,
    27872792       0,     0,     0,     0,     0,   283,   284,     0,   285,     0,
    27882793       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2789      505,     0,   378,     0,     0,     0,     0,     0,    47,    48,
    2790      299,   300,   301,   302,   286,     0,     0,     0,     0,     0,
     2794     297,     0,   378,     0,     0,   172,     0,     0,    47,    48,
     2795     299,   300,   301,   302,   286,     0,     0,     0,  1040,     0,
    27912796     287,     0,     0,     0,   288,     0,     0,   289,   290,   291,
    27922797     292,   293,   294,    43,    44,     0,   295,   296,     0,     0,
     
    28122817       0,     0,     0,     0,     0,     0,   297,     0,   378,     0,
    28132818       0,     0,     0,     0,   344,    48,   299,   300,   301,   302,
     2819       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2820      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2821       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
     2822       0,     0,    33,   206,     2,   207,     4,     5,     6,     7,
     2823       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2824      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2825      36,     0,    28,    29,    30,   112,     0,    40,    41,     0,
     2826       0,     0,    33,     0,     0,     0,     0,     0,    43,    44,
     2827       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2828       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2829      36,     0,    37,     0,    38,     0,     0,   208,    41,   465,
    28142830       2,   207,     4,     5,     6,     7,     8,     9,    10,    11,
    28152831      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2816       22,    23,    24,    25,    26,    27,     0,     0,     0,     0,
    2817        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2832      22,    23,    24,    25,    26,    27,     0,     0,    28,    29,
     2833      30,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2834       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2835       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2836       0,     0,     0,     0,     0,     0,    36,     0,    37,     0,
     2837      38,     0,     0,    40,    41,     2,   207,     4,     5,     6,
     2838       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2839      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2840      27,     0,     0,    28,    29,    30,     0,     0,     0,     0,
     2841       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2842       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2843       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2844       0,    36,     0,    37,     0,    38,     0,     0,   208,    41,
    28182845       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    28192846      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2820        0,     0,    28,    29,    30,     0,    36,     0,    37,     0,
    2821       38,    39,    33,   175,   176,    42,     0,     0,     0,     0,
    2822        0,     0,     0,     0,    43,    44,     0,     0,     0,     0,
    2823        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2824       36,     0,     0,     0,     0,   112,     0,    40,    41,     0,
    2825        0,     0,     0,     0,     0,     0,     0,     0,    43,    44,
    2826      206,     2,   207,     4,     5,     6,     7,     8,     9,    10,
    2827       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2828       21,    22,    23,    24,    25,    26,    27,     0,     0,    28,
    2829       29,    30,     0,     0,     0,     0,     0,     0,     0,    33,
     2847       0,     0,    28,    29,    30,   483,   484,   485,   486,     0,
     2848       0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
    28302849       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28312850       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2832        0,     0,     0,     0,     0,     0,     0,    36,     0,    37,
    2833        0,    38,     0,     0,   208,    41,   465,     2,   207,     4,
    2834        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2835       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2836       25,    26,    27,     0,     0,    28,    29,    30,     0,     0,
    2837        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2838        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2839        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2840        0,     0,     0,    36,     0,    37,     0,    38,     0,     0,
    2841       40,    41,     2,   207,     4,     5,     6,     7,     8,     9,
    2842       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2843       20,    21,    22,    23,    24,    25,    26,    27,     0,     0,
    2844       28,    29,    30,     0,     0,     0,     0,     0,     0,     0,
    2845       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2846        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2847        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
    2848       37,     0,    38,     0,     0,   208,    41
     2851      36,     0,     0,     0,     0,     0,     0,    40,    41
    28492852};
    28502853
    28512854#define yypact_value_is_default(yystate) \
    2852   ((yystate) == (-1263))
     2855  ((yystate) == (-1328))
    28532856
    28542857#define yytable_value_is_error(yytable_value) \
     
    28572860static const yytype_int16 yycheck[] =
    28582861{
    2859        0,     1,    45,   118,    45,   240,   520,     0,   186,    45,
    2860      533,   512,   186,   186,   863,   205,   640,   220,   186,   107,
    2861        1,   743,   569,   743,   186,   743,   186,     0,   863,   169,
    2862      170,   616,   349,     0,    34,   598,    34,   257,   188,   596,
    2863        0,    34,   186,  1023,   491,    45,  1005,  1006,   495,   349,
    2864      282,    51,   596,   598,   686,     0,     1,    45,    51,  1304,
    2865      187,    34,  1006,    45,   596,    65,    45,    34,    68,   157,
    2866      728,    71,    65,   364,    34,    68,   596,   368,    71,   114,
    2867     1035,  1036,   689,   596,   121,    45,   187,   202,   266,    34,
    2868       71,    51,   266,   266,    84,    42,     0,   417,   266,   596,
    2869      137,   136,   114,    59,   266,    65,   266,   107,    68,    42,
    2870      596,    71,   262,   263,   297,   115,   436,   600,   118,   119,
    2871      631,   604,   266,    68,   444,    66,    71,   969,    30,     0,
    2872       34,    54,    47,    48,   114,   646,    47,    48,     0,     1,
    2873      267,   599,   625,   186,     0,   186,   629,   605,   148,   149,
    2874      186,   345,   108,  1113,  1109,   111,   149,   157,   158,  1404,
    2875     1383,   161,    42,    34,   630,   631,   267,   681,   161,   116,
    2876      487,   893,    34,   893,  1016,   893,  1438,    11,    34,    81,
    2877      646,   425,   426,    47,    48,   114,   186,   187,  1023,   149,
    2878       67,   114,   712,   704,   187,   112,   137,   417,   186,   712,
    2879      108,   161,   202,   111,   186,   120,   409,   186,   119,    71,
    2880      210,  1473,    68,  1475,   100,   712,   436,   210,   114,   136,
    2881      116,    75,   222,   266,   444,   266,   186,   187,   117,   222,
    2882      266,  1097,   480,  1456,   114,  1101,   116,   114,   704,   786,
    2883      240,    32,   425,   426,   462,   802,    42,    42,   134,   493,
    2884      210,   814,   252,   341,   252,   119,    75,   889,   802,   252,
    2885      260,  1205,   222,   219,    84,   265,   266,   267,   512,   814,
    2886      802,   503,   272,  1233,   267,  1235,  1236,   222,   405,   252,
    2887      395,    75,   802,   137,   257,   252,   480,   894,   912,   802,
    2888       51,  1271,   252,    84,    85,   586,   116,   297,   598,  1258,
    2889     1259,    42,  1488,   122,   405,   802,   266,   252,   423,    90,
    2890      310,   219,   119,   101,   429,  1259,   802,   273,   114,   114,
    2891      116,   116,   505,   898,   280,   900,   326,   510,    42,  1515,
    2892      513,   331,   576,   940,   121,   101,   627,   118,   331,   127,
    2893     1488,   341,  1191,   137,   133,   345,   804,   136,   252,   349,
    2894      350,   478,     3,   836,   115,   675,  1191,   121,   921,   115,
    2895     1508,   127,   121,   920,   364,   273,   222,  1515,   368,   114,
    2896      115,   331,   280,   114,  1032,   116,   920,   478,   137,   135,
    2897       75,   252,   630,   631,   567,  1459,   257,   148,   920,   349,
    2898      252,  1465,   348,    88,    89,   395,   252,   115,   646,   984,
    2899      114,    75,   116,    77,    78,   405,     0,   285,   121,   365,
    2900      115,  1485,   405,   369,    88,    89,  1490,   135,   229,   114,
    2901     1379,   116,   616,   423,   137,   425,   426,   621,   660,   429,
    2902      135,   431,   310,   311,   121,  1379,  1271,   248,  1387,   124,
    2903      125,   955,   116,   926,   417,   405,   664,  1427,   121,   210,
    2904      137,   121,   452,   244,  1434,   675,   704,   365,   116,   121,
    2905      118,   369,    75,   436,   137,   135,   967,   345,    93,    94,
    2906      470,   444,  1314,   135,   121,    88,    89,   135,   478,   240,
    2907      480,   701,   482,   930,  1108,   478,   114,   487,   116,   482,
    2908      137,   739,  1099,   493,   350,     3,   114,   814,   116,   731,
    2909      650,   641,   380,   116,   795,   505,  1486,   507,     0,   482,
    2910      510,   272,   512,   513,   814,   482,   121,   115,  1081,   114,
    2911      520,   116,   482,   121,   524,    95,    96,   487,   121,  1371,
    2912     1372,   121,   137,   648,  1483,   993,   994,   482,   114,  1488,
    2913      116,   121,    75,   114,   137,   739,   417,   137,   121,   310,
    2914      114,  1158,  1159,  1067,   681,    88,    89,   137,  1072,  1508,
    2915      130,   131,   135,   121,   782,   436,  1515,   117,   568,   569,
    2916      136,   121,   114,   444,   792,   121,   576,   121,   482,   137,
    2917      681,   121,   114,   116,   345,   803,   586,   587,   379,   115,
    2918      590,   137,  1427,   137,   114,   121,   596,   137,   598,  1434,
    2919        4,     5,     6,     7,     8,     9,     0,     1,   925,   480,
    2920      117,   482,   114,  1271,   121,   471,   616,   114,   122,    75,
    2921      482,   621,   115,   623,   128,   129,   482,   627,   121,   115,
    2922      630,   631,    88,    89,   115,   121,   596,   115,   598,    75,
    2923       34,    77,    78,    79,   892,   117,   646,   850,   648,   121,
    2924      115,  1486,    88,    89,    10,    11,    12,    13,    14,   120,
    2925      115,   617,   115,   115,   425,   426,   121,   870,    72,   121,
    2926       74,   549,   550,   551,    68,   117,   632,    71,   678,   121,
    2927       75,   681,   114,   587,   116,   115,    42,    82,  1346,   645,
    2928       85,   121,    87,    88,    89,     0,     1,   932,   892,   490,
    2929      115,   492,   675,   117,   704,   705,   706,   121,   114,   617,
    2930      116,   114,   712,   713,    70,   893,   856,   115,   115,   893,
    2931      893,   681,   114,   121,   632,   893,    31,    32,   701,    34,
    2932      115,   893,   493,   893,    84,   115,   121,   645,   114,   739,
    2933       45,   121,   115,   743,   744,   114,    51,   116,   121,   893,
    2934      115,   512,   712,   713,    59,   115,   121,  1005,   137,  1366,
    2935       65,   121,   618,    68,   158,  1288,    71,   114,   895,   116,
    2936     1492,   727,  1492,  1431,  1492,  1433,  1383,   115,   114,    84,
    2937       85,   115,   115,   121,  1002,  1003,   786,   121,   121,   114,
    2938      984,   114,   115,   116,   895,   795,    75,   797,    77,    78,
    2939       79,    67,   802,   108,   675,   115,   111,   997,   137,    88,
    2940       89,   121,   115,   118,   814,   576,    97,    98,   121,   727,
    2941       51,     4,     5,     6,     7,     8,     9,   115,   222,  1487,
    2942      701,   120,   121,   121,   119,   114,   692,   115,   116,  1057,
    2943     1058,   137,   802,   119,   149,   636,    61,    62,  1455,  1456,
    2944      706,   137,    35,   114,   814,   616,   161,   119,   252,   505,
    2945      621,   507,    75,   863,   510,  1097,    79,   513,   739,  1101,
    2946     1102,   114,   750,   120,   121,    88,    89,   114,  1018,    84,
    2947     1128,   186,   187,   123,   115,   885,    47,    48,     1,    72,
    2948      863,    74,   892,   893,   685,   895,   687,   202,  1114,  1115,
    2949      691,   114,   132,   116,   133,   210,    99,   907,   116,   122,
    2950      123,   552,   553,    75,   219,    77,    78,   222,   863,   117,
    2951      920,   921,   554,   555,   229,   925,    88,    89,   114,   117,
    2952      116,   931,   932,   893,  1128,   895,   122,   123,   115,   244,
    2953     1067,   797,   115,   248,   115,  1072,   115,   252,   253,   115,
    2954      931,   115,   114,   116,  1468,   955,   114,   119,   117,   863,
    2955      136,   266,   267,   560,   561,   925,  1067,   119,   273,   119,
    2956      121,  1072,   119,   114,  1089,   280,   114,   115,   116,   210,
    2957      136,   885,   115,  1215,   984,  1203,   931,   115,  1171,  1172,
    2958      117,  1174,   863,   556,   557,   558,   559,   117,  1181,   117,
    2959     1183,   863,   121,  1517,   135,  1005,  1006,   863,    31,   135,
    2960     1258,  1205,   114,   115,   116,     4,     5,     6,     7,     8,
    2961        9,   892,  1240,  1023,   135,    75,   331,    77,    78,  1247,
    2962     1248,  1249,    75,   115,    77,    78,   115,   431,    88,    89,
    2963      114,   272,   116,   348,   349,    88,    89,     3,   122,   123,
    2964     1023,   114,   115,   116,    10,    11,    12,    13,    14,   119,
    2965      365,   120,  1062,   115,   369,   856,   297,  1067,   121,   931,
    2966      114,   862,  1072,  1305,   379,   120,   119,  1309,  1023,   310,
    2967      120,  1081,   115,    72,   135,    74,    42,   115,   482,  1089,
    2968      395,   137,  1310,    61,    62,    63,   121,     1,   462,   115,
    2969      405,   114,    75,   116,    77,    78,   984,  1067,   115,   122,
    2970      123,   902,  1072,   121,    70,    88,    89,   115,   423,  1023,
    2971      115,   115,   115,   115,   429,     3,    31,   115,  1128,   115,
    2972      524,   987,    10,    11,    12,    13,    14,   115,   115,   115,
    2973      253,   114,   121,    75,   115,  1023,   119,    51,   137,    68,
    2974       82,   115,  1023,    85,   115,    87,    88,    89,   115,  1342,
    2975      465,  1023,   120,   115,    42,   470,   136,  1023,   959,  1169,
    2976     1170,   932,   135,   478,   115,    72,  1408,   482,    75,   117,
    2977      117,    78,   487,    80,   116,   490,   115,   492,   115,  1170,
    2978       87,  1191,    70,   587,    75,   121,    77,    78,    79,   115,
    2979      119,   135,   114,   107,   121,  1205,     3,    88,    89,  1209,
    2980      119,   115,   115,    10,    11,    12,    13,    14,  1191,    75,
    2981      115,   452,   527,   984,  1169,  1170,    82,   532,  1209,    85,
    2982      115,    87,    88,    89,   121,   115,   630,   631,   115,   121,
    2983      115,   135,   161,   114,   148,    42,  1191,  1362,   121,   114,
    2984      114,   114,   646,   157,   114,   117,   115,  1128,  1258,  1259,
    2985      116,   137,  1053,   120,  1209,   115,  1266,  1502,   120,   115,
    2986      119,  1271,   133,    70,   505,   580,   507,   863,   120,   510,
    2987      115,   117,   513,   137,   121,   117,   115,  1191,   115,   117,
    2988       50,   596,   117,   598,   117,   115,   117,   137,  1271,   117,
    2989      664,   117,   206,   222,  1304,   115,   210,   137,  1170,   120,
    2990      704,   137,   617,  1169,  1492,   137,   213,   120,  1492,  1492,
    2991     1191,  1266,   137,  1304,  1492,   115,  1271,   632,   135,  1191,
    2992     1492,   636,  1492,   120,  1205,  1191,   240,   117,    86,   117,
    2993      645,   260,   647,   648,   649,    86,   265,  1209,  1492,    90,
    2994       91,    92,   465,  1468,   117,   117,   117,   115,   117,  1304,
    2995      115,   117,  1362,   114,   114,   114,  1493,  1271,   272,    63,
    2996      115,   275,   115,   114,  1165,   116,   681,   118,   119,  1379,
    2997      685,   119,   687,   280,   114,    75,   691,    77,    78,    79,
    2998     1517,   137,  1493,   297,   699,   117,   117,   115,    88,    89,
    2999     1271,   117,   115,   101,  1404,  1361,   310,   712,   713,  1271,
    3000     1266,   114,   101,   114,   527,  1271,  1517,   137,   782,   532,
    3001      120,    45,   727,  1404,   114,   121,   116,  1427,   792,   115,
    3002      115,   350,   122,   123,  1434,   115,  1436,   341,  1438,   803,
    3003     1026,   345,  1304,   115,   135,   135,   115,   678,   115,  1492,
    3004      137,  1492,   101,  1361,  1427,   352,  1492,   354,   137,  1404,
    3005      364,  1434,   101,    57,   368,   664,    86,   580,  1468,   863,
    3006       90,    91,    92,  1473,   137,  1475,   137,   115,     0,     1,
    3007      115,   117,  1427,   137,   115,   115,  1486,   120,   117,  1434,
    3008      117,   885,  1492,  1493,   114,   137,   116,   802,   118,   119,
    3009     1493,   114,  1502,   137,   120,    99,    75,   115,   120,   814,
    3010       79,   430,    34,  1486,   115,   137,   115,  1517,   115,    88,
    3011       89,   425,   426,  1427,  1517,  1038,   562,   564,   563,    51,
    3012     1434,   565,  1492,   964,   647,   566,   649,   931,  1191,  1348,
    3013     1456,  1486,  1404,   440,  1527,   114,  1281,  1102,   452,    71,
    3014        0,   856,   471,   122,   123,  1309,  1427,   862,  1434,  1053,
    3015     1072,   465,   678,  1434,   678,  1427,   691,   908,   900,   580,
    3016      959,  1427,  1434,   856,   642,   928,   716,   568,  1434,  1209,
    3017      482,   727,  1486,   782,    34,   107,   699,   491,   893,   493,
    3018      895,   495,    -1,   792,   568,    -1,   568,   902,    -1,    -1,
    3019      194,   505,    -1,   507,   803,  1191,   510,    -1,   512,   513,
    3020       -1,  1005,  1006,    -1,    -1,  1486,    -1,    -1,    -1,    -1,
    3021      925,    71,    -1,   217,  1486,    -1,    -1,   149,    -1,  1023,
    3022     1486,    -1,    -1,   227,    -1,   157,   158,    -1,  1002,  1003,
    3023       -1,   946,    -1,    -1,    -1,    75,    10,    11,    12,    13,
    3024       14,    -1,    82,    -1,   959,    85,    -1,    87,    88,    89,
    3025      965,    -1,    -1,    -1,   969,   187,    -1,    -1,    -1,    -1,
    3026       -1,   590,   576,    -1,    -1,    -1,   907,    -1,    42,    -1,
    3027      202,    -1,   586,   205,   206,    -1,   116,   689,   210,    -1,
    3028       -1,    -1,    -1,  1057,  1058,    -1,    -1,    -1,    -1,   618,
    3029       -1,  1287,    -1,   297,   623,    -1,    70,    -1,   158,   231,
    3030       -1,  1016,   616,   235,    -1,   237,    -1,   621,    -1,    -1,
    3031       -1,    -1,    -1,   627,   246,    -1,    -1,    -1,    -1,    -1,
    3032      252,    -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,    -1,
    3033       -1,  1502,    -1,    -1,    -1,   267,    -1,    -1,  1053,    -1,
    3034      114,    75,   116,   275,  1340,    79,    -1,  1343,   122,   123,
    3035       -1,    -1,  1067,    -1,    88,    89,    75,  1072,    77,    78,
    3036       79,    -1,    -1,   692,   678,  1169,  1170,    -1,   780,    88,
    3037       89,   231,    -1,    -1,  1089,    -1,    -1,   706,   190,    -1,
    3038      114,    -1,    -1,    -1,    -1,   197,    -1,  1191,   122,   123,
    3039       -1,  1387,   252,  1002,  1003,   114,  1392,   257,  1113,    -1,
    3040       -1,    -1,   716,   122,   123,  1209,    -1,    -1,    -1,   341,
    3041       -1,    -1,    -1,   345,    75,    -1,    77,    78,    79,   351,
    3042      727,  1062,    -1,   946,    -1,  1421,    -1,    88,    89,  1203,
    3043       -1,    -1,   364,    -1,    -1,    -1,   368,   441,    -1,    -1,
    3044      852,    -1,   965,    -1,    51,    -1,   969,    -1,  1057,  1058,
    3045     1165,    68,    -1,   114,  1258,  1259,    -1,   269,    65,    -1,
    3046       77,    68,  1266,   467,    71,    -1,  1240,  1271,   797,    -1,
    3047       -1,    -1,    -1,  1247,  1248,  1249,    75,    -1,    77,    78,
    3048       79,   795,   894,    -1,    -1,   417,    -1,    -1,    -1,    88,
    3049       89,   351,    -1,  1016,    -1,    -1,    -1,    -1,    -1,   431,
    3050     1304,   505,   119,    -1,   436,    -1,   510,    -1,    -1,   513,
    3051     1506,    -1,   444,    -1,   326,   114,  1512,   116,  1233,    -1,
    3052     1235,  1236,   334,   122,   123,   337,    -1,  1523,   940,    -1,
    3053      462,  1527,    -1,   465,    -1,    -1,  1310,    -1,    -1,    -1,
    3054       -1,    -1,   149,    -1,   161,    -1,    -1,    -1,   480,    -1,
    3055      482,    -1,    -1,    -1,   161,    -1,    -1,   417,    -1,   491,
    3056      972,    -1,    -1,   495,    -1,    10,    11,    12,    13,    14,
    3057       -1,   431,    -1,    -1,    -1,  1379,   436,    -1,    -1,     0,
    3058      187,    -1,    68,    -1,   444,   397,    -1,    -1,    -1,   401,
    3059     1113,    -1,   524,   907,    -1,    -1,    -1,    42,    84,  1314,
    3060     1404,    -1,   462,   210,    -1,   222,    -1,    -1,  1020,    -1,
    3061       -1,    -1,    -1,    34,    -1,   222,   930,   931,   932,    -1,
    3062      480,    -1,   482,  1427,    -1,    70,    -1,    -1,    -1,    -1,
    3063     1434,  1240,    -1,   119,    -1,    -1,    -1,   569,  1247,  1248,
    3064     1249,    -1,    -1,   260,    -1,    -1,  1361,  1362,   265,    -1,
    3065       71,    -1,    -1,    -1,   586,   587,  1371,  1372,   987,   663,
    3066       -1,    -1,    -1,   280,   524,   477,   598,    -1,   672,   114,
    3067      984,   116,   676,    -1,    -1,   161,    -1,   122,   123,    -1,
    3068       -1,    -1,  1486,    -1,   616,    -1,    -1,  1099,    -1,   621,
    3069       -1,    -1,    -1,    -1,  1409,   627,    -1,    -1,   630,   631,
    3070       -1,  1310,    -1,    75,    -1,    77,    78,    79,    -1,    -1,
    3071     1233,    -1,  1235,  1236,   646,    -1,    88,    89,    -1,    -1,
    3072       -1,    -1,    -1,    -1,   331,    -1,    -1,   587,    -1,    -1,
    3073       -1,    -1,   664,   350,    -1,    -1,   222,   158,    -1,    -1,
    3074       -1,    -1,   114,   675,   116,    -1,  1158,  1159,  1062,    -1,
    3075      122,   123,    -1,  1468,  1469,    -1,   568,   569,    -1,    -1,
    3076       -1,    -1,    75,  1478,    77,    78,    79,    -1,    -1,   701,
    3077      630,   631,   704,    -1,   260,    88,    89,  1492,  1493,   265,
    3078       -1,   713,    -1,    -1,   716,    -1,   646,    -1,    -1,    -1,
    3079       -1,  1314,    -1,    -1,    -1,  1436,    -1,  1438,   405,    -1,
    3080       -1,   114,  1517,   116,   664,    -1,    -1,   739,    -1,   122,
    3081      123,    -1,   744,   430,    75,   675,    77,    78,    79,    -1,
    3082       -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,   446,
    3083       -1,   252,  1473,    -1,  1475,    -1,   257,    -1,    -1,   651,
    3084     1169,   701,    -1,   655,   704,    -1,    -1,    -1,  1371,  1372,
    3085      782,    -1,    -1,   114,   471,    -1,    -1,    -1,    -1,    -1,
    3086      792,   122,   123,   795,   350,    -1,   798,    -1,    -1,    -1,
    3087       -1,   803,    -1,    -1,    -1,    -1,     0,    -1,    -1,   739,
    3088       -1,   813,    -1,   887,    -1,    -1,  1409,    -1,    -1,    -1,
    3089       -1,    -1,    -1,    -1,    -1,  1209,    10,    11,    12,    13,
    3090       14,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3091       34,   102,   103,   104,   105,   106,   107,   108,   109,   110,
    3092      111,   112,   782,    -1,    -1,    -1,    -1,    -1,    42,    -1,
    3093      351,   863,   792,    42,    -1,    -1,    -1,  1266,   798,    -1,
    3094       -1,    -1,    -1,   803,   430,   136,  1469,    71,    -1,    -1,
    3095       -1,    -1,    -1,   885,  1366,  1478,    70,    -1,    -1,    -1,
    3096      892,    70,    -1,   895,    -1,    -1,    75,    -1,    77,    78,
    3097       79,  1383,    -1,   590,   786,    -1,    -1,    -1,    -1,    88,
    3098       89,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,   921,
    3099     1304,    -1,    -1,    -1,    -1,    -1,   417,    -1,   930,   931,
    3100      114,   618,   116,   863,    -1,   114,   623,   116,   122,   123,
    3101      431,    -1,    -1,   122,   123,   436,    -1,     0,    -1,    -1,
    3102       -1,    -1,    -1,   444,    -1,   885,    -1,    -1,    -1,    -1,
    3103     1034,    -1,   892,    -1,   158,    -1,    10,    11,    12,    13,
    3104       14,   462,    -1,  1455,  1456,    -1,    -1,    -1,    -1,    -1,
    3105       -1,    34,   984,    -1,    -1,    -1,    -1,    -1,    -1,   480,
    3106       -1,   482,    -1,    -1,    -1,   997,    -1,    -1,    42,    -1,
    3107     1002,  1003,    -1,  1005,  1006,   692,    -1,    -1,    -1,    -1,
    3108       28,    29,    30,    -1,    -1,    -1,    -1,   899,    71,   706,
    3109     1404,  1023,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
    3110       -1,    75,    -1,   524,   590,    79,    -1,    -1,    -1,    -1,
    3111      727,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,
    3112       -1,    -1,  1436,    -1,  1438,  1057,  1058,    -1,   252,    -1,
    3113       -1,    -1,   618,   257,    -1,    -1,    -1,   623,    -1,    -1,
    3114      114,    -1,  1002,  1003,    -1,  1005,  1006,    -1,   122,   123,
    3115       -1,    -1,   100,    -1,   102,    -1,    -1,    -1,    -1,  1473,
    3116       -1,  1475,   974,  1023,    -1,    -1,   587,    -1,    -1,    -1,
    3117       -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,   990,   127,
    3118      797,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1502,    -1,
    3119       -1,    -1,    -1,    -1,    -1,    -1,  1128,  1057,  1058,    -1,
    3120       -1,    -1,    -1,    -1,    -1,    -1,   692,    -1,    -1,   630,
    3121      631,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3122      706,    -1,    -1,    -1,    -1,   646,    -1,   351,    -1,    -1,
    3123       -1,    -1,    -1,    -1,   182,    -1,    -1,    -1,  1170,    -1,
    3124       -1,    -1,   190,   664,   192,   193,    -1,    -1,    -1,   197,
    3125       -1,   199,   200,  1065,   675,    -1,    -1,    -1,    -1,  1191,
    3126       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1128,   252,
    3127       -1,  1203,    -1,  1205,   257,    -1,  1280,  1209,    -1,    -1,
    3128      701,    -1,    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,
    3129       -1,    -1,  1104,   417,    -1,    -1,    -1,    10,    11,    12,
    3130       13,    14,    -1,    -1,    -1,    -1,    -1,   431,  1240,    -1,
    3131     1170,   797,   436,    -1,    -1,  1247,  1248,  1249,   739,    -1,
    3132      444,   269,    -1,    -1,    -1,    -1,  1258,  1259,    -1,    42,
    3133       -1,  1191,    -1,    -1,    -1,    -1,    -1,    -1,   462,  1271,
    3134       -1,    -1,    -1,  1203,    -1,  1205,    -1,    -1,    -1,    -1,
    3135       -1,    -1,    -1,    -1,    -1,    -1,   480,    70,   482,    -1,
    3136       -1,   782,    75,    -1,    77,    78,    79,    -1,   351,    -1,
    3137      987,   792,  1304,    -1,    -1,    88,    89,   798,  1310,    -1,
    3138     1240,    -1,   803,    -1,    -1,    -1,    -1,  1247,  1248,  1249,
    3139       -1,    -1,    -1,    28,    29,    30,    -1,    -1,  1258,  1259,
    3140      524,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
    3141      123,  1271,    -1,    10,    11,    12,    13,    14,    -1,    -1,
    3142       -1,    55,    -1,    57,    -1,    -1,    60,    61,    62,    -1,
    3143       64,  1435,    -1,  1437,   417,    -1,    -1,    -1,    -1,    -1,
    3144       -1,    -1,   863,    -1,    78,    42,    -1,  1379,   431,    -1,
    3145     1310,    -1,    -1,   436,    -1,    -1,    90,    91,    -1,    -1,
    3146       -1,   444,    -1,   587,   885,   100,    -1,   102,  1472,    -1,
    3147     1474,   892,  1404,    70,    -1,    -1,    -1,    -1,    75,   462,
    3148       77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3149       -1,    88,    89,    -1,    -1,  1427,    -1,   480,    -1,   482,
    3150       -1,   987,  1434,    -1,    -1,    -1,   630,   631,    -1,    -1,
    3151       -1,    -1,  1516,    -1,  1518,    -1,    -1,   114,    -1,  1379,
    3152       -1,    -1,   646,    -1,    -1,   122,   123,  1531,  1532,    -1,
    3153       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3154      664,   524,    -1,    -1,    -1,    -1,    -1,   182,    -1,    -1,
    3155       -1,   675,  1169,    -1,  1486,    -1,    -1,   192,   193,    -1,
    3156       -1,  1493,   197,    42,   199,   200,    -1,  1427,    -1,    -1,
    3157       -1,    -1,    -1,    -1,  1434,    -1,    -1,   701,    -1,    -1,
    3158      704,  1002,  1003,    -1,  1005,  1006,    -1,    -1,    -1,    -1,
    3159       -1,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,    78,
    3160       79,    -1,  1023,    -1,   587,    -1,    -1,    -1,    -1,    88,
    3161       89,    -1,    -1,    -1,    -1,   739,    -1,    -1,    -1,    -1,
    3162       -1,    -1,    -1,    -1,   572,   573,  1486,    -1,    -1,    -1,
    3163       10,    11,    12,    13,    14,   114,  1057,  1058,    -1,    -1,
    3164       -1,    -1,    -1,   122,   123,    -1,    -1,   630,   631,  1266,
    3165       -1,   599,    -1,    -1,   602,   603,    -1,   605,   782,   607,
    3166      608,    -1,    42,   646,   612,   613,    -1,    -1,   792,    -1,
    3167       -1,    -1,    -1,    -1,   798,    -1,    -1,    -1,    -1,   803,
    3168       -1,   664,    -1,  1169,    -1,    10,    11,    12,    13,    14,
    3169       70,    -1,   675,    -1,    -1,    75,    -1,    77,    78,    79,
    3170       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1128,    88,    89,
    3171      344,    -1,   346,    -1,    -1,    -1,    -1,    42,   701,    -1,
    3172       -1,   704,    -1,   357,   358,    -1,    -1,    -1,    -1,    -1,
    3173       -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   863,
    3174       -1,    -1,   122,   123,    -1,    70,    -1,    -1,    -1,  1170,
    3175       75,    -1,    -1,    -1,    79,    -1,   739,    -1,    -1,    -1,
    3176       -1,   885,    -1,    88,    89,    -1,    -1,    -1,   892,    -1,
    3177     1191,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3178     1266,    -1,  1203,    -1,  1205,    -1,    -1,    -1,    -1,   114,
    3179       -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,   782,
    3180      748,   749,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   792,
    3181       -1,    -1,    -1,    -1,    -1,   798,    -1,    -1,    -1,  1240,
    3182      803,    -1,    -1,    -1,    -1,    -1,  1247,  1248,  1249,    -1,
    3183       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1258,  1259,    -1,
     2862       0,     1,     0,   186,    45,     1,   240,   186,   118,    45,
     2863     186,   533,   205,    45,   186,   186,   186,   520,     0,   186,
     2864     743,   187,   743,   743,    51,   220,   863,  1022,   863,   640,
     2865    1005,    31,    32,   968,    34,     0,    34,   169,   170,   349,
     2866     512,   598,   349,   616,   491,    45,    34,   598,   495,   664,
     2867     188,    51,    34,    51,   569,    45,   599,     0,   345,    59,
     2868     689,  1388,   605,     0,    45,    65,    45,    65,    68,    34,
     2869      68,    71,     0,    71,   364,    71,  1004,  1005,   368,  1309,
     2870    1015,  1118,    42,   266,    84,    85,   596,   266,   115,   187,
     2871     266,    34,   202,   229,   266,   266,   266,    34,   107,   266,
     2872     596,   267,   596,    66,  1034,  1035,    34,    30,   108,   417,
     2873      84,   111,   248,    51,   596,   596,   596,    45,   118,  1392,
     2874     596,   148,   114,    51,   262,   263,    42,    65,   436,   480,
     2875      68,    84,   100,    71,  1461,   282,   444,    65,   257,    32,
     2876      68,   686,   116,    71,   136,   186,   124,   125,   157,   149,
     2877     186,   149,   630,   631,   186,   114,   116,    54,    81,  1031,
     2878       0,   161,   297,   161,    47,    48,   134,   782,   646,   267,
     2879     893,    90,   893,   893,   137,     0,     1,   792,   681,  1409,
     2880     487,  1493,   631,   210,  1114,  1022,   186,   187,   803,   187,
     2881     101,    84,    85,   480,    34,    67,   186,   646,   114,   118,
     2882     116,  1238,   202,  1240,  1241,   186,   728,   186,  1520,    34,
     2883     210,   149,   210,   240,   409,  1488,   127,   114,   712,   219,
     2884    1493,   149,   222,   161,   222,   266,   704,   121,    68,   229,
     2885     266,   712,   114,   161,   266,  1210,   712,   120,   112,   405,
     2886    1513,   135,   114,    68,   244,   272,    71,  1520,   248,   187,
     2887     101,    42,   252,   253,   252,   704,    42,   814,   186,   187,
     2888     121,   804,   136,   814,   252,   894,   266,   267,  1443,   267,
     2889     252,   786,   210,   273,   135,   257,   127,    51,    42,   630,
     2890     631,  1276,   210,   310,   222,   395,   121,   252,   598,  1264,
     2891     425,   426,   802,   117,   222,   646,   586,   121,   417,    42,
     2892     135,   912,    42,  1478,   117,  1480,   802,   405,   802,   252,
     2893     939,   121,   478,   423,   257,   252,     1,   436,   345,   429,
     2894     802,   802,   802,    11,   252,   444,   802,   137,   114,   616,
     2895     116,   331,   341,   331,   621,  1263,  1264,   627,   266,    47,
     2896      48,   115,   114,   600,   889,    47,    48,   604,   348,   349,
     2897     114,   244,   116,   704,   133,   117,   503,   136,  1195,   121,
     2898    1195,   115,   114,   135,   921,   365,    51,   675,   625,   369,
     2899     505,   114,   629,   116,   114,   510,   116,    75,   513,   379,
     2900     478,   135,   222,   115,  1319,   119,  1001,  1002,   739,   121,
     2901      88,    89,   117,   331,   115,   395,   121,   222,   425,   426,
     2902     285,   425,   426,   331,  1276,   405,   121,   405,   115,  1384,
     2903     983,   119,   252,     3,   135,   121,   114,   119,   116,     3,
     2904      75,   349,   107,   423,   920,   310,   311,   252,   135,   429,
     2905     115,   137,   567,    88,    89,   417,   210,  1432,   920,  1276,
     2906     920,  1376,  1377,   114,  1439,   116,   121,  1062,  1063,   992,
     2907     993,   954,   739,   689,   436,     1,  1384,     0,     1,   462,
     2908     345,   116,   444,   148,   117,   465,   493,   405,   121,   493,
     2909     470,     0,   157,   121,   417,  1104,     0,   405,   478,  1351,
     2910     478,   114,   482,   930,   482,   512,   379,   487,   512,   137,
     2911     490,    34,   492,   436,   966,   380,  1491,   116,   272,   118,
     2912     482,   444,  1113,    10,   814,   795,    75,   814,   121,   641,
     2913     350,   136,   650,   660,   121,   681,   135,   482,   863,    88,
     2914      89,   206,   114,   297,   137,   210,  1493,   527,    71,  1086,
     2915     137,   114,   532,   116,  1163,  1164,   310,   480,   648,   482,
     2916     114,   892,    95,    96,   780,   482,  1513,   116,    75,   576,
     2917      77,    78,   576,  1520,   482,   240,   675,   121,   115,   487,
     2918     121,    88,    89,   117,  1436,   121,  1438,   121,    75,  1072,
     2919      77,    78,   121,   137,  1077,   114,   137,   130,   131,   836,
     2920     580,   137,   701,   681,   731,   121,   114,   272,   137,   616,
     2921     275,   114,   119,   116,   621,  1432,   596,   490,   598,   492,
     2922    1102,   137,  1439,   121,  1106,   892,     4,     5,     6,     7,
     2923       8,     9,   297,   121,   114,   115,   852,   617,   925,   137,
     2924    1492,    75,   114,    77,    78,   310,   114,   121,   121,   137,
     2925    1245,   471,   632,   115,    88,    89,   636,  1252,  1253,  1254,
     2926      93,    94,   482,   137,   137,   645,  1464,   647,   648,   649,
     2927     587,   115,  1470,  1004,  1491,   850,   341,   482,   894,   115,
     2928     345,   664,   116,   115,   549,   550,   551,   115,   596,   926,
     2929     598,   115,  1490,   121,    72,   870,    74,  1495,   452,   364,
     2930    1025,   681,   114,   368,   115,   685,   114,   687,   116,   114,
     2931     121,   691,   114,   675,   122,   123,   983,   120,   932,   699,
     2932    1315,   137,    75,   939,    77,    78,    79,   253,    67,   252,
     2933     893,   114,   712,   713,   893,    88,    89,   893,   114,   701,
     2934     116,   893,   893,   893,   856,   114,   893,   116,   115,   895,
     2935     114,   505,   675,   507,   121,   971,   510,   137,    75,   513,
     2936     425,   426,  1371,   636,   119,     4,     5,     6,     7,     8,
     2937       9,    88,    89,   681,   114,   122,   116,    72,   701,  1388,
     2938      75,   128,   129,    78,   137,    80,   114,   452,   116,   115,
     2939    1292,   114,    87,   116,  1497,   121,  1497,  1497,   618,   782,
     2940     465,   115,  1133,  1019,   712,   713,   114,   121,   116,   792,
     2941      97,    98,   685,   115,   687,   115,   739,   895,   691,   121,
     2942     803,   121,   802,   996,   137,   898,   491,   900,   493,   114,
     2943     495,   116,   137,    72,   814,    74,   119,   122,   123,   119,
     2944     505,   114,   507,   116,   114,   510,    84,   512,   513,   122,
     2945     123,  1460,  1461,   115,    75,    59,    77,    78,    79,   121,
     2946      10,    11,    12,    13,    14,   115,  1133,    88,    89,   115,
     2947    1195,   121,   692,   120,   121,   121,   856,    10,    11,    12,
     2948      13,    14,   862,   863,   115,   750,   706,   114,  1104,   115,
     2949     121,   505,    42,   507,   802,   121,   510,   115,   137,   513,
     2950     114,   863,   115,   121,   108,  1017,   814,   111,   121,    42,
     2951     132,   576,    84,   893,   123,   895,   137,   115,   213,    99,
     2952      70,   586,   902,   121,   678,   932,  1072,   115,   115,   115,
     2953     115,  1077,  1263,   121,   121,   121,   121,    70,   133,   465,
     2954     863,   115,   116,  1210,   117,   925,   863,  1163,  1164,    61,
     2955      62,   616,   114,   115,   116,   931,   621,   120,   121,   482,
     2956      47,    48,   627,   116,   114,   945,   116,   115,   885,   892,
     2957    1295,   117,   122,   123,   115,  1102,   983,   797,   958,  1106,
     2958    1107,  1119,  1120,   856,   964,   893,   115,   895,   968,   862,
     2959    1473,   114,   115,   116,  1072,   556,   557,   558,   559,  1077,
     2960     115,   527,   552,   553,  1094,   115,   532,     4,     5,     6,
     2961       7,     8,     9,   678,    75,   219,   115,   925,  1001,  1002,
     2962    1345,    82,   114,  1348,    85,   116,    87,    88,    89,   902,
     2963     114,   115,   116,   554,   555,  1015,   560,   561,    35,  1522,
     2964     117,   119,    75,   863,   119,  1025,    79,   121,  1028,  1029,
     2965    1030,   716,   119,   136,   580,    88,    89,   352,   863,   354,
     2966    1022,  1176,  1177,   136,  1179,   114,   117,  1392,   115,   273,
     2967    1185,   115,  1397,  1188,   117,    72,   117,    74,  1058,  1062,
     2968    1063,   114,   135,   116,    31,   958,   114,   115,   116,   122,
     2969     123,   121,  1072,  1220,    61,    62,    63,  1077,   135,  1022,
     2970     135,  1426,   115,   115,   119,  1022,   120,   115,    10,    11,
     2971      12,    13,    14,   120,  1094,    75,   120,   115,   983,    79,
     2972     121,   647,    75,   649,    77,    78,   931,   114,    88,    89,
     2973     795,   137,   135,     0,     1,    88,    89,   115,  1118,   121,
     2974      42,     3,   115,   115,   348,   440,   115,   115,    10,    11,
     2975      12,    13,    14,   907,   114,  1371,   121,  1022,   115,     0,
     2976       1,   365,   122,   123,  1072,   369,   986,    34,    70,  1077,
     2977     115,   115,  1388,   699,   115,   115,   115,   115,    45,   115,
     2978      42,   115,   115,  1310,    51,  1058,  1511,  1314,   115,   115,
     2979    1170,   120,  1517,    34,    31,   115,   115,   121,    65,  1175,
     2980     135,    68,  1022,  1528,    71,   136,   117,  1532,    70,   117,
     2981    1133,   115,   114,   135,   116,  1195,   115,  1022,   114,   119,
     2982     122,   123,   115,   121,   115,  1208,   115,    68,   115,   121,
     2983      71,   115,  1347,  1195,   115,   121,   121,   114,  1214,   114,
     2984     107,   114,   907,    75,  1460,  1461,   114,   135,   115,   114,
     2985      82,   118,   119,    85,   137,    87,    88,    89,  1238,   135,
     2986    1240,  1241,  1245,   135,   121,   930,   931,   932,   120,  1252,
     2987    1253,  1254,  1195,   115,   135,   115,   120,  1367,  1195,   115,
     2988     133,   148,   149,   117,   116,   120,  1413,  1210,   119,   137,
     2989     157,   158,   115,  1507,   161,    75,   117,  1170,    75,   121,
     2990      77,    78,    82,   117,   115,    85,   115,    87,    88,    89,
     2991     117,    88,    89,  1067,  1276,  1295,    75,   158,   983,   186,
     2992     187,   117,   117,    82,   115,   117,    85,   117,    87,    88,
     2993      89,   117,  1315,  1309,  1497,   202,   116,   114,  1497,  1319,
     2994     863,  1497,   119,   210,    50,  1497,  1497,  1497,   137,   137,
     2995    1497,   120,  1498,  1276,  1174,   222,   137,   116,    75,  1276,
     2996      77,    78,    79,   137,   137,  1345,   115,   120,  1348,  1174,
     2997    1175,    88,    89,   240,   135,  1195,  1522,   115,   120,    86,
     2998     117,   222,   117,  1473,   117,   252,  1366,  1367,   117,   117,
     2999    1195,   117,   115,   260,   115,   117,  1376,  1377,   265,   266,
     3000     267,   114,  1067,   114,   114,   272,    63,   115,   931,  1214,
     3001      75,   252,  1392,   617,    79,   115,   119,  1397,   114,   945,
     3002    1498,   137,   117,    88,    89,   117,    57,   115,   632,   101,
     3003     297,   117,   115,  1409,  1414,   101,   114,   114,   964,   137,
     3004     120,   645,   968,   310,  1522,   115,  1426,   115,   115,   114,
     3005     121,  1271,   115,    45,   135,   137,  1276,   122,   123,   326,
     3006     115,   137,   115,   101,   331,   101,  1271,   462,    99,   115,
     3007    1432,  1276,   115,   137,   341,   137,  1497,  1439,   345,   137,
     3008     117,  1497,   349,   350,   117,  1497,   115,   115,   120,  1015,
     3009       0,     1,   117,  1473,  1474,   137,   114,   364,   137,  1022,
     3010    1507,   368,   115,  1483,  1309,   120,   120,   115,  1488,  1432,
     3011     137,   115,   115,  1493,   562,  1432,  1439,  1497,  1498,   564,
     3012    1498,   563,  1439,  1040,    34,   565,   963,   566,   395,  1491,
     3013    1461,  1511,    75,  1513,    77,    78,    79,  1517,   405,  1195,
     3014    1520,    51,  1522,  1353,  1522,    88,    89,  1532,  1528,  1214,
     3015    1286,  1107,  1532,  1314,  1439,  1077,   423,  1058,   425,   426,
     3016     678,    71,   429,   194,   431,   678,   900,   691,  1491,     3,
     3017      75,   114,    77,    78,  1491,   908,    10,    11,    12,    13,
     3018      14,   580,   856,    88,    89,   452,   217,   958,   642,  1497,
     3019     431,   716,  1118,   928,  1214,   727,   227,   107,   568,    -1,
     3020     482,    -1,   568,   470,  1409,   568,    -1,    -1,    42,   114,
     3021      -1,   478,  1432,   480,   119,   482,    -1,    -1,    -1,  1439,
     3022     487,    -1,    -1,    -1,    -1,    -1,   493,  1432,    10,    11,
     3023      12,    13,    14,    -1,  1439,    -1,    70,    -1,   505,   149,
     3024     507,   482,    -1,   510,  1309,   512,   513,   157,   158,    -1,
     3025      -1,    -1,  1175,   520,    -1,    -1,    -1,   524,    -1,    -1,
     3026      42,    75,    -1,    77,    78,    79,   297,    -1,    -1,   664,
     3027      -1,  1491,  1195,    -1,    88,    89,    -1,   187,    -1,    -1,
     3028      -1,    -1,    -1,   524,    -1,    -1,  1491,  1441,    70,  1443,
     3029      -1,  1214,   202,    75,    -1,   205,   206,    79,    -1,    -1,
     3030     210,   568,   569,    -1,    -1,    -1,    88,    89,   122,   576,
     3031      -1,    -1,  1238,    -1,  1240,  1241,    -1,    -1,    -1,   586,
     3032     587,   231,    -1,   590,  1478,   235,  1480,   237,    -1,   596,
     3033      -1,   598,   114,    -1,    -1,    -1,   246,    -1,    -1,    -1,
     3034     122,   123,   252,    -1,  1409,    -1,   587,   257,    75,   616,
     3035      77,    78,    79,  1276,   621,    -1,   623,   267,    -1,    -1,
     3036     627,    88,    89,   630,   631,   275,    -1,    -1,    -1,    -1,
     3037      75,    -1,    77,    78,    79,    -1,  1441,    -1,  1443,   646,
     3038      -1,   648,    -1,    88,    89,    -1,  1309,   782,    -1,   630,
     3039     631,    -1,    -1,  1319,    -1,    -1,    -1,   792,    -1,    -1,
     3040      10,    11,    12,    13,    14,   646,    -1,    -1,   803,   114,
     3041     441,   678,    -1,  1478,   681,  1480,    -1,    -1,     0,    -1,
     3042      -1,    -1,    -1,    -1,  1028,  1029,  1030,    -1,    -1,    -1,
     3043      -1,   341,    42,    -1,    -1,   345,   467,   704,   705,   706,
     3044      -1,   351,  1507,    -1,    -1,   712,   713,    -1,    -1,    -1,
     3045    1376,  1377,    34,    -1,   364,    -1,    -1,    -1,   368,    -1,
     3046      70,    -1,    -1,   704,    -1,    -1,    -1,    10,    11,    12,
     3047      13,    14,   739,    -1,   505,    -1,   743,   744,    -1,   510,
     3048      -1,    -1,   513,     3,    -1,    -1,  1409,    -1,  1414,    71,
     3049      10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    42,
     3050      -1,    -1,    -1,    -1,   114,    -1,   116,   417,    -1,  1432,
     3051      -1,    -1,   122,   123,    -1,    -1,  1439,    -1,    -1,   786,
     3052      -1,   431,    42,    -1,    -1,    -1,   436,    70,   795,    -1,
     3053     797,    -1,    75,     0,   444,   802,    79,    -1,    -1,    -1,
     3054      -1,    -1,    -1,    -1,    -1,    88,    89,   814,  1474,    68,
     3055      70,    -1,   462,    -1,    -1,   465,    -1,  1483,    77,    -1,
     3056      -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,  1491,    -1,
     3057     480,   114,   482,    -1,    -1,    -1,   158,    -1,    -1,   122,
     3058     123,   491,   190,    -1,    -1,   495,    -1,    -1,    75,   197,
     3059      77,    78,    79,    -1,    -1,    -1,   863,    -1,    -1,    -1,
     3060     119,    88,    89,    -1,    71,    68,  1001,  1002,    -1,    -1,
     3061      -1,    -1,    -1,    -1,   524,    -1,    -1,    -1,   885,    -1,
     3062      -1,    84,   863,    -1,    -1,   892,   893,   114,   895,   116,
     3063      -1,    -1,   663,    -1,    -1,   122,   123,    -1,    -1,    -1,
     3064     907,   672,   161,    -1,   885,   676,    -1,    -1,   135,   231,
     3065      -1,    -1,    -1,   920,   921,    -1,   119,    -1,   925,   569,
     3066      -1,   269,    -1,    -1,   931,   932,    -1,  1062,  1063,    -1,
     3067     252,    -1,    -1,    -1,    -1,   257,   586,   587,    -1,    -1,
     3068      75,    -1,    77,    78,    79,    -1,    -1,   954,   598,    -1,
     3069     931,   158,    -1,    88,    89,    -1,    -1,    -1,   161,    -1,
     3070      -1,    -1,    -1,   222,    -1,    -1,   616,    -1,    -1,    -1,
     3071      75,   621,    77,    78,    79,    -1,   983,   627,   326,   114,
     3072     630,   631,    -1,    88,    89,    68,   334,   122,   123,   337,
     3073      -1,    75,    -1,    77,    78,    79,   646,  1004,  1005,    -1,
     3074      -1,   260,    -1,    -1,    88,    89,   265,    -1,    -1,   114,
     3075      -1,   116,    -1,    -1,   664,  1022,    -1,   122,   123,   222,
     3076      -1,    -1,  1366,  1004,  1005,   675,    -1,    -1,    -1,   351,
     3077     114,    -1,   116,    -1,    -1,    -1,   119,    -1,   122,   123,
     3078      -1,  1022,    -1,    -1,    -1,   252,    -1,    -1,    -1,   397,
     3079     257,   701,    -1,   401,   704,    -1,    -1,   260,    -1,    -1,
     3080    1067,    -1,   265,   713,    -1,  1072,   716,    -1,    -1,    -1,
     3081    1077,    -1,    -1,  1208,    -1,    -1,    -1,    -1,   161,  1086,
     3082      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1094,    -1,   739,
     3083      -1,   350,    -1,    -1,   744,   417,   102,   103,   104,   105,
     3084     106,   107,   108,   109,   110,   111,   112,    -1,    -1,   431,
     3085    1245,    -1,    -1,    -1,   436,    -1,   887,  1252,  1253,  1254,
     3086      -1,    -1,   444,    -1,    -1,    -1,  1133,    -1,    -1,   477,
     3087     136,    -1,   782,    -1,    -1,    -1,    -1,    -1,    -1,   222,
     3088     462,    -1,   792,    -1,   351,   795,    -1,   350,   798,    -1,
     3089      -1,    -1,    -1,   803,    -1,    -1,    -1,     0,   480,    -1,
     3090     482,    -1,    -1,   813,    -1,    -1,    -1,  1174,  1175,    -1,
     3091      75,   430,    77,    78,    79,    -1,    -1,   260,    -1,    -1,
     3092    1315,    -1,   265,    88,    89,    -1,    -1,   446,  1195,    -1,
     3093      -1,    34,    -1,  1174,  1175,    -1,    -1,    -1,    -1,    -1,
     3094      -1,    -1,   524,  1210,    -1,    -1,    -1,  1214,    -1,   114,
     3095     417,   116,   471,   863,  1195,    -1,    -1,   122,   123,    -1,
     3096     568,   569,    -1,    -1,   431,    -1,    -1,   430,    71,   436,
     3097      -1,    -1,    -1,  1214,    -1,   885,    -1,   444,    -1,    -1,
     3098      -1,    -1,   892,    -1,    -1,   895,    75,    -1,    77,    78,
     3099      79,    -1,    -1,    -1,    -1,   462,  1263,  1264,    -1,    88,
     3100      89,    -1,  1033,    -1,  1271,   587,    -1,   350,   471,  1276,
     3101      -1,   921,    -1,   480,    -1,   482,    -1,    -1,    -1,    -1,
     3102     930,   931,  1263,  1264,    -1,   114,    -1,    -1,    -1,    -1,
     3103    1271,    -1,    -1,   122,   123,  1276,    -1,    -1,    -1,    -1,
     3104      -1,    -1,  1309,   651,    -1,    -1,    86,   655,   630,   631,
     3105      90,    91,    92,    -1,    -1,   158,    -1,   524,    -1,    -1,
     3106      -1,    -1,    -1,    -1,   646,    -1,    -1,    -1,  1309,    -1,
     3107      -1,   590,    -1,   983,   114,    -1,   116,    -1,   118,   119,
     3108      -1,    -1,   664,    -1,    -1,    -1,   996,   430,    -1,    -1,
     3109      -1,  1001,  1002,   675,  1004,  1005,    -1,    -1,    -1,   618,
     3110    1367,    86,    -1,    -1,   623,    90,    91,    92,    -1,    -1,
     3111      -1,    -1,  1022,    -1,    -1,    -1,    -1,  1384,    -1,   701,
     3112     587,    -1,   704,    -1,    -1,    -1,    -1,   590,   471,   114,
     3113      -1,   116,    -1,   118,   119,    -1,    -1,    -1,    -1,    -1,
     3114      -1,    -1,  1409,  1384,    -1,    -1,    -1,    -1,    -1,   252,
     3115      -1,    -1,  1062,  1063,   257,   618,    -1,   739,    -1,    -1,
     3116     623,    -1,    -1,   630,   631,  1432,    -1,    -1,  1409,    -1,
     3117      -1,    -1,  1439,   692,  1441,    -1,  1443,    -1,   786,   646,
     3118      -1,    -1,    -1,    -1,    -1,    -1,    -1,   706,    -1,    -1,
     3119      -1,  1432,    -1,    -1,    -1,    -1,    -1,   664,  1439,    -1,
     3120     782,    -1,    -1,    -1,    -1,    -1,  1473,    -1,   675,    -1,
     3121     792,  1478,    -1,  1480,    -1,    -1,   798,    -1,    -1,    -1,
     3122      -1,   803,    -1,  1133,  1491,     0,    -1,    -1,    -1,   692,
     3123    1497,  1498,    -1,    -1,   701,    -1,    -1,   704,    -1,    -1,
     3124    1507,    -1,    -1,   706,    -1,    -1,    -1,   590,   351,    -1,
     3125    1491,    -1,    -1,    -1,  1285,  1522,    -1,    -1,    -1,    34,
     3126      -1,    -1,    -1,    -1,    -1,  1175,    -1,    -1,    -1,    -1,
     3127      -1,    -1,   739,    -1,    -1,   618,    -1,    -1,   797,    -1,
     3128     623,   863,    -1,    -1,    -1,  1195,    -1,    -1,    28,    29,
     3129      30,   899,    -1,    -1,    -1,    -1,    71,    -1,  1208,    -1,
     3130    1210,    -1,    -1,   885,  1214,    -1,    -1,    -1,    -1,    -1,
     3131     892,    -1,    -1,    -1,   417,   782,    -1,    -1,    -1,    -1,
     3132      -1,    -1,    -1,    -1,    -1,   792,    -1,    -1,   431,    -1,
     3133      -1,   798,    -1,   436,   797,  1245,   803,    -1,    -1,    -1,
     3134      -1,   444,  1252,  1253,  1254,    -1,    -1,    -1,    59,   692,
     3135      -1,    -1,    -1,  1263,  1264,    -1,    -1,    -1,    -1,   462,
     3136     100,    -1,   102,   706,    -1,   973,  1276,    -1,    -1,    -1,
     3137      -1,    -1,    -1,    -1,    -1,    -1,    -1,   480,    -1,   482,
     3138      -1,   989,    -1,   158,    -1,    -1,    -1,    -1,    -1,    -1,
     3139      -1,    -1,    -1,    -1,    -1,    -1,   863,   108,    -1,  1309,
     3140     111,    -1,    -1,    -1,    -1,  1315,    -1,    -1,    -1,  1440,
     3141      -1,  1442,    -1,    -1,    -1,    -1,    -1,    -1,   885,  1001,
     3142    1002,   524,  1004,  1005,    -1,   892,    -1,    -1,    -1,    -1,
    31843143      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3185     1271,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3186       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3187       27,    28,    29,    -1,    -1,    32,    33,    34,  1002,  1003,
    3188      863,  1005,  1006,    -1,    -1,    42,    -1,    -1,    -1,  1310,
    3189       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1023,
    3190       -1,    -1,   885,    -1,    -1,    -1,    -1,    -1,    -1,   892,
    3191       -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    75,    -1,
    3192       77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3193       -1,    88,    89,  1057,  1058,    -1,    -1,   572,   573,    -1,
     3144    1022,    -1,   182,    -1,    -1,    -1,  1477,    -1,  1479,    -1,
     3145      -1,    -1,   192,   193,   797,    -1,    -1,   197,    -1,   199,
     3146     200,    -1,  1070,    -1,    -1,    -1,    -1,   986,    -1,    -1,
     3147      -1,    -1,    -1,    -1,  1384,    -1,    -1,   252,    -1,    -1,
     3148    1062,  1063,   257,    -1,   587,    -1,    -1,    -1,    -1,    -1,
     3149    1521,    -1,  1523,    -1,    -1,    -1,    -1,    -1,    -1,  1409,
     3150      -1,  1109,    -1,    -1,    -1,  1536,  1537,    -1,   219,    -1,
    31943151      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3195       -1,   899,    -1,    -1,    -1,    -1,   904,   114,  1379,   116,
    3196       -1,    -1,    -1,    -1,   599,   122,   123,   602,   603,    -1,
    3197      605,    -1,   607,   608,    -1,    -1,    -1,   612,   613,    10,
    3198       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3199       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    3200       -1,    -1,    -1,    -1,  1128,    -1,  1427,    -1,    -1,    -1,
    3201       -1,    42,    51,  1434,    -1,    -1,    -1,    -1,    -1,  1002,
    3202     1003,     7,  1005,  1006,    10,    11,    12,    13,    14,    68,
    3203       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
    3204     1023,    -1,    -1,    -1,    -1,    -1,  1170,    -1,    -1,    -1,
    3205       81,    -1,    -1,    -1,    40,    41,    42,    43,    -1,   693,
    3206       -1,   695,    -1,    -1,    -1,  1486,    -1,  1191,   702,   703,
    3207       -1,    -1,    -1,   707,  1057,  1058,   115,    -1,    -1,  1203,
    3208      119,  1205,    -1,    69,    70,    -1,   720,    -1,    -1,    75,
    3209       -1,   725,    -1,    79,    -1,    -1,    82,    83,    84,    85,
    3210       86,    87,    88,    89,    -1,    91,    92,    -1,    -1,   148,
    3211       -1,  1059,    -1,   748,   749,    -1,  1240,    -1,   752,   158,
    3212       -1,    -1,   161,  1247,  1248,  1249,    -1,    -1,   114,    -1,
    3213      116,    -1,    -1,    -1,  1258,  1259,   122,   123,   124,   125,
    3214      126,   127,    -1,    -1,    68,  1128,    -1,  1271,    -1,    -1,
    3215       -1,    -1,    -1,    77,    -1,    79,    -1,    81,    -1,    -1,
    3216       -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1,    -1,
    3217       -1,   210,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3218       -1,    -1,    -1,   222,    -1,    -1,  1310,  1170,    -1,    -1,
    3219       -1,    -1,    -1,    -1,    -1,   119,    -1,   121,   122,   123,
    3220       -1,   240,    -1,    -1,    -1,    -1,    -1,    -1,  1191,    -1,
    3221       -1,   845,    -1,   847,   848,   849,    -1,    -1,    -1,    -1,
    3222     1203,    -1,  1205,    -1,    -1,    -1,   265,    -1,    -1,    -1,
    3223       -1,    -1,   866,   272,    -1,    -1,    -1,   161,    -1,  1187,
    3224       -1,    -1,    -1,    -1,    -1,    -1,   880,    -1,    -1,    -1,
    3225       -1,    -1,    -1,    -1,    -1,  1379,    -1,  1240,   297,    -1,
    3226       -1,    -1,    -1,    -1,  1247,  1248,  1249,    -1,    -1,   904,
    3227       -1,   310,    -1,    -1,    -1,  1258,  1259,    -1,    -1,    -1,
    3228       -1,    -1,    -1,    -1,    -1,   919,    -1,    -1,  1271,    -1,
    3229       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   222,    -1,
    3230      224,   225,   226,  1427,    -1,    -1,   345,    -1,    -1,    -1,
    3231     1434,   350,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3232       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1310,    -1,   963,
    3233       -1,    -1,    -1,    -1,   968,    -1,   260,    -1,    -1,   973,
    3234       -1,   265,    -1,    -1,   978,    -1,    -1,    -1,    -1,   983,
    3235       -1,   985,   986,    -1,    -1,   989,   280,    -1,    -1,    -1,
    3236       -1,    -1,  1486,    -1,   998,    -1,    -1,    -1,    -1,    -1,
     3152      -1,    -1,  1432,   986,    -1,    -1,    -1,   630,   631,  1439,
     3153      -1,    -1,    -1,    -1,  1001,  1002,    -1,  1004,  1005,    -1,
     3154      -1,    -1,    -1,   646,    -1,    -1,    -1,    -1,    -1,    -1,
     3155      -1,  1133,    -1,    -1,    -1,  1022,    -1,    -1,    -1,    -1,
     3156      -1,   664,   273,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3157      -1,    -1,   675,    -1,    -1,    -1,   351,    -1,    -1,    -1,
     3158      -1,  1491,    -1,    -1,    -1,    55,    -1,    57,  1498,    -1,
     3159      60,    61,    62,  1175,    64,  1062,  1063,    -1,   701,    -1,
     3160      -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
     3161      -1,    -1,    -1,  1195,    -1,    -1,    -1,    -1,    -1,    -1,
     3162      90,    91,    -1,    -1,    -1,    -1,  1208,    -1,  1210,    -1,
     3163      -1,    -1,    -1,    -1,    -1,    -1,   739,   348,    -1,    -1,
     3164      -1,    -1,   417,   986,    -1,    -1,    -1,    -1,    -1,    -1,
     3165      -1,    -1,    -1,    -1,   365,  1174,   431,    -1,   369,    -1,
     3166      -1,   436,    -1,  1245,    -1,    -1,  1133,    -1,    -1,   444,
     3167    1252,  1253,  1254,    -1,    -1,    -1,    -1,    -1,    -1,   782,
     3168      -1,  1263,  1264,    -1,    -1,    -1,    -1,   462,    -1,   792,
     3169      -1,    -1,    -1,    -1,  1276,   798,    -1,    -1,    -1,    -1,
     3170     803,    -1,    -1,    -1,    -1,   480,    -1,   482,  1175,    -1,
     3171      -1,  1174,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3172      -1,    28,    29,    30,    -1,    -1,    -1,    -1,  1195,    -1,
     3173      -1,    -1,    -1,  1315,    -1,    -1,    -1,    -1,    -1,    -1,
     3174      -1,  1208,    -1,  1210,    42,    -1,    -1,    -1,    -1,   524,
     3175      -1,    -1,  1271,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3176     863,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3177      -1,    -1,    70,    -1,    -1,    -1,    -1,    75,  1245,    77,
     3178      78,    79,   885,    -1,    -1,  1252,  1253,  1254,    -1,   892,
     3179      88,    89,    -1,   100,    -1,   102,  1263,  1264,    -1,    -1,
     3180      -1,    -1,  1384,    -1,    -1,    -1,    -1,    -1,  1271,  1276,
     3181      -1,    -1,   587,    -1,    -1,    -1,   114,    -1,   116,    -1,
     3182     127,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,
     3183      -1,  1174,   572,   573,    -1,    -1,    -1,    -1,    -1,    -1,
     3184      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1315,    -1,
     3185    1432,    -1,    -1,    -1,    -1,   630,   631,  1439,    -1,   599,
     3186      -1,    -1,   602,   603,    -1,   605,    -1,   607,   608,    -1,
     3187      -1,   646,   612,   613,   344,   182,   346,    -1,    -1,    -1,
     3188      -1,    -1,    -1,   190,    -1,   192,   193,   357,   358,   664,
     3189     197,    -1,   199,   200,    -1,    -1,    -1,    -1,  1001,  1002,
     3190     675,  1004,  1005,    -1,    -1,    -1,   617,    -1,    -1,  1491,
     3191      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1384,    -1,  1022,
     3192      -1,   632,    -1,    -1,    -1,    -1,   701,    -1,  1271,   704,
     3193      -1,    -1,    -1,    -1,   645,    -1,    -1,    -1,    -1,    -1,
    32373194      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3238     1014,  1015,    -1,    -1,    -1,    -1,   425,   426,    -1,    -1,
    3239       -1,    -1,   431,    -1,    -1,    -1,  1379,    -1,    -1,    -1,
    3240       -1,    -1,    -1,    -1,    -1,    -1,  1040,   331,    -1,  1043,
    3241       -1,    -1,    -1,   452,    -1,    -1,    -1,    -1,    -1,    -1,
    3242       -1,    -1,    -1,    -1,  1059,    -1,   350,    -1,    -1,    -1,
    3243       -1,   355,   356,    -1,    -1,    -1,    -1,    -1,    -1,   363,
    3244       -1,   480,    -1,    -1,  1427,    -1,    -1,    -1,    -1,    -1,
    3245       -1,  1434,  1086,    -1,   493,    -1,    -1,    -1,  1092,  1093,
    3246       -1,    -1,    -1,    -1,    -1,    -1,   505,    -1,   507,    -1,
    3247       -1,   510,    -1,   512,   513,    -1,    -1,  1111,    -1,    -1,
    3248       -1,   405,  1116,    -1,    -1,   524,    -1,  1121,    -1,    -1,
    3249       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1132,   423,
    3250       -1,    -1,    -1,  1486,   428,    -1,   430,    -1,    -1,    -1,
    3251       -1,  1145,    -1,  1147,  1148,  1149,  1150,    -1,    -1,    -1,
    3252       -1,    -1,   446,    -1,    -1,   449,   450,    -1,  1162,    -1,
    3253     1164,    -1,    -1,   457,  1168,    -1,    -1,   576,    -1,    -1,
    3254       -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,   587,    -1,
    3255       -1,   590,  1187,    -1,   478,    -1,    -1,    -1,    -1,    -1,
    3256       -1,    -1,  1196,  1197,    -1,    -1,     7,    -1,    -1,    10,
    3257       11,    12,    13,    14,    -1,    -1,    -1,   616,    -1,    -1,
    3258       -1,    -1,   621,    46,    -1,    -1,    -1,    -1,    -1,    -1,
    3259       -1,   630,   631,    -1,    -1,    -1,    -1,    -1,    -1,    40,
    3260       41,    42,    43,    -1,    -1,    -1,    -1,   646,    -1,    -1,
    3261       -1,    -1,    -1,    -1,    -1,    -1,  1250,  1251,    -1,    -1,
    3262       -1,    -1,    -1,    -1,    -1,    -1,  1260,    -1,    69,    70,
    3263       93,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,   678,
    3264      103,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3265       91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3266       -1,    -1,    -1,    -1,    -1,   704,   590,   706,    -1,    -1,
    3267       -1,    -1,    -1,   114,    -1,   116,    -1,    40,    41,    -1,
    3268       43,   122,   123,   124,   125,   126,   127,    -1,  1322,    -1,
    3269     1324,  1325,  1326,    -1,   618,    -1,    -1,    -1,    -1,   623,
    3270      739,    -1,  1336,    -1,    -1,    -1,    69,    -1,    -1,   172,
    3271     1344,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
    3272       83,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
    3273       -1,    -1,   195,    -1,    -1,  1369,  1370,    -1,    -1,    -1,
    3274       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
    3275       -1,   114,    -1,   116,    -1,   218,    -1,    -1,   797,   122,
    3276      123,   124,   125,   126,   127,   228,    -1,    -1,   692,    -1,
    3277       -1,    -1,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3278     1414,  1415,   706,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3279      253,    -1,    -1,  1427,    -1,   258,    -1,    -1,    -1,    -1,
    3280     1434,    -1,    -1,   727,    -1,    -1,    -1,    -1,   271,    -1,
    3281       -1,    -1,    -1,    -1,   277,    -1,   279,    -1,    -1,    -1,
    3282       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3283       -1,    -1,    -1,  1467,    -1,   298,    -1,  1471,    -1,    -1,
    3284       -1,    -1,    -1,    -1,    -1,    -1,   885,    -1,    -1,    -1,
    3285       -1,    -1,    -1,   892,    -1,    -1,    -1,    -1,    -1,    -1,
    3286       -1,    -1,   786,    -1,    -1,  1499,    -1,  1501,   907,    -1,
    3287       -1,    -1,    -1,   797,    -1,    -1,   339,    -1,    -1,    -1,
    3288      343,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3289      814,    -1,    -1,   932,    -1,  1529,  1530,    -1,    -1,    -1,
    3290       -1,    -1,    -1,  1537,  1538,    -1,    -1,    -1,   371,    -1,
    3291       -1,    -1,   375,   376,    -1,   378,    -1,    -1,    -1,    -1,
    3292       -1,    -1,   385,   386,    -1,   388,   389,    -1,   391,    -1,
    3293      393,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3294       -1,    -1,    -1,    -1,    -1,   984,    -1,   410,    -1,    -1,
    3295       -1,    -1,    -1,    -1,    -1,   418,    -1,    -1,    -1,   157,
    3296      158,    -1,    -1,    -1,    -1,    -1,  1005,  1006,    -1,    -1,
    3297       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   442,
    3298       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3299       -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,    -1,   197,
    3300       -1,   925,    -1,    -1,    -1,   468,    -1,    -1,    -1,    -1,
    3301       -1,   474,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
    3302       -1,    -1,    -1,  1062,    -1,    -1,    -1,    -1,    -1,    -1,
    3303       -1,   955,    10,    11,    12,    13,    14,    15,    16,    17,
    3304       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3305       28,    29,    -1,   516,    32,    33,    34,    -1,    -1,    -1,
    3306       -1,    -1,    -1,   987,    42,    -1,    -1,    -1,   531,    -1,
    3307       -1,   269,    -1,    -1,   998,    -1,    -1,    -1,    -1,    -1,
    3308       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1128,
    3309       -1,    -1,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,
    3310       78,    -1,    -1,    -1,    -1,   568,    -1,    -1,    -1,    -1,
    3311       88,    89,    -1,    -1,   577,    -1,    -1,    -1,    -1,    -1,
    3312       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   326,    -1,
    3313     1169,    -1,    -1,    -1,   597,    -1,   334,   335,   116,   337,
    3314      338,    -1,    -1,  1067,   122,   123,    -1,   345,    -1,    -1,
    3315       -1,   349,    -1,    -1,    -1,    -1,    -1,  1081,    -1,    -1,
    3316       -1,    -1,    -1,    -1,    -1,    -1,  1205,    -1,    -1,    -1,
    3317      368,    -1,   635,    -1,    10,    11,    12,    13,    14,    15,
    3318       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3319       26,    27,    28,    29,    -1,    -1,    32,    33,    34,   397,
    3320       -1,    -1,    -1,   401,    -1,    -1,    42,    -1,   671,    -1,
    3321       -1,    -1,    -1,    -1,    -1,    -1,   679,    -1,    -1,  1258,
    3322     1259,    -1,    -1,    -1,    -1,    -1,    -1,  1266,    -1,    -1,
    3323       -1,    -1,    -1,   431,    70,    -1,    -1,    -1,    -1,    75,
    3324       -1,    77,    78,    79,    -1,  1169,    -1,   710,    -1,    -1,
    3325       -1,    -1,    88,    89,    -1,    -1,    -1,    -1,   721,   722,
    3326       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3327       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,   477,
    3328      116,    -1,   480,    -1,    -1,    -1,   122,   123,    -1,    -1,
    3329      753,    -1,    -1,    -1,    -1,   758,    -1,    10,    11,    12,
    3330       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3331       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3332       33,    34,   520,    -1,    -1,    -1,   524,    -1,    -1,    42,
    3333       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3334     1379,    -1,  1266,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3335       -1,    -1,    -1,    -1,    -1,   818,    -1,    70,    -1,    -1,
    3336       -1,    -1,   825,    -1,    77,    78,    -1,    -1,    -1,    -1,
    3337      568,   569,    -1,    -1,    -1,   838,    -1,   840,    -1,    -1,
    3338       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   586,   587,
    3339      853,    -1,    -1,    -1,    -1,    -1,   859,  1436,   596,  1438,
    3340      598,   599,    -1,   116,    -1,   148,    -1,   605,   871,   122,
    3341      123,   874,    -1,    -1,    -1,   158,    -1,   615,   616,    -1,
    3342       -1,    -1,    -1,   621,    -1,    -1,   169,   170,    -1,    -1,
    3343       -1,    -1,   630,   631,  1473,    -1,  1475,    -1,    -1,    -1,
    3344       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   646,    -1,
    3345       -1,    -1,    -1,   651,   652,    -1,    -1,   655,   656,    -1,
    3346       -1,    -1,    -1,  1502,   662,    -1,   283,    -1,   285,   286,
    3347       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,
    3348       -1,    -1,    -1,   681,    -1,    -1,    -1,    -1,    40,    41,
    3349       -1,    43,    -1,   310,   311,    -1,    -1,   240,    -1,    -1,
    3350       -1,    -1,    -1,    -1,    -1,    -1,   704,   705,    -1,    -1,
    3351       -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,   982,
    3352       -1,   264,    -1,    75,    -1,    77,    78,    79,   345,    -1,
    3353       82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
    3354       92,   739,    -1,    -1,    -1,   743,   744,    -1,    -1,    -1,
    3355       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3356       -1,    -1,   114,   380,   116,    -1,   118,   119,    -1,    -1,
    3357      122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
    3358     1043,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   786,    -1,
    3359       -1,    -1,    -1,  1517,    -1,    -1,    -1,    -1,    -1,    -1,
    3360       -1,    -1,    -1,    -1,   802,    -1,   804,    -1,    -1,    -1,
    3361       -1,    -1,    -1,    -1,  1077,    -1,   814,    -1,    -1,  1082,
    3362       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1090,    -1,    -1,
    3363       -1,    -1,    -1,    -1,    -1,    -1,   379,    -1,    10,    11,
    3364       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3365       22,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
    3366       -1,  1124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3367       42,    -1,  1135,    -1,    -1,  1138,    -1,  1140,    -1,    -1,
    3368       -1,    -1,    -1,    -1,    -1,    -1,    -1,   885,    -1,    -1,
    3369       -1,    -1,  1155,  1156,   892,   893,    -1,   895,    70,    -1,
    3370       -1,   899,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
    3371       -1,    -1,  1175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3372       -1,    -1,   920,   921,    -1,    -1,    -1,    -1,    -1,   472,
    3373       -1,    -1,   549,   550,   551,   552,   553,   554,   555,   556,
    3374      557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
    3375       -1,    -1,    -1,    -1,    -1,    -1,    -1,   955,  1221,    -1,
    3376       -1,    -1,    -1,    -1,    -1,    -1,  1229,    -1,    -1,   512,
    3377       -1,    -1,    -1,    -1,    -1,    -1,   974,   975,    -1,    -1,
    3378       -1,   524,    -1,    -1,    -1,    -1,   984,   530,    -1,    -1,
    3379      533,    -1,   990,   991,    -1,   993,   994,   995,    -1,    -1,
    3380       -1,    -1,    -1,   546,    -1,    -1,    -1,  1005,  1006,    -1,
    3381       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3382       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    3383       -1,    -1,    -1,   576,    -1,    -1,  1299,    -1,  1301,    -1,
    3384      583,    -1,    42,    -1,   587,    -1,    -1,    -1,    -1,    -1,
    3385       -1,    -1,    -1,    -1,  1317,    -1,  1319,    -1,    -1,    -1,
    3386       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1065,    -1,  1067,
    3387       70,  1334,   689,    -1,  1072,    -1,    -1,    -1,    -1,    -1,
    3388       -1,    -1,    -1,  1081,    -1,    -1,  1349,  1350,    -1,    -1,
    3389      633,    -1,    -1,    -1,    -1,    -1,    -1,  1360,   641,    -1,
    3390     1363,    -1,    -1,    -1,    -1,    -1,  1104,  1105,    -1,    -1,
    3391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3392       -1,    -1,  1385,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3393     1128,  1394,    -1,   750,  1397,    -1,  1399,  1400,  1401,    -1,
    3394       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3395       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3396       27,    28,    29,   780,    -1,    32,    33,    34,    35,    36,
    3397       37,    38,    -1,    -1,   717,    42,    -1,  1440,    -1,  1442,
    3398       -1,  1444,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3399       -1,    -1,    -1,    -1,    -1,    -1,   739,  1460,   741,    -1,
    3400       -1,    -1,    -1,    70,    -1,    -1,    -1,  1205,   751,    -1,
    3401       77,    78,    -1,    -1,   757,    -1,    -1,     3,     4,     5,
    3402        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3403       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3404       26,    27,    28,    29,    -1,    -1,    32,    33,    34,    35,
    3405       -1,    -1,    -1,    39,   797,   798,    42,    43,    -1,    -1,
    3406     1258,  1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3407      813,    -1,    -1,    -1,    -1,    -1,    -1,   894,    -1,    -1,
    3408       -1,    67,    -1,    -1,    70,    -1,    72,    -1,    74,    75,
    3409       -1,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,
    3410       -1,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,   852,
    3411       -1,    -1,    -1,   856,    -1,    -1,    -1,    40,    41,    -1,
    3412       43,    -1,    -1,   940,    -1,    -1,    -1,    -1,   114,    -1,
    3413      116,    -1,    -1,    -1,   120,    -1,   122,   123,    -1,    -1,
    3414       -1,    -1,   885,    -1,    -1,    -1,    69,    -1,    -1,   892,
    3415       -1,    -1,    75,    -1,    -1,   972,    79,    -1,    -1,    82,
    3416       83,    84,    85,    86,    87,    88,    89,   984,    91,    92,
    3417       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3418       -1,  1379,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   932,
    3419       -1,   114,    -1,   116,    -1,    -1,   119,    -1,    -1,   122,
    3420      123,   124,   125,   126,   127,    -1,  1023,    -1,    -1,    -1,
    3421       -1,    -1,    -1,    -1,    -1,    -1,   959,    -1,    -1,    -1,
    3422       -1,   964,    -1,    -1,   967,    -1,    -1,    -1,    -1,    -1,
    3423       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3424       -1,    -1,    -1,    -1,   987,    -1,    -1,    -1,    -1,    -1,
    3425       -1,    -1,    -1,    -1,    -1,   998,    -1,    -1,    -1,    -1,
    3426       -1,    -1,    40,    41,    -1,    43,    -1,    -1,    -1,    -1,
    3427     1468,    -1,    -1,    -1,    -1,  1018,    -1,  1020,    -1,    -1,
    3428       -1,    -1,  1099,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3429       -1,    69,  1035,  1036,  1492,  1493,    -1,    75,    -1,    -1,
    3430       -1,    79,    -1,    -1,    82,    83,    84,    85,    86,    87,
    3431       88,    89,  1055,    91,    92,    -1,    -1,    -1,    -1,  1517,
    3432       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3433       -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
    3434       -1,  1158,  1159,   121,   122,   123,   124,   125,   126,   127,
    3435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3436       -1,    -1,    -1,    -1,    -1,    -1,  1109,    -1,    -1,    -1,
    3437       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3438       -1,    -1,    -1,    -1,    -1,  1128,    -1,    -1,    -1,    -1,
    3439       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3440     1143,  1144,     3,     4,     5,     6,     7,     8,     9,    10,
    3441       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3442       21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
    3443       -1,    32,    33,    34,    35,    -1,    -1,    -1,    39,    40,
    3444       41,    42,    43,    44,    -1,    46,    -1,    -1,    49,    50,
    3445       51,    52,    53,    54,    55,    56,    -1,    -1,    -1,    60,
    3446       -1,    -1,    -1,    64,    65,    -1,    67,    -1,    69,    70,
    3447       -1,    72,    -1,    74,    75,    -1,    77,    78,    79,    -1,
    3448       -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3449       91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3450       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3451       -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,
    3452       -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,
    3453       -1,   132,    -1,    -1,    -1,    -1,   137,    -1,    -1,    -1,
    3454       -1,    -1,  1285,    -1,    -1,  1288,    -1,    -1,    -1,  1366,
    3455       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3456       -1,    -1,    -1,    -1,    -1,    -1,  1383,    -1,    -1,    -1,
    3457       -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3195      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1062,
     3196    1063,    -1,   269,    -1,   739,  1432,    -1,    -1,    -1,    -1,
     3197      -1,    -1,  1439,    -1,     3,     4,     5,     6,     7,     8,
    34583198       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34593199      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3460       29,    -1,    -1,    32,    33,    34,    35,    -1,    -1,    -1,
    3461       39,    40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,
    3462       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3463       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1455,  1456,
     3200      29,    -1,    -1,    32,    33,    34,    35,   782,   748,   749,
     3201      39,    40,    41,    42,    43,    -1,    -1,   792,    -1,    -1,
     3202      -1,    -1,    -1,   798,  1491,    -1,    -1,    -1,   803,    -1,
     3203    1133,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34643204      69,    70,    -1,    72,    -1,    74,    75,    -1,    77,    78,
    34653205      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
    34663206      89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3207      -1,    -1,  1175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3208      -1,    -1,    -1,    40,    41,   114,    43,   116,   863,    -1,
     3209      -1,    -1,  1195,   122,   123,   124,   125,   126,   127,    -1,
     3210      -1,    -1,    -1,    -1,    -1,  1208,    -1,  1210,   137,    -1,
     3211     885,    -1,    69,    -1,    -1,    -1,    -1,   892,    75,    -1,
     3212      -1,    -1,    79,    -1,    -1,    82,    83,    84,    85,    86,
     3213      87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,    -1,
     3214      -1,    -1,  1245,    -1,    -1,    -1,    -1,    -1,    -1,  1252,
     3215    1253,  1254,   863,    -1,    -1,    -1,    -1,   114,    -1,   116,
     3216    1263,  1264,   119,    -1,   904,   122,   123,   124,   125,   126,
     3217     127,    -1,    -1,  1276,     3,     4,     5,     6,     7,     8,
     3218       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3219      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3220      29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
     3221      -1,    -1,  1315,    42,    -1,    -1,    -1,    -1,    -1,    -1,
     3222      -1,    -1,    -1,   693,    -1,   695,  1001,  1002,    -1,  1004,
     3223    1005,    -1,   702,   703,    -1,    -1,    -1,   707,    -1,    -1,
     3224      -1,    70,    -1,    72,    -1,    74,    -1,  1022,    77,    78,
     3225     720,    -1,    -1,    -1,    -1,   725,    -1,    -1,    -1,    -1,
     3226      -1,    -1,    -1,    -1,    -1,   572,   573,    -1,    -1,    -1,
    34673227      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3468       -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,
     3228      -1,  1384,   752,    -1,    -1,    -1,    -1,  1062,  1063,    -1,
     3229     119,    -1,   599,    -1,    -1,   602,   603,    -1,   605,    -1,
     3230     607,   608,    -1,    -1,    -1,   612,   613,    -1,    -1,    -1,
     3231      -1,    -1,    -1,    -1,  1025,    -1,    -1,  1028,  1029,  1030,
     3232      -1,    -1,    -1,    -1,  1064,    -1,    -1,    -1,    -1,  1432,
     3233      -1,    -1,    -1,    -1,    -1,    -1,  1439,    51,    -1,    10,
     3234      11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
     3235      -1,    -1,    -1,    -1,    68,    -1,    -1,    -1,  1133,    10,
     3236      11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
     3237      -1,    42,    -1,    -1,    -1,   845,    -1,   847,   848,   849,
     3238      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1491,    -1,
     3239      -1,    42,    -1,    -1,    -1,    -1,   866,    -1,    -1,    70,
     3240    1175,   115,    -1,    -1,    75,   119,    77,    78,    79,    -1,
     3241     880,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    70,
     3242    1195,    -1,    -1,    -1,    75,    -1,    77,    78,    79,    -1,
     3243      -1,    -1,    -1,  1208,   148,  1210,    -1,    88,    89,    -1,
     3244      -1,   748,   749,   114,   158,   116,    -1,   161,    -1,   919,
     3245      -1,   122,   123,    -1,    -1,    -1,    -1,  1197,    -1,    -1,
     3246      -1,    -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,
     3247    1245,   122,   123,    -1,    -1,    -1,    -1,  1252,  1253,  1254,
     3248      -1,    -1,    -1,    -1,  1195,    -1,    -1,    -1,  1263,  1264,
     3249      -1,    -1,   962,    -1,    -1,    -1,   210,   967,    -1,    -1,
     3250      -1,  1276,   972,    -1,    -1,    -1,    -1,   977,   222,    -1,
     3251      -1,    -1,   982,    -1,   984,   985,    -1,    -1,   988,    -1,
     3252      -1,    -1,    -1,    -1,    -1,    -1,   240,   997,    -1,    -1,
     3253      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3254    1315,    -1,    -1,  1013,  1014,    -1,    -1,    -1,    68,    -1,
     3255      -1,   265,    -1,    -1,    -1,    -1,    -1,    77,   272,    79,
     3256      -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,
     3257      -1,    -1,    -1,    -1,  1044,    -1,    -1,  1047,    -1,    -1,
     3258      -1,    -1,    -1,   297,  1295,    -1,    -1,    -1,    -1,    -1,
     3259      -1,    -1,   899,    -1,    -1,    -1,   310,   904,    -1,   119,
     3260      -1,   121,   122,   123,    -1,    -1,    -1,    -1,    -1,  1384,
     3261      10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
     3262      -1,  1091,    -1,    -1,    -1,    -1,    -1,  1097,  1098,    -1,
     3263      -1,   345,    -1,    -1,  1345,    -1,   350,  1348,    -1,    -1,
     3264      -1,   161,    42,    -1,    -1,    -1,  1116,    -1,    -1,    -1,
     3265      -1,  1121,    -1,    -1,    -1,  1366,  1126,  1432,    -1,    -1,
     3266      -1,    -1,    -1,    -1,  1439,    -1,    -1,  1137,    -1,    -1,
     3267      70,    -1,    -1,    -1,    -1,    75,    -1,    77,    78,    79,
     3268    1150,  1392,  1152,  1153,  1154,  1155,  1397,    -1,    88,    89,
     3269      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1167,    -1,  1169,
     3270      -1,    -1,   222,  1173,   224,   225,   226,    -1,    -1,    -1,
     3271      -1,   425,   426,    -1,   114,  1426,  1491,   431,    -1,    -1,
     3272      -1,    -1,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
     3273      -1,  1201,  1202,    -1,    -1,    -1,    -1,    -1,   452,    -1,
     3274     260,    -1,    -1,    -1,    -1,   265,    -1,    -1,    -1,    -1,
     3275      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1064,    -1,    -1,
     3276      -1,    -1,    -1,    -1,    -1,    -1,   480,    -1,    -1,    -1,
     3277      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1488,    -1,   493,
     3278      -1,    -1,  1493,    -1,    -1,  1255,  1256,    -1,    -1,    -1,
     3279      -1,   505,    -1,   507,    -1,  1265,   510,    -1,   512,   513,
     3280    1511,    -1,  1513,    -1,    -1,    -1,  1517,    -1,    -1,  1520,
     3281     524,   331,    -1,    -1,    -1,    -1,    -1,  1528,    -1,    -1,
     3282      -1,  1532,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3283     350,    -1,    -1,    -1,    -1,   355,   356,    -1,    -1,    -1,
     3284      -1,    -1,    -1,   363,    -1,    -1,    -1,    -1,    -1,    -1,
     3285      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1327,    -1,  1329,
     3286    1330,  1331,   576,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3287      -1,  1341,    -1,   587,    -1,    -1,   590,    -1,    -1,  1349,
     3288      -1,    -1,    -1,    -1,    46,   405,    -1,    -1,    -1,    -1,
     3289    1197,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3290      -1,    -1,   616,   423,  1374,  1375,    -1,   621,   428,    -1,
     3291     430,    -1,    -1,    -1,    -1,    -1,   630,   631,    -1,    -1,
     3292      -1,    -1,    -1,    -1,    42,    -1,   446,    -1,    -1,   449,
     3293     450,    93,   646,    -1,    -1,    -1,    -1,   457,    -1,    -1,
     3294      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1419,
     3295    1420,   471,    70,    -1,    -1,    -1,    -1,    75,   478,    77,
     3296      78,    79,  1432,    -1,   678,    -1,    -1,    -1,    -1,  1439,
     3297      88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3298      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3299     704,    -1,   706,    -1,    -1,    -1,   114,    -1,    -1,    -1,
     3300      -1,    -1,  1472,    -1,   122,   123,  1476,    -1,    -1,    -1,
     3301     172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3302      -1,    -1,    -1,    -1,    -1,   739,    -1,    -1,    -1,    -1,
     3303      -1,    -1,    -1,   195,  1504,    -1,  1506,    -1,    -1,    -1,
     3304      -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
     3305      -1,    -1,    -1,    -1,    -1,    -1,   218,    -1,    -1,    -1,
     3306      -1,    -1,    -1,    -1,  1534,  1535,   228,    -1,    -1,    -1,
     3307     590,    -1,  1542,  1543,    -1,    -1,    -1,    -1,    -1,    -1,
     3308      -1,    -1,    -1,   797,    -1,    -1,    -1,    -1,    -1,    -1,
     3309      -1,   253,    -1,    -1,    -1,    -1,   258,    -1,   618,    -1,
     3310      -1,    -1,    -1,   623,    -1,    -1,    -1,    -1,    -1,   271,
     3311      -1,    -1,    -1,    -1,    -1,   277,    -1,   279,    -1,    -1,
     3312     283,    -1,   285,   286,    -1,    -1,    -1,    -1,    -1,    -1,
     3313      -1,    -1,   295,   296,    -1,    -1,   298,    -1,    -1,    -1,
     3314      -1,    -1,    -1,    -1,    -1,    -1,    -1,   310,   311,    -1,
     3315      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,
     3316      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3317      -1,   885,   692,    -1,    -1,    -1,    -1,   339,   892,    -1,
     3318      -1,   343,   345,    -1,    -1,    69,   706,    -1,    -1,    -1,
     3319      -1,    75,    -1,   907,    -1,    79,    -1,    -1,    82,    83,
     3320      84,    85,    86,    87,    88,    89,    -1,    91,    92,   371,
     3321      -1,    -1,    -1,   375,   376,    -1,   378,   380,   932,    -1,
     3322      -1,    -1,    -1,   385,   386,    -1,   388,   389,    -1,   391,
     3323     114,   393,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,
     3324     124,   125,   126,   127,    -1,    -1,    -1,    -1,   410,    -1,
     3325      -1,   135,    -1,    -1,    -1,    -1,   418,    -1,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,    -1,   786,    -1,    -1,   983,
     3327      -1,    -1,    -1,    -1,    -1,    -1,    -1,   797,    -1,    -1,
     3328     442,    40,    41,    -1,    43,    -1,    -1,    -1,    -1,    -1,
     3329    1004,  1005,    -1,    -1,   814,    -1,    -1,    -1,    -1,    -1,
     3330      -1,    -1,    -1,    -1,    -1,    -1,   468,    -1,    -1,    -1,
     3331      69,    -1,   474,    -1,    -1,    -1,    75,   479,    77,    78,
     3332      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
     3333      89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3335      -1,    -1,    -1,  1067,   516,   114,    -1,   116,    -1,   118,
     3336     119,    -1,    -1,   122,   123,   124,   125,   126,   127,   531,
     3337      -1,    -1,    -1,    -1,     7,    -1,    -1,    10,    11,    12,
     3338      13,    14,    -1,    -1,    -1,    -1,   549,   550,   551,   552,
     3339     553,   554,   555,   556,   557,   558,   559,   560,   561,   562,
     3340     563,   564,   565,   566,    -1,   925,   568,    40,    41,    42,
     3341      43,    -1,    -1,    -1,    -1,   577,    -1,    -1,    -1,  1133,
     3342      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3343      -1,    -1,    -1,    -1,   954,   597,    69,    70,    -1,    -1,
     3344      -1,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
     3345      83,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
     3346    1174,    -1,    -1,    -1,    -1,    -1,   986,    -1,    -1,    -1,
     3347      -1,    -1,    -1,   635,    -1,    -1,    -1,   997,    -1,    -1,
     3348      -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
     3349     123,   124,   125,   126,   127,    -1,  1210,    -1,    -1,    -1,
     3350      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,
     3351      -1,    -1,    -1,    -1,    -1,    -1,    -1,   679,    -1,    -1,
     3352      -1,    -1,    -1,    -1,    -1,    -1,   689,    -1,    -1,    -1,
     3353      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3354      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,  1263,
     3355    1264,    -1,  1072,    -1,    -1,    -1,    -1,  1271,    -1,   721,
     3356     722,    -1,    -1,    -1,    -1,    -1,  1086,    10,    11,    12,
     3357      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3358      23,    24,    25,    26,    27,    28,    29,   750,    -1,    -1,
     3359      -1,   753,    -1,    -1,    -1,    -1,   758,    -1,    -1,    42,
     3360      -1,    -1,    -1,   157,   158,    -1,    -1,    -1,    -1,    -1,
     3361      -1,    -1,    -1,    -1,    -1,    -1,    -1,   780,    -1,    -1,
     3362      -1,    -1,    -1,    -1,    -1,    -1,     7,    70,    -1,    10,
     3363      11,    12,    13,    14,    -1,    -1,   190,    -1,    -1,    -1,
     3364      -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,
     3365      -1,    -1,    -1,    -1,  1174,    -1,   818,    -1,    -1,    40,
     3366      41,    42,    43,   825,    -1,    -1,    -1,    -1,    -1,    -1,
     3367    1384,    -1,    -1,    -1,    -1,    -1,   838,    -1,   840,    -1,
     3368      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
     3369      -1,   853,    -1,    -1,    75,    -1,    -1,   859,    79,    -1,
     3370      -1,    82,    83,    84,    85,    86,    87,    88,    89,   871,
     3371      91,    92,   874,    -1,    -1,   269,    -1,    -1,    -1,    -1,
     3372      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1441,    -1,  1443,
     3373      -1,   894,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,
     3374      -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,
     3375      -1,  1271,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3376      -1,    -1,    -1,    -1,  1478,    -1,  1480,    -1,    -1,    -1,
     3377      -1,    -1,   326,    -1,    -1,    -1,   939,    -1,    -1,    -1,
     3378     334,   335,   148,   337,   338,    -1,    -1,    -1,    -1,    -1,
     3379      -1,   345,   158,  1507,    -1,   349,    -1,    -1,    -1,    -1,
     3380      -1,    -1,    -1,   169,   170,    -1,    -1,    -1,   971,    -1,
     3381      -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,   981,
     3382     983,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3383      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3384      28,    29,    -1,   397,    32,    33,    34,   401,    -1,    -1,
     3385      -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,  1022,
     3386      -1,    -1,    -1,    -1,    40,    41,    -1,    43,    -1,    -1,
     3387      -1,    -1,    -1,    -1,   240,    -1,    -1,   431,    -1,    -1,
     3388      -1,    -1,    70,    -1,    -1,  1047,    -1,    75,    -1,    77,
     3389      78,    -1,    -1,    69,    -1,    -1,    -1,    -1,   264,    75,
     3390      88,    89,    -1,    79,    -1,    -1,    82,    83,    84,    85,
     3391      86,    87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,
     3392    1082,    -1,    -1,   477,    -1,  1087,   480,    -1,   116,    -1,
     3393      -1,    -1,    -1,  1095,   122,   123,    -1,    -1,   114,    -1,
     3394     116,  1104,    -1,    -1,    -1,   121,   122,   123,   124,   125,
     3395     126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3396      -1,    -1,    -1,    -1,    -1,    -1,   520,  1129,    -1,    -1,
     3397     524,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,    -1,
     3398      -1,  1143,    -1,  1145,    -1,    -1,    -1,    -1,    -1,    -1,
     3399      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1160,  1161,
     3400    1163,  1164,  1522,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3401      -1,    -1,    -1,   379,   568,   569,    -1,    -1,  1180,    -1,
     3402      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3403      -1,    -1,   586,   587,    -1,    -1,    40,    41,    -1,    43,
     3404      -1,    -1,   596,    -1,   598,   599,    -1,    -1,    -1,    -1,
     3405      -1,   605,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3406      -1,   615,   616,    -1,  1226,    69,    -1,   621,    -1,    -1,
     3407      -1,    75,  1234,    -1,    -1,    79,   630,   631,    82,    83,
     3408      84,    85,    86,    87,    88,    89,    -1,    91,    92,    -1,
     3409      -1,    -1,   646,    -1,    -1,    -1,    -1,   651,   652,    -1,
     3410      -1,   655,   656,    -1,    -1,    -1,   472,    -1,   662,    -1,
     3411     114,    -1,   116,    -1,    -1,   119,    -1,    -1,   122,   123,
     3412     124,   125,   126,   127,    -1,    -1,    -1,   681,    -1,    -1,
     3413      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3414      -1,    -1,  1304,    -1,  1306,    -1,   512,    -1,    -1,    -1,
     3415     704,   705,    -1,    -1,    -1,    -1,    -1,    -1,   524,    -1,
     3416    1322,    -1,  1324,    -1,   530,    -1,    -1,   533,    -1,    -1,
     3417      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1339,    -1,    -1,
     3418     546,    -1,    -1,    -1,    -1,   739,    -1,    -1,    -1,   743,
     3419     744,    -1,  1354,  1355,    -1,    -1,    -1,    -1,    -1,    -1,
     3420      -1,    -1,    -1,  1365,    -1,    -1,  1368,    -1,  1371,    -1,
     3421     576,    -1,    -1,    -1,    -1,    -1,    -1,   583,    -1,    -1,
     3422      -1,   587,    -1,    -1,    -1,  1388,    -1,    -1,  1390,    -1,
     3423      -1,    -1,   786,    -1,    -1,    -1,    -1,  1399,    -1,    -1,
     3424    1402,    -1,  1404,  1405,  1406,    -1,    -1,    -1,   802,    -1,
     3425     804,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3426     814,    -1,    -1,    -1,    -1,    -1,    -1,   633,    -1,    -1,
     3427      -1,    -1,    -1,    -1,    -1,   641,    -1,    -1,    -1,    -1,
     3428      -1,    -1,    -1,  1445,    -1,  1447,    -1,  1449,    -1,    -1,
     3429      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1460,  1461,    -1,
     3430      -1,    -1,    -1,  1465,     4,     5,     6,     7,     8,     9,
     3431      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3432      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3433      -1,   885,    32,    33,    34,    -1,    -1,    -1,   892,   893,
     3434      -1,   895,    42,    -1,    -1,   899,    -1,    -1,    -1,    -1,
     3435      -1,   717,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3436      -1,    -1,   728,    -1,    -1,    -1,   920,   921,    -1,    -1,
     3437      70,    -1,    72,   739,    74,   741,    -1,    77,    78,    -1,
     3438      -1,    -1,    -1,    -1,    -1,   751,    -1,    -1,    -1,    -1,
     3439      -1,   757,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3440     954,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3441      -1,    -1,    -1,    -1,    -1,   115,   116,    -1,    -1,   973,
     3442     974,    -1,   122,   123,    -1,    -1,    -1,    -1,    -1,   983,
     3443      -1,   797,   798,    -1,    -1,   989,   990,    -1,   992,   993,
     3444     994,    -1,    -1,    -1,    -1,    -1,    -1,   813,    -1,    -1,
     3445    1004,  1005,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3446      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3447      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3448      29,    -1,    -1,    32,    33,    34,   852,    -1,    -1,    -1,
     3449     856,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,
     3450      -1,    40,    41,    -1,    43,    -1,    -1,    -1,    -1,    -1,
     3451      -1,    -1,    -1,    -1,    -1,    -1,  1070,    -1,  1072,   885,
     3452      -1,    70,    -1,  1077,    -1,    -1,   892,    -1,    77,    78,
     3453      69,    -1,  1086,    -1,    -1,    -1,    75,    -1,    -1,    -1,
     3454      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
     3455      89,    -1,    91,    92,    -1,  1109,  1110,    -1,    -1,    -1,
     3456      -1,    -1,    -1,    -1,    -1,    -1,   932,   116,    -1,    -1,
     3457      -1,   120,    -1,   122,   123,   114,    -1,   116,    -1,  1133,
    34693458      -1,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
    3470       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   137,     3,
     3459      -1,    -1,   958,    -1,    -1,    -1,    -1,   963,    40,    41,
     3460     966,    43,    44,    -1,    46,    -1,    -1,    49,    50,    51,
     3461      52,    53,    54,    55,    56,    -1,    -1,    59,    60,    -1,
     3462     986,    -1,    64,    65,    -1,    67,    -1,    69,    -1,    -1,
     3463      -1,   997,    -1,    75,    -1,    77,    78,    79,    -1,    -1,
     3464      82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
     3465      92,  1017,    -1,  1019,    -1,    -1,  1210,    -1,    -1,    -1,
     3466      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1034,  1035,
     3467      -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,    -1,
     3468     122,   123,   124,   125,   126,   127,    40,    41,    -1,    43,
     3469     132,    -1,    -1,    -1,  1060,   137,    -1,    -1,    -1,    -1,
     3470      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1263,
     3471    1264,    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,
     3472      -1,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
     3473      84,    85,    86,    87,    88,    89,    -1,    91,    92,    -1,
     3474      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1114,    -1,
     3475      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3476     114,    -1,   116,    -1,    -1,    -1,    -1,  1133,   122,   123,
     3477     124,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,
     3478      -1,    -1,  1148,  1149,    -1,    -1,     3,     4,     5,     6,
     3479       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3480      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3481      27,    28,    29,    -1,    -1,    32,    33,    34,    35,    -1,
     3482      -1,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
     3483    1384,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
     3484      -1,    -1,    -1,    60,    -1,    -1,    -1,    64,    65,    -1,
     3485      67,    -1,    69,    70,    -1,    72,    -1,    74,    75,    -1,
     3486      77,    78,    79,    -1,    -1,    82,    83,    84,    85,    86,
     3487      87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,    -1,
     3488      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3489      -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,
     3490      -1,    -1,   119,    -1,    -1,   122,   123,   124,   125,   126,
     3491     127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,  1473,
     3492     137,    -1,    -1,    -1,  1290,    -1,  1292,    -1,    -1,    -1,
     3493      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3494      -1,    -1,    -1,  1497,  1498,    -1,    -1,    -1,    -1,    -1,
     3495      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3496      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1522,     3,
    34713497       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    34723498      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    34733499      24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
    34743500      34,    35,    -1,    -1,    -1,    39,    40,    41,    42,    43,
    3475       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1502,
    3476       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3477       -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    72,    -1,
    3478       74,    75,    -1,    77,    78,    79,    -1,    -1,    82,    83,
     3501      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3502      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3503      30,    -1,    -1,    -1,    -1,    69,    70,    -1,    72,    -1,
     3504      74,    75,    42,    77,    78,    79,    -1,    -1,    82,    83,
    34793505      84,    85,    86,    87,    88,    89,    -1,    91,    92,    -1,
    34803506      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3481       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3482      114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,
     3507      70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3508     114,    81,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,
    34833509     124,   125,   126,   127,     4,     5,     6,     7,     8,     9,
    34843510      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    34853511      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    34863512      -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
    3487       40,    41,    42,    43,    10,    11,    12,    13,    14,    15,
    3488       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3489       26,    27,    28,    29,    -1,    -1,    32,    33,    34,    69,
    3490       70,    -1,    72,    -1,    74,    75,    42,    77,    78,    79,
     3513      40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
     3514      -1,  1507,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3515      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
     3516      70,    -1,    72,    -1,    74,    75,    -1,    77,    78,    79,
    34913517      -1,    -1,    82,    83,    84,    85,    86,    87,    88,    89,
    34923518      -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3493       -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    77,    78,    -1,   114,    -1,   116,    -1,    -1,    -1,
     3519      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,    -1,
    34953521      -1,   121,   122,   123,   124,   125,   126,   127,     4,     5,
    34963522       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     
    34993525      -1,    -1,    -1,    -1,    40,    41,    42,    43,    10,    11,
    35003526      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3501       22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    3502       32,    33,    34,    69,    70,    -1,    72,    -1,    74,    75,
     3527      22,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
     3528      -1,    -1,    -1,    69,    70,    -1,    72,    -1,    74,    75,
    35033529      42,    77,    78,    79,    -1,    -1,    82,    83,    84,    85,
    35043530      86,    87,    88,    89,    -1,    91,    92,    -1,    -1,    -1,
    35053531      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3506       -1,    -1,    -1,    -1,    -1,    77,    78,    -1,   114,    -1,
     3532      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    81,
    35073533     116,    -1,    -1,    -1,    -1,   121,   122,   123,   124,   125,
    35083534     126,   127,     4,     5,     6,     7,     8,     9,    10,    11,
     
    35103536      22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    35113537      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    41,
    3512       42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3513       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3514       -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    -1,
    3515       72,    -1,    74,    75,    -1,    77,    78,    79,    -1,    -1,
     3538      42,    43,    10,    11,    12,    13,    14,    15,    16,    17,
     3539      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3540      28,    29,    -1,    -1,    32,    33,    34,    69,    70,    -1,
     3541      72,    -1,    74,    75,    42,    77,    78,    79,    -1,    -1,
    35163542      82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
    35173543      92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3518       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3519       -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,
     3544      -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77,
     3545      78,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,
    35203546     122,   123,   124,   125,   126,   127,     4,     5,     6,     7,
    35213547       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    35223548      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    35233549      28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
    3524       -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,
    3525       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3526       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3527       -1,    69,    70,    -1,    72,    -1,    74,    75,    -1,    77,
     3550      -1,    -1,    40,    41,    42,    43,    10,    11,    12,    13,
     3551      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3552      24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
     3553      34,    69,    70,    -1,    72,    -1,    74,    75,    42,    77,
    35283554      78,    79,    -1,    -1,    82,    83,    84,    85,    86,    87,
    35293555      88,    89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,
    3530       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3531       -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
     3556      -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
     3557      -1,    -1,    -1,    77,    78,    -1,   114,    -1,   116,    -1,
    35323558      -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,
    35333559       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     
    35673593      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35683594      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,
    3569       -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,     3,
     3595      -1,   116,    -1,    -1,    -1,   120,    -1,   122,   123,     3,
    35703596       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    35713597      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    35723598      24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
    3573       34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
     3599      34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
    35743600      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35753601      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3576       -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,    -1,
     3602      -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    -1,
    35773603      74,    75,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,
    35783604      -1,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,
     
    35823608       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    35833609      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3584       23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
    3585       33,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
     3610      23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
     3611      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
    35863612      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
    3589       -1,    74,    -1,    -1,    77,    78,    -1,    -1,    81,     3,
    3590        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3591       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3592       24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
    3593       34,    35,    -1,   116,    -1,    39,    -1,    -1,    42,   122,
    3594      123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3595       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3596       -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,    -1,
    3597       74,    -1,    -1,    77,    78,     3,     4,     5,     6,     7,
    3598        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3599       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3600       28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
    3601       -1,    -1,   116,    -1,    42,    -1,    -1,    -1,   122,   123,
    3602       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3603       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3604       -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,    77,
    3605       78,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3606       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3607       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3608       33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   116,    42,
    3609       -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,
    36103613      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36113614      -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
     
    36153618      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36163619      -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
    3617      123,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3620     123,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3621      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3622      22,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
     3623      32,    33,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,
     3624      42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3625      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3626      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
     3627      72,    -1,    74,    -1,    -1,    77,    78,    -1,    -1,    81,
     3628       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    36183629      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    36193630      23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3620       33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
     3631      33,    34,    35,    -1,   116,    -1,    39,    -1,    -1,    42,
     3632     122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3633      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3634      -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
     3635      -1,    74,    -1,    -1,    77,    78,     3,     4,     5,     6,
     3636       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3637      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3638      27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
     3639      -1,    -1,    -1,   116,    -1,    42,    -1,    -1,    -1,   122,
     3640     123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3641      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3642      -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,
     3643      77,    78,     4,     5,     6,     7,     8,     9,    10,    11,
     3644      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3645      22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
     3646      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   116,
     3647      42,    -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,
     3648      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3649      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
     3650      72,    -1,    74,    75,    -1,    77,    78,    79,    -1,    -1,
     3651      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    -1,
    36213652      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36223653      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
    3624       -1,    74,    -1,    -1,    77,    78,     4,     5,     6,     7,
    3625        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3654      -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,
     3655     122,   123,     4,     5,     6,     7,     8,     9,    10,    11,
     3656      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3657      22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
     3658      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3659      42,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    36263660      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3627       28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
    3628       -1,    -1,   115,   116,    42,    -1,    -1,    -1,    -1,   122,
    3629      123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3661      28,    29,    -1,    -1,    32,    33,    34,    -1,    70,    -1,
     3662      72,    -1,    74,    -1,    42,    77,    78,    -1,    -1,    -1,
    36303663      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3631       -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,    77,
    3632       78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3664      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3665      -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77,
     3666      78,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
     3667     122,   123,     4,     5,     6,     7,     8,     9,    10,    11,
     3668      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3669      22,    23,    24,    25,    26,    27,    28,    29,   116,    -1,
     3670      32,    33,    34,    -1,   122,   123,    -1,    -1,    -1,    -1,
     3671      42,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3672      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3673      28,    29,    -1,    -1,    32,    33,    34,    -1,    70,    -1,
     3674      72,    -1,    74,    -1,    42,    77,    78,    -1,    -1,    -1,
    36333675      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3634       -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
    3635       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,
    3636       -1,    -1,    -1,    -1,   122,   123,     4,     5,     6,     7,
    3637        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3638       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3639       28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
    3640       -1,    -1,    -1,    -1,    42,    -1,    10,    11,    12,    13,
    3641       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3642       24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
    3643       34,    -1,    70,    -1,    72,    -1,    74,    -1,    42,    77,
    3644       78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3676      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3677      -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77,
     3678      78,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
     3679     122,   123,     4,     5,     6,     7,     8,     9,    10,    11,
     3680      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3681      22,    23,    24,    25,    26,    27,    28,    29,   116,    -1,
     3682      32,    33,    34,    -1,   122,   123,    -1,    -1,    -1,    -1,
     3683      42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36453684      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3646       -1,    -1,    -1,   101,    -1,    -1,    70,    -1,    -1,    -1,
    3647       -1,    -1,    -1,    77,    78,    -1,    -1,    -1,   116,    -1,
    3648       -1,    -1,    -1,    -1,   122,   123,     4,     5,     6,     7,
    3649        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3650       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3651       28,    29,   116,    -1,    32,    33,    34,    -1,   122,   123,
    3652       -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
     3686      72,    -1,    74,    -1,    -1,    77,    78,     4,     5,     6,
     3687       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3688      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3689      27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
     3690      -1,    -1,    -1,    -1,   116,    42,    -1,    -1,    -1,    -1,
     3691     122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36533692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,
     3694      77,    78,     4,     5,     6,     7,     8,     9,    10,    11,
     3695      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3696      22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
     3697      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   116,
     3698      42,    -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,
    36543699      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3655       -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,    77,
    3656       78,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3700      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
     3701      72,    -1,    74,    -1,    -1,    77,    78,    10,    11,    12,
    36573702      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    36583703      23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3659       33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   116,    42,
    3660       -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,
    3661       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3662       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
    3663       -1,    74,    -1,    -1,    77,    78,     4,     5,     6,     7,
    3664        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3665       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3666       28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
    3667       -1,    -1,    -1,   116,    42,    -1,    -1,    -1,    -1,   122,
    3668      123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3669       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3670       -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,    77,
    3671       78,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3672       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3673       29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
    3674       -1,    40,    41,    42,    43,    -1,    -1,    -1,   116,    -1,
    3675       -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,    -1,
    3676       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3677       69,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,    78,
    3678       79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
    3679       89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
    3680       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3681       -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,
    3682      119,    -1,    -1,   122,   123,   124,   125,   126,   127,    10,
    3683       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3684       21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
    3685       -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
    3686       41,    42,    43,    10,    11,    12,    13,    14,    15,    16,
    3687       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3688       27,    28,    29,    -1,    -1,    32,    33,    34,    69,    70,
    3689       -1,    -1,    -1,    -1,    75,    42,    77,    78,    79,    -1,
    3690       -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3691       91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3692       -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
    3693       77,    78,    -1,   114,   115,   116,    -1,    -1,    -1,    -1,
    3694       -1,   122,   123,   124,   125,   126,   127,    10,    11,    12,
    3695       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3696       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3697       33,    34,    -1,    -1,    -1,   122,   123,    40,    41,    42,
    3698       43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704      33,    34,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,
     3705      43,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
     3706     122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37003707      -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    -1,
    37013708      -1,    -1,    75,    -1,    77,    78,    79,    -1,    -1,    82,
     
    37033710      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37043711      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3705       -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
     3712      -1,   114,    -1,   116,    -1,    -1,   119,    -1,    -1,   122,
    37063713     123,   124,   125,   126,   127,    10,    11,    12,    13,    14,
    37073714      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37083715      25,    26,    27,    28,    29,    -1,    -1,    32,    33,    34,
    3709       -1,    -1,    -1,    -1,    -1,    40,    41,    42,    43,    -1,
    3710       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3711       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3712       -1,    -1,    -1,    -1,    69,    70,    -1,    -1,    -1,    -1,
    3713       75,    -1,    77,    78,    79,    -1,    -1,    82,    83,    84,
     3716      -1,    -1,    -1,    -1,    -1,    40,    41,    42,    43,    10,
     3717      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3718      21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
     3719      -1,    32,    33,    34,    69,    70,    -1,    -1,    -1,    -1,
     3720      75,    42,    77,    78,    79,    -1,    -1,    82,    83,    84,
    37143721      85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
    3715       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3716       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,
    3717       -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
     3722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
     3723      -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,   114,
     3724     115,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
    37183725     125,   126,   127,    10,    11,    12,    13,    14,    15,    16,
    37193726      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    37203727      27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3721       -1,    -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,
     3728      -1,   122,   123,    40,    41,    42,    43,    -1,    -1,    -1,
    37223729      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37233730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     
    37283735      -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,
    37293736      -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
    3730      127,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3731       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3732       22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    3733       32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3734       42,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3737     127,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    37353738      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3736       29,    -1,    -1,    32,    33,    34,    -1,    -1,    70,    -1,
    3737       72,    -1,    74,    42,    43,    77,    78,    -1,    -1,    -1,
     3739      29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
     3740      -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,
     3741      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3742      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3743      69,    70,    -1,    -1,    -1,    -1,    75,    -1,    77,    78,
     3744      79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
     3745      89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3746      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3747      -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,
     3748      -1,    -1,    -1,   122,   123,   124,   125,   126,   127,    10,
     3749      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3750      21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
     3751      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
     3752      41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3753      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3754      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
     3755      -1,    -1,    -1,    -1,    75,    -1,    77,    78,    79,    -1,
     3756      -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
     3757      91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3758      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3759      -1,    -1,    -1,   114,    -1,   116,    -1,    -1,    -1,    -1,
     3760      -1,   122,   123,   124,   125,   126,   127,    10,    11,    12,
     3761      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3762      23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
     3763      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
     3764      -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3765      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3766      23,    24,    25,    26,    27,    28,    29,    70,    -1,    32,
     3767      33,    34,    75,    -1,    77,    78,    79,    -1,    -1,    42,
     3768      -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,
     3769      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3770      -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
     3771      -1,   114,    75,   116,    77,    78,    79,    -1,    -1,   122,
     3772     123,    -1,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,
     3773      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3774      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3775      -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
     3776     123,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3777      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3778      29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
     3779      -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,
    37383780      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    37393781      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    37403782      29,    70,    -1,    32,    33,    34,    -1,    -1,    77,    78,
    3741       -1,    -1,    -1,    42,    43,    -1,    -1,   119,    -1,    -1,
     3783      -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,
    37423784      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37433785      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     
    37463788      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    37473789      24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
    3748       34,    -1,    -1,    -1,    -1,    -1,    -1,   116,    42,    43,
     3790      34,    -1,    -1,    -1,    -1,    -1,    -1,   116,    42,    -1,
    37493791      -1,   120,    -1,   122,   123,    -1,    10,    11,    12,    13,
    37503792      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     
    37543796      21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
    37553797      -1,    32,    33,    34,    -1,    -1,    70,    -1,    -1,    -1,
    3756       -1,    42,   116,    77,    78,    -1,   120,    -1,   122,   123,
     3798      -1,    42,   116,    77,    78,    -1,    -1,    -1,   122,   123,
    37573799      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37583800      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
     
    37623804      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    37633805      26,    27,    28,    29,    -1,   116,    32,    33,    34,    -1,
    3764       -1,   122,   123,    -1,    -1,    -1,    42,    10,    11,    12,
    3765       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3766       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3767       33,    34,    -1,    -1,    70,    -1,    -1,    -1,    -1,    42,
    3768       -1,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3770       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
    3771       -1,    -1,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,
    3772      116,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,    -1,
     3806      -1,   122,   123,    -1,    -1,    -1,    42,    -1,     4,     5,
     3807       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3808      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3809      26,    27,    28,    29,    70,    -1,    32,    33,    34,    -1,
     3810      -1,    77,    78,    -1,    -1,    -1,    42,    -1,    -1,    -1,
    37733811      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37743812      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3775       -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
    3776      123,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3777       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3778       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3779       33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
    3780       -1,    40,    41,    -1,    43,    44,    -1,    46,    -1,    -1,
    3781       49,    50,    51,    52,    53,    54,    55,    56,    -1,    -1,
    3782       59,    60,    -1,    -1,    -1,    64,    65,    70,    67,    72,
    3783       69,    74,    -1,    -1,    77,    78,    75,    -1,    -1,    -1,
    3784       79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
    3785       89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3813      -1,    -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,
     3814     116,    77,    78,    -1,    -1,    -1,   122,   123,    40,    41,
     3815      -1,    43,    44,    -1,    46,    -1,    -1,    49,    50,    51,
     3816      52,    53,    54,    55,    56,    -1,    -1,    -1,    60,    -1,
     3817      -1,    -1,    64,    65,    -1,    67,    -1,    69,    -1,   115,
     3818      -1,    -1,    -1,    75,    -1,    77,    78,    79,    -1,    -1,
     3819      82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
     3820      92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37863821      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3787       -1,    -1,   115,    -1,    -1,   114,    -1,   116,    -1,    -1,
    3788      119,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
    3789       -1,    40,    41,   132,    43,    44,    -1,    46,   137,    -1,
    3790       49,    50,    51,    52,    53,    54,    55,    56,    -1,    -1,
    3791       -1,    60,    -1,    -1,    -1,    64,    65,    -1,    67,    -1,
    3792       69,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,
    3793       79,    -1,    -1,    82,    83,    84,    85,    86,    87,    88,
    3794       89,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,    -1,
     3822      -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,    -1,
     3823     122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
     3824     132,    -1,    -1,    -1,    -1,   137,     4,     5,     6,     7,
     3825       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3826      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3827      28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,
     3828      -1,    -1,    -1,    -1,    42,    -1,    40,    41,    -1,    43,
     3829      44,    -1,    46,    47,    48,    49,    50,    51,    52,    53,
     3830      54,    55,    56,    -1,    -1,    59,    60,    -1,    -1,    -1,
     3831      64,    65,    70,    67,    72,    69,    74,    -1,    -1,    77,
     3832      78,    75,    -1,    77,    78,    79,    -1,    -1,    82,    83,
     3833      84,    85,    86,    87,    88,    89,    -1,    91,    92,    -1,
     3834      -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
    37953835      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3796       -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,    -1,
    3797      119,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
    3798       -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,   137,     4,
    3799        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3800       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3801       25,    26,    27,    28,    29,    -1,    -1,    32,    33,    34,
    3802       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    40,
    3803       41,    -1,    43,    44,    -1,    46,    47,    48,    49,    50,
    3804       51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
    3805       -1,    -1,    -1,    64,    65,    70,    67,    72,    69,    74,
    3806       -1,    -1,    77,    78,    75,    -1,    -1,    -1,    79,    -1,
    3807       -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3808       91,    92,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
     3836     114,    -1,   116,    -1,    -1,   119,    -1,    -1,   122,   123,
     3837     124,   125,   126,   127,    -1,    -1,    40,    41,   132,    43,
     3838      44,    -1,    46,    47,    48,    49,    50,    51,    52,    53,
     3839      54,    55,    56,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     3840      64,    65,    -1,    67,    -1,    69,    -1,    -1,    -1,    -1,
     3841      -1,    75,    -1,    77,    78,    79,    -1,    -1,    82,    83,
     3842      84,    85,    86,    87,    88,    89,    -1,    91,    92,    -1,
    38093843      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3810       -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,
    3811       -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    40,
    3812       41,   132,    43,    44,    -1,    46,    47,    48,    49,    50,
    3813       51,    52,    53,    54,    55,    56,    -1,    -1,    -1,    60,
    3814       -1,    -1,    -1,    64,    65,    -1,    67,    -1,    69,    -1,
    3815       -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    -1,
    3816       -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3817       91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38183844      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3819       -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,
    3820       -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    40,
    3821       41,   132,    43,    44,    -1,    46,    -1,    -1,    49,    50,
    3822       51,    52,    53,    54,    55,    56,    -1,    -1,    -1,    60,
    3823       -1,    -1,    -1,    64,    65,    -1,    67,    -1,    69,    -1,
    3824       -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    -1,
    3825       -1,    82,    83,    84,    85,    86,    87,    88,    89,    -1,
    3826       91,    92,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
    3827       -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3828       -1,    -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,
    3829       -1,   122,   123,   124,   125,   126,   127,    69,    -1,    -1,
    3830       -1,   132,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,
    3831       82,    83,    84,    85,    86,    87,    88,    89,    -1,    91,
    3832       92,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,
    3833       43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3834       -1,    -1,   114,    -1,   116,    -1,    -1,   119,    -1,    -1,
    3835      122,   123,   124,   125,   126,   127,    69,    -1,    -1,    -1,
    3836       -1,    -1,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,
    3837       83,    84,    85,    86,    87,    88,    89,    -1,    91,    92,
    3838       -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,
    3839       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3840       -1,   114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
    3841      123,   124,   125,   126,   127,    69,    -1,    -1,    -1,    -1,
    3842       -1,    75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,
     3845     114,    -1,   116,    -1,    -1,   119,    -1,    -1,   122,   123,
     3846     124,   125,   126,   127,    -1,    -1,    40,    41,   132,    43,
     3847      44,    -1,    46,    -1,    -1,    49,    50,    51,    52,    53,
     3848      54,    55,    56,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     3849      64,    65,    -1,    67,    -1,    69,    -1,    -1,    -1,    -1,
     3850      -1,    75,    -1,    77,    78,    79,    -1,    -1,    82,    83,
    38433851      84,    85,    86,    87,    88,    89,    -1,    91,    92,    -1,
    38443852      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    -1,
    38453853      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3846      114,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,
    3847      124,   125,   126,   127,    69,    -1,    -1,    -1,    -1,    -1,
     3854     114,    -1,   116,    -1,    -1,   119,    -1,    -1,   122,   123,
     3855     124,   125,   126,   127,    69,    -1,    -1,    -1,   132,    -1,
    38483856      75,    -1,    -1,    -1,    79,    -1,    -1,    82,    83,    84,
    38493857      85,    86,    87,    88,    89,    -1,    91,    92,    -1,    -1,
     
    38693877      -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,   116,    -1,
    38703878      -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,
     3879      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3880      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3881      -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
     3882      -1,    -1,    42,     3,     4,     5,     6,     7,     8,     9,
     3883      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3884      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3885      70,    -1,    32,    33,    34,    75,    -1,    77,    78,    -1,
     3886      -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    88,    89,
     3887      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3888      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3889      70,    -1,    72,    -1,    74,    -1,    -1,    77,    78,     3,
    38713890       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    38723891      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3873       24,    25,    26,    27,    28,    29,    -1,    -1,    -1,    -1,
    3874       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
     3892      24,    25,    26,    27,    28,    29,    -1,    -1,    32,    33,
     3893      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
     3894      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3895      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3896      -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,    -1,
     3897      74,    -1,    -1,    77,    78,     4,     5,     6,     7,     8,
     3898       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3899      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3900      29,    -1,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,
     3901      -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,
     3902      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3903      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3904      -1,    70,    -1,    72,    -1,    74,    -1,    -1,    77,    78,
    38753905      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    38763906      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    3877       -1,    -1,    32,    33,    34,    -1,    70,    -1,    72,    -1,
    3878       74,    75,    42,    77,    78,    79,    -1,    -1,    -1,    -1,
    3879       -1,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1,    -1,
    3880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3881       70,    -1,    -1,    -1,    -1,    75,    -1,    77,    78,    -1,
    3882       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
    3883        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3884       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3885       23,    24,    25,    26,    27,    28,    29,    -1,    -1,    32,
    3886       33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
     3907      -1,    -1,    32,    33,    34,    35,    36,    37,    38,    -1,
     3908      -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38873909      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38883910      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
    3890       -1,    74,    -1,    -1,    77,    78,     3,     4,     5,     6,
    3891        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3892       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3893       27,    28,    29,    -1,    -1,    32,    33,    34,    -1,    -1,
    3894       -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,
    3895       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3896       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3897       -1,    -1,    -1,    70,    -1,    72,    -1,    74,    -1,    -1,
    3898       77,    78,     4,     5,     6,     7,     8,     9,    10,    11,
    3899       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3900       22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
    3901       32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3902       42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3903       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3904       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3905       72,    -1,    74,    -1,    -1,    77,    78
     3911      70,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78
    39063912};
    39073913
     
    39593965     232,   235,   139,   318,   114,   318,   172,   326,   235,   114,
    39603966     139,   279,   119,    35,    36,    37,    38,   233,   293,   294,
    3961      296,   139,   133,   136,   298,   139,   236,   241,   242,   279,
     3967     296,   139,   133,   136,   298,   139,    10,    75,    77,    78,
    39623968     322,   323,   324,   114,   146,   114,   156,   114,   156,   159,
    39633969     114,   156,   114,   114,   156,   156,   116,   172,   177,   181,
     
    40034009     170,   171,   265,   140,   140,   144,   230,   140,   140,   267,
    40044010     114,   157,   377,   140,   120,   235,   294,   172,   295,   140,
    4005      139,   139,   114,   140,   115,   323,   177,   178,   135,   137,
    4006      116,   146,   208,   209,   210,   115,   121,   115,   115,   115,
    4007      115,   172,   365,   366,   367,   235,   364,   319,   319,   119,
    4008      159,   172,   173,   176,   121,   139,   115,   121,   172,   139,
    4009      120,   170,   135,   271,   115,   115,   115,   352,   271,   115,
    4010      233,   370,   116,   122,   157,   172,   172,   235,   349,   271,
    4011      115,   115,   115,   115,   115,   115,   115,     7,   235,   343,
    4012      347,   358,   139,   139,   380,   139,   139,   140,   140,   140,
    4013      140,   284,   170,   171,   172,   317,   139,   285,   287,   120,
    4014      139,   219,   281,    43,    44,    46,    49,    50,    51,    52,
    4015       53,    54,    55,    56,    60,    64,    65,    75,   132,   178,
    4016      179,   180,   181,   182,   183,   185,   186,   198,   200,   201,
    4017      206,   220,   315,    31,   140,   136,   284,   139,   139,   115,
    4018      140,   181,   255,   137,   137,   326,   171,   235,   260,   261,
    4019      260,   281,   319,   120,   266,   379,   115,   121,   117,   117,
    4020      140,   235,   121,   380,   297,   115,   293,   223,   225,   233,
    4021      305,   306,   307,   308,   299,   115,   115,   135,   171,   114,
    4022      115,   135,   121,   144,   115,   115,   115,   364,   286,   121,
    4023      140,   176,    82,    85,    87,   144,   152,   153,   154,   151,
    4024      140,   152,   170,   140,   114,   356,   357,   140,   139,   140,
    4025      140,   140,   172,   115,   140,   114,   356,   357,   114,   362,
    4026      114,   362,   357,   234,     7,   122,   140,   172,   271,   271,
    4027      270,   274,   274,   275,   115,   121,   121,   115,   101,   127,
    4028      140,   140,   152,   285,   172,   121,   137,   220,   224,   235,
    4029      239,   114,   114,   179,   114,   114,    75,   137,    75,   137,
    4030       75,   122,   178,   114,   181,   173,   173,   135,   149,   137,
    4031      140,   139,   140,   219,   115,   172,   271,   271,   319,   115,
    4032      120,   259,   120,   139,   115,   139,   140,   316,   120,   139,
    4033      140,   140,   115,   119,   208,   117,   171,   137,   208,   210,
    4034      115,   114,   356,   357,   379,   173,   117,   140,   155,   116,
    4035      153,   155,   155,   121,   140,    90,   118,   117,   140,   115,
    4036      139,   115,   117,   117,   117,   140,   115,   139,   139,   139,
    4037      172,   172,   140,   117,   140,   140,   140,   140,   139,   139,
    4038      171,   171,   117,   117,   140,   281,   235,   177,   177,    50,
    4039      177,   139,   137,   137,   137,   177,   137,   177,    61,    62,
    4040       63,   202,   203,   204,   137,    66,   137,   319,   119,   183,
    4041      120,   137,   140,   140,   101,   276,   277,   115,   306,   121,
    4042      137,   121,   137,   120,   304,   135,   146,   115,   115,   135,
    4043      139,   120,   117,    86,   139,   153,   117,   116,   153,   116,
    4044      153,   117,   271,   117,   271,   271,   271,   140,   140,   117,
    4045      117,   115,   115,   117,   121,   101,   270,   101,   140,   117,
    4046      115,   115,   114,   115,   178,   199,   220,   137,   115,   114,
    4047      114,   181,   204,    61,    62,   172,   179,   150,   115,   115,
    4048      119,   139,   139,   305,   146,   211,   114,   137,   211,   271,
    4049      152,   139,   139,   140,   140,   140,   140,   117,   117,   139,
    4050      140,   117,   179,    47,    48,   119,   189,   190,   191,   177,
    4051      179,   140,   115,   178,   119,   191,   101,   139,   101,   139,
    4052      114,   114,   137,   120,   139,   279,   316,   120,   121,   135,
    4053      171,   115,   140,   140,   152,   152,   115,   115,   115,   115,
    4054      274,    45,   171,   187,   188,   317,   135,   139,   179,   189,
    4055      115,   137,   179,   137,   139,   115,   139,   115,   139,   101,
    4056      139,   101,   139,   137,   305,   146,   144,   212,   115,   137,
    4057      115,   117,   140,   140,   179,   101,   121,   135,   140,   213,
    4058      214,   220,   137,   178,   178,   213,   181,   205,   233,   373,
    4059      181,   205,   115,   139,   115,   139,   120,   115,   121,   117,
    4060      117,   171,   187,   190,   192,   193,   139,   137,   190,   194,
    4061      195,   140,   114,   157,   316,   364,   144,   140,   181,   205,
    4062      181,   205,   114,   137,   144,   179,   184,   120,   190,   220,
    4063      178,    59,   184,   197,   120,   190,   115,   235,   115,   140,
    4064      140,   299,   179,   184,   137,   196,   197,   184,   197,   181,
    4065      181,   115,   115,   115,   196,   140,   140,   181,   181,   140,
    4066      140
     4011     139,   139,   114,   140,   115,   323,   150,   135,   137,   116,
     4012     146,   208,   209,   210,   115,   121,   115,   115,   115,   115,
     4013     172,   365,   366,   367,   235,   364,   319,   319,   119,   159,
     4014     172,   173,   176,   121,   139,   115,   121,   172,   139,   120,
     4015     170,   135,   271,   115,   115,   115,   352,   271,   115,   233,
     4016     370,   116,   122,   157,   172,   172,   235,   349,   271,   115,
     4017     115,   115,   115,   115,   115,   115,     7,   235,   343,   347,
     4018     358,   139,   139,   380,   139,   139,   140,   140,   140,   140,
     4019     284,   170,   171,   172,   317,   139,   285,   287,   120,   139,
     4020     219,   281,    43,    44,    46,    49,    50,    51,    52,    53,
     4021      54,    55,    56,    60,    64,    65,    75,    77,    78,    79,
     4022     132,   145,   177,   178,   179,   180,   181,   182,   183,   185,
     4023     186,   198,   200,   201,   206,   220,   279,   315,    31,   140,
     4024     136,   284,   139,   139,   115,   140,   181,   255,   137,   137,
     4025     326,   171,   235,   260,   261,   260,   281,   319,   120,   266,
     4026     379,   115,   121,   117,   117,   140,   235,   121,   380,   297,
     4027     115,   293,   223,   225,   233,   305,   306,   307,   308,   299,
     4028     115,   115,   135,   171,   114,   115,   135,   121,   144,   115,
     4029     115,   115,   364,   286,   121,   140,   176,    82,    85,    87,
     4030     144,   152,   153,   154,   151,   140,   152,   170,   140,   114,
     4031     356,   357,   140,   139,   140,   140,   140,   172,   115,   140,
     4032     114,   356,   357,   114,   362,   114,   362,   357,   234,     7,
     4033     122,   140,   172,   271,   271,   270,   274,   274,   275,   115,
     4034     121,   121,   115,   101,   127,   140,   140,   152,   285,   172,
     4035     121,   137,   220,   224,   235,   239,   114,   114,   179,   114,
     4036     114,   137,   279,   137,   279,   122,   279,   178,   114,   181,
     4037     173,   173,   149,   137,   140,   139,   140,   135,   219,   115,
     4038     172,   271,   271,   319,   115,   120,   259,   120,   139,   115,
     4039     139,   140,   316,   120,   139,   140,   140,   115,   119,   208,
     4040     117,   171,   137,   208,   210,   115,   114,   356,   357,   379,
     4041     173,   117,   140,   155,   116,   153,   155,   155,   121,   140,
     4042      90,   118,   117,   140,   115,   139,   115,   117,   117,   117,
     4043     140,   115,   139,   139,   139,   172,   172,   140,   117,   140,
     4044     140,   140,   140,   139,   139,   171,   171,   117,   117,   140,
     4045     281,   235,   177,   177,    50,   177,   139,   137,   137,   177,
     4046     137,   137,   177,    61,    62,    63,   202,   203,   204,   137,
     4047      66,   137,   119,   183,   120,   319,   137,   140,   140,   101,
     4048     276,   277,   115,   306,   121,   137,   121,   137,   120,   304,
     4049     135,   146,   115,   115,   135,   139,   120,   117,    86,   139,
     4050     153,   117,   116,   153,   116,   153,   117,   271,   117,   271,
     4051     271,   271,   140,   140,   117,   117,   115,   115,   117,   121,
     4052     101,   270,   101,   140,   117,   115,   115,   114,   115,   178,
     4053     199,   220,   137,   115,   114,   114,   181,   204,    61,    62,
     4054     172,   150,   179,   115,   115,   119,   139,   139,   305,   146,
     4055     211,   114,   137,   211,   271,   152,   139,   139,   140,   140,
     4056     140,   140,   117,   117,   139,   140,   117,   179,    47,    48,
     4057     119,   189,   190,   191,   177,   179,   140,   115,   178,   119,
     4058     191,   101,   139,   101,   139,   114,   114,   137,   120,   139,
     4059     279,   316,   120,   121,   135,   171,   115,   140,   140,   152,
     4060     152,   115,   115,   115,   115,   274,    45,   171,   187,   188,
     4061     317,   135,   139,   179,   189,   115,   137,   179,   137,   139,
     4062     115,   139,   115,   139,   101,   139,   101,   139,   137,   305,
     4063     146,   144,   212,   115,   137,   115,   117,   140,   140,   179,
     4064     101,   121,   135,   140,   213,   214,   220,   137,   178,   178,
     4065     213,   181,   205,   233,   373,   181,   205,   115,   139,   115,
     4066     139,   120,   115,   121,   117,   117,   171,   187,   190,   192,
     4067     193,   139,   137,   190,   194,   195,   140,   114,   157,   316,
     4068     364,   144,   140,   181,   205,   181,   205,   114,   137,   144,
     4069     179,   184,   120,   190,   220,   178,    59,   184,   197,   120,
     4070     190,   115,   235,   115,   140,   140,   299,   179,   184,   137,
     4071     196,   197,   184,   197,   181,   181,   115,   115,   115,   196,
     4072     140,   140,   181,   181,   140,   140
    40674073};
    40684074
     
    49014907
    49024908/* Line 1806 of yacc.c  */
    4903 #line 306 "parser.yy"
     4909#line 305 "parser.yy"
    49044910    { typedefTable.enterScope(); }
    49054911    break;
     
    49084914
    49094915/* Line 1806 of yacc.c  */
    4910 #line 310 "parser.yy"
     4916#line 309 "parser.yy"
    49114917    { typedefTable.leaveScope(); }
    49124918    break;
     
    49154921
    49164922/* Line 1806 of yacc.c  */
     4923#line 316 "parser.yy"
     4924    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     4925    break;
     4926
     4927  case 5:
     4928
     4929/* Line 1806 of yacc.c  */
    49174930#line 317 "parser.yy"
    4918     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    4919     break;
    4920 
    4921   case 5:
     4931    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4932    break;
     4933
     4934  case 6:
    49224935
    49234936/* Line 1806 of yacc.c  */
     
    49264939    break;
    49274940
    4928   case 6:
     4941  case 7:
    49294942
    49304943/* Line 1806 of yacc.c  */
     
    49334946    break;
    49344947
    4935   case 7:
     4948  case 8:
    49364949
    49374950/* Line 1806 of yacc.c  */
    49384951#line 320 "parser.yy"
    4939     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    4940     break;
    4941 
    4942   case 8:
    4943 
    4944 /* Line 1806 of yacc.c  */
    4945 #line 321 "parser.yy"
    49464952    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    49474953    break;
     
    49504956
    49514957/* Line 1806 of yacc.c  */
    4952 #line 346 "parser.yy"
     4958#line 345 "parser.yy"
    49534959    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    49544960    break;
     
    49574963
    49584964/* Line 1806 of yacc.c  */
    4959 #line 350 "parser.yy"
     4965#line 349 "parser.yy"
    49604966    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    49614967    break;
     
    49644970
    49654971/* Line 1806 of yacc.c  */
    4966 #line 352 "parser.yy"
     4972#line 351 "parser.yy"
    49674973    {
    49684974                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    49754981
    49764982/* Line 1806 of yacc.c  */
    4977 #line 363 "parser.yy"
     4983#line 362 "parser.yy"
    49784984    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    49794985    break;
     
    49824988
    49834989/* Line 1806 of yacc.c  */
    4984 #line 365 "parser.yy"
     4990#line 364 "parser.yy"
    49854991    { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[(1) - (1)].tok) ) ); }
    49864992    break;
     
    49894995
    49904996/* Line 1806 of yacc.c  */
    4991 #line 368 "parser.yy"
     4997#line 367 "parser.yy"
    49924998    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    49934999    break;
     
    49965002
    49975003/* Line 1806 of yacc.c  */
    4998 #line 370 "parser.yy"
     5004#line 369 "parser.yy"
    49995005    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50005006    break;
     
    50035009
    50045010/* Line 1806 of yacc.c  */
    5005 #line 380 "parser.yy"
     5011#line 379 "parser.yy"
    50065012    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    50075013    break;
     
    50105016
    50115017/* Line 1806 of yacc.c  */
    5012 #line 382 "parser.yy"
     5018#line 381 "parser.yy"
    50135019    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    50145020    break;
     
    50175023
    50185024/* Line 1806 of yacc.c  */
    5019 #line 384 "parser.yy"
     5025#line 383 "parser.yy"
    50205026    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50215027    break;
     
    50245030
    50255031/* Line 1806 of yacc.c  */
    5026 #line 386 "parser.yy"
     5032#line 385 "parser.yy"
    50275033    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    50285034    break;
     
    50315037
    50325038/* Line 1806 of yacc.c  */
    5033 #line 388 "parser.yy"
     5039#line 387 "parser.yy"
    50345040    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); }
    50355041    break;
     
    50385044
    50395045/* Line 1806 of yacc.c  */
    5040 #line 390 "parser.yy"
     5046#line 389 "parser.yy"
    50415047    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50425048    break;
     
    50455051
    50465052/* Line 1806 of yacc.c  */
    5047 #line 392 "parser.yy"
     5053#line 391 "parser.yy"
    50485054    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    50495055    break;
     
    50525058
    50535059/* Line 1806 of yacc.c  */
    5054 #line 394 "parser.yy"
     5060#line 393 "parser.yy"
    50555061    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    50565062    break;
     
    50595065
    50605066/* Line 1806 of yacc.c  */
    5061 #line 396 "parser.yy"
     5067#line 395 "parser.yy"
    50625068    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    50635069    break;
     
    50665072
    50675073/* Line 1806 of yacc.c  */
    5068 #line 398 "parser.yy"
     5074#line 397 "parser.yy"
    50695075    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    50705076    break;
     
    50735079
    50745080/* Line 1806 of yacc.c  */
    5075 #line 400 "parser.yy"
     5081#line 399 "parser.yy"
    50765082    {
    50775083                        Token fn;
     
    50845090
    50855091/* Line 1806 of yacc.c  */
    5086 #line 410 "parser.yy"
     5092#line 409 "parser.yy"
    50875093    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    50885094    break;
     
    50915097
    50925098/* Line 1806 of yacc.c  */
    5093 #line 415 "parser.yy"
     5099#line 414 "parser.yy"
    50945100    { (yyval.en) = nullptr; }
    50955101    break;
     
    50985104
    50995105/* Line 1806 of yacc.c  */
    5100 #line 421 "parser.yy"
     5106#line 420 "parser.yy"
    51015107    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    51025108    break;
     
    51055111
    51065112/* Line 1806 of yacc.c  */
    5107 #line 427 "parser.yy"
     5113#line 426 "parser.yy"
    51085114    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); }
    51095115    break;
     
    51125118
    51135119/* Line 1806 of yacc.c  */
    5114 #line 429 "parser.yy"
     5120#line 428 "parser.yy"
    51155121    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); }
    51165122    break;
     
    51195125
    51205126/* Line 1806 of yacc.c  */
    5121 #line 431 "parser.yy"
     5127#line 430 "parser.yy"
    51225128    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    51235129    break;
     
    51265132
    51275133/* Line 1806 of yacc.c  */
    5128 #line 433 "parser.yy"
     5134#line 432 "parser.yy"
    51295135    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    51305136    break;
     
    51335139
    51345140/* Line 1806 of yacc.c  */
    5135 #line 435 "parser.yy"
     5141#line 434 "parser.yy"
    51365142    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    51375143    break;
     
    51405146
    51415147/* Line 1806 of yacc.c  */
    5142 #line 437 "parser.yy"
     5148#line 436 "parser.yy"
    51435149    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    51445150    break;
     
    51475153
    51485154/* Line 1806 of yacc.c  */
    5149 #line 442 "parser.yy"
     5155#line 441 "parser.yy"
    51505156    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
    51515157    break;
     
    51545160
    51555161/* Line 1806 of yacc.c  */
    5156 #line 444 "parser.yy"
     5162#line 443 "parser.yy"
    51575163    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
    51585164    break;
     
    51615167
    51625168/* Line 1806 of yacc.c  */
    5163 #line 446 "parser.yy"
     5169#line 445 "parser.yy"
    51645170    {
    51655171                        if( (*(yyvsp[(1) - (2)].tok)) == "0" || (*(yyvsp[(1) - (2)].tok)) == "1" ) {
     
    51745180
    51755181/* Line 1806 of yacc.c  */
    5176 #line 457 "parser.yy"
     5182#line 456 "parser.yy"
    51775183    { (yyval.en) = nullptr; }
    51785184    break;
     
    51815187
    51825188/* Line 1806 of yacc.c  */
    5183 #line 459 "parser.yy"
     5189#line 458 "parser.yy"
    51845190    {
    51855191                        Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) );
     
    51915197
    51925198/* Line 1806 of yacc.c  */
    5193 #line 470 "parser.yy"
     5199#line 469 "parser.yy"
    51945200    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51955201    break;
     
    51985204
    51995205/* Line 1806 of yacc.c  */
    5200 #line 472 "parser.yy"
     5206#line 471 "parser.yy"
    52015207    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    52025208    break;
     
    52055211
    52065212/* Line 1806 of yacc.c  */
    5207 #line 474 "parser.yy"
     5213#line 473 "parser.yy"
    52085214    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    52095215    break;
     
    52125218
    52135219/* Line 1806 of yacc.c  */
    5214 #line 479 "parser.yy"
     5220#line 478 "parser.yy"
    52155221    {
    52165222                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52305236
    52315237/* Line 1806 of yacc.c  */
    5232 #line 492 "parser.yy"
     5238#line 491 "parser.yy"
    52335239    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    52345240    break;
     
    52375243
    52385244/* Line 1806 of yacc.c  */
    5239 #line 494 "parser.yy"
     5245#line 493 "parser.yy"
    52405246    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    52415247    break;
     
    52445250
    52455251/* Line 1806 of yacc.c  */
    5246 #line 496 "parser.yy"
     5252#line 495 "parser.yy"
    52475253    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    52485254    break;
     
    52515257
    52525258/* Line 1806 of yacc.c  */
    5253 #line 498 "parser.yy"
     5259#line 497 "parser.yy"
    52545260    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52555261    break;
     
    52585264
    52595265/* Line 1806 of yacc.c  */
    5260 #line 500 "parser.yy"
     5266#line 499 "parser.yy"
    52615267    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52625268    break;
     
    52655271
    52665272/* Line 1806 of yacc.c  */
    5267 #line 502 "parser.yy"
     5273#line 501 "parser.yy"
    52685274    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52695275    break;
     
    52725278
    52735279/* Line 1806 of yacc.c  */
    5274 #line 504 "parser.yy"
     5280#line 503 "parser.yy"
    52755281    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52765282    break;
     
    52795285
    52805286/* Line 1806 of yacc.c  */
    5281 #line 506 "parser.yy"
     5287#line 505 "parser.yy"
    52825288    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    52835289    break;
     
    52865292
    52875293/* Line 1806 of yacc.c  */
    5288 #line 508 "parser.yy"
     5294#line 507 "parser.yy"
    52895295    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    52905296    break;
     
    52935299
    52945300/* Line 1806 of yacc.c  */
    5295 #line 510 "parser.yy"
     5301#line 509 "parser.yy"
    52965302    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    52975303    break;
     
    53005306
    53015307/* Line 1806 of yacc.c  */
    5302 #line 512 "parser.yy"
     5308#line 511 "parser.yy"
    53035309    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    53045310    break;
     
    53075313
    53085314/* Line 1806 of yacc.c  */
     5315#line 517 "parser.yy"
     5316    { (yyval.op) = OperKinds::PointTo; }
     5317    break;
     5318
     5319  case 73:
     5320
     5321/* Line 1806 of yacc.c  */
    53095322#line 518 "parser.yy"
    5310     { (yyval.op) = OperKinds::PointTo; }
    5311     break;
    5312 
    5313   case 73:
    5314 
    5315 /* Line 1806 of yacc.c  */
    5316 #line 519 "parser.yy"
    53175323    { (yyval.op) = OperKinds::AddressOf; }
    53185324    break;
     
    53215327
    53225328/* Line 1806 of yacc.c  */
     5329#line 524 "parser.yy"
     5330    { (yyval.op) = OperKinds::UnPlus; }
     5331    break;
     5332
     5333  case 75:
     5334
     5335/* Line 1806 of yacc.c  */
    53235336#line 525 "parser.yy"
    5324     { (yyval.op) = OperKinds::UnPlus; }
    5325     break;
    5326 
    5327   case 75:
     5337    { (yyval.op) = OperKinds::UnMinus; }
     5338    break;
     5339
     5340  case 76:
    53285341
    53295342/* Line 1806 of yacc.c  */
    53305343#line 526 "parser.yy"
    5331     { (yyval.op) = OperKinds::UnMinus; }
    5332     break;
    5333 
    5334   case 76:
     5344    { (yyval.op) = OperKinds::Neg; }
     5345    break;
     5346
     5347  case 77:
    53355348
    53365349/* Line 1806 of yacc.c  */
    53375350#line 527 "parser.yy"
    5338     { (yyval.op) = OperKinds::Neg; }
    5339     break;
    5340 
    5341   case 77:
    5342 
    5343 /* Line 1806 of yacc.c  */
    5344 #line 528 "parser.yy"
    53455351    { (yyval.op) = OperKinds::BitNeg; }
    53465352    break;
     
    53495355
    53505356/* Line 1806 of yacc.c  */
    5351 #line 534 "parser.yy"
     5357#line 533 "parser.yy"
    53525358    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53535359    break;
     
    53565362
    53575363/* Line 1806 of yacc.c  */
    5358 #line 542 "parser.yy"
     5364#line 541 "parser.yy"
    53595365    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53605366    break;
     
    53635369
    53645370/* Line 1806 of yacc.c  */
    5365 #line 544 "parser.yy"
     5371#line 543 "parser.yy"
    53665372    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53675373    break;
     
    53705376
    53715377/* Line 1806 of yacc.c  */
    5372 #line 546 "parser.yy"
     5378#line 545 "parser.yy"
    53735379    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53745380    break;
     
    53775383
    53785384/* Line 1806 of yacc.c  */
    5379 #line 552 "parser.yy"
     5385#line 551 "parser.yy"
    53805386    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53815387    break;
     
    53845390
    53855391/* Line 1806 of yacc.c  */
    5386 #line 554 "parser.yy"
     5392#line 553 "parser.yy"
    53875393    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53885394    break;
     
    53915397
    53925398/* Line 1806 of yacc.c  */
    5393 #line 560 "parser.yy"
     5399#line 559 "parser.yy"
    53945400    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53955401    break;
     
    53985404
    53995405/* Line 1806 of yacc.c  */
    5400 #line 562 "parser.yy"
     5406#line 561 "parser.yy"
    54015407    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54025408    break;
     
    54055411
    54065412/* Line 1806 of yacc.c  */
    5407 #line 568 "parser.yy"
     5413#line 567 "parser.yy"
    54085414    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54095415    break;
     
    54125418
    54135419/* Line 1806 of yacc.c  */
    5414 #line 570 "parser.yy"
     5420#line 569 "parser.yy"
    54155421    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54165422    break;
     
    54195425
    54205426/* Line 1806 of yacc.c  */
    5421 #line 572 "parser.yy"
     5427#line 571 "parser.yy"
    54225428    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54235429    break;
     
    54265432
    54275433/* Line 1806 of yacc.c  */
    5428 #line 574 "parser.yy"
     5434#line 573 "parser.yy"
    54295435    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54305436    break;
     
    54335439
    54345440/* Line 1806 of yacc.c  */
    5435 #line 580 "parser.yy"
     5441#line 579 "parser.yy"
    54365442    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54375443    break;
     
    54405446
    54415447/* Line 1806 of yacc.c  */
    5442 #line 582 "parser.yy"
     5448#line 581 "parser.yy"
    54435449    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54445450    break;
     
    54475453
    54485454/* Line 1806 of yacc.c  */
    5449 #line 588 "parser.yy"
     5455#line 587 "parser.yy"
    54505456    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54515457    break;
     
    54545460
    54555461/* Line 1806 of yacc.c  */
    5456 #line 594 "parser.yy"
     5462#line 593 "parser.yy"
    54575463    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54585464    break;
     
    54615467
    54625468/* Line 1806 of yacc.c  */
    5463 #line 600 "parser.yy"
     5469#line 599 "parser.yy"
    54645470    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54655471    break;
     
    54685474
    54695475/* Line 1806 of yacc.c  */
    5470 #line 606 "parser.yy"
     5476#line 605 "parser.yy"
    54715477    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54725478    break;
     
    54755481
    54765482/* Line 1806 of yacc.c  */
    5477 #line 612 "parser.yy"
     5483#line 611 "parser.yy"
    54785484    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    54795485    break;
     
    54825488
    54835489/* Line 1806 of yacc.c  */
    5484 #line 618 "parser.yy"
     5490#line 617 "parser.yy"
    54855491    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54865492    break;
     
    54895495
    54905496/* Line 1806 of yacc.c  */
    5491 #line 621 "parser.yy"
     5497#line 620 "parser.yy"
    54925498    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    54935499    break;
     
    54965502
    54975503/* Line 1806 of yacc.c  */
    5498 #line 634 "parser.yy"
     5504#line 633 "parser.yy"
    54995505    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55005506    break;
     
    55035509
    55045510/* Line 1806 of yacc.c  */
    5505 #line 641 "parser.yy"
     5511#line 640 "parser.yy"
    55065512    { (yyval.en) = nullptr; }
    55075513    break;
     
    55105516
    55115517/* Line 1806 of yacc.c  */
     5518#line 645 "parser.yy"
     5519    { (yyval.op) = OperKinds::Assign; }
     5520    break;
     5521
     5522  case 117:
     5523
     5524/* Line 1806 of yacc.c  */
    55125525#line 646 "parser.yy"
    5513     { (yyval.op) = OperKinds::Assign; }
    5514     break;
    5515 
    5516   case 117:
     5526    { (yyval.op) = OperKinds::AtAssn; }
     5527    break;
     5528
     5529  case 118:
    55175530
    55185531/* Line 1806 of yacc.c  */
    55195532#line 647 "parser.yy"
    5520     { (yyval.op) = OperKinds::AtAssn; }
    5521     break;
    5522 
    5523   case 118:
     5533    { (yyval.op) = OperKinds::MulAssn; }
     5534    break;
     5535
     5536  case 119:
    55245537
    55255538/* Line 1806 of yacc.c  */
    55265539#line 648 "parser.yy"
    5527     { (yyval.op) = OperKinds::MulAssn; }
    5528     break;
    5529 
    5530   case 119:
     5540    { (yyval.op) = OperKinds::DivAssn; }
     5541    break;
     5542
     5543  case 120:
    55315544
    55325545/* Line 1806 of yacc.c  */
    55335546#line 649 "parser.yy"
    5534     { (yyval.op) = OperKinds::DivAssn; }
    5535     break;
    5536 
    5537   case 120:
     5547    { (yyval.op) = OperKinds::ModAssn; }
     5548    break;
     5549
     5550  case 121:
    55385551
    55395552/* Line 1806 of yacc.c  */
    55405553#line 650 "parser.yy"
    5541     { (yyval.op) = OperKinds::ModAssn; }
    5542     break;
    5543 
    5544   case 121:
     5554    { (yyval.op) = OperKinds::PlusAssn; }
     5555    break;
     5556
     5557  case 122:
    55455558
    55465559/* Line 1806 of yacc.c  */
    55475560#line 651 "parser.yy"
    5548     { (yyval.op) = OperKinds::PlusAssn; }
    5549     break;
    5550 
    5551   case 122:
     5561    { (yyval.op) = OperKinds::MinusAssn; }
     5562    break;
     5563
     5564  case 123:
    55525565
    55535566/* Line 1806 of yacc.c  */
    55545567#line 652 "parser.yy"
    5555     { (yyval.op) = OperKinds::MinusAssn; }
    5556     break;
    5557 
    5558   case 123:
     5568    { (yyval.op) = OperKinds::LSAssn; }
     5569    break;
     5570
     5571  case 124:
    55595572
    55605573/* Line 1806 of yacc.c  */
    55615574#line 653 "parser.yy"
    5562     { (yyval.op) = OperKinds::LSAssn; }
    5563     break;
    5564 
    5565   case 124:
     5575    { (yyval.op) = OperKinds::RSAssn; }
     5576    break;
     5577
     5578  case 125:
    55665579
    55675580/* Line 1806 of yacc.c  */
    55685581#line 654 "parser.yy"
    5569     { (yyval.op) = OperKinds::RSAssn; }
    5570     break;
    5571 
    5572   case 125:
     5582    { (yyval.op) = OperKinds::AndAssn; }
     5583    break;
     5584
     5585  case 126:
    55735586
    55745587/* Line 1806 of yacc.c  */
    55755588#line 655 "parser.yy"
    5576     { (yyval.op) = OperKinds::AndAssn; }
    5577     break;
    5578 
    5579   case 126:
     5589    { (yyval.op) = OperKinds::ERAssn; }
     5590    break;
     5591
     5592  case 127:
    55805593
    55815594/* Line 1806 of yacc.c  */
    55825595#line 656 "parser.yy"
    5583     { (yyval.op) = OperKinds::ERAssn; }
    5584     break;
    5585 
    5586   case 127:
    5587 
    5588 /* Line 1806 of yacc.c  */
    5589 #line 657 "parser.yy"
    55905596    { (yyval.op) = OperKinds::OrAssn; }
    55915597    break;
     
    55945600
    55955601/* Line 1806 of yacc.c  */
    5596 #line 668 "parser.yy"
     5602#line 667 "parser.yy"
    55975603    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    55985604    break;
     
    56015607
    56025608/* Line 1806 of yacc.c  */
    5603 #line 670 "parser.yy"
     5609#line 669 "parser.yy"
    56045610    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56055611    break;
     
    56085614
    56095615/* Line 1806 of yacc.c  */
    5610 #line 676 "parser.yy"
     5616#line 675 "parser.yy"
    56115617    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    56125618    break;
     
    56155621
    56165622/* Line 1806 of yacc.c  */
    5617 #line 682 "parser.yy"
     5623#line 681 "parser.yy"
    56185624    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56195625    break;
     
    56225628
    56235629/* Line 1806 of yacc.c  */
    5624 #line 687 "parser.yy"
     5630#line 686 "parser.yy"
    56255631    { (yyval.en) = nullptr; }
    56265632    break;
     
    56295635
    56305636/* Line 1806 of yacc.c  */
    5631 #line 696 "parser.yy"
     5637#line 695 "parser.yy"
    56325638    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56335639    break;
     
    56365642
    56375643/* Line 1806 of yacc.c  */
    5638 #line 703 "parser.yy"
     5644#line 702 "parser.yy"
    56395645    {
    56405646                        Token fn;
     
    56475653
    56485654/* Line 1806 of yacc.c  */
    5649 #line 713 "parser.yy"
     5655#line 712 "parser.yy"
    56505656    {
    5651                         (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     5657                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) );
    56525658                }
    56535659    break;
     
    56565662
    56575663/* Line 1806 of yacc.c  */
    5658 #line 720 "parser.yy"
     5664#line 719 "parser.yy"
    56595665    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    56605666    break;
     
    56635669
    56645670/* Line 1806 of yacc.c  */
    5665 #line 727 "parser.yy"
     5671#line 726 "parser.yy"
    56665672    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    56675673    break;
     
    56705676
    56715677/* Line 1806 of yacc.c  */
    5672 #line 733 "parser.yy"
     5678#line 732 "parser.yy"
    56735679    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56745680    break;
     
    56775683
    56785684/* Line 1806 of yacc.c  */
    5679 #line 738 "parser.yy"
     5685#line 737 "parser.yy"
    56805686    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56815687    break;
     
    56845690
    56855691/* Line 1806 of yacc.c  */
    5686 #line 740 "parser.yy"
     5692#line 739 "parser.yy"
    56875693    {   // mark all fields in list
    56885694                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    56955701
    56965702/* Line 1806 of yacc.c  */
    5697 #line 746 "parser.yy"
     5703#line 745 "parser.yy"
    56985704    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56995705    break;
     
    57025708
    57035709/* Line 1806 of yacc.c  */
    5704 #line 753 "parser.yy"
     5710#line 752 "parser.yy"
    57055711    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57065712    break;
     
    57095715
    57105716/* Line 1806 of yacc.c  */
    5711 #line 758 "parser.yy"
     5717#line 757 "parser.yy"
    57125718    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57135719    break;
     
    57165722
    57175723/* Line 1806 of yacc.c  */
    5718 #line 764 "parser.yy"
     5724#line 763 "parser.yy"
    57195725    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57205726    break;
     
    57235729
    57245730/* Line 1806 of yacc.c  */
    5725 #line 766 "parser.yy"
     5731#line 765 "parser.yy"
    57265732    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57275733    break;
     
    57305736
    57315737/* Line 1806 of yacc.c  */
    5732 #line 768 "parser.yy"
     5738#line 767 "parser.yy"
    57335739    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57345740    break;
     
    57375743
    57385744/* Line 1806 of yacc.c  */
    5739 #line 770 "parser.yy"
     5745#line 769 "parser.yy"
    57405746    {
    57415747                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57525758
    57535759/* Line 1806 of yacc.c  */
    5754 #line 780 "parser.yy"
     5760#line 779 "parser.yy"
    57555761    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57565762    break;
     
    57595765
    57605766/* Line 1806 of yacc.c  */
    5761 #line 782 "parser.yy"
     5767#line 781 "parser.yy"
    57625768    {
    57635769                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57695775
    57705776/* Line 1806 of yacc.c  */
    5771 #line 792 "parser.yy"
     5777#line 791 "parser.yy"
    57725778    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57735779    break;
     
    57765782
    57775783/* Line 1806 of yacc.c  */
    5778 #line 794 "parser.yy"
     5784#line 793 "parser.yy"
    57795785    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57805786    break;
     
    57835789
    57845790/* Line 1806 of yacc.c  */
    5785 #line 799 "parser.yy"
     5791#line 798 "parser.yy"
    57865792    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    57875793    break;
     
    57905796
    57915797/* Line 1806 of yacc.c  */
    5792 #line 801 "parser.yy"
     5798#line 800 "parser.yy"
    57935799    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    57945800    break;
     
    57975803
    57985804/* Line 1806 of yacc.c  */
     5805#line 804 "parser.yy"
     5806    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5807    break;
     5808
     5809  case 169:
     5810
     5811/* Line 1806 of yacc.c  */
    57995812#line 805 "parser.yy"
    5800     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    5801     break;
    5802 
    5803   case 169:
    5804 
    5805 /* Line 1806 of yacc.c  */
    5806 #line 806 "parser.yy"
    58075813    { (yyval.sn) = new StatementNode( build_default() ); }
    58085814    break;
     
    58115817
    58125818/* Line 1806 of yacc.c  */
    5813 #line 812 "parser.yy"
     5819#line 811 "parser.yy"
    58145820    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    58155821    break;
     
    58185824
    58195825/* Line 1806 of yacc.c  */
    5820 #line 816 "parser.yy"
     5826#line 815 "parser.yy"
    58215827    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58225828    break;
     
    58255831
    58265832/* Line 1806 of yacc.c  */
    5827 #line 821 "parser.yy"
     5833#line 820 "parser.yy"
    58285834    { (yyval.sn) = nullptr; }
    58295835    break;
     
    58325838
    58335839/* Line 1806 of yacc.c  */
    5834 #line 827 "parser.yy"
     5840#line 826 "parser.yy"
    58355841    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58365842    break;
     
    58395845
    58405846/* Line 1806 of yacc.c  */
    5841 #line 829 "parser.yy"
     5847#line 828 "parser.yy"
    58425848    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    58435849    break;
     
    58465852
    58475853/* Line 1806 of yacc.c  */
    5848 #line 834 "parser.yy"
     5854#line 833 "parser.yy"
    58495855    { (yyval.sn) = nullptr; }
    58505856    break;
     
    58535859
    58545860/* Line 1806 of yacc.c  */
    5855 #line 840 "parser.yy"
     5861#line 839 "parser.yy"
    58565862    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58575863    break;
     
    58605866
    58615867/* Line 1806 of yacc.c  */
    5862 #line 842 "parser.yy"
     5868#line 841 "parser.yy"
    58635869    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    58645870    break;
     
    58675873
    58685874/* Line 1806 of yacc.c  */
    5869 #line 844 "parser.yy"
     5875#line 843 "parser.yy"
    58705876    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58715877    break;
     
    58745880
    58755881/* Line 1806 of yacc.c  */
    5876 #line 846 "parser.yy"
     5882#line 845 "parser.yy"
    58775883    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    58785884    break;
     
    58815887
    58825888/* Line 1806 of yacc.c  */
    5883 #line 851 "parser.yy"
     5889#line 850 "parser.yy"
    58845890    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    58855891    break;
     
    58885894
    58895895/* Line 1806 of yacc.c  */
    5890 #line 857 "parser.yy"
     5896#line 856 "parser.yy"
    58915897    { (yyval.sn) = nullptr; }
    58925898    break;
     
    58955901
    58965902/* Line 1806 of yacc.c  */
    5897 #line 859 "parser.yy"
     5903#line 858 "parser.yy"
    58985904    { (yyval.sn) = nullptr; }
    58995905    break;
     
    59025908
    59035909/* Line 1806 of yacc.c  */
    5904 #line 864 "parser.yy"
     5910#line 863 "parser.yy"
    59055911    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59065912    break;
     
    59095915
    59105916/* Line 1806 of yacc.c  */
    5911 #line 866 "parser.yy"
     5917#line 865 "parser.yy"
    59125918    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    59135919    break;
     
    59165922
    59175923/* Line 1806 of yacc.c  */
    5918 #line 868 "parser.yy"
     5924#line 867 "parser.yy"
    59195925    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59205926    break;
     
    59235929
    59245930/* Line 1806 of yacc.c  */
    5925 #line 873 "parser.yy"
     5931#line 872 "parser.yy"
    59265932    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59275933    break;
     
    59305936
    59315937/* Line 1806 of yacc.c  */
    5932 #line 875 "parser.yy"
     5938#line 874 "parser.yy"
    59335939    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59345940    break;
     
    59375943
    59385944/* Line 1806 of yacc.c  */
    5939 #line 880 "parser.yy"
     5945#line 879 "parser.yy"
    59405946    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    59415947    break;
     
    59445950
    59455951/* Line 1806 of yacc.c  */
    5946 #line 884 "parser.yy"
     5952#line 883 "parser.yy"
    59475953    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    59485954    break;
     
    59515957
    59525958/* Line 1806 of yacc.c  */
    5953 #line 887 "parser.yy"
     5959#line 886 "parser.yy"
    59545960    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    59555961    break;
     
    59585964
    59595965/* Line 1806 of yacc.c  */
    5960 #line 891 "parser.yy"
     5966#line 890 "parser.yy"
    59615967    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    59625968    break;
     
    59655971
    59665972/* Line 1806 of yacc.c  */
    5967 #line 894 "parser.yy"
     5973#line 893 "parser.yy"
    59685974    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59695975    break;
     
    59725978
    59735979/* Line 1806 of yacc.c  */
    5974 #line 898 "parser.yy"
     5980#line 897 "parser.yy"
    59755981    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    59765982    break;
     
    59795985
    59805986/* Line 1806 of yacc.c  */
    5981 #line 900 "parser.yy"
     5987#line 899 "parser.yy"
    59825988    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    59835989    break;
     
    59865992
    59875993/* Line 1806 of yacc.c  */
    5988 #line 902 "parser.yy"
     5994#line 901 "parser.yy"
    59895995    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    59905996    break;
     
    59935999
    59946000/* Line 1806 of yacc.c  */
    5995 #line 904 "parser.yy"
     6001#line 903 "parser.yy"
    59966002    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    59976003    break;
     
    60006006
    60016007/* Line 1806 of yacc.c  */
    6002 #line 906 "parser.yy"
     6008#line 905 "parser.yy"
    60036009    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60046010    break;
     
    60076013
    60086014/* Line 1806 of yacc.c  */
    6009 #line 911 "parser.yy"
     6015#line 910 "parser.yy"
    60106016    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    60116017    break;
     
    60146020
    60156021/* Line 1806 of yacc.c  */
    6016 #line 913 "parser.yy"
     6022#line 912 "parser.yy"
    60176023    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    60186024    break;
     
    60216027
    60226028/* Line 1806 of yacc.c  */
    6023 #line 915 "parser.yy"
     6029#line 914 "parser.yy"
    60246030    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60256031    break;
     
    60286034
    60296035/* Line 1806 of yacc.c  */
    6030 #line 922 "parser.yy"
     6036#line 921 "parser.yy"
    60316037    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60326038    break;
     
    60356041
    60366042/* Line 1806 of yacc.c  */
    6037 #line 924 "parser.yy"
     6043#line 923 "parser.yy"
    60386044    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60396045    break;
     
    60426048
    60436049/* Line 1806 of yacc.c  */
    6044 #line 926 "parser.yy"
     6050#line 925 "parser.yy"
    60456051    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60466052    break;
     
    60496055
    60506056/* Line 1806 of yacc.c  */
    6051 #line 928 "parser.yy"
     6057#line 927 "parser.yy"
    60526058    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60536059    break;
     
    60566062
    60576063/* Line 1806 of yacc.c  */
    6058 #line 933 "parser.yy"
     6064#line 932 "parser.yy"
    60596065    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60606066    break;
     
    60636069
    60646070/* Line 1806 of yacc.c  */
    6065 #line 935 "parser.yy"
     6071#line 934 "parser.yy"
    60666072    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60676073    break;
     
    60706076
    60716077/* Line 1806 of yacc.c  */
    6072 #line 937 "parser.yy"
     6078#line 936 "parser.yy"
    60736079    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60746080    break;
     
    60776083
    60786084/* Line 1806 of yacc.c  */
    6079 #line 939 "parser.yy"
     6085#line 938 "parser.yy"
    60806086    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60816087    break;
     
    60846090
    60856091/* Line 1806 of yacc.c  */
    6086 #line 944 "parser.yy"
     6092#line 943 "parser.yy"
    60876093    {
    60886094                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    60936099
    60946100/* Line 1806 of yacc.c  */
    6095 #line 957 "parser.yy"
     6101#line 956 "parser.yy"
    60966102    {
    60976103                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61036109
    61046110/* Line 1806 of yacc.c  */
    6105 #line 962 "parser.yy"
     6111#line 961 "parser.yy"
    61066112    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61076113    break;
     
    61106116
    61116117/* Line 1806 of yacc.c  */
    6112 #line 964 "parser.yy"
     6118#line 963 "parser.yy"
    61136119    {
    61146120                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61206126
    61216127/* Line 1806 of yacc.c  */
    6122 #line 973 "parser.yy"
     6128#line 972 "parser.yy"
    61236129    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    61246130    break;
     
    61276133
    61286134/* Line 1806 of yacc.c  */
    6129 #line 975 "parser.yy"
     6135#line 974 "parser.yy"
    61306136    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    61316137    break;
     
    61346140
    61356141/* Line 1806 of yacc.c  */
    6136 #line 977 "parser.yy"
     6142#line 976 "parser.yy"
    61376143    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    61386144    break;
     
    61416147
    61426148/* Line 1806 of yacc.c  */
    6143 #line 979 "parser.yy"
     6149#line 978 "parser.yy"
    61446150    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
    61456151    break;
     
    61486154
    61496155/* Line 1806 of yacc.c  */
    6150 #line 981 "parser.yy"
     6156#line 980 "parser.yy"
    61516157    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    61526158    break;
     
    61556161
    61566162/* Line 1806 of yacc.c  */
    6157 #line 986 "parser.yy"
     6163#line 985 "parser.yy"
    61586164    { (yyval.flag) = false; }
    61596165    break;
     
    61626168
    61636169/* Line 1806 of yacc.c  */
    6164 #line 988 "parser.yy"
     6170#line 987 "parser.yy"
    61656171    { (yyval.flag) = true; }
    61666172    break;
     
    61696175
    61706176/* Line 1806 of yacc.c  */
    6171 #line 993 "parser.yy"
     6177#line 992 "parser.yy"
    61726178    { (yyval.en) = nullptr; }
    61736179    break;
     
    61766182
    61776183/* Line 1806 of yacc.c  */
    6178 #line 1000 "parser.yy"
     6184#line 999 "parser.yy"
    61796185    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    61806186    break;
     
    61836189
    61846190/* Line 1806 of yacc.c  */
    6185 #line 1005 "parser.yy"
     6191#line 1004 "parser.yy"
    61866192    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    61876193    break;
     
    61906196
    61916197/* Line 1806 of yacc.c  */
    6192 #line 1007 "parser.yy"
     6198#line 1006 "parser.yy"
    61936199    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    61946200    break;
     
    61976203
    61986204/* Line 1806 of yacc.c  */
    6199 #line 1012 "parser.yy"
     6205#line 1011 "parser.yy"
    62006206    { (yyval.en) = nullptr; }
    62016207    break;
     
    62046210
    62056211/* Line 1806 of yacc.c  */
    6206 #line 1014 "parser.yy"
     6212#line 1013 "parser.yy"
    62076213    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62086214    break;
     
    62116217
    62126218/* Line 1806 of yacc.c  */
    6213 #line 1017 "parser.yy"
     6219#line 1016 "parser.yy"
    62146220    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62156221    break;
     
    62186224
    62196225/* Line 1806 of yacc.c  */
    6220 #line 1022 "parser.yy"
     6226#line 1021 "parser.yy"
    62216227    {
    62226228                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62286234
    62296235/* Line 1806 of yacc.c  */
    6230 #line 1027 "parser.yy"
     6236#line 1026 "parser.yy"
    62316237    {
    62326238                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62386244
    62396245/* Line 1806 of yacc.c  */
    6240 #line 1037 "parser.yy"
     6246#line 1036 "parser.yy"
    62416247    { (yyval.decl) = nullptr; }
    62426248    break;
     
    62456251
    62466252/* Line 1806 of yacc.c  */
    6247 #line 1044 "parser.yy"
     6253#line 1043 "parser.yy"
    62486254    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62496255    break;
     
    62526258
    62536259/* Line 1806 of yacc.c  */
    6254 #line 1049 "parser.yy"
     6260#line 1048 "parser.yy"
    62556261    { (yyval.decl) = nullptr; }
    62566262    break;
     
    62596265
    62606266/* Line 1806 of yacc.c  */
    6261 #line 1056 "parser.yy"
     6267#line 1055 "parser.yy"
    62626268    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62636269    break;
    62646270
    62656271  case 250:
     6272
     6273/* Line 1806 of yacc.c  */
     6274#line 1069 "parser.yy"
     6275    {}
     6276    break;
     6277
     6278  case 251:
    62666279
    62676280/* Line 1806 of yacc.c  */
     
    62706283    break;
    62716284
    6272   case 251:
    6273 
    6274 /* Line 1806 of yacc.c  */
    6275 #line 1071 "parser.yy"
    6276     {}
    6277     break;
    6278 
    62796285  case 259:
    62806286
    62816287/* Line 1806 of yacc.c  */
    6282 #line 1100 "parser.yy"
     6288#line 1099 "parser.yy"
    62836289    {
    62846290                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62906296
    62916297/* Line 1806 of yacc.c  */
    6292 #line 1107 "parser.yy"
     6298#line 1106 "parser.yy"
    62936299    {
    62946300                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63006306
    63016307/* Line 1806 of yacc.c  */
    6302 #line 1112 "parser.yy"
     6308#line 1111 "parser.yy"
    63036309    {
    63046310                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63106316
    63116317/* Line 1806 of yacc.c  */
    6312 #line 1122 "parser.yy"
     6318#line 1121 "parser.yy"
    63136319    {
    63146320                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63206326
    63216327/* Line 1806 of yacc.c  */
    6322 #line 1127 "parser.yy"
     6328#line 1126 "parser.yy"
    63236329    {
    63246330                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63306336
    63316337/* Line 1806 of yacc.c  */
    6332 #line 1132 "parser.yy"
     6338#line 1131 "parser.yy"
    63336339    {
    63346340                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63406346
    63416347/* Line 1806 of yacc.c  */
    6342 #line 1140 "parser.yy"
     6348#line 1139 "parser.yy"
    63436349    {
    63446350                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63506356
    63516357/* Line 1806 of yacc.c  */
    6352 #line 1145 "parser.yy"
     6358#line 1144 "parser.yy"
    63536359    {
    63546360                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63606366
    63616367/* Line 1806 of yacc.c  */
    6362 #line 1150 "parser.yy"
     6368#line 1149 "parser.yy"
    63636369    {
    63646370                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63706376
    63716377/* Line 1806 of yacc.c  */
    6372 #line 1155 "parser.yy"
     6378#line 1154 "parser.yy"
    63736379    {
    63746380                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63806386
    63816387/* Line 1806 of yacc.c  */
    6382 #line 1160 "parser.yy"
     6388#line 1159 "parser.yy"
    63836389    {
    63846390                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63906396
    63916397/* Line 1806 of yacc.c  */
    6392 #line 1191 "parser.yy"
     6398#line 1190 "parser.yy"
    63936399    {
    63946400                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63996405
    64006406/* Line 1806 of yacc.c  */
    6401 #line 1195 "parser.yy"
     6407#line 1194 "parser.yy"
    64026408    {
    64036409                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64086414
    64096415/* Line 1806 of yacc.c  */
    6410 #line 1202 "parser.yy"
     6416#line 1201 "parser.yy"
    64116417    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64126418    break;
     
    64156421
    64166422/* Line 1806 of yacc.c  */
    6417 #line 1206 "parser.yy"
     6423#line 1205 "parser.yy"
    64186424    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64196425    break;
     
    64226428
    64236429/* Line 1806 of yacc.c  */
    6424 #line 1211 "parser.yy"
     6430#line 1210 "parser.yy"
    64256431    {
    64266432                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64326438
    64336439/* Line 1806 of yacc.c  */
    6434 #line 1216 "parser.yy"
     6440#line 1215 "parser.yy"
    64356441    {
    64366442                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64426448
    64436449/* Line 1806 of yacc.c  */
    6444 #line 1221 "parser.yy"
     6450#line 1220 "parser.yy"
    64456451    {
    64466452                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64526458
    64536459/* Line 1806 of yacc.c  */
    6454 #line 1232 "parser.yy"
     6460#line 1231 "parser.yy"
    64556461    {
    64566462                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64626468
    64636469/* Line 1806 of yacc.c  */
    6464 #line 1237 "parser.yy"
     6470#line 1236 "parser.yy"
    64656471    {
    64666472                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64726478
    64736479/* Line 1806 of yacc.c  */
    6474 #line 1242 "parser.yy"
     6480#line 1241 "parser.yy"
    64756481    {
    64766482                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64826488
    64836489/* Line 1806 of yacc.c  */
    6484 #line 1247 "parser.yy"
     6490#line 1246 "parser.yy"
    64856491    {
    64866492                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64926498
    64936499/* Line 1806 of yacc.c  */
    6494 #line 1252 "parser.yy"
     6500#line 1251 "parser.yy"
    64956501    {
    64966502                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65026508
    65036509/* Line 1806 of yacc.c  */
    6504 #line 1261 "parser.yy"
     6510#line 1260 "parser.yy"
    65056511    {
    65066512                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65126518
    65136519/* Line 1806 of yacc.c  */
    6514 #line 1266 "parser.yy"
     6520#line 1265 "parser.yy"
    65156521    {
    65166522                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65226528
    65236529/* Line 1806 of yacc.c  */
    6524 #line 1283 "parser.yy"
     6530#line 1282 "parser.yy"
    65256531    {
    65266532                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65326538
    65336539/* Line 1806 of yacc.c  */
    6534 #line 1288 "parser.yy"
     6540#line 1287 "parser.yy"
    65356541    {
    65366542                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65426548
    65436549/* Line 1806 of yacc.c  */
    6544 #line 1310 "parser.yy"
     6550#line 1309 "parser.yy"
    65456551    { (yyval.decl) = nullptr; }
    65466552    break;
     
    65496555
    65506556/* Line 1806 of yacc.c  */
    6551 #line 1322 "parser.yy"
     6557#line 1321 "parser.yy"
    65526558    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65536559    break;
     
    65566562
    65576563/* Line 1806 of yacc.c  */
     6564#line 1331 "parser.yy"
     6565    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6566    break;
     6567
     6568  case 305:
     6569
     6570/* Line 1806 of yacc.c  */
    65586571#line 1333 "parser.yy"
    6559     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6560     break;
    6561 
    6562   case 305:
     6572    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6573    break;
     6574
     6575  case 306:
    65636576
    65646577/* Line 1806 of yacc.c  */
    65656578#line 1335 "parser.yy"
    6566     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6567     break;
    6568 
    6569   case 306:
     6579    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6580    break;
     6581
     6582  case 307:
    65706583
    65716584/* Line 1806 of yacc.c  */
    65726585#line 1337 "parser.yy"
    6573     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6574     break;
    6575 
    6576   case 307:
     6586    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6587    break;
     6588
     6589  case 308:
    65776590
    65786591/* Line 1806 of yacc.c  */
    65796592#line 1339 "parser.yy"
    6580     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6581     break;
    6582 
    6583   case 308:
     6593    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     6594    break;
     6595
     6596  case 309:
    65846597
    65856598/* Line 1806 of yacc.c  */
    65866599#line 1341 "parser.yy"
    6587     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6588     break;
    6589 
    6590   case 309:
    6591 
    6592 /* Line 1806 of yacc.c  */
    6593 #line 1343 "parser.yy"
    65946600    {
    65956601                        typedefTable.enterScope();
     
    66006606
    66016607/* Line 1806 of yacc.c  */
    6602 #line 1347 "parser.yy"
     6608#line 1345 "parser.yy"
    66036609    {
    66046610                        typedefTable.leaveScope();
     
    66106616
    66116617/* Line 1806 of yacc.c  */
     6618#line 1354 "parser.yy"
     6619    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6620    break;
     6621
     6622  case 313:
     6623
     6624/* Line 1806 of yacc.c  */
    66126625#line 1356 "parser.yy"
     6626    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6627    break;
     6628
     6629  case 315:
     6630
     6631/* Line 1806 of yacc.c  */
     6632#line 1367 "parser.yy"
    66136633    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66146634    break;
    66156635
    6616   case 313:
    6617 
    6618 /* Line 1806 of yacc.c  */
    6619 #line 1358 "parser.yy"
     6636  case 316:
     6637
     6638/* Line 1806 of yacc.c  */
     6639#line 1372 "parser.yy"
     6640    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6641    break;
     6642
     6643  case 317:
     6644
     6645/* Line 1806 of yacc.c  */
     6646#line 1374 "parser.yy"
     6647    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6648    break;
     6649
     6650  case 318:
     6651
     6652/* Line 1806 of yacc.c  */
     6653#line 1376 "parser.yy"
     6654    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6655    break;
     6656
     6657  case 319:
     6658
     6659/* Line 1806 of yacc.c  */
     6660#line 1378 "parser.yy"
     6661    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6662    break;
     6663
     6664  case 320:
     6665
     6666/* Line 1806 of yacc.c  */
     6667#line 1381 "parser.yy"
     6668    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     6669    break;
     6670
     6671  case 321:
     6672
     6673/* Line 1806 of yacc.c  */
     6674#line 1383 "parser.yy"
     6675    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6676    break;
     6677
     6678  case 322:
     6679
     6680/* Line 1806 of yacc.c  */
     6681#line 1386 "parser.yy"
     6682    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     6683    break;
     6684
     6685  case 323:
     6686
     6687/* Line 1806 of yacc.c  */
     6688#line 1388 "parser.yy"
     6689    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6690    break;
     6691
     6692  case 324:
     6693
     6694/* Line 1806 of yacc.c  */
     6695#line 1393 "parser.yy"
     6696    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6697    break;
     6698
     6699  case 325:
     6700
     6701/* Line 1806 of yacc.c  */
     6702#line 1395 "parser.yy"
     6703    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6704    break;
     6705
     6706  case 326:
     6707
     6708/* Line 1806 of yacc.c  */
     6709#line 1397 "parser.yy"
     6710    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6711    break;
     6712
     6713  case 327:
     6714
     6715/* Line 1806 of yacc.c  */
     6716#line 1399 "parser.yy"
     6717    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6718    break;
     6719
     6720  case 328:
     6721
     6722/* Line 1806 of yacc.c  */
     6723#line 1401 "parser.yy"
     6724    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6725    break;
     6726
     6727  case 329:
     6728
     6729/* Line 1806 of yacc.c  */
     6730#line 1403 "parser.yy"
     6731    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6732    break;
     6733
     6734  case 330:
     6735
     6736/* Line 1806 of yacc.c  */
     6737#line 1405 "parser.yy"
     6738    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6739    break;
     6740
     6741  case 331:
     6742
     6743/* Line 1806 of yacc.c  */
     6744#line 1407 "parser.yy"
     6745    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6746    break;
     6747
     6748  case 332:
     6749
     6750/* Line 1806 of yacc.c  */
     6751#line 1409 "parser.yy"
     6752    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6753    break;
     6754
     6755  case 333:
     6756
     6757/* Line 1806 of yacc.c  */
     6758#line 1411 "parser.yy"
     6759    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6760    break;
     6761
     6762  case 334:
     6763
     6764/* Line 1806 of yacc.c  */
     6765#line 1413 "parser.yy"
     6766    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6767    break;
     6768
     6769  case 335:
     6770
     6771/* Line 1806 of yacc.c  */
     6772#line 1415 "parser.yy"
     6773    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6774    break;
     6775
     6776  case 336:
     6777
     6778/* Line 1806 of yacc.c  */
     6779#line 1417 "parser.yy"
     6780    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6781    break;
     6782
     6783  case 337:
     6784
     6785/* Line 1806 of yacc.c  */
     6786#line 1419 "parser.yy"
     6787    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
     6788    break;
     6789
     6790  case 338:
     6791
     6792/* Line 1806 of yacc.c  */
     6793#line 1421 "parser.yy"
     6794    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
     6795    break;
     6796
     6797  case 340:
     6798
     6799/* Line 1806 of yacc.c  */
     6800#line 1428 "parser.yy"
     6801    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6802    break;
     6803
     6804  case 341:
     6805
     6806/* Line 1806 of yacc.c  */
     6807#line 1430 "parser.yy"
     6808    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6809    break;
     6810
     6811  case 342:
     6812
     6813/* Line 1806 of yacc.c  */
     6814#line 1432 "parser.yy"
    66206815    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66216816    break;
    66226817
    6623   case 315:
    6624 
    6625 /* Line 1806 of yacc.c  */
    6626 #line 1369 "parser.yy"
     6818  case 343:
     6819
     6820/* Line 1806 of yacc.c  */
     6821#line 1434 "parser.yy"
     6822    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6823    break;
     6824
     6825  case 345:
     6826
     6827/* Line 1806 of yacc.c  */
     6828#line 1440 "parser.yy"
     6829    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6830    break;
     6831
     6832  case 347:
     6833
     6834/* Line 1806 of yacc.c  */
     6835#line 1447 "parser.yy"
     6836    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6837    break;
     6838
     6839  case 348:
     6840
     6841/* Line 1806 of yacc.c  */
     6842#line 1449 "parser.yy"
    66276843    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66286844    break;
    66296845
    6630   case 316:
    6631 
    6632 /* Line 1806 of yacc.c  */
    6633 #line 1374 "parser.yy"
    6634     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6635     break;
    6636 
    6637   case 317:
    6638 
    6639 /* Line 1806 of yacc.c  */
    6640 #line 1376 "parser.yy"
    6641     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6642     break;
    6643 
    6644   case 318:
    6645 
    6646 /* Line 1806 of yacc.c  */
    6647 #line 1378 "parser.yy"
    6648     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6649     break;
    6650 
    6651   case 319:
    6652 
    6653 /* Line 1806 of yacc.c  */
    6654 #line 1380 "parser.yy"
    6655     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6656     break;
    6657 
    6658   case 320:
    6659 
    6660 /* Line 1806 of yacc.c  */
    6661 #line 1383 "parser.yy"
    6662     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    6663     break;
    6664 
    6665   case 321:
    6666 
    6667 /* Line 1806 of yacc.c  */
    6668 #line 1385 "parser.yy"
    6669     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6670     break;
    6671 
    6672   case 322:
    6673 
    6674 /* Line 1806 of yacc.c  */
    6675 #line 1388 "parser.yy"
    6676     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    6677     break;
    6678 
    6679   case 323:
    6680 
    6681 /* Line 1806 of yacc.c  */
    6682 #line 1390 "parser.yy"
    6683     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6684     break;
    6685 
    6686   case 324:
    6687 
    6688 /* Line 1806 of yacc.c  */
    6689 #line 1395 "parser.yy"
    6690     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6691     break;
    6692 
    6693   case 325:
    6694 
    6695 /* Line 1806 of yacc.c  */
    6696 #line 1397 "parser.yy"
    6697     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6698     break;
    6699 
    6700   case 326:
    6701 
    6702 /* Line 1806 of yacc.c  */
    6703 #line 1399 "parser.yy"
    6704     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6705     break;
    6706 
    6707   case 327:
    6708 
    6709 /* Line 1806 of yacc.c  */
    6710 #line 1401 "parser.yy"
    6711     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6712     break;
    6713 
    6714   case 328:
    6715 
    6716 /* Line 1806 of yacc.c  */
    6717 #line 1403 "parser.yy"
    6718     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    6719     break;
    6720 
    6721   case 329:
    6722 
    6723 /* Line 1806 of yacc.c  */
    6724 #line 1405 "parser.yy"
    6725     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    6726     break;
    6727 
    6728   case 330:
    6729 
    6730 /* Line 1806 of yacc.c  */
    6731 #line 1407 "parser.yy"
    6732     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    6733     break;
    6734 
    6735   case 331:
    6736 
    6737 /* Line 1806 of yacc.c  */
    6738 #line 1409 "parser.yy"
    6739     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    6740     break;
    6741 
    6742   case 332:
    6743 
    6744 /* Line 1806 of yacc.c  */
    6745 #line 1411 "parser.yy"
    6746     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6747     break;
    6748 
    6749   case 333:
    6750 
    6751 /* Line 1806 of yacc.c  */
    6752 #line 1413 "parser.yy"
    6753     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6754     break;
    6755 
    6756   case 334:
    6757 
    6758 /* Line 1806 of yacc.c  */
    6759 #line 1415 "parser.yy"
    6760     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    6761     break;
    6762 
    6763   case 335:
    6764 
    6765 /* Line 1806 of yacc.c  */
    6766 #line 1417 "parser.yy"
    6767     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    6768     break;
    6769 
    6770   case 336:
    6771 
    6772 /* Line 1806 of yacc.c  */
    6773 #line 1419 "parser.yy"
    6774     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6775     break;
    6776 
    6777   case 337:
    6778 
    6779 /* Line 1806 of yacc.c  */
    6780 #line 1421 "parser.yy"
    6781     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
    6782     break;
    6783 
    6784   case 338:
    6785 
    6786 /* Line 1806 of yacc.c  */
    6787 #line 1423 "parser.yy"
    6788     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
    6789     break;
    6790 
    6791   case 340:
    6792 
    6793 /* Line 1806 of yacc.c  */
    6794 #line 1430 "parser.yy"
     6846  case 349:
     6847
     6848/* Line 1806 of yacc.c  */
     6849#line 1451 "parser.yy"
     6850    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6851    break;
     6852
     6853  case 350:
     6854
     6855/* Line 1806 of yacc.c  */
     6856#line 1456 "parser.yy"
     6857    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6858    break;
     6859
     6860  case 351:
     6861
     6862/* Line 1806 of yacc.c  */
     6863#line 1458 "parser.yy"
     6864    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6865    break;
     6866
     6867  case 352:
     6868
     6869/* Line 1806 of yacc.c  */
     6870#line 1460 "parser.yy"
     6871    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6872    break;
     6873
     6874  case 353:
     6875
     6876/* Line 1806 of yacc.c  */
     6877#line 1462 "parser.yy"
     6878    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6879    break;
     6880
     6881  case 355:
     6882
     6883/* Line 1806 of yacc.c  */
     6884#line 1468 "parser.yy"
    67956885    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67966886    break;
    67976887
    6798   case 341:
    6799 
    6800 /* Line 1806 of yacc.c  */
    6801 #line 1432 "parser.yy"
     6888  case 356:
     6889
     6890/* Line 1806 of yacc.c  */
     6891#line 1470 "parser.yy"
    68026892    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68036893    break;
    68046894
    6805   case 342:
    6806 
    6807 /* Line 1806 of yacc.c  */
    6808 #line 1434 "parser.yy"
     6895  case 357:
     6896
     6897/* Line 1806 of yacc.c  */
     6898#line 1472 "parser.yy"
    68096899    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68106900    break;
    68116901
    6812   case 343:
    6813 
    6814 /* Line 1806 of yacc.c  */
    6815 #line 1436 "parser.yy"
    6816     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6817     break;
    6818 
    6819   case 345:
    6820 
    6821 /* Line 1806 of yacc.c  */
    6822 #line 1442 "parser.yy"
    6823     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6824     break;
    6825 
    6826   case 347:
    6827 
    6828 /* Line 1806 of yacc.c  */
    6829 #line 1449 "parser.yy"
     6902  case 359:
     6903
     6904/* Line 1806 of yacc.c  */
     6905#line 1478 "parser.yy"
    68306906    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68316907    break;
    68326908
    6833   case 348:
    6834 
    6835 /* Line 1806 of yacc.c  */
    6836 #line 1451 "parser.yy"
     6909  case 360:
     6910
     6911/* Line 1806 of yacc.c  */
     6912#line 1480 "parser.yy"
    68376913    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68386914    break;
    68396915
    6840   case 349:
    6841 
    6842 /* Line 1806 of yacc.c  */
    6843 #line 1453 "parser.yy"
    6844     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6845     break;
    6846 
    6847   case 350:
    6848 
    6849 /* Line 1806 of yacc.c  */
    6850 #line 1458 "parser.yy"
    6851     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6852     break;
    6853 
    6854   case 351:
    6855 
    6856 /* Line 1806 of yacc.c  */
    6857 #line 1460 "parser.yy"
    6858     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6859     break;
    6860 
    6861   case 352:
    6862 
    6863 /* Line 1806 of yacc.c  */
    6864 #line 1462 "parser.yy"
    6865     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6866     break;
    6867 
    6868   case 353:
    6869 
    6870 /* Line 1806 of yacc.c  */
    6871 #line 1464 "parser.yy"
    6872     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6873     break;
    6874 
    6875   case 355:
    6876 
    6877 /* Line 1806 of yacc.c  */
    6878 #line 1470 "parser.yy"
     6916  case 362:
     6917
     6918/* Line 1806 of yacc.c  */
     6919#line 1486 "parser.yy"
    68796920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68806921    break;
    68816922
    6882   case 356:
    6883 
    6884 /* Line 1806 of yacc.c  */
    6885 #line 1472 "parser.yy"
     6923  case 363:
     6924
     6925/* Line 1806 of yacc.c  */
     6926#line 1488 "parser.yy"
    68866927    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68876928    break;
    68886929
    6889   case 357:
    6890 
    6891 /* Line 1806 of yacc.c  */
    6892 #line 1474 "parser.yy"
     6930  case 364:
     6931
     6932/* Line 1806 of yacc.c  */
     6933#line 1490 "parser.yy"
    68936934    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68946935    break;
    68956936
    6896   case 359:
    6897 
    6898 /* Line 1806 of yacc.c  */
    6899 #line 1480 "parser.yy"
    6900     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6901     break;
    6902 
    6903   case 360:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1482 "parser.yy"
     6937  case 365:
     6938
     6939/* Line 1806 of yacc.c  */
     6940#line 1495 "parser.yy"
     6941    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6942    break;
     6943
     6944  case 366:
     6945
     6946/* Line 1806 of yacc.c  */
     6947#line 1497 "parser.yy"
     6948    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6949    break;
     6950
     6951  case 367:
     6952
     6953/* Line 1806 of yacc.c  */
     6954#line 1499 "parser.yy"
    69076955    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69086956    break;
    69096957
    6910   case 362:
    6911 
    6912 /* Line 1806 of yacc.c  */
    6913 #line 1488 "parser.yy"
    6914     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6915     break;
    6916 
    6917   case 363:
    6918 
    6919 /* Line 1806 of yacc.c  */
    6920 #line 1490 "parser.yy"
    6921     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6922     break;
    6923 
    6924   case 364:
    6925 
    6926 /* Line 1806 of yacc.c  */
    6927 #line 1492 "parser.yy"
    6928     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6929     break;
    6930 
    6931   case 365:
    6932 
    6933 /* Line 1806 of yacc.c  */
    6934 #line 1497 "parser.yy"
    6935     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6936     break;
    6937 
    6938   case 366:
    6939 
    6940 /* Line 1806 of yacc.c  */
    6941 #line 1499 "parser.yy"
    6942     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6943     break;
    6944 
    6945   case 367:
    6946 
    6947 /* Line 1806 of yacc.c  */
    6948 #line 1501 "parser.yy"
    6949     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6950     break;
    6951 
    69526958  case 370:
    69536959
    69546960/* Line 1806 of yacc.c  */
     6961#line 1509 "parser.yy"
     6962    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
     6963    break;
     6964
     6965  case 371:
     6966
     6967/* Line 1806 of yacc.c  */
    69556968#line 1511 "parser.yy"
    6956     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    6957     break;
    6958 
    6959   case 371:
    6960 
    6961 /* Line 1806 of yacc.c  */
    6962 #line 1513 "parser.yy"
    69636969    {
    69646970                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69706976
    69716977/* Line 1806 of yacc.c  */
     6978#line 1516 "parser.yy"
     6979    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6980    break;
     6981
     6982  case 373:
     6983
     6984/* Line 1806 of yacc.c  */
    69726985#line 1518 "parser.yy"
    6973     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    6974     break;
    6975 
    6976   case 373:
     6986    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     6987    break;
     6988
     6989  case 374:
    69776990
    69786991/* Line 1806 of yacc.c  */
    69796992#line 1520 "parser.yy"
    6980     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
    6981     break;
    6982 
    6983   case 374:
     6993    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     6994    break;
     6995
     6996  case 375:
    69846997
    69856998/* Line 1806 of yacc.c  */
    69866999#line 1522 "parser.yy"
    6987     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    6988     break;
    6989 
    6990   case 375:
    6991 
    6992 /* Line 1806 of yacc.c  */
    6993 #line 1524 "parser.yy"
    69947000    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69957001    break;
     
    69987004
    69997005/* Line 1806 of yacc.c  */
     7006#line 1527 "parser.yy"
     7007    { (yyval.aggKey) = DeclarationNode::Struct; }
     7008    break;
     7009
     7010  case 377:
     7011
     7012/* Line 1806 of yacc.c  */
    70007013#line 1529 "parser.yy"
    7001     { (yyval.aggKey) = DeclarationNode::Struct; }
    7002     break;
    7003 
    7004   case 377:
    7005 
    7006 /* Line 1806 of yacc.c  */
    7007 #line 1531 "parser.yy"
    70087014    { (yyval.aggKey) = DeclarationNode::Union; }
    70097015    break;
     
    70127018
    70137019/* Line 1806 of yacc.c  */
     7020#line 1534 "parser.yy"
     7021    { (yyval.decl) = nullptr; }
     7022    break;
     7023
     7024  case 379:
     7025
     7026/* Line 1806 of yacc.c  */
    70147027#line 1536 "parser.yy"
    7015     { (yyval.decl) = nullptr; }
    7016     break;
    7017 
    7018   case 379:
    7019 
    7020 /* Line 1806 of yacc.c  */
    7021 #line 1538 "parser.yy"
    70227028    { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70237029    break;
     
    70267032
    70277033/* Line 1806 of yacc.c  */
    7028 #line 1544 "parser.yy"
     7034#line 1542 "parser.yy"
    70297035    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70307036    break;
     
    70337039
    70347040/* Line 1806 of yacc.c  */
    7035 #line 1547 "parser.yy"
     7041#line 1545 "parser.yy"
    70367042    {   // mark all fields in list
    70377043                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70447050
    70457051/* Line 1806 of yacc.c  */
     7052#line 1555 "parser.yy"
     7053    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7054    break;
     7055
     7056  case 386:
     7057
     7058/* Line 1806 of yacc.c  */
    70467059#line 1557 "parser.yy"
    7047     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    7048     break;
    7049 
    7050   case 386:
     7060    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7061    break;
     7062
     7063  case 387:
    70517064
    70527065/* Line 1806 of yacc.c  */
    70537066#line 1559 "parser.yy"
    7054     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    7055     break;
    7056 
    7057   case 387:
    7058 
    7059 /* Line 1806 of yacc.c  */
    7060 #line 1561 "parser.yy"
    70617067    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70627068    break;
     
    70657071
    70667072/* Line 1806 of yacc.c  */
     7073#line 1564 "parser.yy"
     7074    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7075    break;
     7076
     7077  case 389:
     7078
     7079/* Line 1806 of yacc.c  */
    70677080#line 1566 "parser.yy"
    7068     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7069     break;
    7070 
    7071   case 389:
    7072 
    7073 /* Line 1806 of yacc.c  */
    7074 #line 1568 "parser.yy"
    70757081    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70767082    break;
     
    70797085
    70807086/* Line 1806 of yacc.c  */
     7087#line 1571 "parser.yy"
     7088    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7089    break;
     7090
     7091  case 391:
     7092
     7093/* Line 1806 of yacc.c  */
    70817094#line 1573 "parser.yy"
    7082     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    7083     break;
    7084 
    7085   case 391:
    7086 
    7087 /* Line 1806 of yacc.c  */
    7088 #line 1575 "parser.yy"
    70897095    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70907096    break;
     
    70937099
    70947100/* Line 1806 of yacc.c  */
    7095 #line 1578 "parser.yy"
     7101#line 1576 "parser.yy"
    70967102    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70977103    break;
     
    71007106
    71017107/* Line 1806 of yacc.c  */
    7102 #line 1581 "parser.yy"
     7108#line 1579 "parser.yy"
    71037109    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71047110    break;
     
    71077113
    71087114/* Line 1806 of yacc.c  */
     7115#line 1585 "parser.yy"
     7116    { (yyval.en) = nullptr; }
     7117    break;
     7118
     7119  case 396:
     7120
     7121/* Line 1806 of yacc.c  */
    71097122#line 1587 "parser.yy"
    7110     { (yyval.en) = nullptr; }
    7111     break;
    7112 
    7113   case 396:
    7114 
    7115 /* Line 1806 of yacc.c  */
    7116 #line 1589 "parser.yy"
    71177123    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71187124    break;
     
    71217127
    71227128/* Line 1806 of yacc.c  */
    7123 #line 1594 "parser.yy"
     7129#line 1592 "parser.yy"
    71247130    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71257131    break;
     
    71287134
    71297135/* Line 1806 of yacc.c  */
     7136#line 1601 "parser.yy"
     7137    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
     7138    break;
     7139
     7140  case 400:
     7141
     7142/* Line 1806 of yacc.c  */
    71307143#line 1603 "parser.yy"
    7131     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    7132     break;
    7133 
    7134   case 400:
    7135 
    7136 /* Line 1806 of yacc.c  */
    7137 #line 1605 "parser.yy"
    71387144    {
    71397145                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71457151
    71467152/* Line 1806 of yacc.c  */
     7153#line 1608 "parser.yy"
     7154    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7155    break;
     7156
     7157  case 402:
     7158
     7159/* Line 1806 of yacc.c  */
    71477160#line 1610 "parser.yy"
    7148     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    7149     break;
    7150 
    7151   case 402:
    7152 
    7153 /* Line 1806 of yacc.c  */
    7154 #line 1612 "parser.yy"
    71557161    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    71567162    break;
     
    71597165
    71607166/* Line 1806 of yacc.c  */
     7167#line 1615 "parser.yy"
     7168    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7169    break;
     7170
     7171  case 404:
     7172
     7173/* Line 1806 of yacc.c  */
    71617174#line 1617 "parser.yy"
    7162     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7163     break;
    7164 
    7165   case 404:
    7166 
    7167 /* Line 1806 of yacc.c  */
    7168 #line 1619 "parser.yy"
    71697175    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71707176    break;
     
    71737179
    71747180/* Line 1806 of yacc.c  */
     7181#line 1622 "parser.yy"
     7182    { (yyval.en) = nullptr; }
     7183    break;
     7184
     7185  case 406:
     7186
     7187/* Line 1806 of yacc.c  */
    71757188#line 1624 "parser.yy"
    7176     { (yyval.en) = nullptr; }
    7177     break;
    7178 
    7179   case 406:
    7180 
    7181 /* Line 1806 of yacc.c  */
    7182 #line 1626 "parser.yy"
    71837189    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71847190    break;
     
    71877193
    71887194/* Line 1806 of yacc.c  */
    7189 #line 1633 "parser.yy"
     7195#line 1631 "parser.yy"
    71907196    { (yyval.decl) = nullptr; }
    71917197    break;
     
    71947200
    71957201/* Line 1806 of yacc.c  */
     7202#line 1639 "parser.yy"
     7203    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7204    break;
     7205
     7206  case 412:
     7207
     7208/* Line 1806 of yacc.c  */
    71967209#line 1641 "parser.yy"
    7197     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7198     break;
    7199 
    7200   case 412:
     7210    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7211    break;
     7212
     7213  case 413:
    72017214
    72027215/* Line 1806 of yacc.c  */
     
    72057218    break;
    72067219
    7207   case 413:
    7208 
    7209 /* Line 1806 of yacc.c  */
    7210 #line 1645 "parser.yy"
    7211     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7212     break;
    7213 
    72147220  case 415:
     7221
     7222/* Line 1806 of yacc.c  */
     7223#line 1651 "parser.yy"
     7224    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7225    break;
     7226
     7227  case 416:
    72157228
    72167229/* Line 1806 of yacc.c  */
     
    72197232    break;
    72207233
    7221   case 416:
     7234  case 417:
    72227235
    72237236/* Line 1806 of yacc.c  */
    72247237#line 1655 "parser.yy"
     7238    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7239    break;
     7240
     7241  case 419:
     7242
     7243/* Line 1806 of yacc.c  */
     7244#line 1661 "parser.yy"
    72257245    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72267246    break;
    72277247
    7228   case 417:
    7229 
    7230 /* Line 1806 of yacc.c  */
    7231 #line 1657 "parser.yy"
    7232     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7233     break;
    7234 
    7235   case 419:
    7236 
    7237 /* Line 1806 of yacc.c  */
    7238 #line 1663 "parser.yy"
     7248  case 420:
     7249
     7250/* Line 1806 of yacc.c  */
     7251#line 1666 "parser.yy"
     7252    { (yyval.decl) = nullptr; }
     7253    break;
     7254
     7255  case 423:
     7256
     7257/* Line 1806 of yacc.c  */
     7258#line 1673 "parser.yy"
     7259    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7260    break;
     7261
     7262  case 426:
     7263
     7264/* Line 1806 of yacc.c  */
     7265#line 1680 "parser.yy"
    72397266    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72407267    break;
    72417268
    7242   case 420:
    7243 
    7244 /* Line 1806 of yacc.c  */
    7245 #line 1668 "parser.yy"
    7246     { (yyval.decl) = nullptr; }
    7247     break;
    7248 
    7249   case 423:
    7250 
    7251 /* Line 1806 of yacc.c  */
    7252 #line 1675 "parser.yy"
    7253     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7254     break;
    7255 
    7256   case 426:
     7269  case 427:
    72577270
    72587271/* Line 1806 of yacc.c  */
     
    72617274    break;
    72627275
    7263   case 427:
    7264 
    7265 /* Line 1806 of yacc.c  */
    7266 #line 1684 "parser.yy"
    7267     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7268     break;
    7269 
    72707276  case 429:
    72717277
    72727278/* Line 1806 of yacc.c  */
    7273 #line 1693 "parser.yy"
     7279#line 1691 "parser.yy"
    72747280    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72757281    break;
     
    72787284
    72797285/* Line 1806 of yacc.c  */
     7286#line 1694 "parser.yy"
     7287    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7288    break;
     7289
     7290  case 431:
     7291
     7292/* Line 1806 of yacc.c  */
    72807293#line 1696 "parser.yy"
    7281     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7282     break;
    7283 
    7284   case 431:
    7285 
    7286 /* Line 1806 of yacc.c  */
    7287 #line 1698 "parser.yy"
    72887294    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72897295    break;
     
    72927298
    72937299/* Line 1806 of yacc.c  */
    7294 #line 1708 "parser.yy"
     7300#line 1706 "parser.yy"
    72957301    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72967302    break;
     
    72997305
    73007306/* Line 1806 of yacc.c  */
    7301 #line 1714 "parser.yy"
     7307#line 1712 "parser.yy"
    73027308    {
    73037309                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73097315
    73107316/* Line 1806 of yacc.c  */
    7311 #line 1719 "parser.yy"
     7317#line 1717 "parser.yy"
    73127318    {
    73137319                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73197325
    73207326/* Line 1806 of yacc.c  */
    7321 #line 1728 "parser.yy"
     7327#line 1726 "parser.yy"
    73227328    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73237329    break;
     
    73267332
    73277333/* Line 1806 of yacc.c  */
     7334#line 1735 "parser.yy"
     7335    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7336    break;
     7337
     7338  case 443:
     7339
     7340/* Line 1806 of yacc.c  */
    73287341#line 1737 "parser.yy"
    7329     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7330     break;
    7331 
    7332   case 443:
    7333 
    7334 /* Line 1806 of yacc.c  */
    7335 #line 1739 "parser.yy"
    73367342    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73377343    break;
     
    73407346
    73417347/* Line 1806 of yacc.c  */
    7342 #line 1764 "parser.yy"
     7348#line 1762 "parser.yy"
    73437349    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73447350    break;
     
    73477353
    73487354/* Line 1806 of yacc.c  */
    7349 #line 1772 "parser.yy"
     7355#line 1770 "parser.yy"
    73507356    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73517357    break;
     
    73547360
    73557361/* Line 1806 of yacc.c  */
     7362#line 1775 "parser.yy"
     7363    { (yyval.in) = nullptr; }
     7364    break;
     7365
     7366  case 461:
     7367
     7368/* Line 1806 of yacc.c  */
    73567369#line 1777 "parser.yy"
     7370    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7371    break;
     7372
     7373  case 462:
     7374
     7375/* Line 1806 of yacc.c  */
     7376#line 1779 "parser.yy"
     7377    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7378    break;
     7379
     7380  case 463:
     7381
     7382/* Line 1806 of yacc.c  */
     7383#line 1783 "parser.yy"
     7384    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7385    break;
     7386
     7387  case 464:
     7388
     7389/* Line 1806 of yacc.c  */
     7390#line 1784 "parser.yy"
     7391    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7392    break;
     7393
     7394  case 465:
     7395
     7396/* Line 1806 of yacc.c  */
     7397#line 1789 "parser.yy"
    73577398    { (yyval.in) = nullptr; }
    73587399    break;
    73597400
    7360   case 461:
    7361 
    7362 /* Line 1806 of yacc.c  */
    7363 #line 1779 "parser.yy"
    7364     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7365     break;
    7366 
    7367   case 462:
    7368 
    7369 /* Line 1806 of yacc.c  */
    7370 #line 1781 "parser.yy"
    7371     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7372     break;
    7373 
    7374   case 463:
    7375 
    7376 /* Line 1806 of yacc.c  */
    7377 #line 1785 "parser.yy"
    7378     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7379     break;
    7380 
    7381   case 464:
    7382 
    7383 /* Line 1806 of yacc.c  */
    7384 #line 1786 "parser.yy"
    7385     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7386     break;
    7387 
    7388   case 465:
     7401  case 467:
    73897402
    73907403/* Line 1806 of yacc.c  */
    73917404#line 1791 "parser.yy"
    7392     { (yyval.in) = nullptr; }
    7393     break;
    7394 
    7395   case 467:
    7396 
    7397 /* Line 1806 of yacc.c  */
    7398 #line 1793 "parser.yy"
    73997405    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74007406    break;
     
    74037409
    74047410/* Line 1806 of yacc.c  */
     7411#line 1792 "parser.yy"
     7412    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7413    break;
     7414
     7415  case 469:
     7416
     7417/* Line 1806 of yacc.c  */
    74057418#line 1794 "parser.yy"
    7406     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    7407     break;
    7408 
    7409   case 469:
    7410 
    7411 /* Line 1806 of yacc.c  */
    7412 #line 1796 "parser.yy"
    74137419    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74147420    break;
     
    74177423
    74187424/* Line 1806 of yacc.c  */
    7419 #line 1812 "parser.yy"
     7425#line 1810 "parser.yy"
    74207426    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74217427    break;
     
    74247430
    74257431/* Line 1806 of yacc.c  */
    7426 #line 1818 "parser.yy"
     7432#line 1816 "parser.yy"
    74277433    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    74287434    break;
     
    74317437
    74327438/* Line 1806 of yacc.c  */
    7433 #line 1824 "parser.yy"
     7439#line 1822 "parser.yy"
    74347440    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74357441    break;
    74367442
    74377443  case 475:
     7444
     7445/* Line 1806 of yacc.c  */
     7446#line 1825 "parser.yy"
     7447    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7448    break;
     7449
     7450  case 476:
    74387451
    74397452/* Line 1806 of yacc.c  */
     
    74427455    break;
    74437456
    7444   case 476:
     7457  case 477:
    74457458
    74467459/* Line 1806 of yacc.c  */
    74477460#line 1829 "parser.yy"
    7448     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7449     break;
    7450 
    7451   case 477:
     7461    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     7462    break;
     7463
     7464  case 478:
    74527465
    74537466/* Line 1806 of yacc.c  */
    74547467#line 1831 "parser.yy"
    7455     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    7456     break;
    7457 
    7458   case 478:
    7459 
    7460 /* Line 1806 of yacc.c  */
    7461 #line 1833 "parser.yy"
    74627468    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74637469    break;
     
    74667472
    74677473/* Line 1806 of yacc.c  */
     7474#line 1855 "parser.yy"
     7475    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7476    break;
     7477
     7478  case 481:
     7479
     7480/* Line 1806 of yacc.c  */
    74687481#line 1857 "parser.yy"
     7482    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7483    break;
     7484
     7485  case 482:
     7486
     7487/* Line 1806 of yacc.c  */
     7488#line 1859 "parser.yy"
     7489    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7490    break;
     7491
     7492  case 484:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1865 "parser.yy"
    74697496    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74707497    break;
    74717498
    7472   case 481:
    7473 
    7474 /* Line 1806 of yacc.c  */
    7475 #line 1859 "parser.yy"
     7499  case 485:
     7500
     7501/* Line 1806 of yacc.c  */
     7502#line 1867 "parser.yy"
    74767503    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74777504    break;
    74787505
    7479   case 482:
    7480 
    7481 /* Line 1806 of yacc.c  */
    7482 #line 1861 "parser.yy"
    7483     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7484     break;
    7485 
    7486   case 484:
    7487 
    7488 /* Line 1806 of yacc.c  */
    7489 #line 1867 "parser.yy"
    7490     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7491     break;
    7492 
    7493   case 485:
    7494 
    7495 /* Line 1806 of yacc.c  */
    7496 #line 1869 "parser.yy"
    7497     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7498     break;
    7499 
    75007506  case 486:
    75017507
    75027508/* Line 1806 of yacc.c  */
    7503 #line 1874 "parser.yy"
     7509#line 1872 "parser.yy"
    75047510    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75057511    break;
     
    75087514
    75097515/* Line 1806 of yacc.c  */
    7510 #line 1880 "parser.yy"
     7516#line 1878 "parser.yy"
    75117517    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75127518    break;
     
    75157521
    75167522/* Line 1806 of yacc.c  */
     7523#line 1883 "parser.yy"
     7524    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7525    break;
     7526
     7527  case 490:
     7528
     7529/* Line 1806 of yacc.c  */
    75177530#line 1885 "parser.yy"
    7518     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7519     break;
    7520 
    7521   case 490:
    7522 
    7523 /* Line 1806 of yacc.c  */
    7524 #line 1887 "parser.yy"
    75257531    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75267532    break;
     
    75297535
    75307536/* Line 1806 of yacc.c  */
     7537#line 1891 "parser.yy"
     7538    { (yyval.tclass) = DeclarationNode::Otype; }
     7539    break;
     7540
     7541  case 493:
     7542
     7543/* Line 1806 of yacc.c  */
    75317544#line 1893 "parser.yy"
    7532     { (yyval.tclass) = DeclarationNode::Otype; }
    7533     break;
    7534 
    7535   case 493:
     7545    { (yyval.tclass) = DeclarationNode::Dtype; }
     7546    break;
     7547
     7548  case 494:
    75367549
    75377550/* Line 1806 of yacc.c  */
    75387551#line 1895 "parser.yy"
    7539     { (yyval.tclass) = DeclarationNode::Dtype; }
    7540     break;
    7541 
    7542   case 494:
     7552    { (yyval.tclass) = DeclarationNode::Ftype; }
     7553    break;
     7554
     7555  case 495:
    75437556
    75447557/* Line 1806 of yacc.c  */
    75457558#line 1897 "parser.yy"
    7546     { (yyval.tclass) = DeclarationNode::Ftype; }
    7547     break;
    7548 
    7549   case 495:
    7550 
    7551 /* Line 1806 of yacc.c  */
    7552 #line 1899 "parser.yy"
    75537559    { (yyval.tclass) = DeclarationNode::Ttype; }
    75547560    break;
     
    75577563
    75587564/* Line 1806 of yacc.c  */
     7565#line 1902 "parser.yy"
     7566    { (yyval.decl) = nullptr; }
     7567    break;
     7568
     7569  case 497:
     7570
     7571/* Line 1806 of yacc.c  */
    75597572#line 1904 "parser.yy"
    7560     { (yyval.decl) = nullptr; }
    7561     break;
    7562 
    7563   case 497:
    7564 
    7565 /* Line 1806 of yacc.c  */
    7566 #line 1906 "parser.yy"
    75677573    { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75687574    break;
     
    75717577
    75727578/* Line 1806 of yacc.c  */
    7573 #line 1911 "parser.yy"
     7579#line 1909 "parser.yy"
    75747580    {
    75757581                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75817587
    75827588/* Line 1806 of yacc.c  */
     7589#line 1914 "parser.yy"
     7590    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7591    break;
     7592
     7593  case 500:
     7594
     7595/* Line 1806 of yacc.c  */
    75837596#line 1916 "parser.yy"
    7584     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    7585     break;
    7586 
    7587   case 500:
    7588 
    7589 /* Line 1806 of yacc.c  */
    7590 #line 1918 "parser.yy"
    75917597    { (yyval.decl) = nullptr; }
    75927598    break;
     
    75957601
    75967602/* Line 1806 of yacc.c  */
    7597 #line 1923 "parser.yy"
     7603#line 1921 "parser.yy"
    75987604    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    75997605    break;
     
    76027608
    76037609/* Line 1806 of yacc.c  */
     7610#line 1924 "parser.yy"
     7611    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7612    break;
     7613
     7614  case 504:
     7615
     7616/* Line 1806 of yacc.c  */
    76047617#line 1926 "parser.yy"
    7605     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    7606     break;
    7607 
    7608   case 504:
    7609 
    7610 /* Line 1806 of yacc.c  */
    7611 #line 1928 "parser.yy"
    76127618    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    76137619    break;
     
    76167622
    76177623/* Line 1806 of yacc.c  */
     7624#line 1931 "parser.yy"
     7625    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7626    break;
     7627
     7628  case 506:
     7629
     7630/* Line 1806 of yacc.c  */
    76187631#line 1933 "parser.yy"
    7619     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7620     break;
    7621 
    7622   case 506:
     7632    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7633    break;
     7634
     7635  case 507:
    76237636
    76247637/* Line 1806 of yacc.c  */
    76257638#line 1935 "parser.yy"
    7626     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    7627     break;
    7628 
    7629   case 507:
    7630 
    7631 /* Line 1806 of yacc.c  */
    7632 #line 1937 "parser.yy"
    76337639    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76347640    break;
     
    76377643
    76387644/* Line 1806 of yacc.c  */
     7645#line 1940 "parser.yy"
     7646    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7647    break;
     7648
     7649  case 509:
     7650
     7651/* Line 1806 of yacc.c  */
    76397652#line 1942 "parser.yy"
    7640     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7641     break;
    7642 
    7643   case 509:
    7644 
    7645 /* Line 1806 of yacc.c  */
    7646 #line 1944 "parser.yy"
    76477653    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76487654    break;
     
    76517657
    76527658/* Line 1806 of yacc.c  */
    7653 #line 1949 "parser.yy"
     7659#line 1947 "parser.yy"
    76547660    {
    76557661                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76617667
    76627668/* Line 1806 of yacc.c  */
    7663 #line 1954 "parser.yy"
     7669#line 1952 "parser.yy"
    76647670    {
    76657671                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76717677
    76727678/* Line 1806 of yacc.c  */
    7673 #line 1962 "parser.yy"
     7679#line 1960 "parser.yy"
    76747680    {
    76757681                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76817687
    76827688/* Line 1806 of yacc.c  */
    7683 #line 1967 "parser.yy"
     7689#line 1965 "parser.yy"
    76847690    {
    76857691                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    76917697
    76927698/* Line 1806 of yacc.c  */
    7693 #line 1972 "parser.yy"
     7699#line 1970 "parser.yy"
    76947700    {
    76957701                        typedefTable.leaveTrait();
     
    77027708
    77037709/* Line 1806 of yacc.c  */
    7704 #line 1982 "parser.yy"
     7710#line 1980 "parser.yy"
    77057711    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77067712    break;
     
    77097715
    77107716/* Line 1806 of yacc.c  */
    7711 #line 1992 "parser.yy"
     7717#line 1990 "parser.yy"
    77127718    {
    77137719                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77197725
    77207726/* Line 1806 of yacc.c  */
    7721 #line 1997 "parser.yy"
     7727#line 1995 "parser.yy"
    77227728    {
    77237729                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77297735
    77307736/* Line 1806 of yacc.c  */
    7731 #line 2002 "parser.yy"
     7737#line 2000 "parser.yy"
    77327738    {
    77337739                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77397745
    77407746/* Line 1806 of yacc.c  */
    7741 #line 2010 "parser.yy"
     7747#line 2008 "parser.yy"
    77427748    {
    77437749                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77497755
    77507756/* Line 1806 of yacc.c  */
    7751 #line 2015 "parser.yy"
     7757#line 2013 "parser.yy"
    77527758    {
    77537759                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77597765
    77607766/* Line 1806 of yacc.c  */
     7767#line 2023 "parser.yy"
     7768    {}
     7769    break;
     7770
     7771  case 525:
     7772
     7773/* Line 1806 of yacc.c  */
    77617774#line 2025 "parser.yy"
     7775    { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);       }
     7776    break;
     7777
     7778  case 527:
     7779
     7780/* Line 1806 of yacc.c  */
     7781#line 2031 "parser.yy"
     7782    { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7783    break;
     7784
     7785  case 528:
     7786
     7787/* Line 1806 of yacc.c  */
     7788#line 2036 "parser.yy"
     7789    { (yyval.decl) = nullptr; }
     7790    break;
     7791
     7792  case 532:
     7793
     7794/* Line 1806 of yacc.c  */
     7795#line 2044 "parser.yy"
    77627796    {}
    77637797    break;
    77647798
    7765   case 525:
    7766 
    7767 /* Line 1806 of yacc.c  */
    7768 #line 2027 "parser.yy"
    7769     { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);       }
    7770     break;
    7771 
    7772   case 527:
    7773 
    7774 /* Line 1806 of yacc.c  */
    7775 #line 2033 "parser.yy"
    7776     { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7777     break;
    7778 
    7779   case 528:
    7780 
    7781 /* Line 1806 of yacc.c  */
    7782 #line 2038 "parser.yy"
    7783     { (yyval.decl) = nullptr; }
    7784     break;
    7785 
    7786   case 532:
     7799  case 533:
    77877800
    77887801/* Line 1806 of yacc.c  */
    77897802#line 2046 "parser.yy"
    7790     {}
    7791     break;
    7792 
    7793   case 533:
    7794 
    7795 /* Line 1806 of yacc.c  */
    7796 #line 2048 "parser.yy"
    77977803    {
    77987804                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    78047810
    78057811/* Line 1806 of yacc.c  */
    7806 #line 2053 "parser.yy"
     7812#line 2051 "parser.yy"
    78077813    {
    78087814                        linkage = linkageStack.top();
     
    78157821
    78167822/* Line 1806 of yacc.c  */
    7817 #line 2059 "parser.yy"
     7823#line 2057 "parser.yy"
    78187824    {   // mark all fields in list
    78197825                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78267832
    78277833/* Line 1806 of yacc.c  */
    7828 #line 2074 "parser.yy"
     7834#line 2072 "parser.yy"
    78297835    {
    78307836                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78377843
    78387844/* Line 1806 of yacc.c  */
    7839 #line 2080 "parser.yy"
     7845#line 2078 "parser.yy"
    78407846    {
    78417847                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78487854
    78497855/* Line 1806 of yacc.c  */
    7850 #line 2089 "parser.yy"
     7856#line 2087 "parser.yy"
    78517857    {
    78527858                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78597865
    78607866/* Line 1806 of yacc.c  */
    7861 #line 2095 "parser.yy"
     7867#line 2093 "parser.yy"
    78627868    {
    78637869                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78707876
    78717877/* Line 1806 of yacc.c  */
    7872 #line 2101 "parser.yy"
     7878#line 2099 "parser.yy"
    78737879    {
    78747880                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78817887
    78827888/* Line 1806 of yacc.c  */
    7883 #line 2107 "parser.yy"
     7889#line 2105 "parser.yy"
    78847890    {
    78857891                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78927898
    78937899/* Line 1806 of yacc.c  */
    7894 #line 2113 "parser.yy"
     7900#line 2111 "parser.yy"
    78957901    {
    78967902                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79037909
    79047910/* Line 1806 of yacc.c  */
    7905 #line 2121 "parser.yy"
     7911#line 2119 "parser.yy"
    79067912    {
    79077913                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79147920
    79157921/* Line 1806 of yacc.c  */
    7916 #line 2127 "parser.yy"
     7922#line 2125 "parser.yy"
    79177923    {
    79187924                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79257931
    79267932/* Line 1806 of yacc.c  */
    7927 #line 2135 "parser.yy"
     7933#line 2133 "parser.yy"
    79287934    {
    79297935                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79367942
    79377943/* Line 1806 of yacc.c  */
    7938 #line 2141 "parser.yy"
     7944#line 2139 "parser.yy"
    79397945    {
    79407946                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79477953
    79487954/* Line 1806 of yacc.c  */
    7949 #line 2156 "parser.yy"
     7955#line 2154 "parser.yy"
    79507956    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79517957    break;
     
    79547960
    79557961/* Line 1806 of yacc.c  */
     7962#line 2159 "parser.yy"
     7963    { (yyval.constant) = nullptr; }
     7964    break;
     7965
     7966  case 553:
     7967
     7968/* Line 1806 of yacc.c  */
    79567969#line 2161 "parser.yy"
    7957     { (yyval.constant) = nullptr; }
    7958     break;
    7959 
    7960   case 553:
    7961 
    7962 /* Line 1806 of yacc.c  */
    7963 #line 2163 "parser.yy"
    79647970    { (yyval.constant) = (yyvsp[(3) - (5)].constant); }
    79657971    break;
     
    79687974
    79697975/* Line 1806 of yacc.c  */
    7970 #line 2168 "parser.yy"
     7976#line 2166 "parser.yy"
    79717977    { (yyval.decl) = nullptr; }
    79727978    break;
     
    79757981
    79767982/* Line 1806 of yacc.c  */
    7977 #line 2175 "parser.yy"
     7983#line 2173 "parser.yy"
    79787984    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79797985    break;
     
    79827988
    79837989/* Line 1806 of yacc.c  */
    7984 #line 2181 "parser.yy"
     7990#line 2178 "parser.yy"
     7991    { (yyval.decl) = (yyvsp[(4) - (6)].decl); }
     7992    break;
     7993
     7994  case 560:
     7995
     7996/* Line 1806 of yacc.c  */
     7997#line 2184 "parser.yy"
     7998    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7999    break;
     8000
     8001  case 561:
     8002
     8003/* Line 1806 of yacc.c  */
     8004#line 2189 "parser.yy"
    79858005    { (yyval.decl) = nullptr; }
    79868006    break;
    79878007
     8008  case 562:
     8009
     8010/* Line 1806 of yacc.c  */
     8011#line 2191 "parser.yy"
     8012    { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (1)].tok) ); }
     8013    break;
     8014
    79888015  case 563:
    79898016
    79908017/* Line 1806 of yacc.c  */
    7991 #line 2192 "parser.yy"
    7992     { delete (yyvsp[(3) - (4)].en); }
    7993     break;
    7994 
    7995   case 564:
    7996 
    7997 /* Line 1806 of yacc.c  */
    7998 #line 2196 "parser.yy"
    7999     { delete (yyvsp[(1) - (1)].tok); }
    8000     break;
    8001 
    8002   case 565:
    8003 
    8004 /* Line 1806 of yacc.c  */
    8005 #line 2197 "parser.yy"
    8006     { delete (yyvsp[(1) - (1)].decl); }
    8007     break;
    8008 
    8009   case 566:
    8010 
    8011 /* Line 1806 of yacc.c  */
    8012 #line 2198 "parser.yy"
    8013     { delete (yyvsp[(1) - (1)].decl); }
     8018#line 2193 "parser.yy"
     8019    { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    80148020    break;
    80158021
     
    80178023
    80188024/* Line 1806 of yacc.c  */
    8019 #line 2199 "parser.yy"
    8020     { delete (yyvsp[(1) - (1)].decl); }
     8025#line 2201 "parser.yy"
     8026    { (yyval.tok) = Token{ new string( "__const__" ) }; }
    80218027    break;
    80228028
     
    80248030
    80258031/* Line 1806 of yacc.c  */
    8026 #line 2234 "parser.yy"
     8032#line 2236 "parser.yy"
    80278033    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80288034    break;
    80298035
    80308036  case 570:
    8031 
    8032 /* Line 1806 of yacc.c  */
    8033 #line 2237 "parser.yy"
    8034     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8035     break;
    8036 
    8037   case 571:
    80388037
    80398038/* Line 1806 of yacc.c  */
     
    80428041    break;
    80438042
     8043  case 571:
     8044
     8045/* Line 1806 of yacc.c  */
     8046#line 2241 "parser.yy"
     8047    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8048    break;
     8049
    80448050  case 572:
    80458051
    80468052/* Line 1806 of yacc.c  */
    8047 #line 2244 "parser.yy"
     8053#line 2246 "parser.yy"
    80488054    {
    80498055                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80558061
    80568062/* Line 1806 of yacc.c  */
    8057 #line 2249 "parser.yy"
     8063#line 2251 "parser.yy"
    80588064    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80598065    break;
     
    80628068
    80638069/* Line 1806 of yacc.c  */
    8064 #line 2254 "parser.yy"
     8070#line 2256 "parser.yy"
    80658071    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80668072    break;
     
    80698075
    80708076/* Line 1806 of yacc.c  */
    8071 #line 2256 "parser.yy"
     8077#line 2258 "parser.yy"
    80728078    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80738079    break;
     
    80768082
    80778083/* Line 1806 of yacc.c  */
    8078 #line 2258 "parser.yy"
     8084#line 2260 "parser.yy"
    80798085    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80808086    break;
     
    80838089
    80848090/* Line 1806 of yacc.c  */
    8085 #line 2263 "parser.yy"
     8091#line 2265 "parser.yy"
    80868092    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80878093    break;
    80888094
    80898095  case 578:
    8090 
    8091 /* Line 1806 of yacc.c  */
    8092 #line 2265 "parser.yy"
    8093     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8094     break;
    8095 
    8096   case 579:
    80978096
    80988097/* Line 1806 of yacc.c  */
     
    81018100    break;
    81028101
     8102  case 579:
     8103
     8104/* Line 1806 of yacc.c  */
     8105#line 2269 "parser.yy"
     8106    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8107    break;
     8108
    81038109  case 580:
    81048110
    81058111/* Line 1806 of yacc.c  */
    8106 #line 2269 "parser.yy"
     8112#line 2271 "parser.yy"
    81078113    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81088114    break;
     
    81118117
    81128118/* Line 1806 of yacc.c  */
    8113 #line 2274 "parser.yy"
     8119#line 2276 "parser.yy"
    81148120    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81158121    break;
     
    81188124
    81198125/* Line 1806 of yacc.c  */
    8120 #line 2276 "parser.yy"
     8126#line 2278 "parser.yy"
    81218127    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81228128    break;
     
    81258131
    81268132/* Line 1806 of yacc.c  */
    8127 #line 2285 "parser.yy"
     8133#line 2287 "parser.yy"
    81288134    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81298135    break;
     
    81328138
    81338139/* Line 1806 of yacc.c  */
    8134 #line 2288 "parser.yy"
     8140#line 2290 "parser.yy"
    81358141    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81368142    break;
     
    81398145
    81408146/* Line 1806 of yacc.c  */
    8141 #line 2293 "parser.yy"
     8147#line 2295 "parser.yy"
    81428148    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81438149    break;
     
    81468152
    81478153/* Line 1806 of yacc.c  */
    8148 #line 2295 "parser.yy"
     8154#line 2297 "parser.yy"
    81498155    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81508156    break;
     
    81538159
    81548160/* Line 1806 of yacc.c  */
    8155 #line 2297 "parser.yy"
     8161#line 2299 "parser.yy"
    81568162    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81578163    break;
     
    81608166
    81618167/* Line 1806 of yacc.c  */
    8162 #line 2302 "parser.yy"
     8168#line 2304 "parser.yy"
    81638169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81648170    break;
     
    81678173
    81688174/* Line 1806 of yacc.c  */
    8169 #line 2304 "parser.yy"
     8175#line 2306 "parser.yy"
    81708176    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81718177    break;
     
    81748180
    81758181/* Line 1806 of yacc.c  */
    8176 #line 2306 "parser.yy"
     8182#line 2308 "parser.yy"
    81778183    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81788184    break;
    81798185
    81808186  case 592:
    8181 
    8182 /* Line 1806 of yacc.c  */
    8183 #line 2311 "parser.yy"
    8184     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8185     break;
    8186 
    8187   case 593:
    81888187
    81898188/* Line 1806 of yacc.c  */
     
    81928191    break;
    81938192
     8193  case 593:
     8194
     8195/* Line 1806 of yacc.c  */
     8196#line 2315 "parser.yy"
     8197    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8198    break;
     8199
    81948200  case 594:
    81958201
    81968202/* Line 1806 of yacc.c  */
    8197 #line 2315 "parser.yy"
     8203#line 2317 "parser.yy"
    81988204    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81998205    break;
     
    82028208
    82038209/* Line 1806 of yacc.c  */
    8204 #line 2330 "parser.yy"
     8210#line 2332 "parser.yy"
    82058211    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    82068212    break;
     
    82098215
    82108216/* Line 1806 of yacc.c  */
    8211 #line 2332 "parser.yy"
     8217#line 2334 "parser.yy"
    82128218    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    82138219    break;
     
    82168222
    82178223/* Line 1806 of yacc.c  */
    8218 #line 2334 "parser.yy"
     8224#line 2336 "parser.yy"
    82198225    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82208226    break;
     
    82238229
    82248230/* Line 1806 of yacc.c  */
    8225 #line 2339 "parser.yy"
     8231#line 2341 "parser.yy"
    82268232    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82278233    break;
     
    82308236
    82318237/* Line 1806 of yacc.c  */
    8232 #line 2341 "parser.yy"
     8238#line 2343 "parser.yy"
    82338239    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82348240    break;
     
    82378243
    82388244/* Line 1806 of yacc.c  */
    8239 #line 2343 "parser.yy"
     8245#line 2345 "parser.yy"
    82408246    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82418247    break;
    82428248
    82438249  case 604:
    8244 
    8245 /* Line 1806 of yacc.c  */
    8246 #line 2348 "parser.yy"
    8247     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8248     break;
    8249 
    8250   case 605:
    82518250
    82528251/* Line 1806 of yacc.c  */
     
    82558254    break;
    82568255
     8256  case 605:
     8257
     8258/* Line 1806 of yacc.c  */
     8259#line 2352 "parser.yy"
     8260    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8261    break;
     8262
    82578263  case 606:
    82588264
    82598265/* Line 1806 of yacc.c  */
    8260 #line 2352 "parser.yy"
     8266#line 2354 "parser.yy"
    82618267    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82628268    break;
     
    82658271
    82668272/* Line 1806 of yacc.c  */
    8267 #line 2367 "parser.yy"
     8273#line 2369 "parser.yy"
    82688274    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82698275    break;
    82708276
    82718277  case 609:
    8272 
    8273 /* Line 1806 of yacc.c  */
    8274 #line 2370 "parser.yy"
    8275     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8276     break;
    8277 
    8278   case 610:
    82798278
    82808279/* Line 1806 of yacc.c  */
     
    82838282    break;
    82848283
     8284  case 610:
     8285
     8286/* Line 1806 of yacc.c  */
     8287#line 2374 "parser.yy"
     8288    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8289    break;
     8290
    82858291  case 612:
    82868292
    82878293/* Line 1806 of yacc.c  */
    8288 #line 2378 "parser.yy"
     8294#line 2380 "parser.yy"
    82898295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82908296    break;
     
    82938299
    82948300/* Line 1806 of yacc.c  */
    8295 #line 2383 "parser.yy"
     8301#line 2385 "parser.yy"
    82968302    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82978303    break;
     
    83008306
    83018307/* Line 1806 of yacc.c  */
    8302 #line 2385 "parser.yy"
     8308#line 2387 "parser.yy"
    83038309    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83048310    break;
     
    83078313
    83088314/* Line 1806 of yacc.c  */
    8309 #line 2387 "parser.yy"
     8315#line 2389 "parser.yy"
    83108316    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83118317    break;
     
    83148320
    83158321/* Line 1806 of yacc.c  */
    8316 #line 2392 "parser.yy"
     8322#line 2394 "parser.yy"
    83178323    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83188324    break;
    83198325
    83208326  case 617:
    8321 
    8322 /* Line 1806 of yacc.c  */
    8323 #line 2394 "parser.yy"
    8324     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8325     break;
    8326 
    8327   case 618:
    83288327
    83298328/* Line 1806 of yacc.c  */
     
    83328331    break;
    83338332
     8333  case 618:
     8334
     8335/* Line 1806 of yacc.c  */
     8336#line 2398 "parser.yy"
     8337    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8338    break;
     8339
    83348340  case 619:
    83358341
    83368342/* Line 1806 of yacc.c  */
    8337 #line 2398 "parser.yy"
     8343#line 2400 "parser.yy"
    83388344    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83398345    break;
     
    83428348
    83438349/* Line 1806 of yacc.c  */
    8344 #line 2403 "parser.yy"
     8350#line 2405 "parser.yy"
    83458351    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83468352    break;
     
    83498355
    83508356/* Line 1806 of yacc.c  */
    8351 #line 2405 "parser.yy"
     8357#line 2407 "parser.yy"
    83528358    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83538359    break;
     
    83568362
    83578363/* Line 1806 of yacc.c  */
    8358 #line 2407 "parser.yy"
     8364#line 2409 "parser.yy"
    83598365    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83608366    break;
     
    83638369
    83648370/* Line 1806 of yacc.c  */
    8365 #line 2417 "parser.yy"
     8371#line 2419 "parser.yy"
    83668372    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83678373    break;
    83688374
    83698375  case 625:
    8370 
    8371 /* Line 1806 of yacc.c  */
    8372 #line 2420 "parser.yy"
    8373     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8374     break;
    8375 
    8376   case 626:
    83778376
    83788377/* Line 1806 of yacc.c  */
     
    83818380    break;
    83828381
     8382  case 626:
     8383
     8384/* Line 1806 of yacc.c  */
     8385#line 2424 "parser.yy"
     8386    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8387    break;
     8388
    83838389  case 627:
    83848390
    83858391/* Line 1806 of yacc.c  */
    8386 #line 2427 "parser.yy"
     8392#line 2429 "parser.yy"
    83878393    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83888394    break;
     
    83918397
    83928398/* Line 1806 of yacc.c  */
    8393 #line 2429 "parser.yy"
     8399#line 2431 "parser.yy"
    83948400    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83958401    break;
     
    83988404
    83998405/* Line 1806 of yacc.c  */
    8400 #line 2431 "parser.yy"
     8406#line 2433 "parser.yy"
    84018407    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84028408    break;
     
    84058411
    84068412/* Line 1806 of yacc.c  */
    8407 #line 2436 "parser.yy"
     8413#line 2438 "parser.yy"
    84088414    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84098415    break;
    84108416
    84118417  case 631:
    8412 
    8413 /* Line 1806 of yacc.c  */
    8414 #line 2438 "parser.yy"
    8415     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8416     break;
    8417 
    8418   case 632:
    84198418
    84208419/* Line 1806 of yacc.c  */
     
    84238422    break;
    84248423
     8424  case 632:
     8425
     8426/* Line 1806 of yacc.c  */
     8427#line 2442 "parser.yy"
     8428    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8429    break;
     8430
    84258431  case 633:
    84268432
    84278433/* Line 1806 of yacc.c  */
    8428 #line 2442 "parser.yy"
     8434#line 2444 "parser.yy"
    84298435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84308436    break;
     
    84338439
    84348440/* Line 1806 of yacc.c  */
    8435 #line 2447 "parser.yy"
     8441#line 2449 "parser.yy"
    84368442    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84378443    break;
     
    84408446
    84418447/* Line 1806 of yacc.c  */
    8442 #line 2449 "parser.yy"
     8448#line 2451 "parser.yy"
    84438449    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84448450    break;
     
    84478453
    84488454/* Line 1806 of yacc.c  */
    8449 #line 2451 "parser.yy"
     8455#line 2453 "parser.yy"
    84508456    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84518457    break;
     
    84548460
    84558461/* Line 1806 of yacc.c  */
    8456 #line 2482 "parser.yy"
     8462#line 2484 "parser.yy"
    84578463    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84588464    break;
    84598465
    84608466  case 639:
    8461 
    8462 /* Line 1806 of yacc.c  */
    8463 #line 2485 "parser.yy"
    8464     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8465     break;
    8466 
    8467   case 640:
    84688467
    84698468/* Line 1806 of yacc.c  */
     
    84728471    break;
    84738472
     8473  case 640:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2489 "parser.yy"
     8477    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8478    break;
     8479
    84748480  case 641:
    84758481
    84768482/* Line 1806 of yacc.c  */
    8477 #line 2492 "parser.yy"
     8483#line 2494 "parser.yy"
    84788484    {
    84798485                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84858491
    84868492/* Line 1806 of yacc.c  */
    8487 #line 2497 "parser.yy"
     8493#line 2499 "parser.yy"
    84888494    {
    84898495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84958501
    84968502/* Line 1806 of yacc.c  */
    8497 #line 2505 "parser.yy"
     8503#line 2507 "parser.yy"
    84988504    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84998505    break;
     
    85028508
    85038509/* Line 1806 of yacc.c  */
    8504 #line 2507 "parser.yy"
     8510#line 2509 "parser.yy"
    85058511    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85068512    break;
     
    85098515
    85108516/* Line 1806 of yacc.c  */
    8511 #line 2509 "parser.yy"
     8517#line 2511 "parser.yy"
    85128518    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85138519    break;
     
    85168522
    85178523/* Line 1806 of yacc.c  */
    8518 #line 2514 "parser.yy"
     8524#line 2516 "parser.yy"
    85198525    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85208526    break;
     
    85238529
    85248530/* Line 1806 of yacc.c  */
    8525 #line 2516 "parser.yy"
     8531#line 2518 "parser.yy"
    85268532    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85278533    break;
     
    85308536
    85318537/* Line 1806 of yacc.c  */
    8532 #line 2521 "parser.yy"
     8538#line 2523 "parser.yy"
    85338539    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85348540    break;
     
    85378543
    85388544/* Line 1806 of yacc.c  */
    8539 #line 2523 "parser.yy"
     8545#line 2525 "parser.yy"
    85408546    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85418547    break;
    85428548
    85438549  case 651:
    8544 
    8545 /* Line 1806 of yacc.c  */
    8546 #line 2538 "parser.yy"
    8547     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8548     break;
    8549 
    8550   case 652:
    85518550
    85528551/* Line 1806 of yacc.c  */
     
    85558554    break;
    85568555
     8556  case 652:
     8557
     8558/* Line 1806 of yacc.c  */
     8559#line 2542 "parser.yy"
     8560    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8561    break;
     8562
    85578563  case 653:
    85588564
    85598565/* Line 1806 of yacc.c  */
    8560 #line 2545 "parser.yy"
     8566#line 2547 "parser.yy"
    85618567    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85628568    break;
     
    85658571
    85668572/* Line 1806 of yacc.c  */
    8567 #line 2547 "parser.yy"
     8573#line 2549 "parser.yy"
    85688574    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85698575    break;
     
    85728578
    85738579/* Line 1806 of yacc.c  */
    8574 #line 2549 "parser.yy"
     8580#line 2551 "parser.yy"
    85758581    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85768582    break;
     
    85798585
    85808586/* Line 1806 of yacc.c  */
    8581 #line 2551 "parser.yy"
     8587#line 2553 "parser.yy"
    85828588    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85838589    break;
     
    85868592
    85878593/* Line 1806 of yacc.c  */
    8588 #line 2553 "parser.yy"
     8594#line 2555 "parser.yy"
    85898595    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85908596    break;
    85918597
    85928598  case 659:
    8593 
    8594 /* Line 1806 of yacc.c  */
    8595 #line 2559 "parser.yy"
    8596     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8597     break;
    8598 
    8599   case 660:
    86008599
    86018600/* Line 1806 of yacc.c  */
     
    86048603    break;
    86058604
     8605  case 660:
     8606
     8607/* Line 1806 of yacc.c  */
     8608#line 2563 "parser.yy"
     8609    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8610    break;
     8611
    86068612  case 661:
    86078613
    86088614/* Line 1806 of yacc.c  */
    8609 #line 2563 "parser.yy"
     8615#line 2565 "parser.yy"
    86108616    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86118617    break;
     
    86148620
    86158621/* Line 1806 of yacc.c  */
    8616 #line 2568 "parser.yy"
     8622#line 2570 "parser.yy"
    86178623    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    86188624    break;
     
    86218627
    86228628/* Line 1806 of yacc.c  */
    8623 #line 2570 "parser.yy"
     8629#line 2572 "parser.yy"
    86248630    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86258631    break;
     
    86288634
    86298635/* Line 1806 of yacc.c  */
    8630 #line 2572 "parser.yy"
     8636#line 2574 "parser.yy"
    86318637    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86328638    break;
     
    86358641
    86368642/* Line 1806 of yacc.c  */
    8637 #line 2578 "parser.yy"
     8643#line 2580 "parser.yy"
    86388644    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86398645    break;
     
    86428648
    86438649/* Line 1806 of yacc.c  */
    8644 #line 2580 "parser.yy"
     8650#line 2582 "parser.yy"
    86458651    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86468652    break;
     
    86498655
    86508656/* Line 1806 of yacc.c  */
    8651 #line 2586 "parser.yy"
     8657#line 2588 "parser.yy"
    86528658    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86538659    break;
     
    86568662
    86578663/* Line 1806 of yacc.c  */
    8658 #line 2588 "parser.yy"
     8664#line 2590 "parser.yy"
    86598665    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86608666    break;
     
    86638669
    86648670/* Line 1806 of yacc.c  */
    8665 #line 2590 "parser.yy"
     8671#line 2592 "parser.yy"
    86668672    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86678673    break;
     
    86708676
    86718677/* Line 1806 of yacc.c  */
    8672 #line 2592 "parser.yy"
     8678#line 2594 "parser.yy"
    86738679    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86748680    break;
    86758681
    86768682  case 673:
    8677 
    8678 /* Line 1806 of yacc.c  */
    8679 #line 2607 "parser.yy"
    8680     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8681     break;
    8682 
    8683   case 674:
    86848683
    86858684/* Line 1806 of yacc.c  */
     
    86888687    break;
    86898688
     8689  case 674:
     8690
     8691/* Line 1806 of yacc.c  */
     8692#line 2611 "parser.yy"
     8693    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8694    break;
     8695
    86908696  case 675:
    86918697
    86928698/* Line 1806 of yacc.c  */
    8693 #line 2614 "parser.yy"
     8699#line 2616 "parser.yy"
    86948700    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86958701    break;
     
    86988704
    86998705/* Line 1806 of yacc.c  */
    8700 #line 2616 "parser.yy"
     8706#line 2618 "parser.yy"
    87018707    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87028708    break;
     
    87058711
    87068712/* Line 1806 of yacc.c  */
    8707 #line 2618 "parser.yy"
     8713#line 2620 "parser.yy"
    87088714    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87098715    break;
     
    87128718
    87138719/* Line 1806 of yacc.c  */
    8714 #line 2620 "parser.yy"
     8720#line 2622 "parser.yy"
    87158721    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87168722    break;
     
    87198725
    87208726/* Line 1806 of yacc.c  */
    8721 #line 2622 "parser.yy"
     8727#line 2624 "parser.yy"
    87228728    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87238729    break;
    87248730
    87258731  case 681:
    8726 
    8727 /* Line 1806 of yacc.c  */
    8728 #line 2628 "parser.yy"
    8729     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8730     break;
    8731 
    8732   case 682:
    87338732
    87348733/* Line 1806 of yacc.c  */
     
    87378736    break;
    87388737
     8738  case 682:
     8739
     8740/* Line 1806 of yacc.c  */
     8741#line 2632 "parser.yy"
     8742    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8743    break;
     8744
    87398745  case 683:
    87408746
    87418747/* Line 1806 of yacc.c  */
    8742 #line 2632 "parser.yy"
     8748#line 2634 "parser.yy"
    87438749    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87448750    break;
     
    87478753
    87488754/* Line 1806 of yacc.c  */
    8749 #line 2637 "parser.yy"
     8755#line 2639 "parser.yy"
    87508756    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    87518757    break;
     
    87548760
    87558761/* Line 1806 of yacc.c  */
    8756 #line 2639 "parser.yy"
     8762#line 2641 "parser.yy"
    87578763    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87588764    break;
     
    87618767
    87628768/* Line 1806 of yacc.c  */
    8763 #line 2641 "parser.yy"
     8769#line 2643 "parser.yy"
    87648770    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87658771    break;
     
    87688774
    87698775/* Line 1806 of yacc.c  */
    8770 #line 2648 "parser.yy"
     8776#line 2650 "parser.yy"
    87718777    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87728778    break;
     
    87758781
    87768782/* Line 1806 of yacc.c  */
    8777 #line 2659 "parser.yy"
     8783#line 2661 "parser.yy"
    87788784    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87798785    break;
     
    87828788
    87838789/* Line 1806 of yacc.c  */
    8784 #line 2662 "parser.yy"
     8790#line 2664 "parser.yy"
    87858791    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87868792    break;
     
    87898795
    87908796/* Line 1806 of yacc.c  */
    8791 #line 2664 "parser.yy"
     8797#line 2666 "parser.yy"
    87928798    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87938799    break;
     
    87968802
    87978803/* Line 1806 of yacc.c  */
    8798 #line 2667 "parser.yy"
     8804#line 2669 "parser.yy"
    87998805    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88008806    break;
     
    88038809
    88048810/* Line 1806 of yacc.c  */
    8805 #line 2669 "parser.yy"
     8811#line 2671 "parser.yy"
    88068812    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    88078813    break;
     
    88108816
    88118817/* Line 1806 of yacc.c  */
    8812 #line 2671 "parser.yy"
     8818#line 2673 "parser.yy"
    88138819    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88148820    break;
    88158821
    88168822  case 697:
    8817 
    8818 /* Line 1806 of yacc.c  */
    8819 #line 2685 "parser.yy"
    8820     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8821     break;
    8822 
    8823   case 698:
    88248823
    88258824/* Line 1806 of yacc.c  */
     
    88288827    break;
    88298828
     8829  case 698:
     8830
     8831/* Line 1806 of yacc.c  */
     8832#line 2689 "parser.yy"
     8833    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8834    break;
     8835
    88308836  case 699:
    88318837
    88328838/* Line 1806 of yacc.c  */
    8833 #line 2692 "parser.yy"
     8839#line 2694 "parser.yy"
    88348840    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88358841    break;
     
    88388844
    88398845/* Line 1806 of yacc.c  */
    8840 #line 2694 "parser.yy"
     8846#line 2696 "parser.yy"
    88418847    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88428848    break;
     
    88458851
    88468852/* Line 1806 of yacc.c  */
    8847 #line 2696 "parser.yy"
     8853#line 2698 "parser.yy"
    88488854    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88498855    break;
     
    88528858
    88538859/* Line 1806 of yacc.c  */
    8854 #line 2698 "parser.yy"
     8860#line 2700 "parser.yy"
    88558861    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88568862    break;
     
    88598865
    88608866/* Line 1806 of yacc.c  */
    8861 #line 2700 "parser.yy"
     8867#line 2702 "parser.yy"
    88628868    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88638869    break;
    88648870
    88658871  case 705:
    8866 
    8867 /* Line 1806 of yacc.c  */
    8868 #line 2706 "parser.yy"
    8869     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8870     break;
    8871 
    8872   case 706:
    88738872
    88748873/* Line 1806 of yacc.c  */
     
    88778876    break;
    88788877
     8878  case 706:
     8879
     8880/* Line 1806 of yacc.c  */
     8881#line 2710 "parser.yy"
     8882    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8883    break;
     8884
    88798885  case 707:
    88808886
    88818887/* Line 1806 of yacc.c  */
    8882 #line 2710 "parser.yy"
     8888#line 2712 "parser.yy"
    88838889    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88848890    break;
     
    88878893
    88888894/* Line 1806 of yacc.c  */
    8889 #line 2715 "parser.yy"
     8895#line 2717 "parser.yy"
    88908896    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88918897    break;
     
    88948900
    88958901/* Line 1806 of yacc.c  */
    8896 #line 2717 "parser.yy"
     8902#line 2719 "parser.yy"
    88978903    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88988904    break;
     
    89018907
    89028908/* Line 1806 of yacc.c  */
    8903 #line 2727 "parser.yy"
     8909#line 2729 "parser.yy"
    89048910    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89058911    break;
     
    89088914
    89098915/* Line 1806 of yacc.c  */
    8910 #line 2737 "parser.yy"
     8916#line 2739 "parser.yy"
    89118917    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89128918    break;
     
    89158921
    89168922/* Line 1806 of yacc.c  */
    8917 #line 2739 "parser.yy"
     8923#line 2741 "parser.yy"
    89188924    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89198925    break;
     
    89228928
    89238929/* Line 1806 of yacc.c  */
    8924 #line 2741 "parser.yy"
     8930#line 2743 "parser.yy"
    89258931    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89268932    break;
     
    89298935
    89308936/* Line 1806 of yacc.c  */
    8931 #line 2743 "parser.yy"
     8937#line 2745 "parser.yy"
    89328938    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89338939    break;
     
    89368942
    89378943/* Line 1806 of yacc.c  */
    8938 #line 2745 "parser.yy"
     8944#line 2747 "parser.yy"
    89398945    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89408946    break;
     
    89438949
    89448950/* Line 1806 of yacc.c  */
    8945 #line 2747 "parser.yy"
     8951#line 2749 "parser.yy"
    89468952    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89478953    break;
     
    89508956
    89518957/* Line 1806 of yacc.c  */
    8952 #line 2754 "parser.yy"
     8958#line 2756 "parser.yy"
    89538959    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89548960    break;
     
    89578963
    89588964/* Line 1806 of yacc.c  */
    8959 #line 2756 "parser.yy"
     8965#line 2758 "parser.yy"
    89608966    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89618967    break;
     
    89648970
    89658971/* Line 1806 of yacc.c  */
    8966 #line 2758 "parser.yy"
     8972#line 2760 "parser.yy"
    89678973    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89688974    break;
     
    89718977
    89728978/* Line 1806 of yacc.c  */
    8973 #line 2760 "parser.yy"
     8979#line 2762 "parser.yy"
    89748980    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89758981    break;
     
    89788984
    89798985/* Line 1806 of yacc.c  */
    8980 #line 2762 "parser.yy"
     8986#line 2764 "parser.yy"
    89818987    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89828988    break;
     
    89858991
    89868992/* Line 1806 of yacc.c  */
    8987 #line 2765 "parser.yy"
     8993#line 2767 "parser.yy"
    89888994    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89898995    break;
     
    89928998
    89938999/* Line 1806 of yacc.c  */
    8994 #line 2767 "parser.yy"
     9000#line 2769 "parser.yy"
    89959001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89969002    break;
     
    89999005
    90009006/* Line 1806 of yacc.c  */
    9001 #line 2769 "parser.yy"
     9007#line 2771 "parser.yy"
    90029008    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90039009    break;
     
    90069012
    90079013/* Line 1806 of yacc.c  */
    9008 #line 2771 "parser.yy"
     9014#line 2773 "parser.yy"
    90099015    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90109016    break;
     
    90139019
    90149020/* Line 1806 of yacc.c  */
    9015 #line 2773 "parser.yy"
     9021#line 2775 "parser.yy"
    90169022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90179023    break;
     
    90209026
    90219027/* Line 1806 of yacc.c  */
    9022 #line 2778 "parser.yy"
     9028#line 2780 "parser.yy"
    90239029    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90249030    break;
     
    90279033
    90289034/* Line 1806 of yacc.c  */
    9029 #line 2780 "parser.yy"
     9035#line 2782 "parser.yy"
    90309036    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90319037    break;
     
    90349040
    90359041/* Line 1806 of yacc.c  */
    9036 #line 2785 "parser.yy"
     9042#line 2787 "parser.yy"
    90379043    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90389044    break;
     
    90419047
    90429048/* Line 1806 of yacc.c  */
    9043 #line 2787 "parser.yy"
     9049#line 2789 "parser.yy"
    90449050    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90459051    break;
     
    90489054
    90499055/* Line 1806 of yacc.c  */
    9050 #line 2814 "parser.yy"
     9056#line 2816 "parser.yy"
    90519057    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90529058    break;
     
    90559061
    90569062/* Line 1806 of yacc.c  */
    9057 #line 2825 "parser.yy"
     9063#line 2827 "parser.yy"
    90589064    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90599065    break;
     
    90629068
    90639069/* Line 1806 of yacc.c  */
    9064 #line 2827 "parser.yy"
     9070#line 2829 "parser.yy"
    90659071    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90669072    break;
     
    90699075
    90709076/* Line 1806 of yacc.c  */
    9071 #line 2829 "parser.yy"
     9077#line 2831 "parser.yy"
    90729078    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90739079    break;
     
    90769082
    90779083/* Line 1806 of yacc.c  */
    9078 #line 2831 "parser.yy"
     9084#line 2833 "parser.yy"
    90799085    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90809086    break;
     
    90839089
    90849090/* Line 1806 of yacc.c  */
    9085 #line 2833 "parser.yy"
     9091#line 2835 "parser.yy"
    90869092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90879093    break;
     
    90909096
    90919097/* Line 1806 of yacc.c  */
    9092 #line 2835 "parser.yy"
     9098#line 2837 "parser.yy"
    90939099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90949100    break;
     
    90979103
    90989104/* Line 1806 of yacc.c  */
    9099 #line 2842 "parser.yy"
     9105#line 2844 "parser.yy"
    91009106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91019107    break;
     
    91049110
    91059111/* Line 1806 of yacc.c  */
    9106 #line 2844 "parser.yy"
     9112#line 2846 "parser.yy"
    91079113    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91089114    break;
     
    91119117
    91129118/* Line 1806 of yacc.c  */
    9113 #line 2846 "parser.yy"
     9119#line 2848 "parser.yy"
    91149120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91159121    break;
     
    91189124
    91199125/* Line 1806 of yacc.c  */
    9120 #line 2848 "parser.yy"
     9126#line 2850 "parser.yy"
    91219127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91229128    break;
     
    91259131
    91269132/* Line 1806 of yacc.c  */
    9127 #line 2850 "parser.yy"
     9133#line 2852 "parser.yy"
    91289134    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91299135    break;
     
    91329138
    91339139/* Line 1806 of yacc.c  */
    9134 #line 2852 "parser.yy"
     9140#line 2854 "parser.yy"
    91359141    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91369142    break;
     
    91399145
    91409146/* Line 1806 of yacc.c  */
    9141 #line 2857 "parser.yy"
     9147#line 2859 "parser.yy"
    91429148    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91439149    break;
    91449150
    91459151  case 753:
    9146 
    9147 /* Line 1806 of yacc.c  */
    9148 #line 2864 "parser.yy"
    9149     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    9150     break;
    9151 
    9152   case 754:
    91539152
    91549153/* Line 1806 of yacc.c  */
     
    91579156    break;
    91589157
     9158  case 754:
     9159
     9160/* Line 1806 of yacc.c  */
     9161#line 2868 "parser.yy"
     9162    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     9163    break;
     9164
    91599165  case 757:
    91609166
    91619167/* Line 1806 of yacc.c  */
    9162 #line 2890 "parser.yy"
     9168#line 2892 "parser.yy"
    91639169    { (yyval.en) = nullptr; }
    91649170    break;
     
    91679173
    91689174/* Line 1806 of yacc.c  */
    9169 #line 2892 "parser.yy"
     9175#line 2894 "parser.yy"
    91709176    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91719177    break;
     
    91749180
    91759181/* Line 1806 of yacc.c  */
    9176 #line 9177 "Parser/parser.cc"
     9182#line 9183 "Parser/parser.cc"
    91779183      default: break;
    91789184    }
     
    94059411
    94069412/* Line 2067 of yacc.c  */
    9407 #line 2895 "parser.yy"
     9413#line 2897 "parser.yy"
    94089414
    94099415// ----end of grammar----
  • TabularUnified src/Parser/parser.h

    rc84e80a r68e6031  
    272272
    273273/* Line 2068 of yacc.c  */
    274 #line 120 "parser.yy"
     274#line 119 "parser.yy"
    275275
    276276        Token tok;
  • TabularUnified src/Parser/parser.yy

    rc84e80a r68e6031  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Dec 14 21:28:22 2016
    13 // Update Count     : 2090
     12// Last Modified On : Wed Jan 18 15:51:25 2017
     13// Update Count     : 2135
    1414//
    1515
     
    3232//
    3333// 1. designation with and without '=' (use ':' instead)
    34 // 2. attributes not allowed in parenthesis of declarator
    3534//
    3635// All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for Cforall
     
    136135
    137136%type<tok> identifier  no_01_identifier  no_attr_identifier zero_one
    138 %type<tok> identifier_or_type_name  no_attr_identifier_or_type_name  no_01_identifier_or_type_name
     137%type<tok> identifier_or_type_name  no_attr_identifier_or_type_name  no_01_identifier_or_type_name  attr_name
    139138%type<constant> string_literal
    140139%type<str> string_literal_list
     
    253252%type<decl> variable_abstract_ptr variable_array variable_declarator variable_function variable_ptr
    254253
    255 %type<decl> attribute_list_opt attribute_list attribute
     254%type<decl> attribute_list_opt attribute_list attribute_name_list attribute attribute_name
    256255
    257256// initializers
     
    709708
    710709labeled_statement:
    711                 // labels cannot be identifiers 0 or 1
    712         IDENTIFIER ':' attribute_list_opt statement
    713                 {
    714                         $$ = $4->add_label( $1 );
     710                // labels cannot be identifiers 0 or 1 or ATTR_IDENTIFIER
     711        identifier_or_type_name ':' attribute_list_opt statement
     712                {
     713                        $$ = $4->add_label( $1, $3 );
    715714                }
    716715        ;
     
    877876
    878877jump_statement:
    879         GOTO IDENTIFIER ';'
     878        GOTO identifier_or_type_name ';'
    880879                { $$ = new StatementNode( build_branch( $2, BranchStmt::Goto ) ); }
    881880        | GOTO '*' comma_expression ';'                                         // GCC, computed goto
     
    886885                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    887886                { $$ = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    888         | CONTINUE IDENTIFIER ';'                                                       // CFA, multi-level continue
     887        | CONTINUE identifier_or_type_name ';'                          // CFA, multi-level continue
    889888                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    890889                // the target of the transfer appears only at the start of an iteration statement.
     
    893892                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    894893                { $$ = new StatementNode( build_branch( BranchStmt::Break ) ); }
    895         | BREAK IDENTIFIER ';'                                                          // CFA, multi-level exit
     894        | BREAK identifier_or_type_name ';'                                     // CFA, multi-level exit
    896895                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    897896                // the target of the transfer appears only at the start of an iteration statement.
     
    13261325        type_qualifier_name
    13271326        | attribute
    1328                 //{ $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
    13291327        ;
    13301328
     
    21772175
    21782176attribute:                                                                                              // GCC
    2179         ATTRIBUTE '(' '(' attribute_parameter_list ')' ')'
    2180         //              { $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
     2177        ATTRIBUTE '(' '(' attribute_name_list ')' ')'
     2178                { $$ = $4; }
     2179        ;
     2180
     2181attribute_name_list:                                                                    // GCC
     2182        attribute_name
     2183        | attribute_name_list ',' attribute_name
     2184                { $$ = $1->addQualifiers( $3 ); }
     2185        ;
     2186
     2187attribute_name:                                                                                 // GCC
     2188        // empty
    21812189                { $$ = nullptr; }
    2182         ;
    2183 
    2184 attribute_parameter_list:                                                               // GCC
    2185         attrib
    2186         | attribute_parameter_list ',' attrib
    2187         ;
    2188 
    2189 attrib:                                                                                                 // GCC
    2190         // empty
    2191         | any_word
    2192         | any_word '(' comma_expression_opt ')' { delete $3; } // FIX ME: unimplemented
    2193         ;
    2194 
    2195 any_word:                                                                                               // GCC
    2196         identifier_or_type_name { delete $1; }                          // FIX ME: unimplemented
    2197         | storage_class { delete $1; }                                          // FIX ME: unimplemented
    2198         | basic_type_name { delete $1; }                                        // FIX ME: unimplemented
    2199         | type_qualifier { delete $1; }                                         // FIX ME: unimplemented
     2190        | attr_name
     2191                { $$ = DeclarationNode::newAttribute( $1 ); }
     2192        | attr_name '(' argument_expression_list ')'
     2193                { $$ = DeclarationNode::newAttribute( $1, $3 ); }
     2194        ;
     2195
     2196attr_name:                                                                                              // GCC
     2197        IDENTIFIER
     2198        | TYPEDEFname
     2199        | TYPEGENname
     2200        | CONST
     2201                { $$ = Token{ new string( "__const__" ) }; }
    22002202        ;
    22012203
  • TabularUnified src/SynTree/Attribute.h

    rc84e80a r68e6031  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Fri May 06 16:26:12 2016
    13 // Update Count     : 33
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed Jan 18 16:27:11 2017
     13// Update Count     : 38
    1414//
    1515
     
    2323class Attribute {
    2424  public:
    25   Attribute( std::string name = "", const std::list< Expression * > & parameters = std::list< Expression * >() ) : name( name ), parameters( parameters ) {}
    26   Attribute( const Attribute &other );
    27   virtual ~Attribute();
     25        Attribute( std::string name = "", const std::list< Expression * > & parameters = std::list< Expression * >() ) : name( name ), parameters( parameters ) {}
     26        Attribute( const Attribute &other );
     27        virtual ~Attribute();
    2828
    29   std::string get_name() const { return name; }
    30   void set_name( const std::string & newValue ) { name = newValue; }
    31   std::list< Expression * > & get_parameters() { return parameters; }
    32   bool empty() const { return name == ""; }
     29        std::string get_name() const { return name; }
     30        void set_name( const std::string & newValue ) { name = newValue; }
     31        std::list< Expression * > & get_parameters() { return parameters; }
     32        bool empty() const { return name == ""; }
    3333
    34   Attribute * clone() const { return new Attribute( *this ); }
    35   void print( std:: ostream &os, int indent = 0 ) const;
    36 
     34        Attribute * clone() const { return new Attribute( *this ); }
     35        void print( std:: ostream &os, int indent = 0 ) const;
    3736  private:
    38   std::string name;
    39   // to keep things nice and tight, use NameExpr for special identifier parameters
    40   std::list< Expression * > parameters;
     37        std::string name;
     38        // to keep things nice and tight, use NameExpr for special identifier parameters
     39        std::list< Expression * > parameters;
    4140};
    4241
    4342#endif
     43
     44// Local Variables: //
     45// tab-width: 4 //
     46// mode: c++ //
     47// compile-command: "make install" //
     48// End: //
  • TabularUnified src/SynTree/Expression.h

    rc84e80a r68e6031  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug  6 08:52:53 2016
    13 // Update Count     : 35
     12// Last Modified On : Sat Jan 14 14:37:54 2017
     13// Update Count     : 37
    1414//
    1515
     
    2828class Expression {
    2929  public:
    30         Expression( Expression *_aname = nullptr );
    31         Expression( const Expression &other );
     30        Expression( Expression * _aname = nullptr );
     31        Expression( const Expression & other );
    3232        virtual ~Expression();
    3333
    3434        Type *& get_result() { return result; }
    35         void set_result( Type *newValue ) { result = newValue; }
     35        void set_result( Type * newValue ) { result = newValue; }
    3636        bool has_result() const { return result != nullptr; }
    3737
    38         TypeSubstitution *get_env() const { return env; }
    39         void set_env( TypeSubstitution *newValue ) { env = newValue; }
    40         Expression *get_argName() const { return argName; }
    41         void set_argName( Expression *name ) { argName = name; }
     38        TypeSubstitution * get_env() const { return env; }
     39        void set_env( TypeSubstitution * newValue ) { env = newValue; }
     40        Expression * get_argName() const { return argName; }
     41        void set_argName( Expression * name ) { argName = name; }
    4242        bool get_extension() const { return extension; }
    4343        Expression * set_extension( bool exten ) { extension = exten; return this; }
    4444
    45         virtual Expression *clone() const = 0;
    46         virtual void accept( Visitor &v ) = 0;
    47         virtual Expression *acceptMutator( Mutator &m ) = 0;
    48         virtual void print( std::ostream &os, int indent = 0 ) const;
     45        virtual Expression * clone() const = 0;
     46        virtual void accept( Visitor & v ) = 0;
     47        virtual Expression * acceptMutator( Mutator & m ) = 0;
     48        virtual void print( std::ostream & os, int indent = 0 ) const;
    4949  protected:
    5050        Type * result;
    51         TypeSubstitution *env;
    52         Expression* argName; // if expression is used as an argument, it can be "designated" by this name
     51        TypeSubstitution * env;
     52        Expression * argName; // if expression is used as an argument, it can be "designated" by this name
    5353        bool extension = false;
    5454};
     
    6161struct ParamEntry {
    6262        ParamEntry(): decl( 0 ), actualType( 0 ), formalType( 0 ), expr( 0 ), inferParams( new InferredParams ) {}
    63         ParamEntry( UniqueId decl, Type *actualType, Type *formalType, Expression* expr ): decl( decl ), actualType( actualType ), formalType( formalType ), expr( expr ), inferParams( new InferredParams ) {}
    64         ParamEntry( const ParamEntry &other );
     63        ParamEntry( UniqueId decl, Type * actualType, Type * formalType, Expression* expr ): decl( decl ), actualType( actualType ), formalType( formalType ), expr( expr ), inferParams( new InferredParams ) {}
     64        ParamEntry( const ParamEntry & other );
    6565        ~ParamEntry();
    66         ParamEntry &operator=( const ParamEntry &other );
     66        ParamEntry & operator=( const ParamEntry & other );
    6767
    6868        UniqueId decl;
    69         Type *actualType;
    70         Type *formalType;
     69        Type * actualType;
     70        Type * formalType;
    7171        Expression* expr;
    7272        std::unique_ptr< InferredParams > inferParams;
     
    7777class ApplicationExpr : public Expression {
    7878  public:
    79         ApplicationExpr( Expression *function );
    80         ApplicationExpr( const ApplicationExpr &other );
     79        ApplicationExpr( Expression * function );
     80        ApplicationExpr( const ApplicationExpr & other );
    8181        virtual ~ApplicationExpr();
    8282
    83         Expression *get_function() const { return function; }
    84         void set_function( Expression *newValue ) { function = newValue; }
     83        Expression * get_function() const { return function; }
     84        void set_function( Expression * newValue ) { function = newValue; }
    8585        std::list<Expression *>& get_args() { return args; }
    86         InferredParams &get_inferParams() { return inferParams; }
    87 
    88         virtual ApplicationExpr *clone() const { return new ApplicationExpr( *this ); }
    89         virtual void accept( Visitor &v ) { v.visit( this ); }
    90         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    91         virtual void print( std::ostream &os, int indent = 0 ) const;
    92   private:
    93         Expression *function;
     86        InferredParams & get_inferParams() { return inferParams; }
     87
     88        virtual ApplicationExpr * clone() const { return new ApplicationExpr( * this ); }
     89        virtual void accept( Visitor & v ) { v.visit( this ); }
     90        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     91        virtual void print( std::ostream & os, int indent = 0 ) const;
     92  private:
     93        Expression * function;
    9494        std::list<Expression *> args;
    9595        InferredParams inferParams;
     
    101101class UntypedExpr : public Expression {
    102102  public:
    103         UntypedExpr( Expression *function, const std::list<Expression *> &args = std::list< Expression * >(), Expression *_aname = nullptr );
    104         UntypedExpr( const UntypedExpr &other );
     103        UntypedExpr( Expression * function, const std::list<Expression *> & args = std::list< Expression * >(), Expression *_aname = nullptr );
     104        UntypedExpr( const UntypedExpr & other );
    105105        virtual ~UntypedExpr();
    106106
    107         Expression *get_function() const { return function; }
    108         void set_function( Expression *newValue ) { function = newValue; }
    109 
    110         void set_args( std::list<Expression *> &listArgs ) { args = listArgs; }
     107        Expression * get_function() const { return function; }
     108        void set_function( Expression * newValue ) { function = newValue; }
     109
     110        void set_args( std::list<Expression *> & listArgs ) { args = listArgs; }
    111111        std::list<Expression*>::iterator begin_args() { return args.begin(); }
    112112        std::list<Expression*>::iterator end_args() { return args.end(); }
     
    116116        static UntypedExpr * createAssign( Expression * arg1, Expression * arg2 );
    117117
    118         virtual UntypedExpr *clone() const { return new UntypedExpr( *this ); }
    119         virtual void accept( Visitor &v ) { v.visit( this ); }
    120         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    121         virtual void print( std::ostream &os, int indent = 0 ) const;
    122         virtual void printArgs(std::ostream &os, int indent = 0) const;
    123   private:
    124         Expression *function;
     118        virtual UntypedExpr * clone() const { return new UntypedExpr( * this ); }
     119        virtual void accept( Visitor & v ) { v.visit( this ); }
     120        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     121        virtual void print( std::ostream & os, int indent = 0 ) const;
     122        virtual void printArgs(std::ostream & os, int indent = 0) const;
     123  private:
     124        Expression * function;
    125125        std::list<Expression*> args;
    126126};
     
    130130  public:
    131131        NameExpr( std::string name, Expression *_aname = nullptr );
    132         NameExpr( const NameExpr &other );
     132        NameExpr( const NameExpr & other );
    133133        virtual ~NameExpr();
    134134
    135         const std::string &get_name() const { return name; }
     135        const std::string & get_name() const { return name; }
    136136        void set_name( std::string newValue ) { name = newValue; }
    137137
    138         virtual NameExpr *clone() const { return new NameExpr( *this ); }
    139         virtual void accept( Visitor &v ) { v.visit( this ); }
    140         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    141         virtual void print( std::ostream &os, int indent = 0 ) const;
     138        virtual NameExpr * clone() const { return new NameExpr( * this ); }
     139        virtual void accept( Visitor & v ) { v.visit( this ); }
     140        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     141        virtual void print( std::ostream & os, int indent = 0 ) const;
    142142  private:
    143143        std::string name;
     
    147147// function-call format.
    148148
    149 /// AddressExpr represents a address-of expression, e.g. &e
     149/// AddressExpr represents a address-of expression, e.g. & e
    150150class AddressExpr : public Expression {
    151151  public:
    152         AddressExpr( Expression *arg, Expression *_aname = nullptr );
    153         AddressExpr( const AddressExpr &other );
     152        AddressExpr( Expression * arg, Expression *_aname = nullptr );
     153        AddressExpr( const AddressExpr & other );
    154154        virtual ~AddressExpr();
    155155
    156         Expression *get_arg() const { return arg; }
    157         void set_arg(Expression *newValue ) { arg = newValue; }
    158 
    159         virtual AddressExpr *clone() const { return new AddressExpr( *this ); }
    160         virtual void accept( Visitor &v ) { v.visit( this ); }
    161         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    162         virtual void print( std::ostream &os, int indent = 0 ) const;
    163   private:
    164         Expression *arg;
     156        Expression * get_arg() const { return arg; }
     157        void set_arg(Expression * newValue ) { arg = newValue; }
     158
     159        virtual AddressExpr * clone() const { return new AddressExpr( * this ); }
     160        virtual void accept( Visitor & v ) { v.visit( this ); }
     161        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     162        virtual void print( std::ostream & os, int indent = 0 ) const;
     163  private:
     164        Expression * arg;
    165165};
    166166
     
    168168class LabelAddressExpr : public Expression {
    169169  public:
    170         LabelAddressExpr( Expression *arg );
    171         LabelAddressExpr( const LabelAddressExpr &other );
     170        LabelAddressExpr( Expression * arg );
     171        LabelAddressExpr( const LabelAddressExpr & other );
    172172        virtual ~LabelAddressExpr();
    173173
    174         Expression *get_arg() const { return arg; }
    175         void set_arg(Expression *newValue ) { arg = newValue; }
    176 
    177         virtual LabelAddressExpr *clone() const { return new LabelAddressExpr( *this ); }
    178         virtual void accept( Visitor &v ) { v.visit( this ); }
    179         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    180         virtual void print( std::ostream &os, int indent = 0 ) const;
    181   private:
    182         Expression *arg;
     174        Expression * get_arg() const { return arg; }
     175        void set_arg(Expression * newValue ) { arg = newValue; }
     176
     177        virtual LabelAddressExpr * clone() const { return new LabelAddressExpr( * this ); }
     178        virtual void accept( Visitor & v ) { v.visit( this ); }
     179        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     180        virtual void print( std::ostream & os, int indent = 0 ) const;
     181  private:
     182        Expression * arg;
    183183};
    184184
     
    186186class CastExpr : public Expression {
    187187  public:
    188         CastExpr( Expression *arg, Expression *_aname = nullptr );
    189         CastExpr( Expression *arg, Type *toType, Expression *_aname = nullptr );
    190         CastExpr( const CastExpr &other );
     188        CastExpr( Expression * arg, Expression *_aname = nullptr );
     189        CastExpr( Expression * arg, Type * toType, Expression *_aname = nullptr );
     190        CastExpr( const CastExpr & other );
    191191        virtual ~CastExpr();
    192192
    193         Expression *get_arg() const { return arg; }
    194         void set_arg(Expression *newValue ) { arg = newValue; }
    195 
    196         virtual CastExpr *clone() const { return new CastExpr( *this ); }
    197         virtual void accept( Visitor &v ) { v.visit( this ); }
    198         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    199         virtual void print( std::ostream &os, int indent = 0 ) const;
    200   private:
    201         Expression *arg;
     193        Expression * get_arg() const { return arg; }
     194        void set_arg(Expression * newValue ) { arg = newValue; }
     195
     196        virtual CastExpr * clone() const { return new CastExpr( * this ); }
     197        virtual void accept( Visitor & v ) { v.visit( this ); }
     198        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     199        virtual void print( std::ostream & os, int indent = 0 ) const;
     200  private:
     201        Expression * arg;
    202202};
    203203
     
    205205class UntypedMemberExpr : public Expression {
    206206  public:
    207         UntypedMemberExpr( Expression *member, Expression *aggregate, Expression *_aname = nullptr );
    208         UntypedMemberExpr( const UntypedMemberExpr &other );
     207        UntypedMemberExpr( Expression * member, Expression * aggregate, Expression *_aname = nullptr );
     208        UntypedMemberExpr( const UntypedMemberExpr & other );
    209209        virtual ~UntypedMemberExpr();
    210210
    211211        Expression * get_member() const { return member; }
    212212        void set_member( Expression * newValue ) { member = newValue; }
    213         Expression *get_aggregate() const { return aggregate; }
    214         void set_aggregate( Expression *newValue ) { aggregate = newValue; }
    215 
    216         virtual UntypedMemberExpr *clone() const { return new UntypedMemberExpr( *this ); }
    217         virtual void accept( Visitor &v ) { v.visit( this ); }
    218         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    219         virtual void print( std::ostream &os, int indent = 0 ) const;
    220   private:
    221         Expression *member;
    222         Expression *aggregate;
     213        Expression * get_aggregate() const { return aggregate; }
     214        void set_aggregate( Expression * newValue ) { aggregate = newValue; }
     215
     216        virtual UntypedMemberExpr * clone() const { return new UntypedMemberExpr( * this ); }
     217        virtual void accept( Visitor & v ) { v.visit( this ); }
     218        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     219        virtual void print( std::ostream & os, int indent = 0 ) const;
     220  private:
     221        Expression * member;
     222        Expression * aggregate;
    223223};
    224224
     
    226226class MemberExpr : public Expression {
    227227  public:
    228         MemberExpr( DeclarationWithType *member, Expression *aggregate, Expression *_aname = nullptr );
    229         MemberExpr( const MemberExpr &other );
     228        MemberExpr( DeclarationWithType * member, Expression * aggregate, Expression *_aname = nullptr );
     229        MemberExpr( const MemberExpr & other );
    230230        virtual ~MemberExpr();
    231231
    232         DeclarationWithType *get_member() const { return member; }
    233         void set_member( DeclarationWithType *newValue ) { member = newValue; }
    234         Expression *get_aggregate() const { return aggregate; }
    235         void set_aggregate( Expression *newValue ) { aggregate = newValue; }
    236 
    237         virtual MemberExpr *clone() const { return new MemberExpr( *this ); }
    238         virtual void accept( Visitor &v ) { v.visit( this ); }
    239         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    240         virtual void print( std::ostream &os, int indent = 0 ) const;
    241   private:
    242         DeclarationWithType *member;
    243         Expression *aggregate;
     232        DeclarationWithType * get_member() const { return member; }
     233        void set_member( DeclarationWithType * newValue ) { member = newValue; }
     234        Expression * get_aggregate() const { return aggregate; }
     235        void set_aggregate( Expression * newValue ) { aggregate = newValue; }
     236
     237        virtual MemberExpr * clone() const { return new MemberExpr( * this ); }
     238        virtual void accept( Visitor & v ) { v.visit( this ); }
     239        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     240        virtual void print( std::ostream & os, int indent = 0 ) const;
     241  private:
     242        DeclarationWithType * member;
     243        Expression * aggregate;
    244244};
    245245
     
    247247class VariableExpr : public Expression {
    248248  public:
    249         VariableExpr( DeclarationWithType *var, Expression *_aname = nullptr );
    250         VariableExpr( const VariableExpr &other );
     249        VariableExpr( DeclarationWithType * var, Expression *_aname = nullptr );
     250        VariableExpr( const VariableExpr & other );
    251251        virtual ~VariableExpr();
    252252
    253         DeclarationWithType *get_var() const { return var; }
    254         void set_var( DeclarationWithType *newValue ) { var = newValue; }
    255 
    256         virtual VariableExpr *clone() const { return new VariableExpr( *this ); }
    257         virtual void accept( Visitor &v ) { v.visit( this ); }
    258         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    259         virtual void print( std::ostream &os, int indent = 0 ) const;
    260   private:
    261         DeclarationWithType *var;
     253        DeclarationWithType * get_var() const { return var; }
     254        void set_var( DeclarationWithType * newValue ) { var = newValue; }
     255
     256        virtual VariableExpr * clone() const { return new VariableExpr( * this ); }
     257        virtual void accept( Visitor & v ) { v.visit( this ); }
     258        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     259        virtual void print( std::ostream & os, int indent = 0 ) const;
     260  private:
     261        DeclarationWithType * var;
    262262};
    263263
     
    266266  public:
    267267        ConstantExpr( Constant constant, Expression *_aname = nullptr );
    268         ConstantExpr( const ConstantExpr &other );
     268        ConstantExpr( const ConstantExpr & other );
    269269        virtual ~ConstantExpr();
    270270
    271         Constant *get_constant() { return &constant; }
    272         void set_constant( const Constant &newValue ) { constant = newValue; }
    273 
    274         virtual ConstantExpr *clone() const { return new ConstantExpr( *this ); }
    275         virtual void accept( Visitor &v ) { v.visit( this ); }
    276         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    277         virtual void print( std::ostream &os, int indent = 0 ) const;
     271        Constant * get_constant() { return & constant; }
     272        void set_constant( const Constant & newValue ) { constant = newValue; }
     273
     274        virtual ConstantExpr * clone() const { return new ConstantExpr( * this ); }
     275        virtual void accept( Visitor & v ) { v.visit( this ); }
     276        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     277        virtual void print( std::ostream & os, int indent = 0 ) const;
    278278  private:
    279279        Constant constant;
     
    283283class SizeofExpr : public Expression {
    284284  public:
    285         SizeofExpr( Expression *expr, Expression *_aname = nullptr );
    286         SizeofExpr( const SizeofExpr &other );
    287         SizeofExpr( Type *type, Expression *_aname = nullptr );
     285        SizeofExpr( Expression * expr, Expression *_aname = nullptr );
     286        SizeofExpr( const SizeofExpr & other );
     287        SizeofExpr( Type * type, Expression *_aname = nullptr );
    288288        virtual ~SizeofExpr();
    289289
    290         Expression *get_expr() const { return expr; }
    291         void set_expr( Expression *newValue ) { expr = newValue; }
    292         Type *get_type() const { return type; }
    293         void set_type( Type *newValue ) { type = newValue; }
     290        Expression * get_expr() const { return expr; }
     291        void set_expr( Expression * newValue ) { expr = newValue; }
     292        Type * get_type() const { return type; }
     293        void set_type( Type * newValue ) { type = newValue; }
    294294        bool get_isType() const { return isType; }
    295295        void set_isType( bool newValue ) { isType = newValue; }
    296296
    297         virtual SizeofExpr *clone() const { return new SizeofExpr( *this ); }
    298         virtual void accept( Visitor &v ) { v.visit( this ); }
    299         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    300         virtual void print( std::ostream &os, int indent = 0 ) const;
    301   private:
    302         Expression *expr;
    303         Type *type;
     297        virtual SizeofExpr * clone() const { return new SizeofExpr( * this ); }
     298        virtual void accept( Visitor & v ) { v.visit( this ); }
     299        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     300        virtual void print( std::ostream & os, int indent = 0 ) const;
     301  private:
     302        Expression * expr;
     303        Type * type;
    304304        bool isType;
    305305};
     
    308308class AlignofExpr : public Expression {
    309309  public:
    310         AlignofExpr( Expression *expr, Expression *_aname = nullptr );
    311         AlignofExpr( const AlignofExpr &other );
    312         AlignofExpr( Type *type, Expression *_aname = nullptr );
     310        AlignofExpr( Expression * expr, Expression *_aname = nullptr );
     311        AlignofExpr( const AlignofExpr & other );
     312        AlignofExpr( Type * type, Expression *_aname = nullptr );
    313313        virtual ~AlignofExpr();
    314314
    315         Expression *get_expr() const { return expr; }
    316         void set_expr( Expression *newValue ) { expr = newValue; }
    317         Type *get_type() const { return type; }
    318         void set_type( Type *newValue ) { type = newValue; }
     315        Expression * get_expr() const { return expr; }
     316        void set_expr( Expression * newValue ) { expr = newValue; }
     317        Type * get_type() const { return type; }
     318        void set_type( Type * newValue ) { type = newValue; }
    319319        bool get_isType() const { return isType; }
    320320        void set_isType( bool newValue ) { isType = newValue; }
    321321
    322         virtual AlignofExpr *clone() const { return new AlignofExpr( *this ); }
    323         virtual void accept( Visitor &v ) { v.visit( this ); }
    324         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    325         virtual void print( std::ostream &os, int indent = 0 ) const;
    326   private:
    327         Expression *expr;
    328         Type *type;
     322        virtual AlignofExpr * clone() const { return new AlignofExpr( * this ); }
     323        virtual void accept( Visitor & v ) { v.visit( this ); }
     324        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     325        virtual void print( std::ostream & os, int indent = 0 ) const;
     326  private:
     327        Expression * expr;
     328        Type * type;
    329329        bool isType;
    330330};
     
    333333class UntypedOffsetofExpr : public Expression {
    334334  public:
    335         UntypedOffsetofExpr( Type *type, const std::string &member, Expression *_aname = nullptr );
    336         UntypedOffsetofExpr( const UntypedOffsetofExpr &other );
     335        UntypedOffsetofExpr( Type * type, const std::string & member, Expression *_aname = nullptr );
     336        UntypedOffsetofExpr( const UntypedOffsetofExpr & other );
    337337        virtual ~UntypedOffsetofExpr();
    338338
    339339        std::string get_member() const { return member; }
    340         void set_member( const std::string &newValue ) { member = newValue; }
    341         Type *get_type() const { return type; }
    342         void set_type( Type *newValue ) { type = newValue; }
    343 
    344         virtual UntypedOffsetofExpr *clone() const { return new UntypedOffsetofExpr( *this ); }
    345         virtual void accept( Visitor &v ) { v.visit( this ); }
    346         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    347         virtual void print( std::ostream &os, int indent = 0 ) const;
    348   private:
    349         Type *type;
     340        void set_member( const std::string & newValue ) { member = newValue; }
     341        Type * get_type() const { return type; }
     342        void set_type( Type * newValue ) { type = newValue; }
     343
     344        virtual UntypedOffsetofExpr * clone() const { return new UntypedOffsetofExpr( * this ); }
     345        virtual void accept( Visitor & v ) { v.visit( this ); }
     346        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     347        virtual void print( std::ostream & os, int indent = 0 ) const;
     348  private:
     349        Type * type;
    350350        std::string member;
    351351};
     
    354354class OffsetofExpr : public Expression {
    355355  public:
    356         OffsetofExpr( Type *type, DeclarationWithType *member, Expression *_aname = nullptr );
    357         OffsetofExpr( const OffsetofExpr &other );
     356        OffsetofExpr( Type * type, DeclarationWithType * member, Expression *_aname = nullptr );
     357        OffsetofExpr( const OffsetofExpr & other );
    358358        virtual ~OffsetofExpr();
    359359
    360         Type *get_type() const { return type; }
    361         void set_type( Type *newValue ) { type = newValue; }
    362         DeclarationWithType *get_member() const { return member; }
    363         void set_member( DeclarationWithType *newValue ) { member = newValue; }
    364 
    365         virtual OffsetofExpr *clone() const { return new OffsetofExpr( *this ); }
    366         virtual void accept( Visitor &v ) { v.visit( this ); }
    367         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    368         virtual void print( std::ostream &os, int indent = 0 ) const;
    369   private:
    370         Type *type;
    371         DeclarationWithType *member;
     360        Type * get_type() const { return type; }
     361        void set_type( Type * newValue ) { type = newValue; }
     362        DeclarationWithType * get_member() const { return member; }
     363        void set_member( DeclarationWithType * newValue ) { member = newValue; }
     364
     365        virtual OffsetofExpr * clone() const { return new OffsetofExpr( * this ); }
     366        virtual void accept( Visitor & v ) { v.visit( this ); }
     367        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     368        virtual void print( std::ostream & os, int indent = 0 ) const;
     369  private:
     370        Type * type;
     371        DeclarationWithType * member;
    372372};
    373373
     
    375375class OffsetPackExpr : public Expression {
    376376public:
    377         OffsetPackExpr( StructInstType *type_, Expression *aname_ = 0 );
    378         OffsetPackExpr( const OffsetPackExpr &other );
     377        OffsetPackExpr( StructInstType * type_, Expression * aname_ = 0 );
     378        OffsetPackExpr( const OffsetPackExpr & other );
    379379        virtual ~OffsetPackExpr();
    380380
    381         StructInstType *get_type() const { return type; }
    382         void set_type( StructInstType *newValue ) { type = newValue; }
    383 
    384         virtual OffsetPackExpr *clone() const { return new OffsetPackExpr( *this ); }
    385         virtual void accept( Visitor &v ) { v.visit( this ); }
    386         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    387 
    388         virtual void print( std::ostream &os, int indent = 0 ) const;
     381        StructInstType * get_type() const { return type; }
     382        void set_type( StructInstType * newValue ) { type = newValue; }
     383
     384        virtual OffsetPackExpr * clone() const { return new OffsetPackExpr( * this ); }
     385        virtual void accept( Visitor & v ) { v.visit( this ); }
     386        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     387
     388        virtual void print( std::ostream & os, int indent = 0 ) const;
    389389
    390390private:
    391         StructInstType *type;
     391        StructInstType * type;
    392392};
    393393
     
    395395class AttrExpr : public Expression {
    396396  public:
    397         AttrExpr(Expression *attr, Expression *expr, Expression *_aname = nullptr );
    398         AttrExpr( const AttrExpr &other );
    399         AttrExpr( Expression *attr, Type *type, Expression *_aname = nullptr );
     397        AttrExpr(Expression * attr, Expression * expr, Expression *_aname = nullptr );
     398        AttrExpr( const AttrExpr & other );
     399        AttrExpr( Expression * attr, Type * type, Expression *_aname = nullptr );
    400400        virtual ~AttrExpr();
    401401
    402         Expression *get_attr() const { return attr; }
    403         void set_attr( Expression *newValue ) { attr = newValue; }
    404         Expression *get_expr() const { return expr; }
    405         void set_expr( Expression *newValue ) { expr = newValue; }
    406         Type *get_type() const { return type; }
    407         void set_type( Type *newValue ) { type = newValue; }
     402        Expression * get_attr() const { return attr; }
     403        void set_attr( Expression * newValue ) { attr = newValue; }
     404        Expression * get_expr() const { return expr; }
     405        void set_expr( Expression * newValue ) { expr = newValue; }
     406        Type * get_type() const { return type; }
     407        void set_type( Type * newValue ) { type = newValue; }
    408408        bool get_isType() const { return isType; }
    409409        void set_isType( bool newValue ) { isType = newValue; }
    410410
    411         virtual AttrExpr *clone() const { return new AttrExpr( *this ); }
    412         virtual void accept( Visitor &v ) { v.visit( this ); }
    413         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    414         virtual void print( std::ostream &os, int indent = 0 ) const;
    415   private:
    416         Expression *attr;
    417         Expression *expr;
    418         Type *type;
     411        virtual AttrExpr * clone() const { return new AttrExpr( * this ); }
     412        virtual void accept( Visitor & v ) { v.visit( this ); }
     413        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     414        virtual void print( std::ostream & os, int indent = 0 ) const;
     415  private:
     416        Expression * attr;
     417        Expression * expr;
     418        Type * type;
    419419        bool isType;
    420420};
     
    423423class LogicalExpr : public Expression {
    424424  public:
    425         LogicalExpr( Expression *arg1, Expression *arg2, bool andp = true, Expression *_aname = nullptr );
    426         LogicalExpr( const LogicalExpr &other );
     425        LogicalExpr( Expression * arg1, Expression * arg2, bool andp = true, Expression *_aname = nullptr );
     426        LogicalExpr( const LogicalExpr & other );
    427427        virtual ~LogicalExpr();
    428428
    429429        bool get_isAnd() const { return isAnd; }
    430         Expression *get_arg1() { return arg1; }
    431         void set_arg1( Expression *newValue ) { arg1 = newValue; }
    432         Expression *get_arg2() const { return arg2; }
    433         void set_arg2( Expression *newValue ) { arg2 = newValue; }
    434 
    435         virtual LogicalExpr *clone() const { return new LogicalExpr( *this ); }
    436         virtual void accept( Visitor &v ) { v.visit( this ); }
    437         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    438         virtual void print( std::ostream &os, int indent = 0 ) const;
    439   private:
    440         Expression *arg1;
    441         Expression *arg2;
     430        Expression * get_arg1() { return arg1; }
     431        void set_arg1( Expression * newValue ) { arg1 = newValue; }
     432        Expression * get_arg2() const { return arg2; }
     433        void set_arg2( Expression * newValue ) { arg2 = newValue; }
     434
     435        virtual LogicalExpr * clone() const { return new LogicalExpr( * this ); }
     436        virtual void accept( Visitor & v ) { v.visit( this ); }
     437        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     438        virtual void print( std::ostream & os, int indent = 0 ) const;
     439  private:
     440        Expression * arg1;
     441        Expression * arg2;
    442442        bool isAnd;
    443443};
     
    446446class ConditionalExpr : public Expression {
    447447  public:
    448         ConditionalExpr( Expression *arg1, Expression *arg2, Expression *arg3, Expression *_aname = nullptr );
    449         ConditionalExpr( const ConditionalExpr &other );
     448        ConditionalExpr( Expression * arg1, Expression * arg2, Expression * arg3, Expression *_aname = nullptr );
     449        ConditionalExpr( const ConditionalExpr & other );
    450450        virtual ~ConditionalExpr();
    451451
    452         Expression *get_arg1() const { return arg1; }
    453         void set_arg1( Expression *newValue ) { arg1 = newValue; }
    454         Expression *get_arg2() const { return arg2; }
    455         void set_arg2( Expression *newValue ) { arg2 = newValue; }
    456         Expression *get_arg3() const { return arg3; }
    457         void set_arg3( Expression *newValue ) { arg3 = newValue; }
    458 
    459         virtual ConditionalExpr *clone() const { return new ConditionalExpr( *this ); }
    460         virtual void accept( Visitor &v ) { v.visit( this ); }
    461         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    462         virtual void print( std::ostream &os, int indent = 0 ) const;
    463   private:
    464         Expression *arg1;
    465         Expression *arg2;
    466         Expression *arg3;
     452        Expression * get_arg1() const { return arg1; }
     453        void set_arg1( Expression * newValue ) { arg1 = newValue; }
     454        Expression * get_arg2() const { return arg2; }
     455        void set_arg2( Expression * newValue ) { arg2 = newValue; }
     456        Expression * get_arg3() const { return arg3; }
     457        void set_arg3( Expression * newValue ) { arg3 = newValue; }
     458
     459        virtual ConditionalExpr * clone() const { return new ConditionalExpr( * this ); }
     460        virtual void accept( Visitor & v ) { v.visit( this ); }
     461        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     462        virtual void print( std::ostream & os, int indent = 0 ) const;
     463  private:
     464        Expression * arg1;
     465        Expression * arg2;
     466        Expression * arg3;
    467467};
    468468
     
    470470class CommaExpr : public Expression {
    471471  public:
    472         CommaExpr( Expression *arg1, Expression *arg2, Expression *_aname = nullptr );
    473         CommaExpr( const CommaExpr &other );
     472        CommaExpr( Expression * arg1, Expression * arg2, Expression *_aname = nullptr );
     473        CommaExpr( const CommaExpr & other );
    474474        virtual ~CommaExpr();
    475475
    476         Expression *get_arg1() const { return arg1; }
    477         void set_arg1( Expression *newValue ) { arg1 = newValue; }
    478         Expression *get_arg2() const { return arg2; }
    479         void set_arg2( Expression *newValue ) { arg2 = newValue; }
    480 
    481         virtual CommaExpr *clone() const { return new CommaExpr( *this ); }
    482         virtual void accept( Visitor &v ) { v.visit( this ); }
    483         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    484         virtual void print( std::ostream &os, int indent = 0 ) const;
    485   private:
    486         Expression *arg1;
    487         Expression *arg2;
     476        Expression * get_arg1() const { return arg1; }
     477        void set_arg1( Expression * newValue ) { arg1 = newValue; }
     478        Expression * get_arg2() const { return arg2; }
     479        void set_arg2( Expression * newValue ) { arg2 = newValue; }
     480
     481        virtual CommaExpr * clone() const { return new CommaExpr( * this ); }
     482        virtual void accept( Visitor & v ) { v.visit( this ); }
     483        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     484        virtual void print( std::ostream & os, int indent = 0 ) const;
     485  private:
     486        Expression * arg1;
     487        Expression * arg2;
    488488};
    489489
     
    491491class TypeExpr : public Expression {
    492492  public:
    493         TypeExpr( Type *type );
    494         TypeExpr( const TypeExpr &other );
     493        TypeExpr( Type * type );
     494        TypeExpr( const TypeExpr & other );
    495495        virtual ~TypeExpr();
    496496
    497         Type *get_type() const { return type; }
    498         void set_type( Type *newValue ) { type = newValue; }
    499 
    500         virtual TypeExpr *clone() const { return new TypeExpr( *this ); }
    501         virtual void accept( Visitor &v ) { v.visit( this ); }
    502         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    503         virtual void print( std::ostream &os, int indent = 0 ) const;
    504   private:
    505         Type *type;
     497        Type * get_type() const { return type; }
     498        void set_type( Type * newValue ) { type = newValue; }
     499
     500        virtual TypeExpr * clone() const { return new TypeExpr( * this ); }
     501        virtual void accept( Visitor & v ) { v.visit( this ); }
     502        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     503        virtual void print( std::ostream & os, int indent = 0 ) const;
     504  private:
     505        Type * type;
    506506};
    507507
     
    509509class AsmExpr : public Expression {
    510510  public:
    511         AsmExpr( Expression *inout, ConstantExpr *constraint, Expression *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}
     511        AsmExpr( Expression * inout, ConstantExpr * constraint, Expression * operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}
    512512        AsmExpr( const AsmExpr & other );
    513513        virtual ~AsmExpr() { delete inout; delete constraint; delete operand; };
    514514
    515         Expression *get_inout() const { return inout; }
    516         void set_inout( Expression *newValue ) { inout = newValue; }
    517 
    518         ConstantExpr *get_constraint() const { return constraint; }
    519         void set_constraint( ConstantExpr *newValue ) { constraint = newValue; }
    520 
    521         Expression *get_operand() const { return operand; }
    522         void set_operand( Expression *newValue ) { operand = newValue; }
    523 
    524         virtual AsmExpr *clone() const { return new AsmExpr( *this ); }
    525         virtual void accept( Visitor &v ) { v.visit( this ); }
    526         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    527         virtual void print( std::ostream &os, int indent = 0 ) const;
     515        Expression * get_inout() const { return inout; }
     516        void set_inout( Expression * newValue ) { inout = newValue; }
     517
     518        ConstantExpr * get_constraint() const { return constraint; }
     519        void set_constraint( ConstantExpr * newValue ) { constraint = newValue; }
     520
     521        Expression * get_operand() const { return operand; }
     522        void set_operand( Expression * newValue ) { operand = newValue; }
     523
     524        virtual AsmExpr * clone() const { return new AsmExpr( * this ); }
     525        virtual void accept( Visitor & v ) { v.visit( this ); }
     526        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     527        virtual void print( std::ostream & os, int indent = 0 ) const;
    528528  private:
    529529        // https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Machine-Constraints.html#Machine-Constraints
    530         Expression *inout;
    531         ConstantExpr *constraint;
    532         Expression *operand;
     530        Expression * inout;
     531        ConstantExpr * constraint;
     532        Expression * operand;
    533533};
    534534
     
    541541        virtual ~ImplicitCopyCtorExpr();
    542542
    543         ApplicationExpr *get_callExpr() const { return callExpr; }
    544         void set_callExpr( ApplicationExpr *newValue ) { callExpr = newValue; }
     543        ApplicationExpr * get_callExpr() const { return callExpr; }
     544        void set_callExpr( ApplicationExpr * newValue ) { callExpr = newValue; }
    545545
    546546        std::list< ObjectDecl * > & get_tempDecls() { return tempDecls; }
     
    548548        std::list< Expression * > & get_dtors() { return dtors; }
    549549
    550         virtual ImplicitCopyCtorExpr *clone() const { return new ImplicitCopyCtorExpr( *this ); }
    551         virtual void accept( Visitor &v ) { v.visit( this ); }
    552         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    553         virtual void print( std::ostream &os, int indent = 0 ) const;
     550        virtual ImplicitCopyCtorExpr * clone() const { return new ImplicitCopyCtorExpr( * this ); }
     551        virtual void accept( Visitor & v ) { v.visit( this ); }
     552        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     553        virtual void print( std::ostream & os, int indent = 0 ) const;
    554554  private:
    555555        ApplicationExpr * callExpr;
     
    566566        ~ConstructorExpr();
    567567
    568         Expression *get_callExpr() const { return callExpr; }
    569         void set_callExpr( Expression *newValue ) { callExpr = newValue; }
    570 
    571         virtual ConstructorExpr *clone() const { return new ConstructorExpr( *this ); }
    572         virtual void accept( Visitor &v ) { v.visit( this ); }
    573         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    574         virtual void print( std::ostream &os, int indent = 0 ) const;
     568        Expression * get_callExpr() const { return callExpr; }
     569        void set_callExpr( Expression * newValue ) { callExpr = newValue; }
     570
     571        virtual ConstructorExpr * clone() const { return new ConstructorExpr( * this ); }
     572        virtual void accept( Visitor & v ) { v.visit( this ); }
     573        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     574        virtual void print( std::ostream & os, int indent = 0 ) const;
    575575private:
    576576        Expression * callExpr;
     
    581581  public:
    582582        CompoundLiteralExpr( Type * type, Initializer * initializer );
    583         CompoundLiteralExpr( const CompoundLiteralExpr &other );
     583        CompoundLiteralExpr( const CompoundLiteralExpr & other );
    584584        virtual ~CompoundLiteralExpr();
    585585
     
    590590        void set_initializer( Initializer * i ) { initializer = i; }
    591591
    592         virtual CompoundLiteralExpr *clone() const { return new CompoundLiteralExpr( *this ); }
    593         virtual void accept( Visitor &v ) { v.visit( this ); }
    594         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    595         virtual void print( std::ostream &os, int indent = 0 ) const;
     592        virtual CompoundLiteralExpr * clone() const { return new CompoundLiteralExpr( * this ); }
     593        virtual void accept( Visitor & v ) { v.visit( this ); }
     594        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     595        virtual void print( std::ostream & os, int indent = 0 ) const;
    596596  private:
    597597        Type * type;
     
    606606        virtual ~UntypedValofExpr();
    607607
    608         Expression *get_value();
    609         Statement *get_body() const { return body; }
    610 
    611         virtual UntypedValofExpr *clone() const { return new UntypedValofExpr( *this ); }
    612         virtual void accept( Visitor &v ) { v.visit( this ); }
    613         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    614         virtual void print( std::ostream &os, int indent = 0 ) const;
    615   private:
    616         Statement *body;
     608        Expression * get_value();
     609        Statement * get_body() const { return body; }
     610
     611        virtual UntypedValofExpr * clone() const { return new UntypedValofExpr( * this ); }
     612        virtual void accept( Visitor & v ) { v.visit( this ); }
     613        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     614        virtual void print( std::ostream & os, int indent = 0 ) const;
     615  private:
     616        Statement * body;
    617617};
    618618
     
    620620class RangeExpr : public Expression {
    621621  public:
    622         RangeExpr( Expression *low, Expression *high );
    623         RangeExpr( const RangeExpr &other );
     622        RangeExpr( Expression * low, Expression * high );
     623        RangeExpr( const RangeExpr & other );
    624624
    625625        Expression * get_low() const { return low; }
    626626        Expression * get_high() const { return high; }
    627         RangeExpr * set_low( Expression *low ) { RangeExpr::low = low; return this; }
    628         RangeExpr * set_high( Expression *high ) { RangeExpr::high = high; return this; }
    629 
    630         virtual RangeExpr *clone() const { return new RangeExpr( *this ); }
    631         virtual void accept( Visitor &v ) { v.visit( this ); }
    632         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    633         virtual void print( std::ostream &os, int indent = 0 ) const;
    634   private:
    635         Expression *low, *high;
     627        RangeExpr * set_low( Expression * low ) { RangeExpr::low = low; return this; }
     628        RangeExpr * set_high( Expression * high ) { RangeExpr::high = high; return this; }
     629
     630        virtual RangeExpr * clone() const { return new RangeExpr( * this ); }
     631        virtual void accept( Visitor & v ) { v.visit( this ); }
     632        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     633        virtual void print( std::ostream & os, int indent = 0 ) const;
     634  private:
     635        Expression * low, * high;
    636636};
    637637
     
    640640  public:
    641641        UntypedTupleExpr( const std::list< Expression * > & exprs, Expression *_aname = nullptr );
    642         UntypedTupleExpr( const UntypedTupleExpr &other );
     642        UntypedTupleExpr( const UntypedTupleExpr & other );
    643643        virtual ~UntypedTupleExpr();
    644644
    645645        std::list<Expression*>& get_exprs() { return exprs; }
    646646
    647         virtual UntypedTupleExpr *clone() const { return new UntypedTupleExpr( *this ); }
    648         virtual void accept( Visitor &v ) { v.visit( this ); }
    649         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    650         virtual void print( std::ostream &os, int indent = 0 ) const;
     647        virtual UntypedTupleExpr * clone() const { return new UntypedTupleExpr( * this ); }
     648        virtual void accept( Visitor & v ) { v.visit( this ); }
     649        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     650        virtual void print( std::ostream & os, int indent = 0 ) const;
    651651  private:
    652652        std::list<Expression*> exprs;
     
    657657  public:
    658658        TupleExpr( const std::list< Expression * > & exprs, Expression *_aname = nullptr );
    659         TupleExpr( const TupleExpr &other );
     659        TupleExpr( const TupleExpr & other );
    660660        virtual ~TupleExpr();
    661661
    662662        std::list<Expression*>& get_exprs() { return exprs; }
    663663
    664         virtual TupleExpr *clone() const { return new TupleExpr( *this ); }
    665         virtual void accept( Visitor &v ) { v.visit( this ); }
    666         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    667         virtual void print( std::ostream &os, int indent = 0 ) const;
     664        virtual TupleExpr * clone() const { return new TupleExpr( * this ); }
     665        virtual void accept( Visitor & v ) { v.visit( this ); }
     666        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     667        virtual void print( std::ostream & os, int indent = 0 ) const;
    668668  private:
    669669        std::list<Expression*> exprs;
     
    674674  public:
    675675        TupleIndexExpr( Expression * tuple, unsigned int index );
    676         TupleIndexExpr( const TupleIndexExpr &other );
     676        TupleIndexExpr( const TupleIndexExpr & other );
    677677        virtual ~TupleIndexExpr();
    678678
    679679        Expression * get_tuple() const { return tuple; }
    680680        int get_index() const { return index; }
    681         TupleIndexExpr * set_tuple( Expression *newValue ) { tuple = newValue; return this; }
     681        TupleIndexExpr * set_tuple( Expression * newValue ) { tuple = newValue; return this; }
    682682        TupleIndexExpr * set_index( unsigned int newValue ) { index = newValue; return this; }
    683683
    684         virtual TupleIndexExpr *clone() const { return new TupleIndexExpr( *this ); }
    685         virtual void accept( Visitor &v ) { v.visit( this ); }
    686         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    687         virtual void print( std::ostream &os, int indent = 0 ) const;
     684        virtual TupleIndexExpr * clone() const { return new TupleIndexExpr( * this ); }
     685        virtual void accept( Visitor & v ) { v.visit( this ); }
     686        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     687        virtual void print( std::ostream & os, int indent = 0 ) const;
    688688  private:
    689689        Expression * tuple;
     
    695695  public:
    696696        MemberTupleExpr( Expression * member, Expression * aggregate, Expression * _aname = nullptr );
    697         MemberTupleExpr( const MemberTupleExpr &other );
     697        MemberTupleExpr( const MemberTupleExpr & other );
    698698        virtual ~MemberTupleExpr();
    699699
    700700        Expression * get_member() const { return member; }
    701701        Expression * get_aggregate() const { return aggregate; }
    702         MemberTupleExpr * set_member( Expression *newValue ) { member = newValue; return this; }
    703         MemberTupleExpr * set_aggregate( Expression *newValue ) { aggregate = newValue; return this; }
    704 
    705         virtual MemberTupleExpr *clone() const { return new MemberTupleExpr( *this ); }
    706         virtual void accept( Visitor &v ) { v.visit( this ); }
    707         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    708         virtual void print( std::ostream &os, int indent = 0 ) const;
     702        MemberTupleExpr * set_member( Expression * newValue ) { member = newValue; return this; }
     703        MemberTupleExpr * set_aggregate( Expression * newValue ) { aggregate = newValue; return this; }
     704
     705        virtual MemberTupleExpr * clone() const { return new MemberTupleExpr( * this ); }
     706        virtual void accept( Visitor & v ) { v.visit( this ); }
     707        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     708        virtual void print( std::ostream & os, int indent = 0 ) const;
    709709  private:
    710710        Expression * member;
     
    716716  public:
    717717        TupleAssignExpr( const std::list< Expression * > & assigns, const std::list< ObjectDecl * > & tempDecls, Expression * _aname = nullptr );
    718         TupleAssignExpr( const TupleAssignExpr &other );
     718        TupleAssignExpr( const TupleAssignExpr & other );
    719719        virtual ~TupleAssignExpr();
    720720
     
    722722        StmtExpr * get_stmtExpr() const { return stmtExpr; }
    723723
    724         virtual TupleAssignExpr *clone() const { return new TupleAssignExpr( *this ); }
    725         virtual void accept( Visitor &v ) { v.visit( this ); }
    726         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    727         virtual void print( std::ostream &os, int indent = 0 ) const;
     724        virtual TupleAssignExpr * clone() const { return new TupleAssignExpr( * this ); }
     725        virtual void accept( Visitor & v ) { v.visit( this ); }
     726        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     727        virtual void print( std::ostream & os, int indent = 0 ) const;
    728728  private:
    729729        StmtExpr * stmtExpr = nullptr;
     
    733733class StmtExpr : public Expression {
    734734public:
    735         StmtExpr( CompoundStmt *statements );
     735        StmtExpr( CompoundStmt * statements );
    736736        StmtExpr( const StmtExpr & other );
    737737        virtual ~StmtExpr();
     
    743743        std::list< Expression * > & get_dtors() { return dtors; }
    744744
    745         virtual StmtExpr *clone() const { return new StmtExpr( *this ); }
    746         virtual void accept( Visitor &v ) { v.visit( this ); }
    747         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    748         virtual void print( std::ostream &os, int indent = 0 ) const;
     745        virtual StmtExpr * clone() const { return new StmtExpr( * this ); }
     746        virtual void accept( Visitor & v ) { v.visit( this ); }
     747        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     748        virtual void print( std::ostream & os, int indent = 0 ) const;
    749749private:
    750750        CompoundStmt * statements;
     
    770770        int get_id() const { return id; }
    771771
    772         virtual UniqueExpr *clone() const { return new UniqueExpr( *this ); }
    773         virtual void accept( Visitor &v ) { v.visit( this ); }
    774         virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    775         virtual void print( std::ostream &os, int indent = 0 ) const;
     772        virtual UniqueExpr * clone() const { return new UniqueExpr( * this ); }
     773        virtual void accept( Visitor & v ) { v.visit( this ); }
     774        virtual Expression * acceptMutator( Mutator & m ) { return m.mutate( this ); }
     775        virtual void print( std::ostream & os, int indent = 0 ) const;
    776776private:
    777777        Expression * expr;
  • TabularUnified src/driver/cc1.cc

    rc84e80a r68e6031  
    1010// Created On       : Fri Aug 26 14:23:51 2005
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jun 10 09:27:37 2016
    13 // Update Count     : 80
     12// Last Modified On : Wed Jan 18 08:14:21 2017
     13// Update Count     : 81
    1414//
    1515
     
    169169                                i += 1;                                                                 // and the argument
    170170
    171                                 // all other flags
     171                        // all other flags
    172172
    173173                        } else if ( arg == "-o" ) {
     
    178178                                nargs += 1;
    179179                                // CPP flags with an argument
    180                                 if ( arg == "-D" || arg == "-I" || arg == "-MF" || arg == "-MT" || arg == "-MQ" ||
     180                                if ( arg == "-D" || arg == "-U" || arg == "-I" || arg == "-MF" || arg == "-MT" || arg == "-MQ" ||
    181181                                         arg == "-include" || arg == "-imacros" || arg == "-idirafter" || arg == "-iprefix" ||
    182182                                         arg == "-iwithprefix" || arg == "-iwithprefixbefore" || arg == "-isystem" || arg == "-isysroot" ) {
  • TabularUnified src/tests/.expect/64/declarationSpecifier.txt

    rc84e80a r68e6031  
    1 extern void *malloc(long unsigned int __size);
    2 extern void free(void *__ptr);
    3 extern void abort(void);
    4 extern int atexit(void (*__func)(void));
    5 extern void exit(int __status);
     1__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
     2__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
     3__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
     4__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
     5__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
    66extern int printf(const char *__restrict __format, ...);
    77volatile const short __x1__CVs_1;
     
    629629}
    630630static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
    631 extern void *malloc(long unsigned int __size);
    632 extern void free(void *__ptr);
    633 extern void abort(void);
    634 extern int atexit(void (*__func)(void));
    635 extern void exit(int __status);
     631__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
     632__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
     633__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
     634__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
     635__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
    636636extern int printf(const char *__restrict __format, ...);
    637637static inline int invoke_main(int argc, char **argv, char **envp);
  • TabularUnified src/tests/.expect/64/extension.txt

    rc84e80a r68e6031  
    1 extern void *malloc(long unsigned int __size);
    2 extern void free(void *__ptr);
    3 extern void abort(void);
    4 extern int atexit(void (*__func)(void));
    5 extern void exit(int __status);
     1__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
     2__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
     3__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
     4__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
     5__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
    66extern int printf(const char *__restrict __format, ...);
    77__extension__ int __a__i_1;
  • TabularUnified src/tests/.expect/64/gccExtensions.txt

    rc84e80a r68e6031  
    1 extern void *malloc(long unsigned int __size);
    2 extern void free(void *__ptr);
    3 extern void abort(void);
    4 extern int atexit(void (*__func)(void));
    5 extern void exit(int __status);
     1__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
     2__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
     3__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
     4__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
     5__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
    66extern int printf(const char *__restrict __format, ...);
    77extern int __x__i_1 asm ( "xx" );
     
    166166}
    167167static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
    168 extern void *malloc(long unsigned int __size);
    169 extern void free(void *__ptr);
    170 extern void abort(void);
    171 extern int atexit(void (*__func)(void));
    172 extern void exit(int __status);
     168__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
     169__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
     170__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
     171__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
     172__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
    173173extern int printf(const char *__restrict __format, ...);
    174174static inline int invoke_main(int argc, char **argv, char **envp);
Note: See TracChangeset for help on using the changeset viewer.