Changeset faddbd8


Ignore:
Timestamp:
Oct 5, 2016, 2:29:13 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
d58a39a0
Parents:
4b1fd2c
Message:

more refactoring of parser code, new tuple syntax

Location:
src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r4b1fd2c rfaddbd8  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Sep 26 22:18:40 2016
    13 // Update Count     : 640
     12// Last Modified On : Mon Oct  3 18:03:08 2016
     13// Update Count     : 651
    1414//
    1515
     
    5656                extension( false ) {
    5757
    58         variable.name = nullptr;
    59         variable.tyClass = DeclarationNode::Otype;
     58//      variable.name = nullptr;
     59        variable.tyClass = NoTypeClass;
    6060        variable.assertions = nullptr;
    6161
    62         attr.name = nullptr;
     62//      attr.name = nullptr;
    6363        attr.expr = nullptr;
    6464        attr.type = nullptr;
     
    6666
    6767DeclarationNode::~DeclarationNode() {
    68         delete attr.name;
     68//      delete attr.name;
    6969        delete attr.expr;
    7070        delete attr.type;
    7171
    72         delete variable.name;
     72//      delete variable.name;
    7373        delete variable.assertions;
    7474
     
    9191        newnode->linkage = linkage;
    9292
    93         newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr;
     93//      newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr;
    9494        newnode->variable.tyClass = variable.tyClass;
    9595        newnode->variable.assertions = maybeClone( variable.assertions );
    9696
    97         newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr;
     97//      newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr;
    9898        newnode->attr.expr = maybeClone( attr.expr );
    9999        newnode->attr.type = maybeClone( attr.type );
     
    114114
    115115        if ( linkage != LinkageSpec::Cforall ) {
    116                 os << LinkageSpec::toString( linkage ) << " ";
     116                os << LinkageSpec::linkageName( linkage ) << " ";
    117117        } // if
    118118
     
    283283        DeclarationNode * newnode = new DeclarationNode;
    284284        newnode->type = nullptr;
     285        assert( ! newnode->name );
     286//      newnode->variable.name = name;
     287        newnode->name = name;
    285288        newnode->variable.tyClass = tc;
    286         newnode->variable.name = name;
     289        newnode->variable.assertions = nullptr;
    287290        return newnode;
    288291} // DeclarationNode::newTypeParam
     
    375378        DeclarationNode * newnode = new DeclarationNode;
    376379        newnode->type = nullptr;
    377         newnode->attr.name = name;
     380//      newnode->attr.name = name;
     381        newnode->name = name;
    378382        newnode->attr.expr = expr;
    379383        return newnode;
     
    383387        DeclarationNode * newnode = new DeclarationNode;
    384388        newnode->type = nullptr;
    385         newnode->attr.name = name;
     389//      newnode->attr.name = name;
     390        newnode->name = name;
    386391        newnode->attr.type = type;
    387392        return newnode;
     
    604609
    605610DeclarationNode * DeclarationNode::addAssertions( DeclarationNode * assertions ) {
    606         if ( variable.name ) {
     611        if ( variable.tyClass != NoTypeClass ) {
    607612                if ( variable.assertions ) {
    608613                        variable.assertions->appendList( assertions );
     
    622627                } // if
    623628                break;
    624           // case TypeData::Variable:
    625           //    if ( variable.assertions ) {
    626           //            variable.assertions->appendList( assertions );
    627           //    } else {
    628           //            variable.assertions = assertions;
    629           //    } // if
    630           //    break;
    631629          default:
    632630                assert( false );
     
    938936        if ( ! error.empty() ) throw SemanticError( error + " in declaration of ", this );
    939937
    940         if ( variable.name ) {
     938//      if ( variable.name ) {
     939        if ( variable.tyClass != NoTypeClass ) {
    941940                static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype };
    942                 TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] );
     941//              TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] );
     942                TypeDecl * ret = new TypeDecl( *name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] );
    943943                buildList( variable.assertions, ret->get_assertions() );
    944944                return ret;
     
    960960        assert( type );
    961961
    962         if ( attr.name ) {
    963                 AttrType * ret;
    964                 if ( attr.expr ) {
    965                         ret = new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() );
    966                 } else {
    967                         assert( attr.type );
    968                         ret = new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() );
    969                 } // if
    970                 return ret;
     962        if ( attr.expr ) {
     963//              return new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() );
     964                return new AttrType( buildQualifiers( type ), *name, attr.expr->build() );
     965        } else if ( attr.type ) {
     966//              return new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() );
     967                return new AttrType( buildQualifiers( type ), *name, attr.type->buildType() );
    971968        } // if
    972969
  • src/Parser/InitializerNode.cc

    r4b1fd2c rfaddbd8  
    1010// Created On       : Sat May 16 13:20:24 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug 15 18:27:02 2016
    13 // Update Count     : 20
     12// Last Modified On : Sat Oct  1 23:09:51 2016
     13// Update Count     : 21
    1414//
    1515
     
    2323
    2424InitializerNode::InitializerNode( ExpressionNode *_expr, bool aggrp, ExpressionNode *des )
    25         : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {
     25                : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {
    2626        if ( aggrp )
    2727                kids = dynamic_cast< InitializerNode * >( get_next() );
     
    3232
    3333InitializerNode::InitializerNode( InitializerNode *init, bool aggrp, ExpressionNode *des )
    34         : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {
     34                : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {
    3535        if ( init != 0 )
    3636                set_last( init );
     
    7979
    8080Initializer *InitializerNode::build() const {
    81         // if ( get_expression() == 0 ) return 0;  // XXX (?)
    82 
    8381        if ( aggregate ) {
    84                 //assert( next_init() != 0 );
    85 
    8682                std::list< Initializer * > initlist;
    8783                buildList< Initializer, InitializerNode >( next_init(), initlist );
  • src/Parser/LinkageSpec.cc

    r4b1fd2c rfaddbd8  
    1010// Created On       : Sat May 16 13:22:09 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Aug 21 12:32:53 2016
    13 // Update Count     : 17
     12// Last Modified On : Sun Oct  2 23:16:21 2016
     13// Update Count     : 23
    1414//
    1515
     
    1717#include <string>
    1818#include <cassert>
     19using namespace std;
    1920
    2021#include "LinkageSpec.h"
    2122#include "Common/SemanticError.h"
    2223
    23 LinkageSpec::Spec LinkageSpec::fromString( const std::string &spec ) {
    24         std::unique_ptr<const std::string> guard(&spec);                // allocated by lexer
    25         if ( spec == "\"Cforall\"" ) {
     24LinkageSpec::Spec LinkageSpec::linkageCheck( const string * spec ) {
     25        unique_ptr<const string> guard( spec ); // allocated by lexer
     26        if ( *spec == "\"Cforall\"" ) {
    2627                return Cforall;
    27         } else if ( spec == "\"C\"" ) {
     28        } else if ( *spec == "\"C\"" ) {
    2829                return C;
    2930        } else {
    30                 throw SemanticError( "Invalid linkage specifier " + spec );
     31                throw SemanticError( "Invalid linkage specifier " + *spec );
    3132        } // if
    3233}
    3334
    34 std::string LinkageSpec::toString( LinkageSpec::Spec linkage ) {
    35         assert( linkage >= 0 && linkage < LinkageSpec::NoOfSpecs );
     35string LinkageSpec::linkageName( LinkageSpec::Spec linkage ) {
     36        assert( 0 <= linkage && linkage < LinkageSpec::NoOfSpecs );
    3637        static const char *linkageKinds[LinkageSpec::NoOfSpecs] = {
    3738                "intrinsic", "Cforall", "C", "automatically generated", "compiler built-in",
     
    4142
    4243bool LinkageSpec::isDecoratable( Spec spec ) {
    43         assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs );
     44        assert( 0 <= spec && spec < LinkageSpec::NoOfSpecs );
    4445        static bool decoratable[LinkageSpec::NoOfSpecs] = {
    4546                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
     
    5051
    5152bool LinkageSpec::isGeneratable( Spec spec ) {
    52         assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs );
     53        assert( 0 <= spec && spec < LinkageSpec::NoOfSpecs );
    5354        static bool generatable[LinkageSpec::NoOfSpecs] = {
    5455                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
  • src/Parser/LinkageSpec.h

    r4b1fd2c rfaddbd8  
    1010// Created On       : Sat May 16 13:24:28 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug 20 19:22:23 2016
    13 // Update Count     : 8
     12// Last Modified On : Sat Oct  1 23:03:17 2016
     13// Update Count     : 11
    1414//
    1515
     
    2929        };
    3030 
    31         static Spec fromString( const std::string & );
    32         static std::string toString( Spec );
     31        static Spec linkageCheck( const std::string * );
     32        static std::string linkageName( Spec );
    3333 
    3434        static bool isDecoratable( Spec );
  • src/Parser/ParseNode.cc

    r4b1fd2c rfaddbd8  
    1010// Created On       : Sat May 16 13:26:29 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug 17 23:14:16 2016
    13 // Update Count     : 126
     12// Last Modified On : Sat Oct  1 23:10:43 2016
     13// Update Count     : 127
    1414//
    1515
     
    2020
    2121std::ostream & operator<<( std::ostream & out, const ParseNode * node ) {
    22   node->print( out );
    23   return out;
     22        node->print( out );
     23        return out;
    2424}
    2525
  • src/Parser/ParseNode.h

    r4b1fd2c rfaddbd8  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Sep 24 11:12:04 2016
    13 // Update Count     : 633
     12// Last Modified On : Mon Oct  3 18:03:08 2016
     13// Update Count     : 636
    1414//
    1515
     
    198198        enum Signedness { Signed, Unsigned, NoSignedness };
    199199        enum Length { Short, Long, LongLong, NoLength };
    200         enum Aggregate { Struct, Union, Trait };
    201         enum TypeClass { Otype, Dtype, Ftype };
     200        enum Aggregate { Struct, Union, Trait, NoAggregate };
     201        enum TypeClass { Otype, Dtype, Ftype, NoTypeClass };
    202202        enum BuiltinType { Valist };
    203203
     
    287287  public:
    288288        struct Variable_t {
    289                 const std::string * name;
     289//              const std::string * name;
    290290                DeclarationNode::TypeClass tyClass;
    291291                DeclarationNode * assertions;
     
    294294
    295295        struct Attr_t {
    296                 const std::string * name;
     296//              const std::string * name;
    297297                ExpressionNode * expr;
    298298                DeclarationNode * type;
  • src/Parser/TypeData.h

    r4b1fd2c rfaddbd8  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Sep 24 11:10:38 2016
    13 // Update Count     : 141
     12// Last Modified On : Mon Oct  3 12:34:08 2016
     13// Update Count     : 142
    1414//
    1515
     
    2323
    2424struct TypeData {
    25         enum Kind { Unknown, Basic, Pointer, Array, Function, Aggregate, AggregateInst,
    26                                 Enum, EnumConstant, Symbolic, SymbolicInst, Tuple, Typeof, Builtin };
     25        enum Kind { Basic, Pointer, Array, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic,
     26                                SymbolicInst, Tuple, Typeof, Builtin, Unknown };
    2727
    2828        struct Aggregate_t {
  • src/Parser/parser.cc

    r4b1fd2c rfaddbd8  
    599599#define YYFINAL  250
    600600/* YYLAST -- Last index in YYTABLE.  */
    601 #define YYLAST   10863
     601#define YYLAST   10888
    602602
    603603/* YYNTOKENS -- Number of terminals.  */
    604604#define YYNTOKENS  133
    605605/* YYNNTS -- Number of nonterminals.  */
    606 #define YYNNTS  241
     606#define YYNNTS  242
    607607/* YYNRULES -- Number of rules.  */
    608 #define YYNRULES  751
     608#define YYNRULES  754
    609609/* YYNRULES -- Number of states.  */
    610 #define YYNSTATES  1555
     610#define YYNSTATES  1558
    611611
    612612/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    667667      17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
    668668      38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
    669       86,    89,    92,   100,   105,   107,   111,   112,   114,   116,
    670      120,   122,   126,   134,   138,   146,   148,   150,   152,   155,
    671      158,   161,   164,   167,   170,   175,   178,   183,   190,   192,
    672      197,   202,   204,   206,   208,   210,   212,   214,   216,   221,
    673      226,   228,   232,   236,   240,   242,   246,   250,   252,   256,
    674      260,   262,   266,   270,   274,   278,   280,   284,   288,   290,
    675      294,   296,   300,   302,   306,   308,   312,   314,   318,   320,
    676      326,   331,   337,   339,   341,   345,   348,   349,   351,   353,
    677      355,   357,   359,   361,   363,   365,   367,   369,   371,   373,
    678      375,   378,   384,   391,   399,   401,   405,   407,   411,   412,
    679      414,   416,   418,   420,   422,   424,   426,   428,   430,   437,
    680      442,   445,   453,   455,   459,   461,   464,   466,   469,   471,
    681      474,   477,   483,   491,   497,   507,   513,   523,   525,   529,
    682      531,   533,   537,   541,   544,   546,   549,   552,   553,   555,
    683      558,   562,   563,   565,   568,   572,   576,   581,   582,   584,
    684      586,   589,   595,   603,   610,   617,   622,   626,   631,   634,
    685      638,   641,   645,   649,   653,   657,   663,   667,   671,   676,
    686      678,   684,   691,   697,   704,   714,   725,   735,   746,   749,
    687      751,   754,   757,   760,   762,   769,   778,   789,   802,   817,
    688      818,   820,   821,   823,   825,   829,   834,   842,   843,   845,
    689      849,   851,   855,   857,   859,   861,   865,   867,   869,   871,
    690      875,   876,   878,   882,   887,   889,   893,   895,   897,   901,
    691      905,   909,   913,   917,   920,   924,   931,   935,   939,   944,
    692      946,   949,   952,   956,   962,   971,   979,   987,   993,  1003,
    693     1006,  1009,  1015,  1019,  1025,  1030,  1034,  1039,  1044,  1052,
    694     1056,  1060,  1064,  1068,  1073,  1080,  1082,  1084,  1086,  1088,
    695     1090,  1092,  1094,  1096,  1097,  1099,  1101,  1104,  1106,  1108,
    696     1110,  1112,  1114,  1116,  1118,  1119,  1125,  1127,  1130,  1134,
    697     1136,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
    698     1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    699     1177,  1179,  1181,  1183,  1186,  1189,  1193,  1197,  1199,  1203,
    700     1205,  1208,  1211,  1214,  1219,  1224,  1229,  1234,  1236,  1239,
    701     1242,  1246,  1248,  1251,  1254,  1256,  1259,  1262,  1266,  1268,
    702     1271,  1274,  1276,  1278,  1283,  1286,  1287,  1294,  1302,  1305,
    703     1308,  1311,  1312,  1315,  1318,  1322,  1325,  1329,  1331,  1334,
    704     1338,  1341,  1344,  1349,  1350,  1352,  1355,  1358,  1360,  1361,
    705     1363,  1366,  1369,  1375,  1378,  1379,  1387,  1390,  1395,  1396,
    706     1399,  1400,  1402,  1404,  1406,  1412,  1418,  1424,  1426,  1432,
    707     1438,  1448,  1450,  1456,  1457,  1459,  1461,  1467,  1469,  1471,
    708     1477,  1483,  1485,  1489,  1493,  1498,  1500,  1502,  1504,  1506,
    709     1509,  1511,  1515,  1519,  1521,  1524,  1526,  1530,  1532,  1534,
    710     1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1555,
    711     1557,  1559,  1561,  1564,  1565,  1568,  1571,  1573,  1578,  1579,
    712     1581,  1584,  1588,  1593,  1596,  1599,  1601,  1604,  1607,  1613,
    713     1619,  1627,  1634,  1636,  1639,  1642,  1646,  1648,  1651,  1654,
    714     1659,  1662,  1667,  1668,  1673,  1676,  1678,  1680,  1682,  1683,
    715     1686,  1692,  1698,  1712,  1714,  1716,  1720,  1724,  1727,  1731,
    716     1735,  1738,  1743,  1745,  1752,  1762,  1763,  1775,  1777,  1781,
    717     1785,  1789,  1791,  1793,  1799,  1802,  1808,  1809,  1811,  1813,
    718     1817,  1818,  1820,  1822,  1824,  1826,  1827,  1834,  1837,  1839,
    719     1842,  1847,  1850,  1854,  1858,  1862,  1867,  1873,  1879,  1885,
    720     1892,  1894,  1896,  1898,  1902,  1903,  1909,  1910,  1912,  1914,
    721     1917,  1924,  1926,  1930,  1931,  1933,  1938,  1940,  1942,  1944,
    722     1946,  1949,  1951,  1954,  1957,  1959,  1963,  1966,  1970,  1974,
    723     1977,  1982,  1987,  1991,  2000,  2004,  2007,  2009,  2012,  2019,
    724     2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2059,  2061,
    725     2063,  2068,  2075,  2079,  2082,  2086,  2090,  2095,  2100,  2104,
    726     2107,  2109,  2112,  2115,  2117,  2121,  2124,  2128,  2132,  2135,
    727     2140,  2145,  2149,  2156,  2165,  2169,  2172,  2174,  2177,  2180,
    728     2183,  2187,  2191,  2194,  2199,  2204,  2208,  2215,  2224,  2228,
    729     2231,  2233,  2236,  2239,  2241,  2243,  2246,  2250,  2254,  2257,
    730     2262,  2269,  2278,  2280,  2283,  2286,  2288,  2291,  2294,  2298,
    731     2302,  2304,  2309,  2314,  2318,  2324,  2333,  2337,  2340,  2344,
    732     2346,  2352,  2358,  2365,  2372,  2374,  2377,  2380,  2382,  2385,
    733     2388,  2392,  2396,  2398,  2403,  2408,  2412,  2418,  2427,  2431,
    734     2433,  2436,  2438,  2441,  2448,  2454,  2461,  2469,  2477,  2479,
    735     2482,  2485,  2487,  2490,  2493,  2497,  2501,  2503,  2508,  2513,
    736     2517,  2526,  2530,  2532,  2534,  2537,  2539,  2541,  2544,  2548,
    737     2551,  2555,  2558,  2562,  2566,  2569,  2574,  2578,  2581,  2585,
    738     2588,  2593,  2597,  2600,  2607,  2614,  2621,  2629,  2631,  2634,
    739     2636,  2638,  2640,  2643,  2647,  2650,  2654,  2657,  2661,  2665,
    740     2670,  2673,  2677,  2682,  2685,  2691,  2697,  2704,  2711,  2712,
    741     2714,  2715
     669      82,    90,    93,    96,   104,   109,   111,   115,   116,   118,
     670     120,   124,   126,   130,   138,   142,   150,   152,   154,   156,
     671     158,   160,   163,   166,   169,   172,   175,   178,   183,   186,
     672     191,   198,   200,   205,   210,   212,   214,   216,   218,   220,
     673     222,   224,   229,   234,   236,   240,   244,   248,   250,   254,
     674     258,   260,   264,   268,   270,   274,   278,   282,   286,   288,
     675     292,   296,   298,   302,   304,   308,   310,   314,   316,   320,
     676     322,   326,   328,   334,   339,   345,   347,   349,   353,   356,
     677     357,   359,   361,   363,   365,   367,   369,   371,   373,   375,
     678     377,   379,   381,   383,   386,   392,   399,   407,   409,   413,
     679     415,   419,   420,   422,   424,   426,   428,   430,   432,   434,
     680     436,   438,   445,   450,   453,   461,   463,   467,   469,   472,
     681     474,   477,   479,   482,   485,   491,   499,   505,   515,   521,
     682     531,   533,   537,   539,   541,   545,   549,   552,   554,   557,
     683     560,   561,   563,   566,   570,   571,   573,   576,   580,   584,
     684     589,   590,   592,   594,   597,   603,   611,   618,   625,   630,
     685     634,   639,   642,   646,   649,   653,   657,   661,   665,   671,
     686     675,   679,   684,   686,   692,   699,   705,   712,   722,   733,
     687     743,   754,   757,   759,   762,   765,   768,   770,   777,   786,
     688     797,   810,   825,   826,   828,   829,   831,   833,   837,   842,
     689     850,   851,   853,   857,   859,   863,   865,   867,   869,   873,
     690     875,   877,   879,   883,   884,   886,   890,   895,   897,   901,
     691     903,   905,   909,   913,   917,   921,   925,   928,   932,   939,
     692     943,   947,   952,   954,   957,   960,   964,   970,   979,   987,
     693     995,  1001,  1011,  1014,  1017,  1023,  1027,  1033,  1038,  1042,
     694    1047,  1052,  1060,  1064,  1068,  1072,  1076,  1081,  1088,  1090,
     695    1092,  1094,  1096,  1098,  1100,  1102,  1104,  1105,  1107,  1109,
     696    1112,  1114,  1116,  1118,  1120,  1122,  1124,  1126,  1127,  1133,
     697    1135,  1138,  1142,  1144,  1147,  1149,  1151,  1153,  1155,  1157,
     698    1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,  1177,
     699    1179,  1181,  1183,  1185,  1187,  1189,  1191,  1194,  1197,  1201,
     700    1205,  1207,  1211,  1213,  1216,  1219,  1222,  1227,  1232,  1237,
     701    1242,  1244,  1247,  1250,  1254,  1256,  1259,  1262,  1264,  1267,
     702    1270,  1274,  1276,  1279,  1282,  1284,  1286,  1291,  1294,  1295,
     703    1302,  1310,  1313,  1316,  1319,  1320,  1323,  1326,  1330,  1333,
     704    1337,  1339,  1342,  1346,  1349,  1352,  1357,  1358,  1360,  1363,
     705    1366,  1368,  1369,  1371,  1374,  1377,  1383,  1386,  1387,  1395,
     706    1398,  1403,  1404,  1407,  1408,  1410,  1412,  1414,  1420,  1426,
     707    1432,  1434,  1440,  1446,  1456,  1458,  1464,  1465,  1467,  1469,
     708    1475,  1477,  1479,  1485,  1491,  1493,  1497,  1501,  1506,  1508,
     709    1510,  1512,  1514,  1517,  1519,  1523,  1527,  1529,  1532,  1534,
     710    1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,
     711    1558,  1560,  1563,  1565,  1567,  1569,  1572,  1573,  1576,  1579,
     712    1581,  1586,  1587,  1589,  1592,  1596,  1601,  1604,  1607,  1609,
     713    1612,  1615,  1621,  1627,  1635,  1642,  1644,  1647,  1650,  1654,
     714    1656,  1659,  1662,  1667,  1670,  1675,  1676,  1681,  1684,  1686,
     715    1688,  1690,  1691,  1694,  1700,  1706,  1720,  1722,  1724,  1728,
     716    1732,  1735,  1739,  1743,  1746,  1751,  1753,  1760,  1770,  1771,
     717    1783,  1785,  1789,  1793,  1797,  1799,  1801,  1807,  1810,  1816,
     718    1817,  1819,  1821,  1825,  1826,  1828,  1830,  1832,  1834,  1835,
     719    1842,  1845,  1847,  1850,  1855,  1858,  1862,  1866,  1870,  1875,
     720    1881,  1887,  1893,  1900,  1902,  1904,  1906,  1910,  1911,  1917,
     721    1918,  1920,  1922,  1925,  1932,  1934,  1938,  1939,  1941,  1946,
     722    1948,  1950,  1952,  1954,  1957,  1959,  1962,  1965,  1967,  1971,
     723    1974,  1978,  1982,  1985,  1990,  1995,  1999,  2008,  2012,  2015,
     724    2017,  2020,  2027,  2036,  2040,  2043,  2047,  2051,  2056,  2061,
     725    2065,  2067,  2069,  2071,  2076,  2083,  2087,  2090,  2094,  2098,
     726    2103,  2108,  2112,  2115,  2117,  2120,  2123,  2125,  2129,  2132,
     727    2136,  2140,  2143,  2148,  2153,  2157,  2164,  2173,  2177,  2180,
     728    2182,  2185,  2188,  2191,  2195,  2199,  2202,  2207,  2212,  2216,
     729    2223,  2232,  2236,  2239,  2241,  2244,  2247,  2249,  2251,  2254,
     730    2258,  2262,  2265,  2270,  2277,  2286,  2288,  2291,  2294,  2296,
     731    2299,  2302,  2306,  2310,  2312,  2317,  2322,  2326,  2332,  2341,
     732    2345,  2348,  2352,  2354,  2360,  2366,  2373,  2380,  2382,  2385,
     733    2388,  2390,  2393,  2396,  2400,  2404,  2406,  2411,  2416,  2420,
     734    2426,  2435,  2439,  2441,  2444,  2446,  2449,  2456,  2462,  2469,
     735    2477,  2485,  2487,  2490,  2493,  2495,  2498,  2501,  2505,  2509,
     736    2511,  2516,  2521,  2525,  2534,  2538,  2540,  2542,  2545,  2547,
     737    2549,  2552,  2556,  2559,  2563,  2566,  2570,  2574,  2577,  2582,
     738    2586,  2589,  2593,  2596,  2601,  2605,  2608,  2615,  2622,  2629,
     739    2637,  2639,  2642,  2644,  2646,  2648,  2651,  2655,  2658,  2662,
     740    2665,  2669,  2673,  2678,  2681,  2685,  2690,  2693,  2699,  2705,
     741    2712,  2719,  2720,  2722,  2723
    742742};
    743743
     
    745745static const yytype_int16 yyrhs[] =
    746746{
    747      302,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     747     303,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
    748748      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
    749749      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
    750750      -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
    751      109,   170,   110,    -1,   109,   174,   110,    -1,   143,    -1,
    752      144,   111,   134,   165,   135,   112,    -1,   144,   109,   145,
     751     109,   171,   110,    -1,   109,   175,   110,    -1,   143,    -1,
     752     144,   111,   134,   166,   135,   112,    -1,   144,   109,   145,
    753753     110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
    754      147,   135,   112,    -1,   144,    85,   139,    -1,   144,    85,
    755      111,   134,   147,   135,   112,    -1,   144,    86,    -1,   144,
    756       87,    -1,   109,   275,   110,   114,   279,   372,   115,    -1,
    757      144,   114,   145,   115,    -1,   146,    -1,   145,   116,   146,
    758       -1,    -1,   165,    -1,   148,    -1,   147,   116,   148,    -1,
    759      139,    -1,   139,   113,   148,    -1,   139,   113,   111,   134,
    760      147,   135,   112,    -1,   139,    85,   148,    -1,   139,    85,
    761      111,   134,   147,   135,   112,    -1,   144,    -1,   136,    -1,
    762      141,    -1,    40,   152,    -1,   150,   152,    -1,   151,   152,
    763       -1,    86,   149,    -1,    87,   149,    -1,    37,   149,    -1,
    764       37,   109,   275,   110,    -1,    66,   149,    -1,    66,   109,
    765      275,   110,    -1,    38,   109,   275,   116,   139,   110,    -1,
    766       76,    -1,    76,   109,   146,   110,    -1,    76,   109,   276,
    767      110,    -1,   117,    -1,   118,    -1,   119,    -1,   120,    -1,
    768      121,    -1,   122,    -1,   149,    -1,   109,   275,   110,   152,
    769       -1,   109,   275,   110,   168,    -1,   152,    -1,   153,   117,
    770      152,    -1,   153,   123,   152,    -1,   153,   124,   152,    -1,
    771      153,    -1,   154,   119,   153,    -1,   154,   120,   153,    -1,
    772      154,    -1,   155,    88,   154,    -1,   155,    89,   154,    -1,
    773      155,    -1,   156,   125,   155,    -1,   156,   126,   155,    -1,
    774      156,    90,   155,    -1,   156,    91,   155,    -1,   156,    -1,
    775      157,    92,   156,    -1,   157,    93,   156,    -1,   157,    -1,
    776      158,   118,   157,    -1,   158,    -1,   159,   127,   158,    -1,
    777      159,    -1,   160,   128,   159,    -1,   160,    -1,   161,    94,
    778      160,    -1,   161,    -1,   162,    95,   161,    -1,   162,    -1,
    779      162,   129,   170,   130,   163,    -1,   162,   129,   130,   163,
    780       -1,   162,   129,   170,   130,   168,    -1,   163,    -1,   163,
    781       -1,   149,   167,   165,    -1,   168,   373,    -1,    -1,   165,
    782       -1,   131,    -1,   107,    -1,    97,    -1,    98,    -1,    99,
    783       -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
    784       -1,   105,    -1,   106,    -1,   111,   112,    -1,   111,   134,
    785      165,   135,   112,    -1,   111,   134,   116,   169,   135,   112,
    786       -1,   111,   134,   165,   116,   169,   135,   112,    -1,   166,
    787       -1,   169,   116,   166,    -1,   165,    -1,   170,   116,   165,
    788       -1,    -1,   170,    -1,   173,    -1,   174,    -1,   178,    -1,
    789      179,    -1,   191,    -1,   193,    -1,   194,    -1,   199,    -1,
    790      127,   144,   114,   145,   115,   132,    -1,    72,   130,   312,
    791      172,    -1,   114,   115,    -1,   114,   134,   134,   210,   175,
    792      135,   115,    -1,   176,    -1,   175,   134,   176,    -1,   213,
    793       -1,    40,   213,    -1,   308,    -1,   172,   135,    -1,   172,
    794       -1,   177,   172,    -1,   171,   132,    -1,    41,   109,   170,
    795      110,   172,    -1,    41,   109,   170,   110,   172,    42,   172,
    796       -1,    43,   109,   170,   110,   184,    -1,    43,   109,   170,
    797      110,   114,   134,   206,   185,   115,    -1,    53,   109,   170,
    798      110,   184,    -1,    53,   109,   170,   110,   114,   134,   206,
    799      187,   115,    -1,   164,    -1,   164,    96,   164,    -1,   310,
    800       -1,   180,    -1,   181,   116,   180,    -1,    44,   181,   130,
    801       -1,    45,   130,    -1,   182,    -1,   183,   182,    -1,   183,
    802      172,    -1,    -1,   186,    -1,   183,   177,    -1,   186,   183,
    803      177,    -1,    -1,   188,    -1,   183,   190,    -1,   183,   177,
    804      189,    -1,   188,   183,   190,    -1,   188,   183,   177,   189,
    805       -1,    -1,   190,    -1,    56,    -1,    56,   132,    -1,    47,
    806      109,   170,   110,   172,    -1,    46,   172,    47,   109,   170,
    807      110,   132,    -1,    48,   109,   134,   192,   110,   172,    -1,
    808      171,   135,   132,   171,   132,   171,    -1,   213,   171,   132,
    809      171,    -1,    51,    72,   132,    -1,    51,   117,   170,   132,
    810       -1,    50,   132,    -1,    50,    72,   132,    -1,    49,   132,
    811       -1,    49,    72,   132,    -1,    52,   171,   132,    -1,    61,
    812      166,   132,    -1,    62,   166,   132,    -1,    62,   166,    63,
    813      165,   132,    -1,    57,   174,   195,    -1,    57,   174,   197,
    814       -1,    57,   174,   195,   197,    -1,   196,    -1,    58,   109,
    815       96,   110,   174,    -1,   196,    58,   109,    96,   110,   174,
    816       -1,    59,   109,    96,   110,   174,    -1,   196,    59,   109,
    817       96,   110,   174,    -1,    58,   109,   134,   134,   198,   135,
    818      110,   174,   135,    -1,   196,    58,   109,   134,   134,   198,
    819      135,   110,   174,   135,    -1,    59,   109,   134,   134,   198,
    820      135,   110,   174,   135,    -1,   196,    59,   109,   134,   134,
    821      198,   135,   110,   174,   135,    -1,    60,   174,    -1,   226,
    822       -1,   226,   309,    -1,   226,   357,    -1,   366,   139,    -1,
    823      366,    -1,    64,   200,   109,   141,   110,   132,    -1,    64,
    824      200,   109,   141,   130,   201,   110,   132,    -1,    64,   200,
    825      109,   141,   130,   201,   130,   201,   110,   132,    -1,    64,
    826      200,   109,   141,   130,   201,   130,   201,   130,   204,   110,
    827      132,    -1,    64,   200,    51,   109,   141,   130,   130,   201,
    828      130,   204,   130,   205,   110,   132,    -1,    -1,    11,    -1,
    829       -1,   202,    -1,   203,    -1,   202,   116,   203,    -1,   141,
    830      109,   164,   110,    -1,   111,   164,   112,   141,   109,   164,
    831      110,    -1,    -1,   141,    -1,   204,   116,   141,    -1,   139,
    832       -1,   205,   116,   139,    -1,   135,    -1,   207,    -1,   213,
    833       -1,   207,   134,   213,    -1,   135,    -1,   209,    -1,   223,
    834       -1,   209,   134,   223,    -1,    -1,   211,    -1,    29,   212,
    835      132,    -1,   211,    29,   212,   132,    -1,   274,    -1,   212,
    836      116,   274,    -1,   214,    -1,   223,    -1,   215,   135,   132,
    837       -1,   220,   135,   132,    -1,   217,   135,   132,    -1,   293,
    838      135,   132,    -1,   296,   135,   132,    -1,   216,   277,    -1,
    839      232,   216,   277,    -1,   215,   135,   116,   134,   272,   277,
    840       -1,   367,   272,   311,    -1,   370,   272,   311,    -1,   228,
    841      370,   272,   311,    -1,   218,    -1,   228,   218,    -1,   232,
    842      218,    -1,   232,   228,   218,    -1,   217,   135,   116,   134,
    843      272,    -1,   111,   112,   272,   109,   134,   260,   135,   110,
    844       -1,   370,   272,   109,   134,   260,   135,   110,    -1,   219,
    845      272,   109,   134,   260,   135,   110,    -1,   111,   134,   262,
    846      135,   112,    -1,   111,   134,   262,   135,   116,   134,   263,
    847      135,   112,    -1,     3,   216,    -1,     3,   218,    -1,   220,
    848      135,   116,   134,   139,    -1,     3,   226,   309,    -1,   221,
    849      135,   116,   134,   309,    -1,   228,     3,   226,   309,    -1,
    850      226,     3,   309,    -1,   226,     3,   228,   309,    -1,     3,
    851      139,   131,   165,    -1,   222,   135,   116,   134,   139,   131,
    852      165,    -1,   224,   135,   132,    -1,   221,   135,   132,    -1,
    853      222,   135,   132,    -1,   240,   135,   132,    -1,   225,   309,
    854      311,   277,    -1,   224,   116,   312,   309,   311,   277,    -1,
    855      236,    -1,   240,    -1,   242,    -1,   283,    -1,   237,    -1,
    856      241,    -1,   243,    -1,   284,    -1,    -1,   228,    -1,   229,
    857       -1,   228,   229,    -1,   230,    -1,   314,    -1,    10,    -1,
    858       12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
    859      109,   231,   286,   110,    -1,   233,    -1,   228,   233,    -1,
    860      232,   228,   233,    -1,   234,    -1,   233,   234,    -1,     5,
    861       -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
    862       -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
    863       -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
    864       -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
    865       -1,   237,    -1,   232,   237,    -1,   236,   234,    -1,   236,
    866      234,   228,    -1,   236,   234,   237,    -1,   238,    -1,   227,
    867      239,   227,    -1,   235,    -1,   228,   235,    -1,   238,   229,
    868       -1,   238,   235,    -1,    28,   109,   276,   110,    -1,    28,
    869      109,   170,   110,    -1,    78,   109,   276,   110,    -1,    78,
    870      109,   170,   110,    -1,   241,    -1,   232,   241,    -1,   240,
    871      234,    -1,   240,   234,   228,    -1,   244,    -1,   228,   244,
    872       -1,   241,   229,    -1,   243,    -1,   232,   243,    -1,   242,
    873      234,    -1,   242,   234,   228,    -1,    74,    -1,   228,    74,
    874       -1,   243,   229,    -1,   245,    -1,   256,    -1,   247,   114,
    875      248,   115,    -1,   247,   274,    -1,    -1,   247,   274,   246,
    876      114,   248,   115,    -1,   247,   109,   292,   110,   114,   248,
    877      115,    -1,   247,   285,    -1,    31,   312,    -1,    32,   312,
    878       -1,    -1,   248,   249,    -1,   250,   132,    -1,    40,   250,
    879      132,    -1,   251,   132,    -1,    40,   251,   132,    -1,   366,
    880       -1,   366,   274,    -1,   250,   116,   274,    -1,   250,   116,
    881       -1,   226,   252,    -1,   251,   116,   312,   252,    -1,    -1,
    882      254,    -1,   318,   253,    -1,   331,   253,    -1,   357,    -1,
    883       -1,   254,    -1,   130,   164,    -1,    30,   312,    -1,   255,
    884      114,   258,   372,   115,    -1,   255,   274,    -1,    -1,   255,
    885      274,   257,   114,   258,   372,   115,    -1,   274,   259,    -1,
    886      258,   116,   274,   259,    -1,    -1,   131,   164,    -1,    -1,
    887      261,    -1,   263,    -1,   262,    -1,   262,   135,   116,   134,
    888      263,    -1,   263,   135,   116,   134,    96,    -1,   262,   135,
    889      116,   134,    96,    -1,   267,    -1,   263,   135,   116,   134,
    890      267,    -1,   262,   135,   116,   134,   267,    -1,   262,   135,
    891      116,   134,   263,   135,   116,   134,   267,    -1,   268,    -1,
    892      263,   135,   116,   134,   268,    -1,    -1,   265,    -1,   266,
    893       -1,   266,   135,   116,   134,    96,    -1,   270,    -1,   269,
    894       -1,   266,   135,   116,   134,   270,    -1,   266,   135,   116,
    895      134,   269,    -1,   269,    -1,   362,   272,   373,    -1,   370,
    896      272,   373,    -1,   228,   370,   272,   373,    -1,   218,    -1,
    897      270,    -1,   362,    -1,   370,    -1,   228,   370,    -1,   371,
    898       -1,   225,   336,   373,    -1,   225,   340,   373,    -1,   225,
    899       -1,   225,   351,    -1,   139,    -1,   271,   116,   139,    -1,
    900      137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,    -1,
    901       75,    -1,   139,    -1,    74,    -1,    75,    -1,   366,    -1,
    902      226,    -1,   226,   357,    -1,   366,    -1,   371,    -1,   226,
    903       -1,   226,   345,    -1,    -1,   131,   278,    -1,   107,   278,
    904       -1,   165,    -1,   114,   279,   372,   115,    -1,    -1,   278,
    905       -1,   280,   278,    -1,   279,   116,   278,    -1,   279,   116,
    906      280,   278,    -1,   281,   130,    -1,   274,   130,    -1,   282,
    907       -1,   281,   282,    -1,   113,   274,    -1,   111,   134,   165,
    908      135,   112,    -1,   111,   134,   310,   135,   112,    -1,   111,
    909      134,   164,    96,   164,   135,   112,    -1,   113,   111,   134,
    910      147,   135,   112,    -1,   284,    -1,   232,   284,    -1,   283,
    911      234,    -1,   283,   234,   228,    -1,   285,    -1,   228,   285,
    912       -1,   284,   229,    -1,    75,   109,   292,   110,    -1,   287,
    913      373,    -1,   286,   116,   287,   373,    -1,    -1,   289,   274,
    914      288,   290,    -1,   226,   336,    -1,    33,    -1,    35,    -1,
    915       34,    -1,    -1,   290,   291,    -1,   128,   274,   109,   292,
    916      110,    -1,   128,   114,   134,   298,   115,    -1,   128,   109,
    917      134,   286,   135,   110,   114,   134,   298,   115,   109,   292,
    918      110,    -1,   276,    -1,   165,    -1,   292,   116,   276,    -1,
    919      292,   116,   165,    -1,    33,   294,    -1,   233,    33,   294,
    920       -1,   293,   116,   294,    -1,   295,   290,    -1,   295,   290,
    921      131,   276,    -1,   274,    -1,   273,   109,   134,   286,   135,
    922      110,    -1,    36,   274,   109,   134,   286,   135,   110,   114,
    923      115,    -1,    -1,    36,   274,   109,   134,   286,   135,   110,
    924      114,   297,   298,   115,    -1,   299,    -1,   298,   134,   299,
    925       -1,   300,   135,   132,    -1,   301,   135,   132,    -1,   216,
    926       -1,   218,    -1,   300,   135,   116,   134,   272,    -1,   226,
    927      309,    -1,   301,   135,   116,   134,   309,    -1,    -1,   303,
    928       -1,   305,    -1,   303,   134,   305,    -1,    -1,   303,    -1,
    929      213,    -1,   307,    -1,   199,    -1,    -1,     5,    82,   306,
    930      114,   304,   115,    -1,    40,   305,    -1,   308,    -1,   323,
    931      174,    -1,   327,   134,   208,   174,    -1,   217,   174,    -1,
    932      225,   323,   174,    -1,   228,   323,   174,    -1,   232,   323,
    933      174,    -1,   232,   228,   323,   174,    -1,   225,   327,   134,
    934      208,   174,    -1,   228,   327,   134,   208,   174,    -1,   232,
    935      327,   134,   208,   174,    -1,   232,   228,   327,   134,   208,
    936      174,    -1,   318,    -1,   331,    -1,   323,    -1,   164,   122,
    937      164,    -1,    -1,    64,   109,   142,   110,   312,    -1,    -1,
    938      313,    -1,   314,    -1,   313,   314,    -1,    39,   109,   109,
    939      315,   110,   110,    -1,   316,    -1,   315,   116,   316,    -1,
    940       -1,   317,    -1,   317,   109,   171,   110,    -1,   272,    -1,
    941      234,    -1,   235,    -1,   229,    -1,   319,   312,    -1,   320,
    942       -1,   321,   312,    -1,   322,   312,    -1,   137,    -1,   109,
    943      319,   110,    -1,   150,   318,    -1,   150,   228,   318,    -1,
    944      109,   320,   110,    -1,   319,   349,    -1,   109,   320,   110,
    945      349,    -1,   109,   321,   110,   350,    -1,   109,   321,   110,
    946       -1,   109,   320,   110,   109,   134,   264,   135,   110,    -1,
    947      109,   322,   110,    -1,   324,   312,    -1,   325,    -1,   326,
    948      312,    -1,   319,   109,   134,   264,   135,   110,    -1,   109,
    949      325,   110,   109,   134,   264,   135,   110,    -1,   109,   324,
    950      110,    -1,   150,   323,    -1,   150,   228,   323,    -1,   109,
    951      325,   110,    -1,   109,   325,   110,   349,    -1,   109,   326,
    952      110,   350,    -1,   109,   326,   110,    -1,   328,    -1,   329,
    953       -1,   330,    -1,   319,   109,   271,   110,    -1,   109,   329,
    954      110,   109,   271,   110,    -1,   109,   328,   110,    -1,   150,
    955      327,    -1,   150,   228,   327,    -1,   109,   329,   110,    -1,
    956      109,   329,   110,   349,    -1,   109,   330,   110,   350,    -1,
    957      109,   330,   110,    -1,   332,   312,    -1,   333,    -1,   334,
    958      312,    -1,   335,   312,    -1,   341,    -1,   109,   332,   110,
    959       -1,   150,   331,    -1,   150,   228,   331,    -1,   109,   333,
    960      110,    -1,   332,   349,    -1,   109,   333,   110,   349,    -1,
    961      109,   334,   110,   350,    -1,   109,   334,   110,    -1,   332,
    962      109,   134,   264,   135,   110,    -1,   109,   333,   110,   109,
    963      134,   264,   135,   110,    -1,   109,   335,   110,    -1,   319,
    964      312,    -1,   337,    -1,   338,   312,    -1,   339,   312,    -1,
    965      150,   336,    -1,   150,   228,   336,    -1,   109,   337,   110,
    966       -1,   319,   355,    -1,   109,   337,   110,   349,    -1,   109,
    967      338,   110,   350,    -1,   109,   338,   110,    -1,   319,   109,
    968      134,   264,   135,   110,    -1,   109,   337,   110,   109,   134,
    969      264,   135,   110,    -1,   109,   339,   110,    -1,   341,   312,
    970       -1,   342,    -1,   343,   312,    -1,   344,   312,    -1,    74,
    971       -1,    75,    -1,   150,   340,    -1,   150,   228,   340,    -1,
    972      109,   342,   110,    -1,   341,   355,    -1,   109,   342,   110,
    973      355,    -1,   341,   109,   134,   264,   135,   110,    -1,   109,
    974      342,   110,   109,   134,   264,   135,   110,    -1,   346,    -1,
    975      347,   312,    -1,   348,   312,    -1,   150,    -1,   150,   228,
    976       -1,   150,   345,    -1,   150,   228,   345,    -1,   109,   346,
    977      110,    -1,   349,    -1,   109,   346,   110,   349,    -1,   109,
    978      347,   110,   350,    -1,   109,   347,   110,    -1,   109,   134,
    979      264,   135,   110,    -1,   109,   346,   110,   109,   134,   264,
    980      135,   110,    -1,   109,   348,   110,    -1,   111,   112,    -1,
    981      111,   112,   350,    -1,   350,    -1,   111,   134,   165,   135,
    982      112,    -1,   111,   134,   117,   135,   112,    -1,   350,   111,
    983      134,   165,   135,   112,    -1,   350,   111,   134,   117,   135,
    984      112,    -1,   352,    -1,   353,   312,    -1,   354,   312,    -1,
    985      150,    -1,   150,   228,    -1,   150,   351,    -1,   150,   228,
    986      351,    -1,   109,   352,   110,    -1,   355,    -1,   109,   352,
    987      110,   355,    -1,   109,   353,   110,   350,    -1,   109,   353,
    988      110,    -1,   109,   134,   264,   135,   110,    -1,   109,   352,
    989      110,   109,   134,   264,   135,   110,    -1,   109,   354,   110,
    990       -1,   356,    -1,   356,   350,    -1,   350,    -1,   111,   112,
    991       -1,   111,   134,   228,   117,   135,   112,    -1,   111,   134,
    992      228,   135,   112,    -1,   111,   134,   228,   165,   135,   112,
    993       -1,   111,   134,     7,   227,   165,   135,   112,    -1,   111,
    994      134,   228,     7,   165,   135,   112,    -1,   358,    -1,   359,
    995      312,    -1,   360,   312,    -1,   150,    -1,   150,   228,    -1,
    996      150,   357,    -1,   150,   228,   357,    -1,   109,   358,   110,
    997       -1,   349,    -1,   109,   358,   110,   349,    -1,   109,   359,
    998      110,   350,    -1,   109,   359,   110,    -1,   109,   358,   110,
    999      109,   134,   264,   135,   110,    -1,   109,   360,   110,    -1,
    1000      362,    -1,   370,    -1,   228,   370,    -1,   363,    -1,   364,
    1001       -1,   150,   226,    -1,   228,   150,   226,    -1,   150,   371,
    1002       -1,   228,   150,   371,    -1,   150,   361,    -1,   228,   150,
    1003      361,    -1,   111,   112,   226,    -1,   365,   226,    -1,   111,
    1004      112,   350,   226,    -1,   365,   350,   226,    -1,   350,   226,
    1005       -1,   111,   112,   363,    -1,   365,   363,    -1,   111,   112,
    1006      350,   363,    -1,   365,   350,   363,    -1,   350,   363,    -1,
    1007      111,   134,   228,   117,   135,   112,    -1,   111,   134,   228,
    1008      165,   135,   112,    -1,   111,   134,   232,   165,   135,   112,
    1009       -1,   111,   134,   232,   228,   165,   135,   112,    -1,   370,
    1010       -1,   228,   370,    -1,   367,    -1,   368,    -1,   369,    -1,
    1011      150,   226,    -1,   228,   150,   226,    -1,   150,   371,    -1,
    1012      228,   150,   371,    -1,   150,   366,    -1,   228,   150,   366,
    1013       -1,   111,   112,   226,    -1,   111,   112,   350,   226,    -1,
    1014      350,   226,    -1,   111,   112,   368,    -1,   111,   112,   350,
    1015      368,    -1,   350,   368,    -1,   111,   134,   263,   135,   112,
    1016       -1,   111,   112,   109,   260,   110,    -1,   370,   109,   134,
    1017      260,   135,   110,    -1,   219,   109,   134,   260,   135,   110,
    1018       -1,    -1,   116,    -1,    -1,   131,   165,    -1
     754     147,   135,   112,    -1,   144,   113,    79,    -1,   144,    85,
     755     139,    -1,   144,    85,   111,   134,   147,   135,   112,    -1,
     756     144,    86,    -1,   144,    87,    -1,   109,   276,   110,   114,
     757     280,   373,   115,    -1,   144,   114,   145,   115,    -1,   146,
     758      -1,   145,   116,   146,    -1,    -1,   166,    -1,   148,    -1,
     759     147,   116,   148,    -1,   149,    -1,   149,   113,   148,    -1,
     760     149,   113,   111,   134,   147,   135,   112,    -1,   149,    85,
     761     148,    -1,   149,    85,   111,   134,   147,   135,   112,    -1,
     762     139,    -1,    79,    -1,   144,    -1,   136,    -1,   141,    -1,
     763      40,   153,    -1,   151,   153,    -1,   152,   153,    -1,    86,
     764     150,    -1,    87,   150,    -1,    37,   150,    -1,    37,   109,
     765     276,   110,    -1,    66,   150,    -1,    66,   109,   276,   110,
     766      -1,    38,   109,   276,   116,   139,   110,    -1,    76,    -1,
     767      76,   109,   146,   110,    -1,    76,   109,   277,   110,    -1,
     768     117,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
     769     122,    -1,   150,    -1,   109,   276,   110,   153,    -1,   109,
     770     276,   110,   169,    -1,   153,    -1,   154,   117,   153,    -1,
     771     154,   123,   153,    -1,   154,   124,   153,    -1,   154,    -1,
     772     155,   119,   154,    -1,   155,   120,   154,    -1,   155,    -1,
     773     156,    88,   155,    -1,   156,    89,   155,    -1,   156,    -1,
     774     157,   125,   156,    -1,   157,   126,   156,    -1,   157,    90,
     775     156,    -1,   157,    91,   156,    -1,   157,    -1,   158,    92,
     776     157,    -1,   158,    93,   157,    -1,   158,    -1,   159,   118,
     777     158,    -1,   159,    -1,   160,   127,   159,    -1,   160,    -1,
     778     161,   128,   160,    -1,   161,    -1,   162,    94,   161,    -1,
     779     162,    -1,   163,    95,   162,    -1,   163,    -1,   163,   129,
     780     171,   130,   164,    -1,   163,   129,   130,   164,    -1,   163,
     781     129,   171,   130,   169,    -1,   164,    -1,   164,    -1,   150,
     782     168,   166,    -1,   169,   374,    -1,    -1,   166,    -1,   131,
     783      -1,   107,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
     784      -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
     785      -1,   106,    -1,   111,   112,    -1,   111,   134,   166,   135,
     786     112,    -1,   111,   134,   116,   170,   135,   112,    -1,   111,
     787     134,   166,   116,   170,   135,   112,    -1,   167,    -1,   170,
     788     116,   167,    -1,   166,    -1,   171,   116,   166,    -1,    -1,
     789     171,    -1,   174,    -1,   175,    -1,   179,    -1,   180,    -1,
     790     192,    -1,   194,    -1,   195,    -1,   200,    -1,   127,   144,
     791     114,   145,   115,   132,    -1,    72,   130,   313,   173,    -1,
     792     114,   115,    -1,   114,   134,   134,   211,   176,   135,   115,
     793      -1,   177,    -1,   176,   134,   177,    -1,   214,    -1,    40,
     794     214,    -1,   309,    -1,   173,   135,    -1,   173,    -1,   178,
     795     173,    -1,   172,   132,    -1,    41,   109,   171,   110,   173,
     796      -1,    41,   109,   171,   110,   173,    42,   173,    -1,    43,
     797     109,   171,   110,   185,    -1,    43,   109,   171,   110,   114,
     798     134,   207,   186,   115,    -1,    53,   109,   171,   110,   185,
     799      -1,    53,   109,   171,   110,   114,   134,   207,   188,   115,
     800      -1,   165,    -1,   165,    96,   165,    -1,   311,    -1,   181,
     801      -1,   182,   116,   181,    -1,    44,   182,   130,    -1,    45,
     802     130,    -1,   183,    -1,   184,   183,    -1,   184,   173,    -1,
     803      -1,   187,    -1,   184,   178,    -1,   187,   184,   178,    -1,
     804      -1,   189,    -1,   184,   191,    -1,   184,   178,   190,    -1,
     805     189,   184,   191,    -1,   189,   184,   178,   190,    -1,    -1,
     806     191,    -1,    56,    -1,    56,   132,    -1,    47,   109,   171,
     807     110,   173,    -1,    46,   173,    47,   109,   171,   110,   132,
     808      -1,    48,   109,   134,   193,   110,   173,    -1,   172,   135,
     809     132,   172,   132,   172,    -1,   214,   172,   132,   172,    -1,
     810      51,    72,   132,    -1,    51,   117,   171,   132,    -1,    50,
     811     132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
     812      72,   132,    -1,    52,   172,   132,    -1,    61,   167,   132,
     813      -1,    62,   167,   132,    -1,    62,   167,    63,   166,   132,
     814      -1,    57,   175,   196,    -1,    57,   175,   198,    -1,    57,
     815     175,   196,   198,    -1,   197,    -1,    58,   109,    96,   110,
     816     175,    -1,   197,    58,   109,    96,   110,   175,    -1,    59,
     817     109,    96,   110,   175,    -1,   197,    59,   109,    96,   110,
     818     175,    -1,    58,   109,   134,   134,   199,   135,   110,   175,
     819     135,    -1,   197,    58,   109,   134,   134,   199,   135,   110,
     820     175,   135,    -1,    59,   109,   134,   134,   199,   135,   110,
     821     175,   135,    -1,   197,    59,   109,   134,   134,   199,   135,
     822     110,   175,   135,    -1,    60,   175,    -1,   227,    -1,   227,
     823     310,    -1,   227,   358,    -1,   367,   139,    -1,   367,    -1,
     824      64,   201,   109,   141,   110,   132,    -1,    64,   201,   109,
     825     141,   130,   202,   110,   132,    -1,    64,   201,   109,   141,
     826     130,   202,   130,   202,   110,   132,    -1,    64,   201,   109,
     827     141,   130,   202,   130,   202,   130,   205,   110,   132,    -1,
     828      64,   201,    51,   109,   141,   130,   130,   202,   130,   205,
     829     130,   206,   110,   132,    -1,    -1,    11,    -1,    -1,   203,
     830      -1,   204,    -1,   203,   116,   204,    -1,   141,   109,   165,
     831     110,    -1,   111,   165,   112,   141,   109,   165,   110,    -1,
     832      -1,   141,    -1,   205,   116,   141,    -1,   139,    -1,   206,
     833     116,   139,    -1,   135,    -1,   208,    -1,   214,    -1,   208,
     834     134,   214,    -1,   135,    -1,   210,    -1,   224,    -1,   210,
     835     134,   224,    -1,    -1,   212,    -1,    29,   213,   132,    -1,
     836     212,    29,   213,   132,    -1,   275,    -1,   213,   116,   275,
     837      -1,   215,    -1,   224,    -1,   216,   135,   132,    -1,   221,
     838     135,   132,    -1,   218,   135,   132,    -1,   294,   135,   132,
     839      -1,   297,   135,   132,    -1,   217,   278,    -1,   233,   217,
     840     278,    -1,   216,   135,   116,   134,   273,   278,    -1,   368,
     841     273,   312,    -1,   371,   273,   312,    -1,   229,   371,   273,
     842     312,    -1,   219,    -1,   229,   219,    -1,   233,   219,    -1,
     843     233,   229,   219,    -1,   218,   135,   116,   134,   273,    -1,
     844     111,   112,   273,   109,   134,   261,   135,   110,    -1,   371,
     845     273,   109,   134,   261,   135,   110,    -1,   220,   273,   109,
     846     134,   261,   135,   110,    -1,   111,   134,   263,   135,   112,
     847      -1,   111,   134,   263,   135,   116,   134,   264,   135,   112,
     848      -1,     3,   217,    -1,     3,   219,    -1,   221,   135,   116,
     849     134,   139,    -1,     3,   227,   310,    -1,   222,   135,   116,
     850     134,   310,    -1,   229,     3,   227,   310,    -1,   227,     3,
     851     310,    -1,   227,     3,   229,   310,    -1,     3,   139,   131,
     852     166,    -1,   223,   135,   116,   134,   139,   131,   166,    -1,
     853     225,   135,   132,    -1,   222,   135,   132,    -1,   223,   135,
     854     132,    -1,   241,   135,   132,    -1,   226,   310,   312,   278,
     855      -1,   225,   116,   313,   310,   312,   278,    -1,   237,    -1,
     856     241,    -1,   243,    -1,   284,    -1,   238,    -1,   242,    -1,
     857     244,    -1,   285,    -1,    -1,   229,    -1,   230,    -1,   229,
     858     230,    -1,   231,    -1,   315,    -1,    10,    -1,    12,    -1,
     859      11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   232,
     860     287,   110,    -1,   234,    -1,   229,   234,    -1,   233,   229,
     861     234,    -1,   235,    -1,   234,   235,    -1,     5,    -1,     7,
     862      -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
     863      -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
     864      -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
     865      -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   238,
     866      -1,   233,   238,    -1,   237,   235,    -1,   237,   235,   229,
     867      -1,   237,   235,   238,    -1,   239,    -1,   228,   240,   228,
     868      -1,   236,    -1,   229,   236,    -1,   239,   230,    -1,   239,
     869     236,    -1,    28,   109,   277,   110,    -1,    28,   109,   171,
     870     110,    -1,    78,   109,   277,   110,    -1,    78,   109,   171,
     871     110,    -1,   242,    -1,   233,   242,    -1,   241,   235,    -1,
     872     241,   235,   229,    -1,   245,    -1,   229,   245,    -1,   242,
     873     230,    -1,   244,    -1,   233,   244,    -1,   243,   235,    -1,
     874     243,   235,   229,    -1,    74,    -1,   229,    74,    -1,   244,
     875     230,    -1,   246,    -1,   257,    -1,   248,   114,   249,   115,
     876      -1,   248,   275,    -1,    -1,   248,   275,   247,   114,   249,
     877     115,    -1,   248,   109,   293,   110,   114,   249,   115,    -1,
     878     248,   286,    -1,    31,   313,    -1,    32,   313,    -1,    -1,
     879     249,   250,    -1,   251,   132,    -1,    40,   251,   132,    -1,
     880     252,   132,    -1,    40,   252,   132,    -1,   367,    -1,   367,
     881     275,    -1,   251,   116,   275,    -1,   251,   116,    -1,   227,
     882     253,    -1,   252,   116,   313,   253,    -1,    -1,   255,    -1,
     883     319,   254,    -1,   332,   254,    -1,   358,    -1,    -1,   255,
     884      -1,   130,   165,    -1,    30,   313,    -1,   256,   114,   259,
     885     373,   115,    -1,   256,   275,    -1,    -1,   256,   275,   258,
     886     114,   259,   373,   115,    -1,   275,   260,    -1,   259,   116,
     887     275,   260,    -1,    -1,   131,   165,    -1,    -1,   262,    -1,
     888     264,    -1,   263,    -1,   263,   135,   116,   134,   264,    -1,
     889     264,   135,   116,   134,    96,    -1,   263,   135,   116,   134,
     890      96,    -1,   268,    -1,   264,   135,   116,   134,   268,    -1,
     891     263,   135,   116,   134,   268,    -1,   263,   135,   116,   134,
     892     264,   135,   116,   134,   268,    -1,   269,    -1,   264,   135,
     893     116,   134,   269,    -1,    -1,   266,    -1,   267,    -1,   267,
     894     135,   116,   134,    96,    -1,   271,    -1,   270,    -1,   267,
     895     135,   116,   134,   271,    -1,   267,   135,   116,   134,   270,
     896      -1,   270,    -1,   363,   273,   374,    -1,   371,   273,   374,
     897      -1,   229,   371,   273,   374,    -1,   219,    -1,   271,    -1,
     898     363,    -1,   371,    -1,   229,   371,    -1,   372,    -1,   226,
     899     337,   374,    -1,   226,   341,   374,    -1,   226,    -1,   226,
     900     352,    -1,   139,    -1,   272,   116,   139,    -1,   137,    -1,
     901      74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
     902     139,    -1,    74,    -1,    75,    -1,   367,    -1,   227,    -1,
     903     227,   358,    -1,   367,    -1,   372,    -1,   227,    -1,   227,
     904     346,    -1,    -1,   131,   279,    -1,   107,   279,    -1,   166,
     905      -1,   114,   280,   373,   115,    -1,    -1,   279,    -1,   281,
     906     279,    -1,   280,   116,   279,    -1,   280,   116,   281,   279,
     907      -1,   282,   130,    -1,   275,   130,    -1,   283,    -1,   282,
     908     283,    -1,   113,   275,    -1,   111,   134,   166,   135,   112,
     909      -1,   111,   134,   311,   135,   112,    -1,   111,   134,   165,
     910      96,   165,   135,   112,    -1,   113,   111,   134,   147,   135,
     911     112,    -1,   285,    -1,   233,   285,    -1,   284,   235,    -1,
     912     284,   235,   229,    -1,   286,    -1,   229,   286,    -1,   285,
     913     230,    -1,    75,   109,   293,   110,    -1,   288,   374,    -1,
     914     287,   116,   288,   374,    -1,    -1,   290,   275,   289,   291,
     915      -1,   227,   337,    -1,    33,    -1,    35,    -1,    34,    -1,
     916      -1,   291,   292,    -1,   128,   275,   109,   293,   110,    -1,
     917     128,   114,   134,   299,   115,    -1,   128,   109,   134,   287,
     918     135,   110,   114,   134,   299,   115,   109,   293,   110,    -1,
     919     277,    -1,   166,    -1,   293,   116,   277,    -1,   293,   116,
     920     166,    -1,    33,   295,    -1,   234,    33,   295,    -1,   294,
     921     116,   295,    -1,   296,   291,    -1,   296,   291,   131,   277,
     922      -1,   275,    -1,   274,   109,   134,   287,   135,   110,    -1,
     923      36,   275,   109,   134,   287,   135,   110,   114,   115,    -1,
     924      -1,    36,   275,   109,   134,   287,   135,   110,   114,   298,
     925     299,   115,    -1,   300,    -1,   299,   134,   300,    -1,   301,
     926     135,   132,    -1,   302,   135,   132,    -1,   217,    -1,   219,
     927      -1,   301,   135,   116,   134,   273,    -1,   227,   310,    -1,
     928     302,   135,   116,   134,   310,    -1,    -1,   304,    -1,   306,
     929      -1,   304,   134,   306,    -1,    -1,   304,    -1,   214,    -1,
     930     308,    -1,   200,    -1,    -1,     5,    82,   307,   114,   305,
     931     115,    -1,    40,   306,    -1,   309,    -1,   324,   175,    -1,
     932     328,   134,   209,   175,    -1,   218,   175,    -1,   226,   324,
     933     175,    -1,   229,   324,   175,    -1,   233,   324,   175,    -1,
     934     233,   229,   324,   175,    -1,   226,   328,   134,   209,   175,
     935      -1,   229,   328,   134,   209,   175,    -1,   233,   328,   134,
     936     209,   175,    -1,   233,   229,   328,   134,   209,   175,    -1,
     937     319,    -1,   332,    -1,   324,    -1,   165,   122,   165,    -1,
     938      -1,    64,   109,   142,   110,   313,    -1,    -1,   314,    -1,
     939     315,    -1,   314,   315,    -1,    39,   109,   109,   316,   110,
     940     110,    -1,   317,    -1,   316,   116,   317,    -1,    -1,   318,
     941      -1,   318,   109,   172,   110,    -1,   273,    -1,   235,    -1,
     942     236,    -1,   230,    -1,   320,   313,    -1,   321,    -1,   322,
     943     313,    -1,   323,   313,    -1,   137,    -1,   109,   320,   110,
     944      -1,   151,   319,    -1,   151,   229,   319,    -1,   109,   321,
     945     110,    -1,   320,   350,    -1,   109,   321,   110,   350,    -1,
     946     109,   322,   110,   351,    -1,   109,   322,   110,    -1,   109,
     947     321,   110,   109,   134,   265,   135,   110,    -1,   109,   323,
     948     110,    -1,   325,   313,    -1,   326,    -1,   327,   313,    -1,
     949     320,   109,   134,   265,   135,   110,    -1,   109,   326,   110,
     950     109,   134,   265,   135,   110,    -1,   109,   325,   110,    -1,
     951     151,   324,    -1,   151,   229,   324,    -1,   109,   326,   110,
     952      -1,   109,   326,   110,   350,    -1,   109,   327,   110,   351,
     953      -1,   109,   327,   110,    -1,   329,    -1,   330,    -1,   331,
     954      -1,   320,   109,   272,   110,    -1,   109,   330,   110,   109,
     955     272,   110,    -1,   109,   329,   110,    -1,   151,   328,    -1,
     956     151,   229,   328,    -1,   109,   330,   110,    -1,   109,   330,
     957     110,   350,    -1,   109,   331,   110,   351,    -1,   109,   331,
     958     110,    -1,   333,   313,    -1,   334,    -1,   335,   313,    -1,
     959     336,   313,    -1,   342,    -1,   109,   333,   110,    -1,   151,
     960     332,    -1,   151,   229,   332,    -1,   109,   334,   110,    -1,
     961     333,   350,    -1,   109,   334,   110,   350,    -1,   109,   335,
     962     110,   351,    -1,   109,   335,   110,    -1,   333,   109,   134,
     963     265,   135,   110,    -1,   109,   334,   110,   109,   134,   265,
     964     135,   110,    -1,   109,   336,   110,    -1,   320,   313,    -1,
     965     338,    -1,   339,   313,    -1,   340,   313,    -1,   151,   337,
     966      -1,   151,   229,   337,    -1,   109,   338,   110,    -1,   320,
     967     356,    -1,   109,   338,   110,   350,    -1,   109,   339,   110,
     968     351,    -1,   109,   339,   110,    -1,   320,   109,   134,   265,
     969     135,   110,    -1,   109,   338,   110,   109,   134,   265,   135,
     970     110,    -1,   109,   340,   110,    -1,   342,   313,    -1,   343,
     971      -1,   344,   313,    -1,   345,   313,    -1,    74,    -1,    75,
     972      -1,   151,   341,    -1,   151,   229,   341,    -1,   109,   343,
     973     110,    -1,   342,   356,    -1,   109,   343,   110,   356,    -1,
     974     342,   109,   134,   265,   135,   110,    -1,   109,   343,   110,
     975     109,   134,   265,   135,   110,    -1,   347,    -1,   348,   313,
     976      -1,   349,   313,    -1,   151,    -1,   151,   229,    -1,   151,
     977     346,    -1,   151,   229,   346,    -1,   109,   347,   110,    -1,
     978     350,    -1,   109,   347,   110,   350,    -1,   109,   348,   110,
     979     351,    -1,   109,   348,   110,    -1,   109,   134,   265,   135,
     980     110,    -1,   109,   347,   110,   109,   134,   265,   135,   110,
     981      -1,   109,   349,   110,    -1,   111,   112,    -1,   111,   112,
     982     351,    -1,   351,    -1,   111,   134,   166,   135,   112,    -1,
     983     111,   134,   117,   135,   112,    -1,   351,   111,   134,   166,
     984     135,   112,    -1,   351,   111,   134,   117,   135,   112,    -1,
     985     353,    -1,   354,   313,    -1,   355,   313,    -1,   151,    -1,
     986     151,   229,    -1,   151,   352,    -1,   151,   229,   352,    -1,
     987     109,   353,   110,    -1,   356,    -1,   109,   353,   110,   356,
     988      -1,   109,   354,   110,   351,    -1,   109,   354,   110,    -1,
     989     109,   134,   265,   135,   110,    -1,   109,   353,   110,   109,
     990     134,   265,   135,   110,    -1,   109,   355,   110,    -1,   357,
     991      -1,   357,   351,    -1,   351,    -1,   111,   112,    -1,   111,
     992     134,   229,   117,   135,   112,    -1,   111,   134,   229,   135,
     993     112,    -1,   111,   134,   229,   166,   135,   112,    -1,   111,
     994     134,     7,   228,   166,   135,   112,    -1,   111,   134,   229,
     995       7,   166,   135,   112,    -1,   359,    -1,   360,   313,    -1,
     996     361,   313,    -1,   151,    -1,   151,   229,    -1,   151,   358,
     997      -1,   151,   229,   358,    -1,   109,   359,   110,    -1,   350,
     998      -1,   109,   359,   110,   350,    -1,   109,   360,   110,   351,
     999      -1,   109,   360,   110,    -1,   109,   359,   110,   109,   134,
     1000     265,   135,   110,    -1,   109,   361,   110,    -1,   363,    -1,
     1001     371,    -1,   229,   371,    -1,   364,    -1,   365,    -1,   151,
     1002     227,    -1,   229,   151,   227,    -1,   151,   372,    -1,   229,
     1003     151,   372,    -1,   151,   362,    -1,   229,   151,   362,    -1,
     1004     111,   112,   227,    -1,   366,   227,    -1,   111,   112,   351,
     1005     227,    -1,   366,   351,   227,    -1,   351,   227,    -1,   111,
     1006     112,   364,    -1,   366,   364,    -1,   111,   112,   351,   364,
     1007      -1,   366,   351,   364,    -1,   351,   364,    -1,   111,   134,
     1008     229,   117,   135,   112,    -1,   111,   134,   229,   166,   135,
     1009     112,    -1,   111,   134,   233,   166,   135,   112,    -1,   111,
     1010     134,   233,   229,   166,   135,   112,    -1,   371,    -1,   229,
     1011     371,    -1,   368,    -1,   369,    -1,   370,    -1,   151,   227,
     1012      -1,   229,   151,   227,    -1,   151,   372,    -1,   229,   151,
     1013     372,    -1,   151,   367,    -1,   229,   151,   367,    -1,   111,
     1014     112,   227,    -1,   111,   112,   351,   227,    -1,   351,   227,
     1015      -1,   111,   112,   369,    -1,   111,   112,   351,   369,    -1,
     1016     351,   369,    -1,   111,   134,   264,   135,   112,    -1,   111,
     1017     112,   109,   261,   110,    -1,   371,   109,   134,   261,   135,
     1018     110,    -1,   220,   109,   134,   261,   135,   110,    -1,    -1,
     1019     116,    -1,    -1,   131,   166,    -1
    10191020};
    10201021
     
    10221023static const yytype_uint16 yyrline[] =
    10231024{
    1024        0,   301,   301,   305,   312,   313,   314,   318,   319,   320,
    1025      324,   325,   329,   330,   334,   335,   339,   343,   344,   355,
    1026      357,   359,   361,   366,   367,   373,   377,   379,   380,   382,
    1027      383,   385,   387,   389,   398,   399,   405,   406,   410,   411,
    1028      415,   419,   421,   423,   425,   430,   433,   435,   437,   442,
    1029      455,   457,   459,   461,   463,   465,   467,   469,   471,   473,
    1030      475,   482,   483,   489,   490,   491,   492,   496,   497,   499,
    1031      504,   505,   507,   509,   514,   515,   517,   522,   523,   525,
    1032      530,   531,   533,   535,   537,   542,   543,   545,   550,   551,
    1033      556,   557,   562,   563,   568,   569,   574,   575,   580,   581,
    1034      584,   586,   591,   596,   597,   599,   605,   606,   610,   611,
    1035      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
    1036      627,   629,   631,   633,   638,   639,   644,   645,   651,   652,
    1037      658,   659,   660,   661,   662,   663,   664,   665,   666,   676,
    1038      683,   685,   695,   696,   701,   703,   709,   711,   715,   716,
    1039      721,   726,   729,   731,   733,   743,   745,   756,   757,   759,
    1040      763,   765,   769,   770,   775,   776,   780,   785,   786,   790,
    1041      792,   798,   799,   803,   805,   807,   809,   815,   816,   820,
    1042      822,   827,   829,   831,   836,   838,   843,   845,   849,   852,
    1043      856,   859,   863,   865,   867,   869,   874,   876,   878,   883,
    1044      885,   887,   889,   891,   896,   898,   900,   902,   907,   919,
    1045      920,   925,   927,   932,   936,   938,   940,   942,   944,   950,
    1046      951,   957,   958,   962,   963,   968,   970,   976,   977,   979,
    1047      984,   989,   999,  1001,  1005,  1006,  1011,  1013,  1017,  1018,
    1048     1022,  1024,  1028,  1029,  1033,  1034,  1038,  1039,  1054,  1055,
    1049     1056,  1057,  1058,  1062,  1067,  1074,  1084,  1089,  1094,  1102,
    1050     1107,  1112,  1117,  1122,  1130,  1152,  1157,  1164,  1166,  1173,
    1051     1178,  1183,  1194,  1199,  1204,  1209,  1214,  1223,  1228,  1236,
    1052     1237,  1238,  1239,  1245,  1250,  1258,  1259,  1260,  1261,  1265,
    1053     1266,  1267,  1268,  1273,  1274,  1283,  1284,  1289,  1290,  1295,
    1054     1297,  1299,  1301,  1303,  1306,  1305,  1317,  1318,  1320,  1330,
    1055     1331,  1336,  1338,  1340,  1342,  1344,  1347,  1349,  1352,  1357,
    1056     1359,  1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,
    1057     1379,  1381,  1387,  1388,  1390,  1392,  1394,  1399,  1400,  1406,
    1058     1407,  1409,  1411,  1416,  1418,  1420,  1422,  1427,  1428,  1430,
    1059     1432,  1437,  1438,  1440,  1445,  1446,  1448,  1450,  1455,  1457,
    1060     1459,  1464,  1465,  1469,  1471,  1477,  1476,  1480,  1482,  1487,
    1061     1489,  1495,  1496,  1501,  1502,  1504,  1505,  1514,  1515,  1517,
    1062     1519,  1524,  1526,  1532,  1533,  1535,  1538,  1541,  1546,  1547,
    1063     1552,  1557,  1561,  1563,  1569,  1568,  1575,  1577,  1583,  1584,
    1064     1592,  1593,  1597,  1598,  1599,  1601,  1603,  1610,  1611,  1613,
    1065     1615,  1620,  1621,  1627,  1628,  1632,  1633,  1638,  1639,  1640,
    1066     1642,  1650,  1651,  1653,  1656,  1658,  1662,  1663,  1664,  1666,
    1067     1668,  1672,  1677,  1685,  1686,  1695,  1697,  1702,  1703,  1704,
    1068     1708,  1709,  1710,  1714,  1715,  1716,  1720,  1721,  1722,  1727,
    1069     1728,  1729,  1730,  1736,  1737,  1739,  1744,  1745,  1750,  1751,
    1070     1752,  1753,  1754,  1769,  1770,  1775,  1776,  1782,  1784,  1787,
    1071     1789,  1791,  1814,  1815,  1817,  1819,  1824,  1825,  1827,  1832,
    1072     1837,  1838,  1844,  1843,  1847,  1851,  1853,  1855,  1861,  1862,
    1073     1867,  1872,  1874,  1879,  1881,  1882,  1884,  1889,  1891,  1893,
    1074     1898,  1900,  1905,  1910,  1918,  1924,  1923,  1937,  1938,  1943,
    1075     1944,  1948,  1953,  1958,  1966,  1971,  1982,  1983,  1988,  1989,
    1076     1995,  1996,  2000,  2001,  2002,  2005,  2004,  2015,  2024,  2030,
    1077     2036,  2045,  2051,  2057,  2063,  2069,  2077,  2083,  2091,  2097,
    1078     2106,  2107,  2108,  2112,  2116,  2118,  2123,  2124,  2128,  2129,
    1079     2134,  2140,  2141,  2144,  2146,  2147,  2151,  2152,  2153,  2154,
    1080     2188,  2190,  2191,  2193,  2198,  2203,  2208,  2210,  2212,  2217,
    1081     2219,  2221,  2223,  2228,  2230,  2239,  2241,  2242,  2247,  2249,
    1082     2251,  2256,  2258,  2260,  2265,  2267,  2269,  2278,  2279,  2280,
    1083     2284,  2286,  2288,  2293,  2295,  2297,  2302,  2304,  2306,  2321,
    1084     2323,  2324,  2326,  2331,  2332,  2337,  2339,  2341,  2346,  2348,
    1085     2350,  2352,  2357,  2359,  2361,  2371,  2373,  2374,  2376,  2381,
    1086     2383,  2385,  2390,  2392,  2394,  2396,  2401,  2403,  2405,  2436,
    1087     2438,  2439,  2441,  2446,  2451,  2459,  2461,  2463,  2468,  2470,
    1088     2475,  2477,  2491,  2492,  2494,  2499,  2501,  2503,  2505,  2507,
    1089     2512,  2513,  2515,  2517,  2522,  2524,  2526,  2532,  2534,  2536,
    1090     2540,  2542,  2544,  2546,  2560,  2561,  2563,  2568,  2570,  2572,
    1091     2574,  2576,  2581,  2582,  2584,  2586,  2591,  2593,  2595,  2601,
    1092     2602,  2604,  2613,  2616,  2618,  2621,  2623,  2625,  2638,  2639,
    1093     2641,  2646,  2648,  2650,  2652,  2654,  2659,  2660,  2662,  2664,
    1094     2669,  2671,  2679,  2680,  2681,  2686,  2687,  2691,  2693,  2695,
    1095     2697,  2699,  2701,  2708,  2710,  2712,  2714,  2716,  2718,  2720,
    1096     2722,  2724,  2726,  2731,  2733,  2735,  2740,  2766,  2767,  2769,
    1097     2773,  2774,  2778,  2780,  2782,  2784,  2786,  2788,  2795,  2797,
    1098     2799,  2801,  2803,  2805,  2810,  2815,  2817,  2819,  2837,  2839,
    1099     2844,  2845
     1025       0,   302,   302,   306,   313,   314,   315,   319,   320,   321,
     1026     325,   326,   330,   331,   335,   336,   340,   344,   345,   356,
     1027     358,   360,   362,   367,   368,   374,   378,   380,   381,   382,
     1028     384,   385,   387,   389,   391,   400,   401,   407,   408,   412,
     1029     413,   417,   421,   423,   425,   427,   432,   433,   437,   440,
     1030     442,   444,   449,   462,   464,   466,   468,   470,   472,   474,
     1031     476,   478,   480,   482,   489,   490,   496,   497,   498,   499,
     1032     503,   504,   506,   511,   512,   514,   516,   521,   522,   524,
     1033     529,   530,   532,   537,   538,   540,   542,   544,   549,   550,
     1034     552,   557,   558,   563,   564,   569,   570,   575,   576,   581,
     1035     582,   587,   588,   591,   593,   598,   603,   604,   606,   612,
     1036     613,   617,   618,   619,   620,   621,   622,   623,   624,   625,
     1037     626,   627,   628,   634,   636,   638,   640,   645,   646,   651,
     1038     652,   658,   659,   665,   666,   667,   668,   669,   670,   671,
     1039     672,   673,   683,   690,   692,   702,   703,   708,   710,   716,
     1040     718,   722,   723,   728,   733,   736,   738,   740,   750,   752,
     1041     763,   764,   766,   770,   772,   776,   777,   782,   783,   787,
     1042     792,   793,   797,   799,   805,   806,   810,   812,   814,   816,
     1043     822,   823,   827,   829,   834,   836,   838,   843,   845,   850,
     1044     852,   856,   859,   863,   866,   870,   872,   874,   876,   881,
     1045     883,   885,   890,   892,   894,   896,   898,   903,   905,   907,
     1046     909,   914,   926,   927,   932,   934,   939,   943,   945,   947,
     1047     949,   951,   957,   958,   964,   965,   969,   970,   975,   977,
     1048     983,   984,   986,   991,   996,  1006,  1008,  1012,  1013,  1018,
     1049    1020,  1024,  1025,  1029,  1031,  1035,  1036,  1040,  1041,  1045,
     1050    1046,  1061,  1062,  1063,  1064,  1065,  1069,  1074,  1081,  1091,
     1051    1096,  1101,  1109,  1114,  1119,  1124,  1129,  1137,  1159,  1164,
     1052    1171,  1173,  1180,  1185,  1190,  1201,  1206,  1211,  1216,  1221,
     1053    1230,  1235,  1243,  1244,  1245,  1246,  1252,  1257,  1265,  1266,
     1054    1267,  1268,  1272,  1273,  1274,  1275,  1280,  1281,  1290,  1291,
     1055    1296,  1297,  1302,  1304,  1306,  1308,  1310,  1313,  1312,  1324,
     1056    1325,  1327,  1337,  1338,  1343,  1345,  1347,  1349,  1351,  1354,
     1057    1356,  1359,  1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,
     1058    1380,  1382,  1384,  1386,  1388,  1394,  1395,  1397,  1399,  1401,
     1059    1406,  1407,  1413,  1414,  1416,  1418,  1423,  1425,  1427,  1429,
     1060    1434,  1435,  1437,  1439,  1444,  1445,  1447,  1452,  1453,  1455,
     1061    1457,  1462,  1464,  1466,  1471,  1472,  1476,  1478,  1484,  1483,
     1062    1487,  1489,  1494,  1496,  1502,  1503,  1508,  1509,  1511,  1512,
     1063    1521,  1522,  1524,  1526,  1531,  1533,  1539,  1540,  1542,  1545,
     1064    1548,  1553,  1554,  1559,  1564,  1568,  1570,  1576,  1575,  1582,
     1065    1584,  1590,  1591,  1599,  1600,  1604,  1605,  1606,  1608,  1610,
     1066    1617,  1618,  1620,  1622,  1627,  1628,  1634,  1635,  1639,  1640,
     1067    1645,  1646,  1647,  1649,  1657,  1658,  1660,  1663,  1665,  1669,
     1068    1670,  1671,  1673,  1675,  1679,  1684,  1692,  1693,  1702,  1704,
     1069    1709,  1710,  1711,  1715,  1716,  1717,  1721,  1722,  1723,  1727,
     1070    1728,  1729,  1734,  1735,  1736,  1737,  1743,  1744,  1746,  1751,
     1071    1752,  1757,  1758,  1759,  1760,  1761,  1776,  1777,  1782,  1783,
     1072    1789,  1791,  1794,  1796,  1798,  1821,  1822,  1824,  1826,  1831,
     1073    1832,  1834,  1839,  1844,  1845,  1851,  1850,  1854,  1858,  1860,
     1074    1862,  1868,  1869,  1874,  1879,  1881,  1886,  1888,  1889,  1891,
     1075    1896,  1898,  1900,  1905,  1907,  1912,  1917,  1925,  1931,  1930,
     1076    1944,  1945,  1950,  1951,  1955,  1960,  1965,  1973,  1978,  1989,
     1077    1990,  1995,  1996,  2002,  2003,  2007,  2008,  2009,  2012,  2011,
     1078    2022,  2031,  2037,  2043,  2052,  2058,  2064,  2070,  2076,  2084,
     1079    2090,  2098,  2104,  2113,  2114,  2115,  2119,  2123,  2125,  2130,
     1080    2131,  2135,  2136,  2141,  2147,  2148,  2151,  2153,  2154,  2158,
     1081    2159,  2160,  2161,  2195,  2197,  2198,  2200,  2205,  2210,  2215,
     1082    2217,  2219,  2224,  2226,  2228,  2230,  2235,  2237,  2246,  2248,
     1083    2249,  2254,  2256,  2258,  2263,  2265,  2267,  2272,  2274,  2276,
     1084    2285,  2286,  2287,  2291,  2293,  2295,  2300,  2302,  2304,  2309,
     1085    2311,  2313,  2328,  2330,  2331,  2333,  2338,  2339,  2344,  2346,
     1086    2348,  2353,  2355,  2357,  2359,  2364,  2366,  2368,  2378,  2380,
     1087    2381,  2383,  2388,  2390,  2392,  2397,  2399,  2401,  2403,  2408,
     1088    2410,  2412,  2443,  2445,  2446,  2448,  2453,  2458,  2466,  2468,
     1089    2470,  2475,  2477,  2482,  2484,  2498,  2499,  2501,  2506,  2508,
     1090    2510,  2512,  2514,  2519,  2520,  2522,  2524,  2529,  2531,  2533,
     1091    2539,  2541,  2543,  2547,  2549,  2551,  2553,  2567,  2568,  2570,
     1092    2575,  2577,  2579,  2581,  2583,  2588,  2589,  2591,  2593,  2598,
     1093    2600,  2602,  2608,  2609,  2611,  2620,  2623,  2625,  2628,  2630,
     1094    2632,  2645,  2646,  2648,  2653,  2655,  2657,  2659,  2661,  2666,
     1095    2667,  2669,  2671,  2676,  2678,  2686,  2687,  2688,  2693,  2694,
     1096    2698,  2700,  2702,  2704,  2706,  2708,  2715,  2717,  2719,  2721,
     1097    2723,  2725,  2727,  2729,  2731,  2733,  2738,  2740,  2742,  2747,
     1098    2773,  2774,  2776,  2780,  2781,  2785,  2787,  2789,  2791,  2793,
     1099    2795,  2802,  2804,  2806,  2808,  2810,  2812,  2817,  2822,  2824,
     1100    2826,  2844,  2846,  2851,  2852
    11001101};
    11011102#endif
     
    11291130  "string_literal", "string_literal_list", "primary_expression",
    11301131  "postfix_expression", "argument_expression_list", "argument_expression",
    1131   "field_list", "field", "unary_expression", "ptrref_operator",
    1132   "unary_operator", "cast_expression", "multiplicative_expression",
    1133   "additive_expression", "shift_expression", "relational_expression",
    1134   "equality_expression", "AND_expression", "exclusive_OR_expression",
    1135   "inclusive_OR_expression", "logical_AND_expression",
    1136   "logical_OR_expression", "conditional_expression", "constant_expression",
    1137   "assignment_expression", "assignment_expression_opt",
    1138   "assignment_operator", "tuple", "tuple_expression_list",
    1139   "comma_expression", "comma_expression_opt", "statement",
    1140   "labeled_statement", "compound_statement", "block_item_list",
    1141   "block_item", "statement_list", "expression_statement",
    1142   "selection_statement", "case_value", "case_value_list", "case_label",
    1143   "case_label_list", "case_clause", "switch_clause_list_opt",
    1144   "switch_clause_list", "choose_clause_list_opt", "choose_clause_list",
    1145   "fall_through_opt", "fall_through", "iteration_statement",
    1146   "for_control_expression", "jump_statement", "exception_statement",
    1147   "handler_list", "handler_clause", "finally_clause",
    1148   "exception_declaration", "asm_statement", "asm_volatile_opt",
    1149   "asm_operands_opt", "asm_operands_list", "asm_operand",
    1150   "asm_clobbers_list_opt", "label_list", "declaration_list_opt",
    1151   "declaration_list", "old_declaration_list_opt", "old_declaration_list",
    1152   "local_label_declaration_opt", "local_label_declaration_list",
    1153   "local_label_list", "declaration", "new_declaration",
    1154   "new_variable_declaration", "new_variable_specifier",
     1132  "field_list", "field", "field_name", "unary_expression",
     1133  "ptrref_operator", "unary_operator", "cast_expression",
     1134  "multiplicative_expression", "additive_expression", "shift_expression",
     1135  "relational_expression", "equality_expression", "AND_expression",
     1136  "exclusive_OR_expression", "inclusive_OR_expression",
     1137  "logical_AND_expression", "logical_OR_expression",
     1138  "conditional_expression", "constant_expression", "assignment_expression",
     1139  "assignment_expression_opt", "assignment_operator", "tuple",
     1140  "tuple_expression_list", "comma_expression", "comma_expression_opt",
     1141  "statement", "labeled_statement", "compound_statement",
     1142  "block_item_list", "block_item", "statement_list",
     1143  "expression_statement", "selection_statement", "case_value",
     1144  "case_value_list", "case_label", "case_label_list", "case_clause",
     1145  "switch_clause_list_opt", "switch_clause_list", "choose_clause_list_opt",
     1146  "choose_clause_list", "fall_through_opt", "fall_through",
     1147  "iteration_statement", "for_control_expression", "jump_statement",
     1148  "exception_statement", "handler_list", "handler_clause",
     1149  "finally_clause", "exception_declaration", "asm_statement",
     1150  "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
     1151  "asm_operand", "asm_clobbers_list_opt", "label_list",
     1152  "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
     1153  "old_declaration_list", "local_label_declaration_opt",
     1154  "local_label_declaration_list", "local_label_list", "declaration",
     1155  "new_declaration", "new_variable_declaration", "new_variable_specifier",
    11551156  "new_function_declaration", "new_function_specifier",
    11561157  "new_function_return", "new_typedef_declaration", "typedef_declaration",
     
    12421243     138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
    12431244     143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
    1244      144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
    1245      148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
    1246      149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
    1247      149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
    1248      153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
    1249      156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
    1250      159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
    1251      163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
    1252      167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
    1253      168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
    1254      172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
    1255      174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
    1256      178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
    1257      181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
    1258      186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
    1259      190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
    1260      193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
    1261      195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
    1262      198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
    1263      200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
    1264      205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
    1265      210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
    1266      214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
    1267      217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
    1268      220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
    1269      223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
    1270      226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
    1271      230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
    1272      233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
    1273      235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
    1274      235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
    1275      238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
    1276      240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
    1277      243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
    1278      247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
    1279      250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
    1280      254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
    1281      260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
    1282      262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
    1283      266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
    1284      268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
     1245     144,   144,   144,   144,   144,   145,   145,   146,   146,   147,
     1246     147,   148,   148,   148,   148,   148,   149,   149,   150,   150,
     1247     150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
     1248     150,   150,   150,   150,   151,   151,   152,   152,   152,   152,
     1249     153,   153,   153,   154,   154,   154,   154,   155,   155,   155,
     1250     156,   156,   156,   157,   157,   157,   157,   157,   158,   158,
     1251     158,   159,   159,   160,   160,   161,   161,   162,   162,   163,
     1252     163,   164,   164,   164,   164,   165,   166,   166,   166,   167,
     1253     167,   168,   168,   168,   168,   168,   168,   168,   168,   168,
     1254     168,   168,   168,   169,   169,   169,   169,   170,   170,   171,
     1255     171,   172,   172,   173,   173,   173,   173,   173,   173,   173,
     1256     173,   173,   174,   175,   175,   176,   176,   177,   177,   177,
     1257     177,   178,   178,   179,   180,   180,   180,   180,   180,   180,
     1258     181,   181,   181,   182,   182,   183,   183,   184,   184,   185,
     1259     186,   186,   187,   187,   188,   188,   189,   189,   189,   189,
     1260     190,   190,   191,   191,   192,   192,   192,   193,   193,   194,
     1261     194,   194,   194,   194,   194,   194,   194,   194,   194,   195,
     1262     195,   195,   196,   196,   196,   196,   196,   197,   197,   197,
     1263     197,   198,   199,   199,   199,   199,   199,   200,   200,   200,
     1264     200,   200,   201,   201,   202,   202,   203,   203,   204,   204,
     1265     205,   205,   205,   206,   206,   207,   207,   208,   208,   209,
     1266     209,   210,   210,   211,   211,   212,   212,   213,   213,   214,
     1267     214,   215,   215,   215,   215,   215,   216,   216,   216,   217,
     1268     217,   217,   218,   218,   218,   218,   218,   219,   219,   219,
     1269     220,   220,   221,   221,   221,   222,   222,   222,   222,   222,
     1270     223,   223,   224,   224,   224,   224,   225,   225,   226,   226,
     1271     226,   226,   227,   227,   227,   227,   228,   228,   229,   229,
     1272     230,   230,   231,   231,   231,   231,   231,   232,   231,   233,
     1273     233,   233,   234,   234,   235,   235,   235,   235,   235,   235,
     1274     235,   235,   236,   236,   236,   236,   236,   236,   236,   236,
     1275     236,   236,   236,   236,   236,   237,   237,   237,   237,   237,
     1276     238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
     1277     241,   241,   241,   241,   242,   242,   242,   243,   243,   243,
     1278     243,   244,   244,   244,   245,   245,   246,   246,   247,   246,
     1279     246,   246,   248,   248,   249,   249,   250,   250,   250,   250,
     1280     251,   251,   251,   251,   252,   252,   253,   253,   253,   253,
     1281     253,   254,   254,   255,   256,   257,   257,   258,   257,   259,
     1282     259,   260,   260,   261,   261,   262,   262,   262,   262,   262,
     1283     263,   263,   263,   263,   264,   264,   265,   265,   266,   266,
     1284     267,   267,   267,   267,   268,   268,   268,   268,   268,   269,
     1285     269,   269,   269,   269,   270,   270,   271,   271,   272,   272,
    12851286     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
    1286      276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
    1287      279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
    1288      282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
    1289      286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
    1290      291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
    1291      294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
    1292      299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
    1293      304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
    1294      307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
    1295      309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
    1296      314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
    1297      318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
    1298      321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
     1287     276,   276,   277,   277,   277,   277,   278,   278,   278,   279,
     1288     279,   280,   280,   280,   280,   280,   281,   281,   282,   282,
     1289     283,   283,   283,   283,   283,   284,   284,   284,   284,   285,
     1290     285,   285,   286,   287,   287,   289,   288,   288,   290,   290,
     1291     290,   291,   291,   292,   292,   292,   293,   293,   293,   293,
     1292     294,   294,   294,   295,   295,   296,   296,   297,   298,   297,
     1293     299,   299,   300,   300,   301,   301,   301,   302,   302,   303,
     1294     303,   304,   304,   305,   305,   306,   306,   306,   307,   306,
     1295     306,   308,   308,   308,   309,   309,   309,   309,   309,   309,
     1296     309,   309,   309,   310,   310,   310,   311,   312,   312,   313,
     1297     313,   314,   314,   315,   316,   316,   317,   317,   317,   318,
     1298     318,   318,   318,   319,   319,   319,   319,   320,   320,   321,
     1299     321,   321,   322,   322,   322,   322,   323,   323,   324,   324,
    12991300     324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
    13001301     328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
    1301      331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
    1302      334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
    1303      337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
    1304      340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
    1305      344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
    1306      347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
    1307      350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
    1308      352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
    1309      355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
    1310      357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
    1311      360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
    1312      363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
    1313      364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
    1314      367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
    1315      369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
    1316      373,   373
     1302     331,   331,   332,   332,   332,   332,   333,   333,   334,   334,
     1303     334,   335,   335,   335,   335,   336,   336,   336,   337,   337,
     1304     337,   337,   338,   338,   338,   339,   339,   339,   339,   340,
     1305     340,   340,   341,   341,   341,   341,   342,   342,   343,   343,
     1306     343,   344,   344,   345,   345,   346,   346,   346,   347,   347,
     1307     347,   347,   347,   348,   348,   348,   348,   349,   349,   349,
     1308     350,   350,   350,   351,   351,   351,   351,   352,   352,   352,
     1309     353,   353,   353,   353,   353,   354,   354,   354,   354,   355,
     1310     355,   355,   356,   356,   356,   357,   357,   357,   357,   357,
     1311     357,   358,   358,   358,   359,   359,   359,   359,   359,   360,
     1312     360,   360,   360,   361,   361,   362,   362,   362,   363,   363,
     1313     364,   364,   364,   364,   364,   364,   365,   365,   365,   365,
     1314     365,   365,   365,   365,   365,   365,   366,   366,   366,   366,
     1315     367,   367,   367,   368,   368,   369,   369,   369,   369,   369,
     1316     369,   370,   370,   370,   370,   370,   370,   371,   372,   372,
     1317     372,   373,   373,   374,   374
    13171318};
    13181319
     
    13221323       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    13231324       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1324        1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
    1325        2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
    1326        1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
    1327        2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
    1328        4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
    1329        1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
    1330        1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
    1331        1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    1332        4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
     1325       1,     3,     3,     1,     6,     4,     3,     7,     3,     3,
     1326       7,     2,     2,     7,     4,     1,     3,     0,     1,     1,
     1327       3,     1,     3,     7,     3,     7,     1,     1,     1,     1,
     1328       1,     2,     2,     2,     2,     2,     2,     4,     2,     4,
     1329       6,     1,     4,     4,     1,     1,     1,     1,     1,     1,
     1330       1,     4,     4,     1,     3,     3,     3,     1,     3,     3,
     1331       1,     3,     3,     1,     3,     3,     3,     3,     1,     3,
     1332       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
     1333       3,     1,     5,     4,     5,     1,     1,     3,     2,     0,
    13331334       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1334        2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
    1335        1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
    1336        2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
    1337        2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
    1338        1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
    1339        3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
    1340        2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
    1341        2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
    1342        5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
    1343        2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
    1344        1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
    1345        1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
    1346        0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
    1347        3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
    1348        2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
    1349        2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
    1350        3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
    1351        1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
    1352        1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
    1353        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1335       1,     1,     1,     2,     5,     6,     7,     1,     3,     1,
     1336       3,     0,     1,     1,     1,     1,     1,     1,     1,     1,
     1337       1,     6,     4,     2,     7,     1,     3,     1,     2,     1,
     1338       2,     1,     2,     2,     5,     7,     5,     9,     5,     9,
     1339       1,     3,     1,     1,     3,     3,     2,     1,     2,     2,
     1340       0,     1,     2,     3,     0,     1,     2,     3,     3,     4,
     1341       0,     1,     1,     2,     5,     7,     6,     6,     4,     3,
     1342       4,     2,     3,     2,     3,     3,     3,     3,     5,     3,
     1343       3,     4,     1,     5,     6,     5,     6,     9,    10,     9,
     1344      10,     2,     1,     2,     2,     2,     1,     6,     8,    10,
     1345      12,    14,     0,     1,     0,     1,     1,     3,     4,     7,
     1346       0,     1,     3,     1,     3,     1,     1,     1,     3,     1,
     1347       1,     1,     3,     0,     1,     3,     4,     1,     3,     1,
     1348       1,     3,     3,     3,     3,     3,     2,     3,     6,     3,
     1349       3,     4,     1,     2,     2,     3,     5,     8,     7,     7,
     1350       5,     9,     2,     2,     5,     3,     5,     4,     3,     4,
     1351       4,     7,     3,     3,     3,     3,     4,     6,     1,     1,
     1352       1,     1,     1,     1,     1,     1,     0,     1,     1,     2,
     1353       1,     1,     1,     1,     1,     1,     1,     0,     5,     1,
     1354       2,     3,     1,     2,     1,     1,     1,     1,     1,     1,
    13541355       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1355        1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
    1356        2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
    1357        3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
    1358        2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
    1359        2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
    1360        2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
    1361        2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
    1362        0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
    1363        9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
    1364        5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
    1365        1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
    1366        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1367        1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
    1368        2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
    1369        7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
    1370        2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
    1371        5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
    1372        2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
    1373        3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
    1374        0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
    1375        4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
    1376        1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
    1377        6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
    1378        2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
    1379        4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
    1380        3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
    1381        4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
    1382        1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    1383        4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
    1384        3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
    1385        1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
    1386        6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
    1387        1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
    1388        5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
    1389        3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
    1390        2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
    1391        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1392        8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
    1393        3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
    1394        4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
    1395        1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
    1396        2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
    1397        0,     2
     1356       1,     1,     1,     1,     1,     1,     2,     2,     3,     3,
     1357       1,     3,     1,     2,     2,     2,     4,     4,     4,     4,
     1358       1,     2,     2,     3,     1,     2,     2,     1,     2,     2,
     1359       3,     1,     2,     2,     1,     1,     4,     2,     0,     6,
     1360       7,     2,     2,     2,     0,     2,     2,     3,     2,     3,
     1361       1,     2,     3,     2,     2,     4,     0,     1,     2,     2,
     1362       1,     0,     1,     2,     2,     5,     2,     0,     7,     2,
     1363       4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
     1364       1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
     1365       1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
     1366       1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
     1367       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1368       1,     2,     1,     1,     1,     2,     0,     2,     2,     1,
     1369       4,     0,     1,     2,     3,     4,     2,     2,     1,     2,
     1370       2,     5,     5,     7,     6,     1,     2,     2,     3,     1,
     1371       2,     2,     4,     2,     4,     0,     4,     2,     1,     1,
     1372       1,     0,     2,     5,     5,    13,     1,     1,     3,     3,
     1373       2,     3,     3,     2,     4,     1,     6,     9,     0,    11,
     1374       1,     3,     3,     3,     1,     1,     5,     2,     5,     0,
     1375       1,     1,     3,     0,     1,     1,     1,     1,     0,     6,
     1376       2,     1,     2,     4,     2,     3,     3,     3,     4,     5,
     1377       5,     5,     6,     1,     1,     1,     3,     0,     5,     0,
     1378       1,     1,     2,     6,     1,     3,     0,     1,     4,     1,
     1379       1,     1,     1,     2,     1,     2,     2,     1,     3,     2,
     1380       3,     3,     2,     4,     4,     3,     8,     3,     2,     1,
     1381       2,     6,     8,     3,     2,     3,     3,     4,     4,     3,
     1382       1,     1,     1,     4,     6,     3,     2,     3,     3,     4,
     1383       4,     3,     2,     1,     2,     2,     1,     3,     2,     3,
     1384       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1385       2,     2,     2,     3,     3,     2,     4,     4,     3,     6,
     1386       8,     3,     2,     1,     2,     2,     1,     1,     2,     3,
     1387       3,     2,     4,     6,     8,     1,     2,     2,     1,     2,
     1388       2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
     1389       2,     3,     1,     5,     5,     6,     6,     1,     2,     2,
     1390       1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
     1391       8,     3,     1,     2,     1,     2,     6,     5,     6,     7,
     1392       7,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1393       4,     4,     3,     8,     3,     1,     1,     2,     1,     1,
     1394       2,     3,     2,     3,     2,     3,     3,     2,     4,     3,
     1395       2,     3,     2,     4,     3,     2,     6,     6,     6,     7,
     1396       1,     2,     1,     1,     1,     2,     3,     2,     3,     2,
     1397       3,     3,     4,     2,     3,     4,     2,     5,     5,     6,
     1398       6,     0,     1,     0,     2
    13981399};
    13991400
     
    14031404static const yytype_uint16 yydefact[] =
    14041405{
    1405      293,   293,   313,   311,   314,   312,   315,   316,   299,   301,
    1406      300,     0,   302,   327,   319,   324,   322,   323,   321,   320,
    1407      325,   326,   331,   328,   329,   330,   546,   546,   546,     0,
    1408        0,     0,   293,   219,   303,   317,   318,     7,   358,     0,
    1409        8,    14,    15,     0,     2,    61,    62,   564,     9,   293,
    1410      524,   522,   246,     3,   453,     3,   259,     0,     3,     3,
    1411        3,   247,     3,     0,     0,     0,   294,   295,   297,   293,
    1412      306,   309,   339,   285,   332,   337,   286,   347,   287,   354,
    1413      351,   361,     0,     0,   362,   288,   472,   476,     3,     3,
    1414        0,     2,   518,   523,   528,   298,     0,     0,   546,   576,
    1415      546,     2,   587,   588,   589,   293,     0,   730,   731,     0,
    1416       12,     0,    13,   293,   269,   270,     0,   294,   289,   290,
    1417      291,   292,   525,   304,   391,   547,   548,   369,   370,    12,
    1418      444,   445,    11,   440,   443,     0,   502,   497,   488,   444,
    1419      445,     0,     0,   527,   220,     0,   293,     0,     0,     0,
    1420        0,     0,     0,     0,     0,   293,   293,     2,     0,   732,
    1421      294,   581,   593,   736,   729,   727,   734,     0,     0,     0,
    1422      253,     2,     0,   531,   438,   439,   437,     0,     0,     0,
    1423        0,   546,     0,   633,   634,     0,     0,   544,   540,   546,
    1424      561,   546,   546,   542,     2,   541,   546,   600,   546,   546,
    1425      603,     0,     0,     0,   293,   293,   311,   359,     2,   293,
    1426      260,   296,   307,   340,   352,   477,     0,     2,     0,   453,
    1427      261,   294,   333,   348,   355,   473,     0,     2,     0,   310,
    1428      334,   341,   342,     0,   349,   353,   356,   360,   445,   293,
    1429      371,   364,   368,     0,   393,   474,   478,     0,     0,     0,
    1430        1,   293,     2,   529,   575,   577,   293,     2,   740,   294,
    1431      743,   544,   544,     0,   294,     0,     0,   272,   546,   542,
    1432        2,   293,     0,     0,   293,   549,     2,   500,     2,   553,
    1433        0,     0,     0,     0,     0,     0,    19,    58,     4,     5,
    1434        6,    17,     0,     0,   293,     2,    63,    64,    65,    66,
    1435       46,    20,    47,    16,    23,    45,    67,   293,     0,    70,
    1436       74,    77,    80,    85,    88,    90,    92,    94,    96,    98,
    1437      103,   494,   750,   451,   493,     0,   449,   450,     0,   565,
    1438      580,   583,   586,   592,   595,   598,   358,     0,     2,   738,
    1439        0,   293,   741,     2,    61,   293,     3,   425,     0,   433,
    1440      294,   293,   306,   332,   286,   347,   354,     3,     3,   407,
    1441      411,   421,   426,   472,   293,   427,   705,   706,   293,   428,
    1442      430,   293,     2,   582,   594,   728,     2,     2,   248,     2,
    1443      458,     0,   456,   455,   454,   140,     2,     2,   250,     2,
    1444        2,   249,     2,   280,     2,   281,     0,   279,     0,     0,
    1445        0,     0,     0,     0,     0,     0,     0,   566,   605,     0,
    1446      453,     2,   560,   569,   659,   562,   563,   532,   293,     2,
    1447      599,   608,   601,   602,     0,   275,   293,   293,   338,   294,
    1448        0,   294,     0,   293,   733,   737,   735,   533,   293,   544,
    1449      254,   262,   308,     0,     2,   534,   293,   498,   335,   336,
    1450      282,   350,   357,     0,   293,     0,   748,   398,     0,   475,
    1451      499,   251,   252,   519,   293,   435,     0,   293,   236,     0,
    1452        2,   238,     0,   294,     0,   256,     2,   257,   277,     0,
    1453        0,     2,   293,   544,   293,   485,   487,   486,     0,     0,
    1454      750,     0,   293,     0,   293,   489,   293,   559,   557,   558,
    1455      556,     0,   551,   554,     0,     0,   293,    53,   293,    67,
    1456       48,   293,    55,   293,   293,    51,    52,     2,   126,     0,
    1457        0,   447,     0,   446,   727,   120,   293,    18,     0,    30,
    1458       31,    36,     2,     0,    36,   110,   111,   112,   113,   114,
    1459      115,   116,   117,   118,   119,   109,   108,     0,    49,    50,
     1406     296,   296,   316,   314,   317,   315,   318,   319,   302,   304,
     1407     303,     0,   305,   330,   322,   327,   325,   326,   324,   323,
     1408     328,   329,   334,   331,   332,   333,   549,   549,   549,     0,
     1409       0,     0,   296,   222,   306,   320,   321,     7,   361,     0,
     1410       8,    14,    15,     0,     2,    64,    65,   567,     9,   296,
     1411     527,   525,   249,     3,   456,     3,   262,     0,     3,     3,
     1412       3,   250,     3,     0,     0,     0,   297,   298,   300,   296,
     1413     309,   312,   342,   288,   335,   340,   289,   350,   290,   357,
     1414     354,   364,     0,     0,   365,   291,   475,   479,     3,     3,
     1415       0,     2,   521,   526,   531,   301,     0,     0,   549,   579,
     1416     549,     2,   590,   591,   592,   296,     0,   733,   734,     0,
     1417      12,     0,    13,   296,   272,   273,     0,   297,   292,   293,
     1418     294,   295,   528,   307,   394,   550,   551,   372,   373,    12,
     1419     447,   448,    11,   443,   446,     0,   505,   500,   491,   447,
     1420     448,     0,     0,   530,   223,     0,   296,     0,     0,     0,
     1421       0,     0,     0,     0,     0,   296,   296,     2,     0,   735,
     1422     297,   584,   596,   739,   732,   730,   737,     0,     0,     0,
     1423     256,     2,     0,   534,   441,   442,   440,     0,     0,     0,
     1424       0,   549,     0,   636,   637,     0,     0,   547,   543,   549,
     1425     564,   549,   549,   545,     2,   544,   549,   603,   549,   549,
     1426     606,     0,     0,     0,   296,   296,   314,   362,     2,   296,
     1427     263,   299,   310,   343,   355,   480,     0,     2,     0,   456,
     1428     264,   297,   336,   351,   358,   476,     0,     2,     0,   313,
     1429     337,   344,   345,     0,   352,   356,   359,   363,   448,   296,
     1430     374,   367,   371,     0,   396,   477,   481,     0,     0,     0,
     1431       1,   296,     2,   532,   578,   580,   296,     2,   743,   297,
     1432     746,   547,   547,     0,   297,     0,     0,   275,   549,   545,
     1433       2,   296,     0,     0,   296,   552,     2,   503,     2,   556,
     1434       0,     0,     0,     0,     0,     0,    19,    61,     4,     5,
     1435       6,    17,     0,     0,   296,     2,    66,    67,    68,    69,
     1436      49,    20,    50,    16,    23,    48,    70,   296,     0,    73,
     1437      77,    80,    83,    88,    91,    93,    95,    97,    99,   101,
     1438     106,   497,   753,   454,   496,     0,   452,   453,     0,   568,
     1439     583,   586,   589,   595,   598,   601,   361,     0,     2,   741,
     1440       0,   296,   744,     2,    64,   296,     3,   428,     0,   436,
     1441     297,   296,   309,   335,   289,   350,   357,     3,     3,   410,
     1442     414,   424,   429,   475,   296,   430,   708,   709,   296,   431,
     1443     433,   296,     2,   585,   597,   731,     2,     2,   251,     2,
     1444     461,     0,   459,   458,   457,   143,     2,     2,   253,     2,
     1445       2,   252,     2,   283,     2,   284,     0,   282,     0,     0,
     1446       0,     0,     0,     0,     0,     0,     0,   569,   608,     0,
     1447     456,     2,   563,   572,   662,   565,   566,   535,   296,     2,
     1448     602,   611,   604,   605,     0,   278,   296,   296,   341,   297,
     1449       0,   297,     0,   296,   736,   740,   738,   536,   296,   547,
     1450     257,   265,   311,     0,     2,   537,   296,   501,   338,   339,
     1451     285,   353,   360,     0,   296,     0,   751,   401,     0,   478,
     1452     502,   254,   255,   522,   296,   438,     0,   296,   239,     0,
     1453       2,   241,     0,   297,     0,   259,     2,   260,   280,     0,
     1454       0,     2,   296,   547,   296,   488,   490,   489,     0,     0,
     1455     753,     0,   296,     0,   296,   492,   296,   562,   560,   561,
     1456     559,     0,   554,   557,     0,     0,   296,    56,   296,    70,
     1457      51,   296,    58,   296,   296,    54,    55,     2,   129,     0,
     1458       0,   450,     0,   449,   730,   123,   296,    18,     0,    31,
     1459      32,    37,     2,     0,    37,   113,   114,   115,   116,   117,
     1460     118,   119,   120,   121,   122,   112,   111,     0,    52,    53,
    14601461       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    14611462       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1462      105,     2,   645,   452,   642,   546,   546,   650,   479,   293,
    1463        2,   584,   585,     0,   596,   597,     0,     2,   739,   742,
    1464      120,   293,     0,     2,   707,   294,   711,   702,   703,   709,
    1465        0,     2,     2,   667,   546,   750,   616,   546,   546,   750,
    1466      546,   630,   546,   546,   681,   434,   664,   546,   546,   672,
    1467      679,   293,   429,   294,     0,     0,   293,   717,   294,   722,
    1468      750,   714,   293,   719,   750,   293,   293,   293,     0,   120,
    1469        0,    19,     2,     0,    20,     0,   459,   748,     0,     0,
    1470      465,   240,     0,   293,     0,     0,     0,   544,   568,   572,
    1471      574,   604,   607,   611,   614,   567,   606,     0,   283,   657,
    1472        0,   293,   276,     0,     0,     0,     0,   274,     2,     0,
    1473      258,   535,   293,     0,     0,   293,     2,   363,   383,   372,
    1474        0,     0,   377,   371,   749,     0,     0,   396,     0,   294,
    1475        3,   414,     3,   418,   417,   590,     0,   530,   293,    61,
    1476        3,   293,   433,   294,     3,   427,   428,     2,     0,     0,
    1477        0,   484,   305,   293,   480,   482,     3,     2,     2,     0,
    1478      501,     3,     0,   553,   128,     0,     0,   221,     0,     0,
    1479        0,     0,    37,     0,     0,   120,   293,    21,     0,    22,
    1480        0,   691,   696,   448,   688,   546,   546,     0,   106,     3,
    1481        2,    28,     0,    34,     0,     2,    26,     0,   104,    71,
    1482       72,    73,    75,    76,    78,    79,    83,    84,    81,    82,
    1483       86,    87,    89,    91,    93,    95,    97,     0,     0,   751,
    1484      293,     0,     0,     0,   646,   647,   643,   644,   496,   495,
    1485      293,     0,   293,   713,   293,   718,   294,   293,   661,   293,
    1486      293,   704,   660,     2,   293,     0,     0,     0,     0,     0,
    1487        0,     0,     0,   682,     0,   668,   619,   635,   669,     2,
    1488      615,   622,   431,   617,   618,   432,     2,   629,   638,   631,
    1489      632,   665,   666,   680,   708,   712,   710,   750,   267,     2,
    1490      744,     2,   422,   716,   721,   423,     0,   401,     3,     3,
    1491        3,     3,   453,     3,     0,     2,   467,   464,   749,     0,
    1492      460,     2,   463,   466,     0,   293,   241,   263,     3,   271,
    1493      273,     0,   453,     2,   570,   571,     2,   609,   610,     0,
    1494      658,   536,     3,   344,   343,   346,   345,   293,   537,     0,
    1495      538,   371,     0,     0,   293,   293,     0,     0,   691,   381,
    1496      384,   388,   546,   388,   387,   380,   373,   546,   375,   378,
    1497      293,   398,   392,   102,   399,   748,     0,     0,   436,   239,
    1498        0,     0,     3,     2,   667,   429,     0,   526,     0,   750,
    1499      488,     0,   293,   293,   293,     0,   550,   552,   129,     0,
    1500        0,   214,     0,     0,     0,   222,   223,    54,     0,    56,
    1501       59,    60,     0,     2,   127,     0,     0,     0,   692,   693,
    1502      689,   690,   458,    68,    69,   107,   124,     3,   106,     0,
    1503        0,    25,    36,     3,     0,    33,   100,     0,     3,   649,
    1504      653,   656,   648,     3,   591,     3,   715,   720,     2,    61,
    1505      293,     3,     3,   294,     0,     3,   621,   625,   628,   637,
    1506      671,   675,   678,   293,     3,   620,   636,   670,   293,   293,
    1507      424,   293,   293,   745,     0,     0,     0,     0,   255,     0,
    1508      102,     0,     3,     3,     0,   461,     0,   457,     0,     0,
    1509      244,   293,     0,     0,   128,     0,     0,     0,     0,     0,
    1510      128,     0,     0,   106,   106,    19,     2,     0,     0,     3,
    1511      130,   131,     2,   142,   132,   133,   134,   135,   136,   137,
    1512      144,   146,     0,     0,     0,   284,   293,   293,   546,     0,
    1513      539,   293,   374,   376,     0,   390,   692,   385,   389,   386,
    1514      379,   383,   366,   397,     0,   578,     2,   663,   662,     0,
    1515      668,     2,   481,   483,   503,     3,   511,   512,     0,     2,
    1516      507,     3,     3,     0,     0,   555,   221,     0,     0,     0,
    1517      221,     0,     0,   120,   695,   699,   701,   694,   748,   106,
    1518        0,     3,   660,    40,     3,    38,    35,     0,     3,    99,
    1519      101,     0,     2,   651,   652,     0,     0,   293,     0,     0,
    1520        0,     3,   637,     0,     2,   623,   624,     2,   639,     2,
    1521      673,   674,     0,     0,    61,     0,     3,     3,     3,     3,
    1522      409,   408,   412,     2,     2,   747,   746,   121,     0,     0,
    1523        0,     0,     3,   462,     3,     0,   242,   145,     3,   294,
    1524      293,     0,     0,     0,     0,     2,     0,   190,     0,   188,
    1525        0,     0,     0,     0,     0,     0,     0,   546,   120,     0,
    1526      150,   147,   293,     0,     0,   266,   278,     3,     3,   545,
    1527      612,   367,   382,   395,   293,   265,   293,     0,   514,   491,
    1528      293,     0,     0,   490,   505,     0,     0,     0,   215,     0,
    1529      224,    57,     2,   697,   698,     0,   125,   122,     0,     0,
    1530        0,     0,     0,    24,     0,   654,   293,   579,   264,   723,
    1531      724,   725,     0,   676,   293,   293,   293,     3,     3,     0,
    1532      684,     0,     0,     0,     0,   293,   293,     3,   543,   121,
    1533      469,     0,     0,   245,   294,     0,     0,     0,     0,   293,
    1534      191,   189,   186,     0,   192,     0,     0,     0,     0,   196,
    1535      199,   197,   193,     0,   194,   128,    36,   143,   141,   243,
    1536        0,     0,   416,   420,   419,     0,   508,     2,   509,     2,
    1537      510,   504,   293,   227,     0,   225,     0,   227,   293,    32,
    1538      123,     2,    43,     2,    41,    39,    29,    27,     3,   726,
    1539        3,     3,     3,     0,     0,   683,   685,   626,   640,   268,
    1540        2,   406,     3,   405,     0,   471,   468,   128,     0,     0,
    1541      128,     3,     0,   128,   187,     0,     2,     2,   208,   198,
    1542        0,     0,     0,   139,     0,   573,   613,     2,     0,     0,
    1543        2,   228,     0,     0,   216,     0,     3,     0,     0,     0,
    1544        0,     0,     0,   686,   687,   293,     0,   470,   151,     0,
    1545        0,     2,   164,   128,   153,     0,   181,     0,   128,     0,
    1546        2,   155,     0,     2,     0,     2,     2,     2,   195,    33,
    1547      293,   513,   515,   506,     0,     0,     0,     0,     0,     3,
    1548        3,   655,   627,   641,   677,   410,   128,   157,   160,     0,
    1549      159,   163,     3,   166,   165,     0,   128,   183,   128,     3,
    1550        0,   293,     0,   293,     0,     2,     0,     2,   138,     2,
    1551      229,   230,     0,   226,   217,   700,     0,     0,   152,     0,
    1552        0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
    1553      200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
    1554        0,     0,     0,    44,    42,   158,   161,   128,     0,   168,
    1555      293,   128,   128,     0,   172,     0,     0,   691,   210,   211,
    1556      212,     0,   201,     3,   203,     3,   293,   218,   231,   148,
    1557      169,   154,   128,   235,   184,   179,   177,   173,   156,   128,
    1558        0,   692,     0,     0,     0,     0,   149,   170,   180,   174,
    1559      178,   177,   175,     3,     3,     0,     0,   492,   176,   204,
    1560      206,     3,     3,   205,   207
     1463     108,     2,   648,   455,   645,   549,   549,   653,   482,   296,
     1464       2,   587,   588,     0,   599,   600,     0,     2,   742,   745,
     1465     123,   296,     0,     2,   710,   297,   714,   705,   706,   712,
     1466       0,     2,     2,   670,   549,   753,   619,   549,   549,   753,
     1467     549,   633,   549,   549,   684,   437,   667,   549,   549,   675,
     1468     682,   296,   432,   297,     0,     0,   296,   720,   297,   725,
     1469     753,   717,   296,   722,   753,   296,   296,   296,     0,   123,
     1470       0,    19,     2,     0,    20,     0,   462,   751,     0,     0,
     1471     468,   243,     0,   296,     0,     0,     0,   547,   571,   575,
     1472     577,   607,   610,   614,   617,   570,   609,     0,   286,   660,
     1473       0,   296,   279,     0,     0,     0,     0,   277,     2,     0,
     1474     261,   538,   296,     0,     0,   296,     2,   366,   386,   375,
     1475       0,     0,   380,   374,   752,     0,     0,   399,     0,   297,
     1476       3,   417,     3,   421,   420,   593,     0,   533,   296,    64,
     1477       3,   296,   436,   297,     3,   430,   431,     2,     0,     0,
     1478       0,   487,   308,   296,   483,   485,     3,     2,     2,     0,
     1479     504,     3,     0,   556,   131,     0,     0,   224,     0,     0,
     1480       0,     0,    38,     0,     0,   123,   296,    21,     0,    22,
     1481       0,   694,   699,   451,   691,   549,   549,     0,   109,     3,
     1482       2,    29,     0,    35,     0,    28,     2,    26,     0,   107,
     1483      74,    75,    76,    78,    79,    81,    82,    86,    87,    84,
     1484      85,    89,    90,    92,    94,    96,    98,   100,     0,     0,
     1485     754,   296,     0,     0,     0,   649,   650,   646,   647,   499,
     1486     498,   296,     0,   296,   716,   296,   721,   297,   296,   664,
     1487     296,   296,   707,   663,     2,   296,     0,     0,     0,     0,
     1488       0,     0,     0,     0,   685,     0,   671,   622,   638,   672,
     1489       2,   618,   625,   434,   620,   621,   435,     2,   632,   641,
     1490     634,   635,   668,   669,   683,   711,   715,   713,   753,   270,
     1491       2,   747,     2,   425,   719,   724,   426,     0,   404,     3,
     1492       3,     3,     3,   456,     3,     0,     2,   470,   467,   752,
     1493       0,   463,     2,   466,   469,     0,   296,   244,   266,     3,
     1494     274,   276,     0,   456,     2,   573,   574,     2,   612,   613,
     1495       0,   661,   539,     3,   347,   346,   349,   348,   296,   540,
     1496       0,   541,   374,     0,     0,   296,   296,     0,     0,   694,
     1497     384,   387,   391,   549,   391,   390,   383,   376,   549,   378,
     1498     381,   296,   401,   395,   105,   402,   751,     0,     0,   439,
     1499     242,     0,     0,     3,     2,   670,   432,     0,   529,     0,
     1500     753,   491,     0,   296,   296,   296,     0,   553,   555,   132,
     1501       0,     0,   217,     0,     0,     0,   225,   226,    57,     0,
     1502      59,    62,    63,     0,     2,   130,     0,     0,     0,   695,
     1503     696,   692,   693,   461,    71,    72,   110,   127,     3,   109,
     1504       0,     0,    25,    37,     3,     0,    34,   103,     0,     3,
     1505     652,   656,   659,   651,     3,   594,     3,   718,   723,     2,
     1506      64,   296,     3,     3,   297,     0,     3,   624,   628,   631,
     1507     640,   674,   678,   681,   296,     3,   623,   639,   673,   296,
     1508     296,   427,   296,   296,   748,     0,     0,     0,     0,   258,
     1509       0,   105,     0,     3,     3,     0,   464,     0,   460,     0,
     1510       0,   247,   296,     0,     0,   131,     0,     0,     0,     0,
     1511       0,   131,     0,     0,   109,   109,    19,     2,     0,     0,
     1512       3,   133,   134,     2,   145,   135,   136,   137,   138,   139,
     1513     140,   147,   149,     0,     0,     0,   287,   296,   296,   549,
     1514       0,   542,   296,   377,   379,     0,   393,   695,   388,   392,
     1515     389,   382,   386,   369,   400,     0,   581,     2,   666,   665,
     1516       0,   671,     2,   484,   486,   506,     3,   514,   515,     0,
     1517       2,   510,     3,     3,     0,     0,   558,   224,     0,     0,
     1518       0,   224,     0,     0,   123,   698,   702,   704,   697,   751,
     1519     109,     0,     3,   663,    47,    46,     3,    39,    41,    36,
     1520       0,     3,   102,   104,     0,     2,   654,   655,     0,     0,
     1521     296,     0,     0,     0,     3,   640,     0,     2,   626,   627,
     1522       2,   642,     2,   676,   677,     0,     0,    64,     0,     3,
     1523       3,     3,     3,   412,   411,   415,     2,     2,   750,   749,
     1524     124,     0,     0,     0,     0,     3,   465,     3,     0,   245,
     1525     148,     3,   297,   296,     0,     0,     0,     0,     2,     0,
     1526     193,     0,   191,     0,     0,     0,     0,     0,     0,     0,
     1527     549,   123,     0,   153,   150,   296,     0,     0,   269,   281,
     1528       3,     3,   548,   615,   370,   385,   398,   296,   268,   296,
     1529       0,   517,   494,   296,     0,     0,   493,   508,     0,     0,
     1530       0,   218,     0,   227,    60,     2,   700,   701,     0,   128,
     1531     125,     0,     0,     0,     0,     0,    24,     0,   657,   296,
     1532     582,   267,   726,   727,   728,     0,   679,   296,   296,   296,
     1533       3,     3,     0,   687,     0,     0,     0,     0,   296,   296,
     1534       3,   546,   124,   472,     0,     0,   248,   297,     0,     0,
     1535       0,     0,   296,   194,   192,   189,     0,   195,     0,     0,
     1536       0,     0,   199,   202,   200,   196,     0,   197,   131,    37,
     1537     146,   144,   246,     0,     0,   419,   423,   422,     0,   511,
     1538       2,   512,     2,   513,   507,   296,   230,     0,   228,     0,
     1539     230,   296,    33,   126,    40,    30,     2,    44,     2,    42,
     1540      27,     3,   729,     3,     3,     3,     0,     0,   686,   688,
     1541     629,   643,   271,     2,   409,     3,   408,     0,   474,   471,
     1542     131,     0,     0,   131,     3,     0,   131,   190,     0,     2,
     1543       2,   211,   201,     0,     0,     0,   142,     0,   576,   616,
     1544       2,     0,     0,     2,   231,     0,     0,   219,     0,     3,
     1545       0,     0,     0,     0,     0,     0,   689,   690,   296,     0,
     1546     473,   154,     0,     0,     2,   167,   131,   156,     0,   184,
     1547       0,   131,     0,     2,   158,     0,     2,     0,     2,     2,
     1548       2,   198,    34,   296,   516,   518,   509,     0,     0,     0,
     1549       0,     0,     3,     3,   658,   630,   644,   680,   413,   131,
     1550     160,   163,     0,   162,   166,     3,   169,   168,     0,   131,
     1551     186,   131,     3,     0,   296,     0,   296,     0,     2,     0,
     1552       2,   141,     2,   232,   233,     0,   229,   220,   703,     0,
     1553       0,   155,     0,     0,   165,   235,   170,     2,   237,   185,
     1554       0,   188,   174,   203,     3,   212,   216,   205,     3,     0,
     1555     296,     0,   296,     0,     0,     0,    45,    43,   161,   164,
     1556     131,     0,   171,   296,   131,   131,     0,   175,     0,     0,
     1557     694,   213,   214,   215,     0,   204,     3,   206,     3,   296,
     1558     221,   234,   151,   172,   157,   131,   238,   187,   182,   180,
     1559     176,   159,   131,     0,   695,     0,     0,     0,     0,   152,
     1560     173,   183,   177,   181,   180,   178,     3,     3,     0,     0,
     1561     495,   179,   207,   209,     3,     3,   208,   210
    15611562};
    15621563
     
    15641565static const yytype_int16 yydefgoto[] =
    15651566{
    1566       -1,   814,   468,   300,    47,   133,   134,   301,   302,   303,
    1567      304,   305,   762,   763,  1134,  1135,   306,   381,   308,   309,
    1568      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
    1569      320,  1031,   518,   976,   547,   322,   977,   948,  1058,  1519,
    1570     1060,  1061,  1062,  1063,  1520,  1064,  1065,  1438,  1439,  1402,
    1571     1403,  1404,  1498,  1499,  1503,  1504,  1539,  1540,  1066,  1362,
    1572     1067,  1068,  1299,  1300,  1301,  1481,  1069,   145,   954,   955,
    1573      956,  1382,  1462,  1473,  1474,   469,   470,   875,   876,  1039,
    1574       51,    52,    53,    54,    55,   347,   158,    58,    59,    60,
    1575       61,    62,   349,    64,    65,   264,    67,    68,   274,   351,
    1576      352,    71,    72,    73,   118,    75,   204,   354,   119,    78,
    1577      120,    80,    81,   455,    82,   454,   689,   690,   691,   909,
    1578     1087,   910,    83,    84,   458,   456,   697,   856,   857,   858,
    1579      859,   700,   701,   702,   359,   360,   361,   362,   466,   340,
    1580      135,   136,   522,   324,   170,   646,   647,   648,   649,   650,
    1581       85,   121,    87,   489,   490,   940,   491,   277,   495,   325,
    1582       88,   137,   138,    89,  1322,  1109,  1110,  1111,  1112,    90,
    1583       91,   718,    92,   273,    93,    94,   187,  1033,   680,   412,
    1584      125,    95,   501,   502,   503,   188,   268,   190,   191,   192,
    1585      269,    98,    99,   100,   101,   102,   103,   104,   195,   196,
    1586      197,   198,   199,   826,   606,   607,   608,   609,   200,   611,
    1587      612,   613,   573,   574,   575,   576,   752,   105,   615,   616,
    1588      617,   618,   619,   620,   969,   754,   755,   756,   596,   365,
    1589      366,   367,   368,   326,   164,   107,   108,   109,   370,   695,
    1590      570
     1567      -1,   815,   468,   300,    47,   133,   134,   301,   302,   303,
     1568     304,   305,   762,   763,  1136,  1137,  1138,   306,   381,   308,
     1569     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
     1570     319,   320,  1032,   518,   977,   547,   322,   978,   949,  1059,
     1571    1522,  1061,  1062,  1063,  1064,  1523,  1065,  1066,  1441,  1442,
     1572    1405,  1406,  1407,  1501,  1502,  1506,  1507,  1542,  1543,  1067,
     1573    1365,  1068,  1069,  1302,  1303,  1304,  1484,  1070,   145,   955,
     1574     956,   957,  1385,  1465,  1476,  1477,   469,   470,   876,   877,
     1575    1040,    51,    52,    53,    54,    55,   347,   158,    58,    59,
     1576      60,    61,    62,   349,    64,    65,   264,    67,    68,   274,
     1577     351,   352,    71,    72,    73,   118,    75,   204,   354,   119,
     1578      78,   120,    80,    81,   455,    82,   454,   689,   690,   691,
     1579     910,  1088,   911,    83,    84,   458,   456,   697,   857,   858,
     1580     859,   860,   700,   701,   702,   359,   360,   361,   362,   466,
     1581     340,   135,   136,   522,   324,   170,   646,   647,   648,   649,
     1582     650,    85,   121,    87,   489,   490,   941,   491,   277,   495,
     1583     325,    88,   137,   138,    89,  1325,  1110,  1111,  1112,  1113,
     1584      90,    91,   718,    92,   273,    93,    94,   187,  1034,   680,
     1585     412,   125,    95,   501,   502,   503,   188,   268,   190,   191,
     1586     192,   269,    98,    99,   100,   101,   102,   103,   104,   195,
     1587     196,   197,   198,   199,   827,   606,   607,   608,   609,   200,
     1588     611,   612,   613,   573,   574,   575,   576,   752,   105,   615,
     1589     616,   617,   618,   619,   620,   970,   754,   755,   756,   596,
     1590     365,   366,   367,   368,   326,   164,   107,   108,   109,   370,
     1591     695,   570
    15911592};
    15921593
    15931594/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15941595   STATE-NUM.  */
    1595 #define YYPACT_NINF -1323
     1596#define YYPACT_NINF -1338
    15961597static const yytype_int16 yypact[] =
    15971598{
    1598     7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
    1599    -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1600    -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
    1601      733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
    1602    -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
    1603    -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
    1604    -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
    1605     1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
    1606    -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
    1607      616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
    1608       85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
    1609    -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
    1610      844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
    1611      608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
    1612    -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
    1613      717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
    1614     5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
    1615    -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
    1616      534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
    1617    -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
    1618    -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
    1619    -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
    1620    -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
    1621     5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
    1622    -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
    1623    -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
    1624    -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
    1625    -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
    1626      922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
    1627    -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
    1628    -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
    1629      756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
    1630    -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
    1631    -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
    1632      990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
    1633     8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
    1634    -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
    1635    -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
    1636     5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1637    -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
    1638      992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
    1639      229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
    1640    -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
    1641     1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
    1642    -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
    1643    -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
    1644    -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
    1645     1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
    1646     4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
    1647      962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
    1648    -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
    1649    -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
    1650     1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
    1651    -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
    1652    -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
    1653    10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
    1654    10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
    1655    -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
    1656    -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
    1657     5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
    1658     1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
    1659      132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
    1660      985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
    1661      962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
    1662     5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
    1663    -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
    1664    -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
    1665      285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
    1666    -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
    1667      538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
    1668    -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
    1669    -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
    1670     5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
    1671    -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
    1672     1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
    1673      682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
    1674    -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
    1675    -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
    1676      411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
    1677     9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
    1678     9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
    1679     6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
    1680     1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
    1681    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1682    -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
    1683    -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
    1684    -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
    1685    -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
    1686    -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
    1687     1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
    1688    -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
    1689    -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
    1690     8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
    1691     1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
    1692    -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
    1693     1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
    1694    -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
    1695    -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
    1696      631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
    1697      985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
    1698     9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
    1699      861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
    1700    -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
    1701      685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
    1702    -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
    1703    10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
    1704    -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1705    -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
    1706    -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
    1707    -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
    1708     1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
    1709    -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
    1710       94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
    1711     1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
    1712    -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
    1713     1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
    1714    -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
    1715    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
    1716     1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
    1717     9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
    1718     1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
    1719    -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
    1720    -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
    1721     9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
    1722    -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
    1723      509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
    1724    -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
    1725    -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
    1726    -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
    1727    -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
    1728      834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
    1729     1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
    1730    -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
    1731    -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
    1732    -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
    1733    -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
    1734    10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
    1735     1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
    1736     1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
    1737     1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
    1738     1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
    1739    -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
    1740     9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
    1741     1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
    1742    -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
    1743      285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
    1744    -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
    1745    10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
    1746    -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
    1747     1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
    1748     6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
    1749    -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
    1750     9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
    1751      285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
    1752    -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
    1753    -1323, -1323, -1323, -1323, -1323
     1599    4794,  8872, -1338,   118, -1338, -1338, -1338, -1338, -1338, -1338,
     1600   -1338,   -32, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1601   -1338, -1338, -1338, -1338, -1338, -1338,    75,    75,    75,   889,
     1602     761,    17,  6057,   231, -1338, -1338, -1338, -1338, -1338,   166,
     1603   -1338, -1338, -1338,   566,   192, -1338, -1338, -1338, -1338,  4939,
     1604   -1338, -1338, -1338, -1338,   195,   234, -1338,  1148, -1338, -1338,
     1605   -1338, -1338,   170,  2042,   352,    44,  7574, -1338, -1338,  9333,
     1606    1157, -1338, -1338,  1542,   364,  3919,   608,   982,  1542,  1041,
     1607   -1338, -1338,   474,   402, -1338,  1542,  1242, -1338,   273, -1338,
     1608     455,   478, -1338, -1338, -1338, -1338,   354,   234,    75, -1338,
     1609      75, -1338, -1338, -1338, -1338,  9218,  1148, -1338, -1338,  1148,
     1610   -1338,   387, -1338,  9518, -1338, -1338,  2342,  9556, -1338,   992,
     1611     992,   992, -1338, -1338, -1338,    75, -1338, -1338, -1338,   374,
     1612     386,   471, -1338, -1338, -1338,   480, -1338, -1338, -1338, -1338,
     1613   -1338,   525,   539, -1338, -1338,    53,  8841,  1022,    54,   558,
     1614     563,   587,   592,   605,   615,  8759,  7097,   644,   585, -1338,
     1615    9371, -1338, -1338, -1338, -1338,   619, -1338,   349,  4637,  4637,
     1616   -1338,   657,   446, -1338, -1338, -1338, -1338,   651,   453,   454,
     1617     476,    75,   659, -1338, -1338,  2042,  2592,   742, -1338,    57,
     1618   -1338,    75,    75,   234, -1338, -1338,   101, -1338,    75,    75,
     1619   -1338,  3079,   687,   706,   992,  6771, -1338, -1338,   707,  4939,
     1620   -1338, -1338,  1542, -1338, -1338, -1338,   234, -1338,  1148,   195,
     1621   -1338,  7912, -1338,   992,   992,   992,   234, -1338,   889, -1338,
     1622    4555, -1338, -1338,   691,   992, -1338,   992, -1338,   166,  8841,
     1623   -1338,   713, -1338,   761,   725,   992, -1338,   889,   756,   768,
     1624   -1338,  6057,   675, -1338, -1338, -1338,  9300, -1338, -1338,  2361,
     1625   -1338,   742,   105, 10239,  9556,  2342,  3079, -1338,   194, -1338,
     1626   -1338,  9518,  1148,   743,  7605, -1338, -1338,   126, -1338, 10586,
     1627     755,   847, 10372,   832, 10391, 10448, -1338,   839, -1338, -1338,
     1628   -1338, -1338, 10467, 10467,  8615,   824, -1338, -1338, -1338, -1338,
     1629   -1338, -1338, -1338,   901, -1338,   679,  3121,  8954, 10391, -1338,
     1630     507,   418,   680,   295,   694,   894,   852,   888,   930,    66,
     1631   -1338, -1338,   938,   665, -1338,   380, -1338, -1338,  1022, -1338,
     1632   -1338,    12,   949, -1338,   338,   949,   961,   166, -1338, -1338,
     1633     968,  9218, -1338,   983,   984,  9067, -1338, -1338,   776,  1555,
     1634    8330,  6771,  1542, -1338,  1542,   992,   992, -1338, -1338, -1338,
     1635   -1338, -1338, -1338,   992,  9218,  1148, -1338, -1338,  9594,  1098,
     1636   -1338,  8061, -1338, -1338, -1338, -1338, -1338, -1338, -1338,   995,
     1637    5881, 10391, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1638   -1338, -1338, -1338, -1338, -1338, -1338,  2342, -1338,   489,   993,
     1639     994,  1000,   732,  1004,  1007,  1008,  2592, -1338, -1338,   969,
     1640     195,  1030, -1338, -1338,  1024, -1338, -1338, -1338,  9300, -1338,
     1641   -1338, -1338, -1338, -1338,  3079, -1338,  8841,  8841, -1338,   992,
     1642    2342,  6890,  1148,  8403, -1338, -1338, -1338, -1338,  9300,   105,
     1643   -1338, -1338,  1542,   234, -1338, -1338,  9300, -1338,  6655, -1338,
     1644   -1338,   992,   992,   465,  8248,  1029,  1028,  1015,  1033,   992,
     1645   -1338, -1338, -1338, -1338,  9742, -1338,   591,  6518, -1338,   234,
     1646    1044, -1338,  2342, 10668, 10296, -1338, -1338, -1338, -1338,   929,
     1647    3079, -1338,  8476,   742,  5771, -1338, -1338, -1338,  1039,   645,
     1648     938,   761,  7605,   809,  9518, -1338,  7605, -1338, -1338, -1338,
     1649   -1338,   688, -1338,  1046,   847,   251,  8615, -1338,  9627, -1338,
     1650   -1338,  8615, -1338,  8728,  8615, -1338, -1338,  1048, -1338,   751,
     1651    1043,   711,  1057, -1338, -1338,  9447,  6740, -1338,   107, -1338,
     1652   -1338, 10239, -1338,   318, 10239, -1338, -1338, -1338, -1338, -1338,
     1653   -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10239, -1338, -1338,
     1654   10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,
     1655   10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,  4422, 10239,
     1656   -1338,   665,  1831, -1338, -1338,    75,    75, -1338, -1338,  8841,
     1657   -1338, -1338,  1024,   675, -1338,  1024, 10315, -1338, -1338, -1338,
     1658    5500,  6740,  1056,  1064, -1338,  9556, -1338, -1338,   619, -1338,
     1659    1065,  1323,  1067,  2196,   209,   938, -1338,    75,    75,   938,
     1660     243, -1338,    75,    75,  1024, -1338, -1338,    75,    75, -1338,
     1661     949,  9665,  1148, 10813,   217,   306,  9665, -1338,  2361, -1338,
     1662     938, -1338,  9218, -1338,   212,  8027,  8027,  8027,  1148, -1338,
     1663    6120,  1053,   995,   535,  1061,  1066, -1338,  1071,  4637,   421,
     1664   -1338,  1166,  1148,  8027,   675,  2342,   675,   742,   394,   949,
     1665   -1338, -1338,   788,   949, -1338, -1338, -1338,   847, -1338,   949,
     1666     234,  9742, -1338,   764,  1087,   806,  1088, -1338,  1089,   234,
     1667   -1338, -1338,  9300,   234,  1090,  9627,  1096, -1338,  1729, -1338,
     1668     527,   550,   761, -1338,   761,  1102, 10391, -1338,   761, 10813,
     1669   -1338, -1338,  1092, -1338, -1338, -1338,   675, -1338, 10741,   984,
     1670   -1338,  8027,   857,  8330, -1338, -1338,   619,  1103,  1112,  1039,
     1671    3523, -1338, -1338,  7605, -1338, -1338,  1097, -1338, -1338,  1121,
     1672   -1338,  1097,  1124, 10586, 10239,  1105,  1104,    94,  1128,  1123,
     1673    1132,  1133, -1338,  1136,  1138,  9485,  6859, -1338, 10239, -1338,
     1674     711,  1914, -1338, -1338, -1338,    75,    75,  6186, 10239,  1134,
     1675   -1338, -1338,   822, -1338, 10239, -1338, -1338, -1338,   715, -1338,
     1676   -1338, -1338, -1338,   507,   507,   418,   418,   680,   680,   680,
     1677     680,   295,   295,   694,   894,   852,   888,   930, 10391,   250,
     1678   -1338,  9742,  1151,  1153,  1158,  1831, -1338, -1338, -1338, -1338,
     1679   -1338,  9742,   827,  8027, -1338,  9218, -1338,  7216,  9180, -1338,
     1680    8061,  7097, -1338, -1338,  1323,  9742,   936,  1159,  1162,  1164,
     1681    1167,  1170,  1175,  1178, -1338,  3437,  2196, -1338, -1338, -1338,
     1682   -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1683   -1338, -1338, -1338, -1338,  1024, -1338, -1338, -1338,   938, -1338,
     1684   -1338, -1338, -1338, -1338, -1338, -1338, -1338,  1179, -1338,  1180,
     1685    1181, -1338, -1338,   195,  1134,  6120, -1338, -1338, -1338,  5881,
     1686    1143, -1338, -1338, -1338, -1338,   761,  6348,  1247, -1338, -1338,
     1687   -1338, -1338,  1165,   195, -1338, -1338,  1024, -1338, -1338,  1024,
     1688     230,  1024, -1338, -1338, -1338, -1338, -1338, -1338,  9409, -1338,
     1689     234, -1338, -1338,   554,   555,  9594,  7335,  2114, 10391,  2586,
     1690   -1338, -1338,  1163,    40,  1163, -1338,   761, -1338,    75, -1338,
     1691   -1338,  8985,  1015, -1338, -1338, -1338,  1028,  1185,  1186, -1338,
     1692   -1338,  1189,  1191, -1338,   857,  1994, -1338,   444, -1338,  3523,
     1693     938, -1338,  1195,  7605,  9703,  8841,  1196, -1338, -1338,  1192,
     1694    1200,  1182, -1338, 10391,  1205,   298,  1203, -1338,  1206,   675,
     1695    1206, -1338, -1338,  1206,  1209, -1338,  1214,  1216,  1217,  1914,
     1696   -1338, -1338, -1338,  5881, -1338, -1338, -1338, -1338,  1215, 10239,
     1697    1220,   831, -1338, 10239, -1338,   831, -1338, -1338, 10239, -1338,
     1698     972,   949, -1338, -1338, -1338, -1338, -1338, -1338, -1338,   995,
     1699     984,  9067, -1338, -1338,  7454,  1229, -1338,   975,   949, -1338,
     1700     979,   991,   949, -1338,   992,  3705, -1338, -1338, -1338,  9742,
     1701    9742, -1338,  8403,  8403, -1338,  1226,  1232,  1235,  1240, -1338,
     1702    1244,   564,    43,  1134, -1338,   831, -1338,  4637, -1338, 10239,
     1703     582, -1338,  6621,  1243,  1245, 10182,  1248,  1251,    46,    70,
     1704     103, 10239,  1252,   234, 10239, 10239,  1238,  1257,   333,  1239,
     1705   -1338, -1338, -1338,  1258, -1338, -1338, -1338, -1338, -1338, -1338,
     1706   -1338, -1338, -1338,   761,  1268, 10239, -1338,  9742,  9742,    75,
     1707    1269, -1338,  9098, -1338, -1338,   767, -1338,  2586, -1338, -1338,
     1708   -1338, -1338,  1729, -1338, -1338,  1270, -1338, -1338, -1338, -1338,
     1709    1273,  1994, -1338, -1338,  1256, -1338,  1097, -1338, -1338,  2342,
     1710    1271, -1338, -1338, -1338,   836,  1276, -1338,    94,  1279, 10391,
     1711    1265,    94,    94,  1293,  9447,  1023,   949, -1338, -1338,  1071,
     1712   10239,  1292,  1215,   513, -1338, -1338,  1296, -1338,    -5, -1338,
     1713    1297,  1296, -1338, -1338,  1304, -1338, -1338,  1024,  1306,  1309,
     1714    6978,  1310,  1312,  1313, -1338, -1338,  1316, -1338, -1338,  1024,
     1715   -1338, -1338, -1338, -1338,  1024, 10239, 10239,   984,  1315, -1338,
     1716   -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1717   -1338, 10391, 10391,  1317,  1318,  1296, -1338, -1338,   761, -1338,
     1718   -1338, -1338,  7839,  9703, 10239, 10239,  1381, 10239, -1338,  1299,
     1719   -1338,  1303, -1338,  1305, 10239,  1311, 10239,  1014,  1314,    39,
     1720      75,  5221,  1493, -1338, -1338,  6348,  1321,   584, -1338, -1338,
     1721   -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10002, -1338,  8476,
     1722    1328, -1338, -1338,  9703,   589,   606, -1338,  1327,  1325,   847,
     1723    1334, -1338,   331, -1338, -1338, -1338, -1338,  1024,  1332, -1338,
     1724   -1338,  1336,   831,  1339,   320,   457, -1338,  1341, -1338,  9742,
     1725   -1338, -1338, -1338, -1338, -1338,  1345, -1338,  9742,  9742,  9742,
     1726   -1338, -1338,  1351, -1338,  1355,  1358,  1360,   623,  8100,  8215,
     1727   -1338, -1338,   463, -1338,  1361,  1370, -1338,  8549,   841,   866,
     1728    1374,   868,  6487, -1338, -1338, -1338,   616, -1338,   881,  1375,
     1729    1379,   234,  1429,   861, -1338, -1338, 10239, -1338, 10182, 10239,
     1730   -1338, -1338, -1338,  1383,  1384, -1338, -1338, -1338,  1382, -1338,
     1731   -1338, -1338, -1338, -1338, -1338,  9703,   847,  1386, -1338,  1366,
     1732     847,  9742, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
     1733   -1338, -1338, -1338, -1338, -1338, -1338,  1389,  1390, -1338, -1338,
     1734   -1338, -1338, -1338, -1338, -1338,  1395, -1338,  1394, -1338, -1338,
     1735   10182,   334, 10239, 10182, -1338,  1398, 10239, -1338,   339,  1415,
     1736    1417, -1338, -1338,  1405,  1406,  1393, -1338,   840, -1338, -1338,
     1737   -1338,  1148,  2342,  1403, -1338,   329, 10391, -1338,   897, -1338,
     1738     831,   831,  1411,  1412,  1416,  1421, -1338, -1338,  8403,  1423,
     1739   -1338,  1485, 10391,  1407, -1338, -1338, 10094, -1338,   898, -1338,
     1740    1410, 10182,  1422, -1338, -1338,  1434, -1338,  1443, -1338,  1459,
     1741    1461, -1338,  1428,  9703, -1338, -1338, -1338,   847,   675,  1452,
     1742    1431,  1455,  1296,  1296, -1338, -1338, -1338, -1338, -1338, 10182,
     1743      81, -1338,   447, -1338, -1338,  7690, -1338, -1338,  1435, 10239,
     1744   -1338, 10239,  7690,   234,  9627,   234,  9627,  1465, -1338,  1466,
     1745   -1338, -1338,  1456, -1338, -1338,   909, -1338, -1338, -1338,  1470,
     1746    1471, -1338, 10391, 10391, -1338, -1338,   880,   254, -1338, -1338,
     1747    1453, -1338,   880, -1338, -1338,  2645,   675, -1338, -1338,   234,
     1748    9627,   234,  9627,  1480,  1458,   675, -1338, -1338, -1338, -1338,
     1749   10094,  1476,   880,  7766, 10239, 10006,  1478,   880,  1486,  2645,
     1750    2922, -1338, -1338, -1338,  1487, -1338, -1338, -1338, -1338,  8841,
     1751   -1338, -1338, -1338,  9873, -1338, 10094, -1338, -1338,  1467,  9785,
     1752   -1338, -1338, 10006,   234,  2922,   234,  1495,  1498,   927, -1338,
     1753    9873, -1338, -1338, -1338,  9785, -1338, -1338, -1338,   234,   234,
     1754   -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338
    17541755};
    17551756
     
    17571758static const yytype_int16 yypgoto[] =
    17581759{
    1759    -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
    1760    -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
    1761      423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
    1762     -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
    1763    -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
    1764    -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
    1765    -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
    1766      482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
    1767     -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
    1768      -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
    1769       54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
    1770     2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
    1771      699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
    1772       34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
    1773    -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
    1774    -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
    1775    -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
    1776     1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
    1777    -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
    1778        7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
    1779     -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
    1780    -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
    1781     -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
    1782     -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
    1783     -397
     1760   -1338,  4260,  2887, -1338,  1463, -1338,  1198,   661,  -268,   942,
     1761   -1338,   552,  -528,  -471,  -934,  -784, -1338,  4910,     0, -1338,
     1762    -100,   434,   472,   506,   438,  1049,  1050,  1051,  1062,  1055,
     1763   -1338,  1094,  -577,  5180,  -896, -1338,  -712,   636,   -68,  -593,
     1764    -654, -1338,  1469, -1338,   408, -1065, -1338, -1338,   159, -1338,
     1765   -1118,  -880,   265, -1338, -1338, -1338, -1338,    92, -1253, -1338,
     1766   -1338, -1338, -1338, -1338, -1338,   341, -1303,    36, -1338,  -904,
     1767   -1338,   518,   311, -1338,   196, -1338,  -309, -1338, -1338, -1338,
     1768     571,  -749, -1338, -1338,    16,  -930,   172,  1119, -1338, -1338,
     1769   -1338,  -149, -1338,    71,   966,  -196,  1532,  4034, -1338, -1338,
     1770      83,   174,   287,  2700, -1338,  1836, -1338, -1338,    55,  2097,
     1771   -1338,  2401,  2181, -1338, -1338, -1338,  -656, -1338,   962,   964,
     1772     560,   736,  -249, -1338, -1338, -1338,   955,   734,  -456, -1338,
     1773    -116,   -94,   869, -1338, -1338,  -963,  -979,    -2,   913,  1074,
     1774      29, -1338,   719,   357,  -283,  -191,  -146,   681,   789, -1338,
     1775    1010, -1338,  2818,  1589,  -439,   940, -1338, -1338,   720, -1338,
     1776    -237, -1338,   109, -1338, -1338, -1338, -1275,   435, -1338, -1338,
     1777   -1338,  1183, -1338,    32, -1338, -1338,  -845,  -111, -1337,  -112,
     1778    3150, -1338,  3946, -1338,   941, -1338,  -138,  1137,  -181,  -176,
     1779    -174,     7,   -40,   -33,   -28,  1352,    38,    50,    77,  -134,
     1780    -173,  -171,  -166,  -165,  -261,  -504,  -490,  -476,  -565,  -319,
     1781    -523, -1338, -1338,  -525,  1107,  1111,  1115,  -135,  4740,  -582,
     1782    -583,  -534,  -519,  -480, -1338,  -505,  -725,  -715,  -709,  -592,
     1783    -312,  -258, -1338, -1338,   326,    26,   -81, -1338,  3689,   -15,
     1784    -601,  -356
    17841785};
    17851786
     
    17871788   positive, shift that token.  If negative, reduce the rule which
    17881789   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1789 #define YYTABLE_NINF -522
     1790#define YYTABLE_NINF -525
    17901791static const yytype_int16 yytable[] =
    17911792{
    1792       49,   113,   407,   149,   453,   399,   428,    97,   150,   440,
    1793      151,   267,   400,   753,   767,   401,   114,  1071,   408,   106,
    1794      106,   402,   974,   280,   869,   828,   965,   403,    57,    57,
    1795      505,   845,    49,   966,  1188,    50,  1172,   152,   404,    97,
    1796      597,   405,   967,   147,   383,   384,   741,   610,  1070,    49,
    1797      357,   106,   827,   143,    70,   920,   161,   605,   410,    96,
    1798       57,   795,   177,   186,   819,  1380,   209,    50,   153,    49,
    1799      193,    56,   115,   216,   923,  1303,   226,  1440,   949,   726,
    1800       69,   281,   407,   731,   219,   399,    70,   820,   106,    31,
    1801       31,    96,   400,   724,    57,   401,   425,    57,   408,   821,
    1802       31,   402,   148,    56,   831,   113,   822,   403,    96,   162,
    1803      838,   261,    69,   113,   262,   670,   266,   271,   404,   122,
    1804      212,   405,   189,   194,    31,    96,   217,    31,    96,   227,
    1805      816,  1138,   475,   477,   510,   679,   154,   210,   202,   817,
    1806      220,   260,  1196,   683,  1304,   149,   307,   147,  1440,   818,
    1807      150,  1198,   151,   166,   161,   113,   345,   548,   549,   252,
    1808      209,   411,   411,  1459,    31,   986,   527,   373,  1200,   629,
    1809      419,    31,   411,   633,  1170,  1171,   291,   715,  1178,   152,
    1810      914,  1182,   965,  1235,   348,   186,   186,  1239,   203,   966,
    1811      358,   342,    76,   161,  1078,   548,   721,   481,   967,   411,
    1812      668,   266,  1197,  1469,  1179,   952,    96,   162,   832,    49,
    1813      153,  1199,   835,  1201,  1187,   409,   161,   166,   123,    96,
    1814      374,   209,   665,   439,    76,   149,   252,   329,   443,  1179,
    1815      150,   548,   151,   852,   829,   471,   602,   855,   666,   307,
    1816     1172,   836,  1030,   602,   398,   189,   162,  1017,   816,    57,
    1817      327,    49,  1140,   735,   176,  -233,  -233,   817,    97,   271,
    1818      476,   674,   676,  1081,   271,   266,   266,   818,    96,   162,
    1819      106,   113,   463,   161,  1016,   442,  1004,   483,   154,    57,
    1820       96,   444,  1188,   992,   500,   923,    50,   142,   924,  1249,
    1821     1172,   657,   441,  1527,   307,   163,   665,   860,   861,   820,
    1822      146,   610,  1094,   176,  1485,    70,   176,   307,  1205,  1206,
    1823       96,   821,   666,   436,   878,   831,   597,  1250,   822,   672,
    1824     1542,   597,    56,   572,   479,   677,  -233,   357,   147,   730,
    1825      923,    69,   567,  1399,  1400,   373,   168,   155,  1513,   377,
    1826     1515,   113,   816,   327,   580,   345,   411,   476,   743,   603,
    1827      621,   817,   176,   177,  1071,   378,   828,    63,   736,   163,
    1828      169,   818,  1399,  1400,   626,  1139,   568,  1497,   626,   569,
    1829      630,   113,   932,  1502,   634,   436,   748,   589,   737,   899,
    1830      110,   144,   139,   140,  1246,  1070,   447,    96,   374,    63,
    1831      987,    41,    42,  1522,  1202,   805,   266,   471,  1529,   171,
    1832      769,   770,   771,  1401,   212,   460,   186,   342,   604,  1172,
    1833      845,   166,   578,   373,   799,   176,  1030,   471,   579,   820,
    1834      357,   583,   243,   411,   266,   471,   307,   307,  1170,  1171,
    1835      266,   821,  1410,   626,   110,  1188,  1119,   854,   822,  1326,
    1836      110,   715,  1188,    76,  1526,    41,    42,   684,    76,   599,
    1837     1020,    41,    42,   579,   113,   435,  1120,   553,   554,  1327,
    1838     1127,   348,  1363,   995,  1537,   189,   374,   358,  -121,   176,
    1839     -121,  1541,   266,   760,  -121,   493,   176,   705,   494,   765,
    1840      266,   387,   626,   706,    49,   357,   953,   373,   720,  -121,
    1841     -121,    97,   229,  1188,   113,   230,   923,   388,   234,  1085,
    1842      236,   557,   558,   106,   911,  1245,   307,   245,   113,  1158,
    1843     1160,   307,    57,   307,   307,  1136,   714,   435,  1424,    50,
    1844      913,   751,  1017,   610,   870,   113,   345,   212,   882,  1105,
    1845      327,   327,  1425,  1015,  1429,  1430,   559,   560,    70,   883,
    1846      523,   411,  1102,    96,  1117,   176,   722,   604,  1435,  1470,
    1847      880,   181,   723,   163,   348,    56,   923,   923,   110,   390,
    1848      358,   342,   176,  1471,    69,   110,   176,   139,   140,    41,
    1849       42,   572,   572,   555,   556,   391,    41,    42,  1127,   307,
    1850     1444,   110,   201,   914,     2,   206,     4,     5,     6,     7,
    1851      626,   345,    41,    42,   286,   621,   392,  1331,   327,  -289,
    1852      715,   603,   111,   603,   865,    41,    42,   973,    63,   997,
    1853       76,   247,   393,   472,   805,  1475,   250,   327,   732,   348,
    1854     1333,   626,  1475,  -517,   733,   358,   626,   847,   621,   176,
    1855       76,   514,   626,  1361,   229,   626,   626,   626,    76,   871,
    1856     -468,   643,  -468,   862,   848,   886,  1015,   411,   849,    35,
    1857      394,    36,  1028,   626,   915,   266,   252,   877,   872,  -468,
    1858      815,   471,   604,   348,   348,   348,   395,  1142,   917,   411,
    1859      916,   807,  1075,  1523,  1444,   915,    76,   442,   917,  1444,
    1860     1185,   348,   263,   327,   918,   113,    37,   929,   908,  1185,
    1861       40,  1082,  1317,   -10,  1083,   597,  1186,    41,    42,  1444,
    1862      692,   498,   805,   110,   357,  1309,  1444,  1409,  1318,  1113,
    1863     1237,   626,   934,   621,    41,    42,   747,  -441,  1319,   720,
    1864      720,   748,   748,    43,   407,   846,   399,   561,   562,   893,
    1865      599,    45,    46,   400,  1320,   748,   401,  1364,   500,   348,
    1866      408,  -442,   402,   895,  1035,   113,   345,   912,   403,   748,
    1867      751,   751,   523,   212,   523,   276,   571,   523,   411,   404,
    1868      523,   923,   405,   981,    45,    46,   519,   212,   850,   982,
    1869     1277,  1278,   851,   278,   229,   472,   234,   923,   815,   604,
    1870      714,   342,   965,  1154,   850,   411,  1374,   176,  1101,   966,
    1871     1477,   750,  1478,   411,   572,   472,   279,  -103,   967,    45,
    1872       46,  -103,   626,   472,   626,   110,  1000,   139,   140,   626,
    1873      345,   330,   933,   603,   602,  1162,    41,    42,   994,   176,
    1874       45,    46,    37,  1233,   706,   603,    40,   331,  1349,   579,
    1875      348,  1357,  1350,    41,    42,   176,   332,   748,   348,   712,
    1876     1358,    63,   715,   371,   358,  1524,   748,   923,   923,   176,
    1877      548,   985,   982,   465,     8,     9,    10,    11,    12,   813,
    1878      212,   602,   329,   411,   229,   953,   372,    45,    46,   953,
    1879      953,  1360,   815,   550,    76,   307,  1365,   748,  -290,   551,
    1880      552,   333,   748,    31,   604,     8,     9,    10,    11,    12,
    1881      807,   510,  1370,  1371,   106,  1427,   334,   626,   673,   675,
    1882       76,  1424,   665,    57,   113,   345,   908,   911,   908,   335,
    1883     1445,    34,  1183,   376,    31,    37,   748,   385,   666,    40,
    1884      113,   715,  1157,   913,   602,   389,    41,    42,   805,    70,
    1885      176,   692,   409,   934,   934,  1491,  1419,   982,   720,   714,
    1886      342,  1492,    34,   113,   307,   129,    56,   130,   131,   132,
    1887       48,   112,   719,  1399,  1400,    69,    41,    42,  1106,   397,
    1888       45,    46,   106,  1547,   214,  1084,   426,   912,   751,   579,
    1889     1159,    57,   602,   427,  1509,  1426,   772,   773,   519,   112,
    1890      112,   432,    48,   519,   450,  1324,   519,   738,  1242,   739,
    1891      411,  1437,   740,    48,  1088,   744,  1088,   604,  -365,    48,
    1892      345,   774,   775,  1228,  -394,   484,    37,    48,   174,   175,
    1893       40,   780,   781,    48,  1107,   214,    48,    41,    42,    48,
    1894      461,   626,   626,  1127,   462,     2,   206,     4,     5,     6,
    1895        7,   504,   112,   112,   776,   777,   778,   779,   291,   472,
    1896      788,   307,     2,   206,     4,     5,     6,     7,   327,   348,
    1897      348,   528,   529,   530,   508,  1169,    48,   442,   214,    48,
    1898      106,  1495,  1437,   513,   525,   472,    48,    76,   111,    57,
    1899      527,   228,  1381,   563,   564,   531,  1381,   532,   566,   533,
    1900      534,   113,   252,   329,   411,   565,   908,   419,   661,   411,
    1901       35,   908,    36,   569,   176,    70,   338,    48,  -438,   587,
    1902      934,   658,   659,   712,   846,    48,  -291,    35,   266,    36,
    1903       48,   590,    56,     8,     9,    10,    11,    12,    -3,   214,
    1904      639,  1190,   660,   626,   481,   329,   411,   662,   663,   761,
    1905      664,   829,   329,   602,   766,    48,    48,    37,   667,   183,
    1906      184,    40,    31,   669,   257,   912,   693,   345,    41,    42,
    1907      912,    48,   694,    -3,   696,   498,   698,   214,  -237,    48,
    1908      734,   745,   214,  1296,  1297,  1298,   692,   749,    48,   757,
    1909       34,    48,   808,  1460,   906,   809,   411,   -12,   112,   812,
    1910      823,   714,    45,    46,   465,  1332,  1334,  1335,   -13,   271,
    1911      113,   867,   868,   112,   874,   907,   894,   112,   896,   897,
    1912      922,    48,   112,   901,   904,   219,  -415,   723,   113,   106,
    1913     -521,   944,   307,   937,   946,    48,    48,    57,    57,   957,
    1914      950,   959,    48,   958,   960,   951,   626,  -292,   961,    48,
    1915      113,   106,    63,    76,     8,     9,    10,    11,    12,   962,
    1916       57,   978,   989,   212,   342,  1106,   990,   991,   214,   106,
    1917     1006,  1007,  1008,  1009,   116,   879,  1010,   881,    57,  1011,
    1918      210,   220,   712,    31,  1012,  1023,    70,  -403,    37,  -402,
    1919      183,   184,    40,  1037,  1422,   626,   626,  1072,    48,    41,
    1920       42,  1535,  1074,    56,   271,  1095,   907,  1096,  1059,   307,
    1921     1097,    34,    69,  1098,  1104,  1114,   748,  1115,    48,    48,
    1922     1116,  1107,   159,   348,   348,   185,  1118,   928,   106,  1352,
    1923     1121,  1123,    57,    45,    46,    48,   972,    57,  1124,    48,
    1924     1125,  1126,   113,   407,  1132,  1129,   399,   692,  1152,   214,
    1925      644,  1173,  1174,   400,   173,  1175,   401,  1106,   442,   408,
    1926     1176,   106,   402,    70,  1177,  1191,    48,   665,   403,  1192,
    1927       57,  1194,  1195,  1203,  1210,   441,    48,  1207,   258,   404,
    1928       56,  1208,   405,   666,  1215,    -3,   159,  1220,  1225,  1190,
    1929     1223,   214,  1241,   493,    48,  1229,   253,  1508,  1234,   266,
    1930       48,  1236,    48,  1421,  1238,  1247,  1251,  1253,  1255,   110,
    1931     1257,   139,   238,  1107,  1258,   626,  1263,  1259,   472,   323,
    1932       41,    42,  1260,  1261,    76,   176,  1270,    37,   339,   174,
    1933      175,    40,  1279,   110,  1280,   139,   140,   112,    41,    42,
    1934      113,  1287,    48,   348,    41,    42,   239,  1290,  1291,  1292,
    1935       48,   240,  1330,  1294,    48,  1106,  1302,  1308,    48,   106,
    1936     1315,   112,   113,   112,   372,  1323,  1321,  1325,    57,   113,
    1937      727,   113,  1336,   113,  1329,   728,  1337,  1193,   430,  1339,
    1938     1345,   106,   434,  1346,  1347,  1348,   149,  1359,   106,  1355,
    1939       57,   150,   417,   151,  1356,  1366,  1367,    57,   112,  1298,
    1940     1375,    76,  1507,   112,  1384,  1376,  1377,   113,  1383,   113,
    1941     1393,  1107,   323,   214,  1394,   437,    70,  -404,  1397,  1408,
    1942      113,  1412,  1414,    70,   712,   445,  1507,  1507,  1416,  1417,
    1943      703,  1423,  1418,    56,   161,  1441,   307,  1431,  1432,   106,
    1944       56,   214,  1190,  1433,   434,  1434,   214,   488,    57,  1190,
    1945     1350,  1507,  1436,   112,  1446,  1448,  1450,  1452,   373,   213,
    1946       48,  1454,  1456,  1458,  1463,  1465,  1486,   521,   232,  1464,
    1947     1476,    48,  1488,    48,    70,  1490,  1493,  1501,  1521,  1122,
    1948      159,  1494,  1516,  1517,  1530,   479,   141,  1528,  1532,    63,
    1949     1538,    56,    48,   520,  1545,   176,  1546,   889,  1209,   782,
    1950     1190,  1133,  1131,   712,   784,  1133,  1307,  1411,    48,   783,
    1951      213,   704,   785,   112,   588,   786,  1496,   214,   594,  1548,
    1952     1369,  1385,    48,  1240,   112,    48,   112,  1214,  1479,   902,
    1953      903,   214,  1089,   925,   215,  1222,  1093,   627,   241,   244,
    1954      327,   631,   801,  1128,   339,  1059,  1036,   939,   873,  1103,
    1955      242,  1316,   717,   213,    76,  1133,    66,   117,    48,   947,
    1956      791,    76,   112,   792,   112,   793,   472,    37,   112,   174,
    1957      175,    40,     0,     0,     0,     0,   112,     0,    41,    42,
    1958        0,     0,     0,  1285,  1286,   215,  1288,     0,    66,    48,
    1959       48,     0,     0,  1293,     0,  1295,     0,     0,     0,   323,
    1960      323,     0,     0,    48,   376,   160,     0,     8,     9,    10,
    1961       11,    12,    76,     0,   213,     0,     0,  1483,     0,  1483,
    1962        0,     0,     0,     0,   214,   221,     0,   688,   215,     0,
    1963      528,   529,   530,     0,     0,     0,    31,   703,  1373,     0,
    1964      116,     0,   681,     0,     0,     0,     0,     8,     9,    10,
    1965       11,    12,   213,  1483,   531,  1483,   532,   213,   533,  1306,
    1966        0,   259,     0,     0,    34,   488,     0,   323,   707,   488,
    1967        0,     0,   499,     0,     0,     0,    31,     0,     0,   521,
    1968        0,   521,     0,    48,   521,     0,   323,   521,     0,   215,
    1969     1398,     0,     0,  1406,     0,    48,     0,     0,   339,   457,
    1970        0,     0,     0,   328,    34,   520,   571,     0,   411,     0,
    1971      520,   259,   350,   520,    45,    46,     0,     0,   704,   472,
    1972        0,     0,     0,     0,     0,     0,   472,   215,     0,     0,
    1973        0,     0,   215,     0,     0,     0,  1443,     0,   644,     0,
    1974        0,  1447,   406,   213,   112,     0,   750,     0,   411,     0,
    1975        0,  1405,   323,     0,    45,    46,   703,   424,     0,     0,
    1976      429,   431,     0,   803,     0,   160,   703,    48,     0,  1468,
    1977     1133,  1133,  1133,     0,     0,     0,    48,   472,    48,     0,
    1978      703,     0,     0,     0,     0,   112,   448,     0,     0,     0,
    1979      451,     0,   452,     0,   844,     0,     0,     0,     0,   594,
    1980        0,   459,     0,     0,     0,   853,    74,    66,    48,     0,
    1981        0,     0,   473,     0,     0,     0,     0,     0,   215,     0,
    1982        0,   214,   480,     0,   213,     0,     0,     0,   112,     0,
    1983      431,     8,     9,    10,    11,    12,   645,   704,    74,     0,
    1984        0,   213,   644,     0,     0,     0,     0,   704,     0,     0,
    1985      112,     0,     0,  1536,   112,     0,     0,     0,   688,  1536,
    1986       31,   704,     0,     0,     0,     0,   213,     0,     0,   891,
    1987     1536,     0,   892,     0,  1536,   222,     0,     0,   898,     0,
    1988        0,     0,   900,     0,     0,     0,     0,     0,    34,     0,
    1989        0,    37,     0,   183,   184,    40,   488,   259,     0,   215,
    1990        0,   595,    41,    42,   112,     0,     0,   623,  1133,  1133,
    1991        0,     0,     0,     0,     0,     0,     0,     0,   339,     0,
    1992      628,     0,     0,     0,   628,     0,     0,   259,   265,     0,
    1993      933,     0,   602,     0,     0,     0,    45,    46,    45,    46,
    1994        0,   215,   112,     0,     0,     0,  1461,   725,     0,   729,
    1995        0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
    1996        0,    48,   353,   535,   536,   537,   538,   539,   540,   541,
    1997      542,   543,   544,   545,   473,     0,     0,   996,    48,     0,
    1998        0,     0,   803,     0,   703,   703,     0,     0,   213,   350,
    1999        0,   988,     0,     0,   473,     0,     0,   546,     0,     0,
    2000        0,   993,   473,     0,  1510,     0,     0,   214,     0,     0,
    2001        0,     0,     0,  1518,     0,  1005,   213,     0,     0,     0,
    2002      699,   213,    37,   431,   183,   184,    40,     0,     0,     0,
    2003        0,     0,     0,    41,    42,     0,   449,     0,   713,     0,
    2004       66,     0,   703,   703,     0,     0,     0,     0,   431,     0,
    2005        0,     0,   431,     0,     0,   112,     0,    74,     0,   601,
    2006        0,   602,    74,   215,     0,   704,   704,    45,    46,     0,
    2007      803,     0,     0,     0,     0,     0,     0,   339,    48,     0,
    2008        0,   259,   350,     0,     0,     0,     0,     0,     0,     0,
    2009        0,   215,   213,   688,     0,     0,   215,     0,  1080,   866,
    2010        0,     0,   214,    77,     0,     0,   213,     0,     0,     0,
    2011        0,     0,     0,     0,     0,   488,  1108,   323,     0,   112,
    2012      112,   112,     0,   704,   704,     0,   499,     0,   794,    37,
    2013        0,   183,   184,    40,     0,    77,     0,     0,     0,     0,
    2014       41,    42,     0,     0,     0,     0,   628,   806,   919,     0,
    2015      921,     0,     0,     0,   457,     0,     0,   222,    37,   825,
    2016      183,   184,    40,     0,     0,     0,   906,   215,   411,    41,
    2017       42,     0,   223,   844,    45,    46,     0,   595,     0,     0,
    2018        0,   215,   595,     0,     0,     0,     0,     0,   628,     0,
    2019     1313,   350,   350,   350,     0,  1506,     0,   411,     0,   213,
    2020        0,     0,     0,    45,    46,     0,     0,     0,     0,   350,
    2021        0,     0,     0,   124,   127,   128,     0,     0,     0,  1167,
    2022     1168,     0,   703,     0,    74,     0,     0,   699,     0,     0,
    2023      703,   703,   703,     0,     0,     0,     0,     0,   473,   353,
    2024        0,     0,     0,     0,    74,     0,     0,     0,    48,    48,
    2025        0,  1204,    74,     0,   688,     0,     0,   112,   112,   355,
    2026        0,     0,     0,     0,   473,     0,     0,   350,     0,     0,
    2027      353,  1314,     0,     0,   215,     0,   938,  1217,  1218,   431,
    2028        0,     0,     0,     0,     0,   254,     0,   255,   353,     0,
    2029       74,     0,     0,     0,   703,   112,   803,     0,     0,     0,
    2030        0,   259,   713,   704,     0,     0,     0,   968,     0,     0,
    2031        0,   704,   704,   704,     0,     0,     0,     0,     0,     0,
    2032        0,     0,     0,     0,   645,     0,     0,     0,     0,     0,
    2033     1040,     0,   353,     0,     0,     0,     0,   126,   126,   126,
    2034        0,     0,     0,     0,     0,     0,   699,     0,     0,     0,
    2035        0,     0,    48,   112,    77,     0,   699,     0,   350,    77,
    2036      628,     0,   112,  1003,     0,   628,   806,     0,   396,     0,
    2037      699,  1090,     0,     0,     0,   704,    48,    48,   415,   416,
    2038     1014,   339,     0,   420,     0,   422,   423,     0,     0,     0,
    2039        0,     0,     0,     0,     0,     0,   213,   353,     0,     0,
    2040        0,    48,     0,  1108,     0,     0,     0,     0,     0,   126,
    2041        0,   126,     0,     0,     0,    79,     0,     0,     0,     0,
    2042        0,     0,     0,     0,     0,     0,     0,     0,   645,     0,
    2043        0,    66,     0,     0,     0,     0,   275,     0,     0,     0,
    2044        0,   353,   353,   353,     0,     0,     0,    79,     0,     0,
    2045        0,     0,     0,   628,   223,     0,     0,  1338,     0,   353,
    2046      259,   713,     0,     0,  1086,  1340,  1341,  1342,     0,     0,
    2047        0,   215,     0,     0,     0,     0,     0,   353,     0,     0,
    2048        0,     0,     0,     0,   224,     0,     0,     0,    74,     0,
    2049     1100,     0,   126,     0,     0,  1108,     0,  1368,   431,   117,
    2050      126,     0,   126,   126,     0,     0,     0,   126,     0,   126,
    2051      126,     0,     0,     0,    74,     0,     0,   353,     0,     0,
    2052        0,    77,     0,     0,     0,     0,     0,     0,  1040,  1386,
     1793      49,   113,   453,   149,   399,   267,   768,    97,   428,   400,
     1794     150,   401,   402,   505,   403,   151,   753,   114,   821,   404,
     1795     405,   829,   383,   384,   260,   966,   106,   106,   440,   846,
     1796     610,  1072,    49,   597,   166,   967,    50,   921,   828,    97,
     1797     357,   968,   741,   147,  1175,   975,   870,   796,   407,    49,
     1798    1383,  1141,   408,   726,   413,    76,   161,   731,   106,  1173,
     1799    1174,   421,   358,   186,   143,  1443,   209,   822,    50,    49,
     1800     193,    63,   202,   216,   342,   410,   226,   123,   820,    31,
     1801    1254,   152,   823,    69,   399,   219,   177,    76,   605,   400,
     1802     425,   401,   402,   153,   403,   106,    31,   817,   166,   404,
     1803     405,  1185,  1306,    63,   280,   113,   629,   471,  1255,   670,
     1804     633,   818,  1191,   113,    31,    69,   266,   271,  1199,   925,
     1805     154,   580,   203,   411,   832,   819,   142,  1071,   407,   679,
     1806     839,   327,   408,   413,   724,   261,  1443,   683,   262,  1181,
     1807      31,   950,  1201,   674,   676,   149,   307,   147,  1462,   475,
     1808     477,   411,   150,  1488,   161,   113,   345,   151,  1208,  1209,
     1809     209,   567,   281,   252,   329,  1182,   252,   373,   411,   409,
     1810     715,  1307,    56,   115,    70,  1203,   291,  1472,  1200,   110,
     1811     861,   862,   966,   915,   510,   186,   186,  1516,   577,  1518,
     1812      41,    42,   967,   161,   436,   568,   581,   879,   968,   584,
     1813     122,   266,  1202,  1182,    56,   953,    70,   548,   549,    49,
     1814     419,   730,   411,  1238,   476,   817,   161,  1242,   760,   668,
     1815    1204,   209,  1060,   152,   327,   149,   519,   721,   443,   818,
     1816     743,   821,   150,    31,  1249,   153,   735,   151,   210,   307,
     1817     212,   220,   144,   819,  1018,   548,  1082,   439,    31,   833,
     1818    1175,    49,  1530,   836,   493,   933,   436,   494,    97,   271,
     1819     589,  1017,   154,   413,   271,   266,   266,   421,   665,   471,
     1820     993,   113,   666,   161,   853,   146,  1143,   106,   856,  1545,
     1821     822,   548,    31,   463,   610,   657,   181,    50,  1447,   471,
     1822     342,  1005,   166,  1190,   307,   823,   800,   471,  -236,  -236,
     1823    1175,   483,   168,   481,   155,   411,    76,   307,   500,   597,
     1824     817,    76,   527,   672,   597,  1173,  1174,   357,   830,   677,
     1825     602,   476,    63,   572,   818,  1095,   169,   472,   147,   849,
     1826     599,  1086,   806,   850,    69,   373,   832,   447,   819,   358,
     1827    1079,   113,   665,   569,   413,   345,   666,   996,   171,   603,
     1828     621,   821,   837,   829,   602,   201,   460,   229,   673,   675,
     1829     230,   736,  1191,   234,   626,   236,   748,  -292,   626,  -236,
     1830    1072,   113,   245,   900,   855,   163,  1118,   177,  1402,  1403,
     1831     988,   737,  1447,  1402,  1403,   557,   558,  1447,   714,   247,
     1832     110,  1196,   110,   441,   630,   442,   266,   765,   634,  1134,
     1833     822,    41,    42,    41,    42,   286,   186,  1447,  1120,   846,
     1834     357,   327,   327,   373,  1447,   823,    41,    42,   851,  1175,
     1835     559,   560,   852,    56,   266,    70,   307,   307,  1121,   766,
     1836     266,  1336,   358,   626,   715,  1438,   577,   577,   519,   163,
     1837    1529,  1329,   514,   519,   342,  1427,   519,   583,  1404,   411,
     1838     770,   771,   772,  1413,   113,   250,  1432,  1433,  1205,  1428,
     1839    1540,  1330,   703,   252,  1128,   377,  1071,  1544,  1334,   954,
     1840    1337,  1339,   266,    76,   110,   357,   139,   140,  -520,   327,
     1841     266,   378,   626,   -10,    49,    41,    42,   373,   720,   472,
     1842     578,    97,  1021,    76,   113,  -444,   579,   358,   327,   229,
     1843     789,    76,   871,   884,  1106,   411,   307,   610,   113,   472,
     1844     106,   307,  1139,   307,   307,  1191,   243,   472,   263,  1018,
     1845      50,   751,  1191,   885,   212,   113,   345,   888,  1248,   110,
     1846    1161,  1163,   872,   471,   643,   435,  1134,   553,   554,    76,
     1847      41,    42,  1240,  1366,   881,   883,   110,   998,   139,   238,
     1848     912,   873,   806,   712,   914,    63,   851,    41,    42,   930,
     1849    1102,  1060,   387,  1473,   327,  1016,   498,    69,  1338,   390,
     1850     392,   572,   572,  1191,  -471,   684,  -471,  1474,   388,   307,
     1851    -445,   579,  1128,   239,  1103,   391,   393,   915,   240,   276,
     1852     626,   345,   394,  -471,   715,   621,  1500,   435,   252,   329,
     1853     411,   603,  1505,   603,  1280,  1281,   847,   110,   395,   139,
     1854     140,   599,     2,   206,     4,     5,     6,     7,    41,    42,
     1855     523,   626,  1525,  -124,   550,  -124,   626,  1532,   621,  -124,
     1856     551,   552,   626,   163,   278,   626,   626,   626,    37,   229,
     1857     806,   234,    40,   916,  -124,  -124,   866,   212,   279,    41,
     1858      42,   848,   714,   626,  1376,   266,    56,   974,    70,   917,
     1859     577,    48,   112,  1089,   342,  1089,   918,   863,   330,   703,
     1860     916,   918,  1029,   331,   808,    43,  -106,    35,  1016,    36,
     1861    -106,   878,   919,    45,    46,   113,  1083,  1084,   909,   597,
     1862     112,   112,  1076,    48,   372,   357,  1478,   332,  1188,  1364,
     1863    1188,   705,   333,  1478,    48,  1320,  1401,   706,  1114,  1409,
     1864      48,   626,   935,   621,  1189,   334,  1312,   358,    48,   720,
     1865     720,  1321,  1322,  1036,    48,   335,   399,    48,   376,   229,
     1866      48,   400,   748,   401,   402,  1352,   403,    76,  1323,  1353,
     1867      -3,   404,   405,   112,   112,   113,   345,   110,  1367,   141,
     1868     751,   751,  1446,   472,  1526,   722,   371,  1450,    41,    42,
     1869     389,   723,   500,    76,   528,   529,   530,    48,   555,   556,
     1870      48,   407,   385,  1412,   571,   408,   411,    48,   413,   472,
     1871     692,  1377,    45,    46,   966,  1471,   561,   562,   531,   703,
     1872     532,   397,   533,   534,   967,   572,   426,   442,   732,   703,
     1873     968,   241,   244,   626,   733,   626,   409,  1001,    48,  1429,
     1874     626,   345,   714,   703,   603,   427,    48,   712,  1165,   432,
     1875     750,    48,   411,   450,   342,  1440,   603,  -368,    45,    46,
     1876     986,   983,   523,   110,   523,   139,   140,   523,   715,  -397,
     1877     523,   419,   661,   411,    41,    42,    48,    48,    37,   954,
     1878     174,   175,    40,   954,   954,  1146,  1480,   484,  1481,    41,
     1879      42,   747,    48,   738,   504,   739,   806,   748,   740,  1539,
     1880      48,   744,  1158,   212,   894,  1539,   307,   329,   411,    48,
     1881     748,   110,    48,   139,   140,   372,  1539,   212,   461,   112,
     1882    1539,  1186,    41,    42,   808,  1498,  1440,   887,   626,   411,
     1883     462,   548,   106,   110,   112,   113,   345,   909,   112,   909,
     1884    1134,  1527,    48,   112,    41,    42,   896,   715,   727,  1373,
     1885    1374,   113,   748,   728,  1402,  1403,    48,    48,  1172,   291,
     1886     327,    76,   982,    48,   935,   935,   525,   995,   983,   720,
     1887      48,   508,   510,   706,   113,   307,  1236,    63,   513,   665,
     1888     413,  1360,   579,   666,   912,  1422,   983,   748,   914,    69,
     1889    1107,   129,   457,   130,   131,   132,   934,   116,   602,   751,
     1890     106,  1327,    41,    42,    45,    46,  1361,   712,  1363,   564,
     1891    1512,   212,   748,   527,   748,  -293,   847,   773,   774,    48,
     1892    1246,  1368,     8,     9,    10,    11,    12,   748,  1231,   781,
     1893     782,   345,     8,     9,    10,    11,    12,  1430,  1448,    48,
     1894      48,   692,   563,  1427,   748,   159,   565,   703,   703,  1494,
     1895     498,    31,   626,   626,   566,  1495,    48,   775,   776,  1128,
     1896      48,    31,     8,     9,    10,    11,    12,  1550,   481,   329,
     1897     411,   644,   307,   579,  -294,   830,   329,   602,    56,    34,
     1898      70,     8,     9,    10,    11,    12,   714,    48,  1384,    34,
     1899     338,    31,  1384,   777,   778,   779,   780,    48,   106,   569,
     1900    -441,   258,  1299,  1300,  1301,   703,   703,   587,   667,   159,
     1901      31,  1145,   113,   411,  1157,    48,   411,   909,  1160,    34,
     1902     602,    48,   909,    48,    37,   590,    -3,    76,    40,   645,
     1903    1162,   935,   602,   658,   659,    41,    42,   639,    34,   266,
     1904     660,    37,   323,   472,   662,    40,  1108,   663,   664,    57,
     1905      57,   339,    41,    42,   626,  1193,  1288,  1289,   112,  1291,
     1906     342,    43,  1245,    48,   411,   257,  1296,    96,  1298,    45,
     1907      46,    48,   669,   693,   694,    48,   696,   698,   719,    48,
     1908     345,    57,   112,   749,   112,   734,    45,    46,  -240,  1463,
     1909     745,     2,   206,     4,     5,     6,     7,   757,   809,    96,
     1910      37,   430,   174,   175,    40,   434,   810,   813,   442,   824,
     1911     148,    41,    42,   -12,  1355,    57,    96,   869,    57,   112,
     1912     228,   -13,   271,   113,   112,   875,   868,   895,   897,   111,
     1913     189,   898,  -418,    96,   902,   323,    96,   376,   905,   219,
     1914     725,   113,   729,   723,    56,   307,    70,   923,  -524,   106,
     1915      37,   712,   174,   175,    40,  1316,    35,   938,    36,   626,
     1916     945,    41,    42,   113,   947,   951,   952,   434,   958,   959,
     1917     488,   106,   960,   961,   112,  -295,   962,   692,   963,  1107,
     1918     979,    48,     8,     9,    10,    11,    12,   703,  1038,   106,
     1919     521,   990,    48,   991,    48,   703,   703,   703,   992,  1007,
     1920      76,  1425,  1008,   159,  1009,   348,  1073,  1010,   626,   626,
     1921    1011,    31,  1538,    48,    96,  1012,    63,   271,  1013,  1024,
     1922    -406,  -405,   307,   908,  1408,  1096,  1075,    96,    69,    48,
     1923     712,  1098,  1097,  1099,   112,  1105,  1115,   588,   748,    34,
     1924    1116,   594,  1117,    48,  1119,   112,    48,   112,   106,  1122,
     1925     973,  1124,   398,   189,  1125,   113,  1126,  1127,   399,   703,
     1926     627,  1130,  1133,   400,   631,   401,   402,   339,   403,  1155,
     1927      57,  1107,  1176,   404,   405,  1178,    96,    76,  1177,    48,
     1928    1179,   106,  1194,   112,  1195,   112,  1180,  1197,    96,   112,
     1929    1198,  1206,   867,   472,   210,   220,   212,   112,  1210,  1211,
     1930      57,  1213,   407,    -3,  1511,  1193,   408,   704,  1218,  1223,
     1931      48,    48,   266,  1228,   493,  1226,  1232,    56,    96,    70,
     1932    1237,  1239,   323,   323,    48,    37,   665,  1241,   626,    40,
     1933     666,   162,   479,  1244,  1250,  1108,    41,    42,   692,  1256,
     1934    1424,   920,  1252,   922,  1258,   194,  1260,   457,   217,  1261,
     1935     688,   227,  1262,   113,  1263,  1264,  1266,  1273,  1290,  1282,
     1936    1283,  1293,   814,   116,   602,  1294,  1311,  1295,  1318,  1107,
     1937      45,    46,  1324,  1297,  1328,   113,  1305,  1332,  1333,   106,
     1938     465,  1335,   113,  1340,   113,  1326,   113,  1342,   488,   441,
     1939     323,   442,   488,  1348,    56,    96,    70,  1349,  1350,   149,
     1940    1351,   106,   521,  1358,   521,    48,   150,   521,   106,   323,
     1941     521,   151,  1359,  1362,  1369,  1510,   604,    48,  1370,  1301,
     1942     113,   339,   113,  1378,  1379,  1386,  1380,  1108,  1387,   162,
     1943      76,  1396,  1397,   113,   327,  -407,  1400,    76,  1411,  1510,
     1944    1510,  1415,   374,  1417,  1419,  1420,   472,   161,  1426,   307,
     1945     176,  1434,  1435,   472,   173,  1421,  1436,  1439,  1193,   106,
     1946     644,  1437,    66,   117,  1510,  1193,   112,  1444,   162,  1353,
     1947     893,   373,  1449,   189,  1453,   323,     2,   206,     4,     5,
     1948       6,     7,   348,  1455,  1451,  1457,   804,  1459,    76,    48,
     1949    1461,   162,  1466,  1467,    66,  1468,   253,  1479,    48,   176,
     1950      48,  1493,   176,   444,   472,  1489,  1491,   112,   528,   529,
     1951     530,   160,  1496,  1497,   704,  1504,  1193,   845,   645,  1519,
     1952    1520,  1524,   594,  1531,  1041,  1108,  1533,  1535,   854,  1541,
     1953      48,   221,   531,    57,   532,  1548,   533,  1309,  1549,   890,
     1954    1212,    35,   783,    36,   784,  1132,   785,    56,   176,    70,
     1955     112,    96,   787,  1310,    56,   604,    70,    37,   786,   183,
     1956     184,    40,  1499,  1414,   644,  1091,  1551,   259,    41,    42,
     1957    1243,  1388,   112,  1372,  1217,   348,   112,   903,  1482,   904,
     1958    1090,   688,  1225,   926,  1129,   215,  1094,   802,  1037,   874,
     1959     989,  1104,   417,   940,   601,   111,   602,   717,  1319,     0,
     1960     994,   242,    45,    46,   948,    56,     0,    70,   792,   328,
     1961     374,   176,   793,     0,  1006,   437,   794,   259,   350,   488,
     1962       0,     0,   645,     0,     0,   445,   112,     0,     0,     0,
     1963       0,     0,     0,     0,   704,     0,   215,     0,     0,     0,
     1964     348,   339,     0,     0,   704,     0,     0,     0,   406,     0,
     1965       0,     0,     0,     0,     0,     0,   761,     0,   704,     0,
     1966       0,   767,     0,   424,   112,   176,   429,   431,   816,     0,
     1967     604,   160,   176,     0,     0,     0,     0,     0,    48,   215,
     1968       0,     0,     0,    48,   348,   348,   348,     0,   374,     0,
     1969       0,     0,   448,   520,     0,     0,   451,     0,   452,     0,
     1970      48,   997,   348,     0,     0,     0,   804,   459,     0,     0,
     1971    1486,   465,  1486,    66,     0,     0,     0,     0,   473,     0,
     1972     924,     0,  1041,     0,     0,     0,     0,     0,   480,     0,
     1973       0,    37,     0,   183,   184,    40,   431,     0,     0,     0,
     1974     215,   176,    41,    42,     0,     0,  1486,     0,  1486,     0,
     1975       0,     0,     0,     0,     0,   913,     0,     0,   176,     0,
     1976     348,     0,   176,     0,     0,     0,    74,     0,   907,     0,
     1977     411,     8,     9,    10,    11,    12,    45,    46,   215,   112,
     1978       0,     0,   880,   215,   882,     0,   816,   604,     0,   908,
     1979       0,     0,     0,     0,   804,     0,     0,     0,    74,     0,
     1980      31,   339,    48,   259,     0,     0,     0,   595,     0,     0,
     1981       0,     0,   987,   623,     0,     0,     0,   688,  1170,  1171,
     1982       0,     0,     0,     0,     0,   176,   628,     0,    34,     0,
     1983     628,     0,     0,   259,   929,   222,     0,  1286,     0,   488,
     1984    1109,   323,   681,   112,     0,   112,   112,     0,     0,     0,
     1985       0,     0,   348,     0,     8,     9,    10,    11,    12,     0,
     1986     348,     0,   704,   704,     0,     0,     0,     0,   707,   215,
     1987     571,     0,   411,     0,     0,     0,  1220,  1221,    45,    46,
     1988     473,   816,     0,    31,     0,     0,     0,     0,     0,  1031,
     1989       0,     0,     0,   604,     0,   350,     0,   845,     0,     0,
     1990     473,     0,     0,     0,     0,   520,     0,     0,   473,     0,
     1991     520,    34,     0,   520,     0,     0,     0,     0,     0,     0,
     1992     704,   704,   353,     0,     0,    57,   699,     0,     0,   431,
     1993       0,     0,   924,     0,     8,     9,    10,    11,    12,     0,
     1994       0,     0,     0,     0,   713,     0,    66,     0,     0,     0,
     1995     215,     0,     0,   750,   431,   411,     0,     0,   431,     0,
     1996       0,    45,    46,    31,     0,     0,     0,     0,     0,     0,
     1997       0,     0,    48,    48,  1085,     0,   913,   924,   688,     0,
     1998       0,   112,   112,   176,     0,     0,     0,   259,   350,     0,
     1999       0,    34,   215,    57,     0,     0,   449,     0,     0,     0,
     2000       0,     0,     0,     0,     0,     0,   604,     0,     0,     0,
     2001       0,     0,  1142,     0,     0,   176,     0,    74,     0,   112,
     2002     804,     0,    74,     0,     0,     0,     0,    77,     0,     0,
     2003       0,   176,     0,   934,   795,   602,     0,     0,     0,     0,
     2004       0,    45,    46,     0,    37,   176,   183,   184,    40,     0,
     2005       0,     0,   628,   807,     0,    41,    42,     0,  1341,    77,
     2006       0,     0,     0,  1031,     0,   826,  1343,  1344,  1345,   892,
     2007    1317,   348,   348,     0,     0,     0,    48,   112,   899,     0,
     2008       0,   185,   901,   595,     0,     0,   112,  1123,   595,    45,
     2009      46,    57,     0,     0,   628,     0,   223,   350,   350,   350,
     2010      48,    48,   704,     0,     0,     0,     0,   339,     0,  1135,
     2011     704,   704,   704,  1135,   215,   350,    37,   222,   183,   184,
     2012      40,     0,     0,     0,     0,    48,   176,    41,    42,  1109,
     2013    1389,     0,     0,   699,     0,     0,     8,     9,    10,    11,
     2014      12,     0,   215,   924,   473,     0,     0,   215,     0,     0,
     2015       0,     0,     0,   907,   913,   411,     0,     0,     0,   913,
     2016       0,    45,    46,  1135,     0,    31,     0,     0,     0,     0,
     2017     473,     0,     0,   350,   704,     0,     0,   214,     0,     0,
     2018       0,     0,   939,   355,    74,   431,     0,     0,     0,     0,
     2019       0,     0,     0,    34,     0,     0,     0,     0,    37,   353,
     2020     183,   184,    40,     0,    74,   924,   924,   259,   713,    41,
     2021      42,     0,    74,   969,     0,     0,     0,     0,   215,     0,
     2022       0,  1109,     0,     0,     0,     0,     0,     0,   214,     0,
     2023     353,     0,   215,     0,     0,   601,     0,   602,     0,     0,
     2024       0,    57,    57,    45,    46,     0,     0,     0,   353,     0,
     2025      74,     0,     0,   699,     0,     0,     0,     0,     0,     0,
     2026       0,     0,     0,   699,    57,   350,     0,   628,     0,     0,
     2027    1004,   214,   628,   807,     0,     0,     0,   699,    77,     0,
     2028       0,     0,    57,    77,     0,     0,     0,  1015,     0,     0,
     2029       0,   176,   353,     0,     0,     0,     0,     0,     0,  1081,
     2030       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2031      17,    18,    19,    20,    21,    22,    23,    24,    25,  1109,
     2032       0,    26,    27,    28,     0,     0,   215,   348,   348,     0,
     2033      31,    79,   214,     0,     0,     0,    57,     0,    66,     0,
     2034       0,    57,     0,     0,    37,     0,   183,   184,    40,     0,
     2035    1485,     0,  1485,     0,     0,    41,    42,   353,    34,     0,
     2036     628,     0,     0,    79,     0,   207,    39,   259,   713,     0,
     2037     214,  1087,     0,     0,    57,   214,     0,     0,   223,     0,
     2038    1135,   265,  1135,  1135,     0,     0,  1485,     0,  1485,    45,
     2039      46,     0,     0,     0,     0,     0,     0,  1101,     0,     0,
     2040     224,   353,   353,   353,     0,   431,   117,     0,    45,    46,
     2041     924,     0,     0,     0,     0,   323,     0,     0,     0,   353,
     2042       0,     0,     0,     0,     0,     0,   924,     0,     0,     0,
     2043       0,     0,     0,     0,     0,     0,     0,   353,     0,     0,
     2044       0,     0,     0,     0,     0,    77,     0,   348,    74,     0,
     2045       0,     0,  1207,     0,     0,     0,     0,     0,     0,     0,
     2046     355,   214,     0,   595,     0,    77,     0,     0,     0,     0,
     2047       0,     0,    57,    77,    74,     0,   429,   353,     0,     0,
     2048       0,   699,   699,     0,   350,   350,     0,   356,     0,     0,
     2049       0,   355,     0,     0,    57,     0,   924,   924,     0,     0,
     2050       0,    57,     0,     0,  1192,     0,     0,     0,     0,   355,
     2051       0,    77,   353,     0,     0,     0,     0,     0,  1135,  1135,
     2052       0,     0,     0,   215,     0,     0,     8,     9,    10,    11,
     2053      12,     0,     8,     9,    10,    11,    12,     0,     0,   699,
     2054     699,     0,   214,     0,     0,     0,     0,     0,     0,     0,
     2055       0,     0,    57,   355,     0,    31,  1464,   353,     0,     0,
     2056       0,    31,     0,     0,     0,     0,     0,   353,     0,   353,
     2057       0,     0,     0,     0,   222,     0,   479,   353,     0,     0,
     2058       0,   353,    79,    34,   214,     0,   628,    79,    37,    34,
     2059     183,   184,    40,     0,    37,     0,   183,   184,    40,    41,
     2060      42,     0,     0,     0,   176,    41,    42,     0,     0,     0,
     2061       0,     0,   713,     0,  1513,     0,     0,     0,   355,     0,
     2062       0,     0,     0,  1521,     0,   907,     0,   411,     0,     0,
     2063       0,   185,     0,    45,    46,     0,     0,     0,     0,    45,
     2064      46,     0,    74,     0,     0,     0,     0,    37,     0,   183,
     2065     184,    40,     0,     0,     0,  1287,     0,     0,    41,    42,
     2066       0,     0,   355,   355,   355,     0,     0,     0,     0,     0,
     2067       0,     0,   353,   259,     0,     0,     0,    66,     0,     0,
     2068     355,     0,   224,     0,  1509,     0,   411,     0,     0,   699,
     2069       0,   713,    45,    46,     0,   117,   213,     0,   355,     0,
     2070    1371,     0,     0,     0,     0,   232,   214,     0,     0,    77,
     2071       0,   215,     0,     0,     0,     0,     0,     0,     0,     0,
     2072       0,   699,     0,     0,     0,     0,     0,     0,     0,   699,
     2073     699,   699,     0,     0,   214,    77,     0,     0,   355,   214,
     2074     350,   350,     0,     0,     0,     0,     0,   213,    86,    79,
     2075       0,     0,     0,     0,  1192,     0,     0,     0,     0,     0,
     2076       0,     0,     0,     0,   356,     0,     0,     0,     0,    79,
     2077       0,     0,     0,   355,   176,     0,     0,    79,     0,     0,
     2078      86,     0,     0,     0,     0,   353,   353,   117,   353,   353,
     2079     213,     0,     0,   699,     0,   356,     0,     0,     0,     0,
     2080       0,     0,     0,     0,     0,     0,   215,     0,    74,     0,
     2081     214,     0,     0,   356,     0,    79,     0,   225,   355,     0,
     2082       0,     0,     0,     0,   214,     0,     0,     0,   355,     0,
     2083     355,     0,     0,     0,     0,   223,     0,     0,   355,     0,
     2084       0,     0,   355,   353,   353,     0,     0,     0,     0,     0,
     2085       0,   213,  1483,     0,  1487,     0,     0,   356,     0,     0,
     2086     350,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2087     167,     0,   172,     0,     0,   178,   179,   180,     0,   182,
     2088       0,     0,     0,     0,     0,   117,     0,     0,  1515,   213,
     2089    1517,    31,     0,   233,   213,     0,     0,     0,     0,     0,
     2090       0,     0,     0,    77,   363,   248,   249,  1192,     0,   499,
     2091       0,     0,     0,     0,  1192,     0,   353,     0,   214,    34,
     2092       0,     0,   356,     0,    37,     0,   183,   184,    40,     0,
     2093       0,     0,  1546,   355,  1547,    41,    42,     0,     0,     0,
     2094       0,     0,     0,     0,     0,     0,     0,  1554,  1555,     0,
     2095       0,     0,     0,     0,     0,     0,     0,     0,     0,   222,
     2096       0,  1509,     0,   411,     0,  1192,   356,   356,   356,    45,
     2097      46,     0,  1534,     0,     0,     0,     0,     0,     0,     0,
     2098     213,    74,     0,     0,   356,     0,     0,     0,     0,     0,
     2099       0,     0,     0,   353,     0,   353,     0,     0,     0,    86,
     2100       0,     0,   356,     0,    86,     0,     0,     0,     0,     0,
     2101       0,     0,     0,    79,     0,     0,     0,     0,     0,     8,
     2102       9,    10,    11,    12,     0,   353,     0,     0,     0,     0,
     2103       0,     0,     0,   353,   353,   353,     0,     0,     0,    79,
     2104       0,     0,   356,     0,   353,   353,   355,   355,    31,   355,
     2105     355,     0,     0,     0,     0,     0,     0,     0,    74,     0,
     2106       0,   213,     0,     0,     0,     0,     0,     0,     0,    77,
     2107       0,     0,     0,     0,     0,     0,    34,   356,   213,     0,
     2108       0,    37,     0,   183,   184,    40,     0,     0,     0,     0,
     2109       0,     0,    41,    42,     0,     0,     0,   353,     0,   225,
     2110       0,     0,     0,   213,   355,   355,   124,   127,   128,     0,
     2111       0,     0,     0,     0,     0,   214,     0,     0,   265,     0,
     2112       0,     0,   356,     0,     0,     0,    45,    46,     0,     0,
     2113       0,     0,   356,     0,   356,     0,     0,     0,     0,   224,
     2114       0,     0,   356,     0,     0,     0,   356,     0,   535,   536,
     2115     537,   538,   539,   540,   541,   542,   543,   544,   545,     0,
     2116       0,   592,     0,   600,   353,     0,    86,     0,     0,     0,
     2117       0,     0,     0,     0,   624,   625,     0,   355,   254,     0,
     2118     255,   363,   546,     0,     0,     0,    86,     0,     0,     0,
     2119       0,     0,     0,     0,    86,     0,     0,     0,     0,     0,
     2120       0,     0,     0,     0,     0,     0,     0,    79,     0,     0,
     2121       0,    74,   363,     0,     0,     0,     0,     0,    74,     0,
     2122     223,     0,     0,     0,     0,   213,     0,     0,     0,     0,
     2123     363,     0,    86,     0,     0,     0,     0,   356,     0,     0,
     2124       0,     0,    77,     0,     0,     0,     0,     0,     0,     0,
     2125       0,     0,     0,   213,   355,     0,   355,     0,   213,     0,
     2126       0,   396,     0,     0,     0,     0,     0,     0,     0,    74,
     2127       0,   415,   416,     0,   363,     0,   420,     0,   422,   423,
    20532128       0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
    2054        0,    77,     0,     0,     0,     0,     0,     0,     0,    77,
    2055        0,     0,   353,     0,     0,     0,   595,     8,     9,    10,
    2056       11,    12,     0,     0,     0,     0,     0,   355,     0,   429,
    2057        0,   356,     0,     0,   699,   699,     0,   350,   350,   126,
    2058        0,     0,   213,     0,     0,   355,    31,    77,     0,     0,
    2059        0,     0,     0,  1108,     0,     0,   353,  1189,     0,     0,
    2060        0,     0,     0,     0,     0,     0,   353,     0,   353,     0,
    2061        0,     0,     0,   222,    34,     0,   353,     0,     0,    37,
    2062      353,   183,   184,    40,  1482,     0,  1482,     0,     0,   355,
    2063       41,    42,   699,   699,     0,     0,     0,     0,     0,     0,
    2064        0,  1283,     0,     0,     0,     0,     0,     0,     0,  1480,
    2065        0,  1484,     0,     0,     0,     0,   601,   215,   602,     0,
    2066     1482,     0,  1482,     0,    45,    46,    79,     0,     0,     0,
    2067        0,    79,     0,     0,     0,     0,     0,   213,     0,   628,
    2068        0,    74,     0,     0,     0,  1512,     0,  1514,     0,   323,
    2069        0,     0,     0,     0,   355,     0,     0,     0,     0,     0,
    2070        0,     0,     0,   713,     0,     0,     0,     0,     0,    86,
    2071        0,   353,     0,     0,     0,     0,     0,   413,     0,     0,
    2072        0,     0,     0,     0,   421,     0,     0,     0,     0,  1543,
    2073        0,  1544,     0,     0,     0,     0,     0,     0,   355,   355,
    2074      355,    86,     0,     0,  1551,  1552,  1284,     0,     0,     0,
    2075        0,     0,   215,     0,     0,     0,   355,     0,     0,     0,
    2076        0,     0,   796,   797,   259,     0,   224,     0,    66,     0,
    2077        0,     0,     0,     0,   355,     0,     0,     0,   225,     0,
    2078      699,     0,   713,     0,     0,    77,   117,     0,     0,     0,
    2079        0,   830,     0,     0,   833,   834,   413,   837,     0,   839,
    2080      840,     0,     0,     0,   841,   842,     0,     0,     0,     0,
    2081        0,    77,   699,     0,   355,     0,     0,     0,     0,     0,
    2082      699,   699,   699,     0,   353,   353,     0,   353,   353,     0,
    2083        0,   350,   350,    79,     0,     0,     0,     0,     8,     9,
    2084       10,    11,    12,     0,     0,  1189,     0,    74,   356,   355,
    2085        0,   577,     0,    79,     0,     0,     0,     0,     0,   581,
    2086        0,    79,   584,     0,     0,   363,     0,    31,     0,     0,
    2087        0,     0,     0,     0,     0,     0,     0,     0,   117,   356,
    2088        0,     0,   353,   353,   699,     0,   126,   126,     0,     0,
    2089        0,     0,     0,   355,     0,    34,     0,   356,     0,    79,
    2090       37,     0,     0,   355,    40,   355,     0,     0,     0,     0,
    2091      223,    41,    42,   355,     0,   126,     0,   355,   126,   126,
    2092        0,   126,     0,   126,   126,     0,   413,     0,   126,   126,
    2093      421,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2094        0,   356,   970,   971,     0,    45,    46,     0,     0,     0,
    2095        0,   350,     0,   353,     0,     0,     0,     0,     0,     0,
    2096       86,     0,     0,     0,     0,    86,     0,     0,     0,     0,
    2097        0,     0,     0,     0,     0,     0,   117,     0,    77,     0,
     2129       0,     0,     0,     0,   355,   355,   355,     0,     0,     0,
     2130       0,     0,     0,   214,     0,   355,   355,     0,     0,     0,
     2131       0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
     2132       0,     0,     0,     0,     0,     0,     0,     0,     0,   213,
     2133       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2134       0,     0,     0,   213,     0,     0,     0,     0,     0,     0,
     2135     356,   356,     0,   356,   356,     0,     0,     0,   355,     0,
     2136       0,     0,     0,   499,     0,     0,     0,     0,     0,     0,
     2137       0,     0,     0,    79,  1014,     0,     0,     8,     9,    10,
     2138      11,    12,     0,   363,   363,   363,     0,     0,     0,     0,
     2139       0,     0,     0,     0,     0,     0,     0,     0,   214,     0,
     2140       0,   363,     0,     0,   282,   283,    31,   284,   356,   356,
     2141       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2142       0,     0,     0,     0,     0,   355,     0,     0,     0,     0,
     2143      86,     0,     0,   285,    34,     0,     0,   213,     0,   286,
     2144       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2145      41,    42,     0,   292,   293,     0,    86,     0,     0,   363,
     2146       0,     0,     0,     8,     9,    10,    11,    12,     0,     0,
     2147       0,     0,    77,     0,     0,     0,   294,     0,   379,    77,
     2148       0,   356,     0,     0,   344,    46,   296,   297,   298,   299,
     2149       0,     0,    31,     0,   363,     0,     0,     0,     0,     0,
    20982150       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2099        0,     0,     0,     0,     0,     0,   222,     0,  1189,     0,
    2100        0,     0,     0,     0,     0,  1189,   356,   413,   355,     0,
    2101        0,     0,     0,     0,     0,     0,     0,     0,    74,     0,
     2151       0,     0,     0,     0,     0,     0,     0,   927,     0,   928,
     2152      34,     0,     0,     0,   224,    37,   931,   932,     0,    40,
     2153      77,   937,     0,     0,     0,     0,    41,    42,     0,   363,
     2154       0,     0,     0,   942,     0,     0,    79,     0,   946,   363,
     2155       0,   363,     0,     0,     0,     0,   225,     0,   356,   363,
     2156     356,     0,   719,   363,     0,     0,     0,     0,     0,     0,
     2157      45,    46,     0,     0,     0,     0,   980,     0,     0,     0,
    21022158       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2103      353,     0,   353,     0,     0,     0,     0,     0,     0,     0,
    2104        0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
    2105      356,   356,   356,     0,     0,     0,  1189,     0,     0,     0,
    2106      225,     0,   353,  1531,     0,     0,   126,   126,   356,     0,
    2107      353,   353,   353,    31,     0,     0,     0,     0,     0,     0,
    2108        0,   353,   353,     0,     0,     0,   356,     0,     0,     0,
    2109        0,     0,     0,     0,     0,    74,     0,    79,     0,   577,
    2110      577,    34,     0,     0,  1091,     0,    37,     0,   183,   184,
     2159     356,     0,     0,     0,     0,     0,     0,     0,   356,   356,
     2160     356,     0,     0,     0,     0,     0,     0,     0,     0,   356,
     2161     356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2162       0,     0,     0,    79,    86,     0,     0,     0,     0,     0,
     2163       0,     0,     0,     0,   213,     0,     0,     0,     0,     0,
     2164       0,     0,  1166,     0,     0,     8,     9,    10,    11,    12,
     2165       0,     0,     0,     0,   363,   797,   798,     0,     0,     0,
     2166       0,     0,   356,     0,     0,     0,     0,     0,   165,     0,
     2167       0,     0,   282,   283,    31,   284,  1025,  1026,  1027,  1028,
     2168       0,  1030,     0,     0,   831,   218,     0,   834,   835,     0,
     2169     838,     0,   840,   841,     0,     0,  1074,   842,   843,     0,
     2170       0,   285,    34,     0,     0,     0,     0,   286,     0,     0,
     2171    1080,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2172       0,   292,   293,     0,     0,     0,     0,     0,     0,   356,
     2173       0,     0,   165,     0,     0,     0,   272,     0,     0,     0,
     2174       0,     0,     0,     0,   294,     0,   379,     0,     0,     0,
     2175    1100,     0,  1167,    46,   296,   297,   298,   299,     0,     0,
     2176       0,     0,     0,     0,     0,   165,     0,   363,   363,     0,
     2177     363,   363,     0,     0,     0,   369,    79,     0,     0,   375,
     2178       0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
     2179      86,     0,     0,     0,     0,  1131,     0,     0,     0,     0,
     2180       0,  1140,     0,     0,     0,     0,  1144,     0,     0,     0,
     2181       0,  1148,     0,  1149,     0,     0,     0,  1151,     0,  1152,
     2182    1153,     0,   213,  1156,     0,   363,   363,     0,   165,     0,
     2183       0,     0,  1168,     0,    79,   971,   972,     0,     0,     0,
     2184     218,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2185    1183,  1184,     0,     0,     0,     0,     0,     0,   165,     8,
     2186       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2187      19,    20,    21,    22,    23,    24,    25,  1214,     0,     0,
     2188    1216,     0,     0,   375,     0,     0,     0,     0,    31,     0,
     2189     165,     0,     0,     0,     0,     0,     0,     0,   363,     0,
     2190       0,     0,   126,   126,   126,     0,     0,     0,     0,     0,
     2191       0,     0,     0,   524,     0,     0,    34,   213,     0,     0,
     2192       0,     0,     0,  1230,     0,     0,   165,     0,     0,  1234,
     2193    1235,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2194       0,   225,     0,     0,     0,     0,     0,     0,     0,  1251,
     2195       0,     0,     0,  1253,     0,     0,     0,     0,  1257,     0,
     2196       0,     0,     0,    86,   598,     0,     0,     0,     0,   622,
     2197       0,  1265,     0,     0,   126,   363,   126,   363,     0,     0,
     2198       0,     0,     0,     0,  1272,     0,  1274,  1275,  1276,  1277,
     2199       0,     0,     0,     0,     0,     0,     0,     0,  1092,     0,
     2200       0,   275,  1284,     0,  1285,     0,     0,   363,   172,     0,
     2201       0,     0,     0,     0,     0,   363,   363,   363,     0,     0,
     2202       0,     0,     0,     0,     0,     0,   363,   363,     0,     0,
     2203     211,     0,     0,     0,     0,     0,     0,  1313,  1314,   231,
     2204      86,   235,     0,   237,     0,   165,   165,     0,     0,     0,
     2205     246,     0,   369,     0,     0,     0,     0,   126,     0,     0,
     2206       0,     0,     0,     0,     0,   126,     0,   126,   126,     0,
     2207       0,     0,   126,   524,   126,   126,     0,     0,     0,   363,
     2208       0,   211,     0,   235,   237,   246,     0,  1346,  1347,     0,
     2209       0,     0,     0,     0,     0,     0,     0,  1357,     0,     0,
     2210       0,   716,     0,     0,     0,     0,     0,     0,     0,     0,
     2211       0,     0,     0,   165,     0,     0,     0,     0,     0,     0,
     2212       0,     0,     0,     0,   211,   524,     0,   524,     0,     0,
     2213     524,     0,   165,   524,     0,     0,     0,     0,     0,     0,
     2214       0,     0,     0,     0,   126,   369,   363,     0,     0,     0,
     2215       0,     0,     0,     0,     0,     0,     0,     0,  1392,  1222,
     2216    1393,  1394,  1395,     0,     0,     0,     0,     0,     0,     0,
     2217       0,     0,  1399,     0,     0,     0,     0,     0,     0,     0,
     2218       0,  1410,     0,     0,     0,   211,     0,   235,   237,   246,
     2219       0,     0,     0,    86,     0,     0,     0,     0,   165,     0,
     2220      86,     0,     0,     0,     0,     0,  1431,     0,     0,     0,
     2221     369,     0,     0,     0,   812,     0,     0,     0,     0,     0,
     2222       0,     0,     0,   211,     0,     0,     0,     0,   211,     0,
     2223       0,     0,     0,     0,   156,     0,     0,     0,     0,     0,
     2224     598,     0,     0,   497,     0,   598,     0,     0,     0,  1469,
     2225    1470,    86,     0,     0,   369,   369,   369,     0,     0,     0,
     2226       0,     0,  1475,     0,     0,     0,     0,     0,     0,  1475,
     2227       0,     0,   369,     0,     0,     0,     0,     0,     0,     0,
     2228       0,   251,     0,     0,     0,     0,     0,     0,     0,     0,
     2229    1308,   256,   211,     0,     0,     0,     0,     0,     0,     0,
     2230       0,  1508,     0,     0,   524,  1514,     0,     0,     0,     0,
     2231       0,     0,     0,     0,   211,     0,     0,     0,     0,   235,
     2232     237,     0,     0,     0,     0,     0,     0,   246,     0,     0,
     2233     369,     0,   936,  1536,     0,  1537,     0,     0,     0,     0,
     2234       0,     0,     0,     0,     0,     0,     0,   156,     0,     0,
     2235       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2236       0,   386,     0,  1552,  1553,   716,     0,     0,     0,     0,
     2237     211,  1556,  1557,     0,     0,     0,     0,     0,     0,     0,
     2238       0,     0,     0,     0,   418,     0,     0,     0,   211,   282,
     2239     283,     0,   284,   211,     0,   211,     0,     0,   433,     0,
     2240       0,     0,     0,     0,     0,     0,     0,   438,     0,     0,
     2241       0,     0,   211,     0,     0,   211,   211,   446,   285,     0,
     2242       0,     0,   369,   211,   286,     0,   622,     0,   287,     0,
     2243     369,   288,   289,   290,   291,    41,    42,   211,   292,   293,
     2244       0,     0,   464,     0,   211,     0,     0,   474,     0,     0,
     2245       0,   126,   126,     0,     0,     0,     0,     0,     0,     0,
     2246     482,   294,     0,   379,     0,     0,   492,     0,   496,    45,
     2247      46,   296,   297,   298,   299,     0,     0,     0,     0,     0,
     2248     126,     0,   788,   126,   126,   526,   126,     0,   126,   126,
     2249       0,     0,     0,   126,   126,     8,     9,    10,    11,    12,
     2250      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2251      23,    24,    25,  -296,     0,     0,     0,     0,     0,     0,
     2252       0,     0,     0,     0,    31,   716,     0,     0,   586,     0,
     2253       0,     0,     0,   591,     0,     0,     0,     0,     0,     0,
     2254     524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2255       0,     0,    34,     0,     0,     0,     0,     0,     0,   211,
     2256       0,     0,   636,  -296,   165,     0,   637,   638,     0,   640,
     2257       0,     0,     0,     0,     0,     0,   651,   652,     0,   653,
     2258     654,     0,   655,     0,   656,     0,     0,   211,     0,     0,
     2259       0,     0,   211,     0,     0,     0,     0,     0,     0,     0,
     2260       0,   586,     0,     0,   282,   283,     0,   284,     0,   671,
     2261       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2262     598,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2263       0,   126,   126,   285,   682,     0,     0,     0,     0,   286,
     2264       0,   369,   369,   287,     0,     0,   288,   289,   290,   291,
     2265      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2266     708,     0,     0,   211,     0,     0,   711,     0,     0,     0,
     2267       0,   464,     0,     0,     0,     0,   294,   211,   379,     0,
     2268       0,   380,     0,     0,    45,    46,   296,   297,   298,   299,
     2269       0,     0,     0,     0,     0,     0,     0,   497,     0,     0,
     2270       0,   524,     0,     0,     0,     0,     0,   746,     0,     0,
     2271       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2272       0,     0,   764,     0,  -519,     0,     0,     1,     2,     3,
     2273       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2274      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2275      24,    25,     0,     0,    26,    27,    28,    29,     0,   211,
     2276      30,   791,     0,    31,    32,     0,     0,     0,     0,   716,
     2277     801,   211,     0,     0,     0,     0,     0,   803,     0,     0,
     2278       0,     0,     0,   811,     0,     0,     0,     0,    33,   126,
     2279     211,    34,   825,    35,   126,    36,    37,     0,    38,    39,
    21112280      40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    2112        0,   355,   355,    79,   355,   355,   356,    86,     0,     0,
    2113        0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
    2114        0,     0,   363,   906,    77,   411,     0,    86,     0,     0,
    2115        0,    45,    46,     0,     0,    86,     0,     0,     0,     0,
    2116        0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
    2117        0,     0,     0,   363,     0,     0,     0,     0,     0,   355,
    2118      355,     0,     0,     0,     0,     0,   884,     0,     0,     0,
    2119      887,   363,     0,    86,     0,     0,     0,     0,     0,     0,
    2120        0,   353,     0,     0,     0,   356,     0,     0,     0,     0,
    2121        0,     0,     0,     0,     0,   356,     0,   356,     0,     0,
    2122        0,     0,   224,   126,     0,   356,     0,     0,   126,   356,
    2123        0,     0,     0,     0,     0,   363,   167,     0,   172,     0,
    2124        0,   178,   179,   180,     0,   182,     0,     0,    74,     0,
    2125      355,     0,     0,     0,     0,    74,     0,     0,     0,   233,
    2126        0,     0,     0,     0,     0,  1219,     0,     0,     0,     0,
    2127        0,   248,   249,     0,     8,     9,    10,    11,    12,     0,
     2281       0,   218,     0,     0,     0,     0,     0,     0,     0,     0,
     2282       0,     0,     0,     0,     0,   341,   364,     0,     0,     0,
     2283       0,     0,   865,    43,     0,    44,     0,     0,     0,     0,
     2284       0,    45,    46,     0,     0,     0,     0,     0,   716,     0,
     2285       0,     0,     0,     0,     0,     0,     0,     0,     0,   414,
     2286       0,     0,     0,     0,     0,     0,   414,     0,   811,     0,
     2287       0,     0,     0,     0,     0,     0,   906,     0,     0,     8,
     2288       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2289      19,    20,    21,    22,    23,    24,    25,   369,   369,    26,
     2290      27,    28,     0,   211,     0,     0,   218,   251,    31,     0,
     2291       0,     0,     0,     0,     0,     0,     0,   943,   944,     0,
    21282292       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2129       79,     0,     0,   223,     0,     0,     0,     0,     0,     0,
    2130      363,     0,     0,    31,     0,     0,    74,     0,     0,     0,
    2131        0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
    2132      356,     0,   577,     0,     0,     0,     0,   355,     0,   355,
    2133        0,    34,     0,     0,     0,     0,    37,     0,   183,   184,
    2134       40,     0,     0,     0,   363,   363,   363,    41,    42,     0,
    2135        0,     0,     0,     0,     0,     0,     0,     0,     0,   355,
    2136        0,     0,   363,     0,     0,     0,     0,   355,   355,   355,
    2137        0,     0,     0,  1506,     0,   411,     0,     0,   355,   355,
    2138      363,    45,    46,     0,     0,   507,     0,   509,   512,   126,
    2139        0,    86,    77,     0,  1305,   515,   516,     0,     0,     0,
     2293       0,     0,     0,   211,     0,     0,    34,     0,   414,     0,
     2294       0,    37,     0,    38,    39,    40,     0,     0,     0,     0,
     2295     981,     0,    41,    42,     0,   126,   985,     0,     0,     0,
     2296       0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
     2297       0,     0,     0,     0,     0,     0,     0,     0,    43,   211,
     2298     157,     0,     0,     0,     0,     0,    45,    46,     0,     0,
     2299       0,     0,     0,   414,     0,     0,     0,     0,     0,     0,
     2300       0,   414,   582,     0,   414,   585,     0,     0,     0,     0,
     2301       0,     0,     0,     0,     0,   364,     0,   369,     0,   614,
     2302    1019,     0,     0,     0,     0,     0,     0,  1020,     0,     0,
     2303       0,     0,     0,     0,     0,     0,     0,     0,   632,     0,
     2304    1022,   341,  1023,     0,     0,     0,     0,     0,     0,     0,
     2305       0,   211,     0,     0,     0,     0,  1035,     0,     0,     0,
     2306       0,     0,  1039,     0,     0,   211,     0,     0,   414,     0,
     2307       0,     0,   414,   524,  1077,   524,     0,  1078,     0,     0,
     2308       0,     0,     0,     0,     0,     0,   126,     0,     0,     0,
    21402309       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2141      509,   509,     0,     0,     0,     0,     0,    86,     0,     0,
    2142      363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2143        0,   355,     0,   356,   356,     0,   356,   356,     0,     0,
    2144      413,     0,     0,     0,     0,     0,     0,     0,   509,     0,
    2145        0,     0,     0,     0,     0,   363,    79,     8,     9,    10,
     2310       0,     0,     0,   364,     0,     0,     0,     0,     0,   524,
     2311       0,   524,     0,     0,     0,     0,     0,     0,     0,     0,
     2312       0,     0,   507,     0,   509,   512,     0,     0,     0,     0,
     2313       0,     0,   515,   516,     0,     0,     0,     0,   165,     0,
     2314       0,     0,     0,     0,     0,     0,     0,   509,   509,   414,
     2315       0,     0,   364,     0,   591,     0,   211,     0,     0,     0,
     2316       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2317      17,    18,    19,    20,    21,    22,    23,    24,    25,  -296,
     2318       0,    26,    27,    28,     0,   509,     0,     0,     0,  1150,
     2319      31,   414,     0,     0,     0,   341,   364,     0,     0,     0,
     2320       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2321       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2322       0,   509,     0,    37,     0,   336,   337,    40,     0,  -296,
     2323       0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
     2324       0,   414,   414,     0,     0,     0,     0,   526,     0,     0,
     2325       0,   211,     0,  1215,     0,     0,   321,     0,     0,     0,
     2326     805,   364,   338,     0,     0,     0,   346,     0,    45,    46,
     2327       0,   614,     0,   614,   614,     0,     0,     0,   382,   382,
     2328     614,     0,     0,     0,     0,     0,     0,  1227,     0,     0,
     2329     844,   364,  1229,     0,     0,     0,   364,     0,     0,     0,
     2330    1233,     0,     0,     0,     0,   364,   364,   364,     0,     0,
     2331       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2332       0,     0,     0,   364,     0,     0,     0,     0,   414,   886,
     2333       0,     0,   414,   889,     0,  1259,     0,     0,     0,   891,
     2334       0,     0,     0,     0,     0,     0,     0,  1267,     0,   321,
     2335    1268,     0,  1269,     0,     0,     0,     0,     0,   414,     0,
     2336       0,     0,     0,     0,     0,     0,  1278,  1279,     0,     0,
     2337       0,     0,     0,   478,     0,     0,     0,     0,     0,     0,
     2338       0,   364,   614,     0,     0,     0,     0,     0,  1292,     0,
     2339     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
     2340     509,   509,   509,   509,   509,   509,   509,   509,     0,     0,
     2341       0,     0,     0,     0,     0,   341,   364,     0,     0,     0,
     2342     414,   414,     0,     0,     0,     0,     0,     0,     0,     0,
     2343       0,     0,     0,     0,     0,  1331,     0,     0,     0,     0,
     2344       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2345      18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
     2346      26,    27,    28,     0,     0,   414,     0,     0,     0,    31,
     2347       0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
     2348     805,   364,     0,     0,   614,     0,   614,     0,     0,     0,
     2349     382,     0,     0,     0,     0,     0,   614,    34,   211,     0,
     2350       0,     0,    37,     0,   336,   337,    40,     0,  -296,     0,
     2351    1381,     0,  1382,    41,    42,     0,     0,     0,     0,     0,
     2352       0,     0,     0,     0,     0,     0,  1390,     0,  1391,     0,
     2353       0,     0,     0,     0,     0,     0,   509,     0,     0,   635,
     2354       0,   338,     0,  1398,     0,     0,     0,    45,    46,     0,
     2355       0,     0,     0,     0,     0,     0,     0,     0,     0,  1416,
     2356    1418,     0,     0,     0,     0,     0,     0,     0,   805,     0,
     2357    1423,     0,     0,  1233,     0,   341,   364,   414,     0,   414,
     2358       0,     0,     0,   414,   710,     0,     0,     0,     0,     0,
     2359       0,     0,     0,     0,  1445,     0,     0,   509,     0,     0,
     2360       0,     0,     0,  1452,   614,   614,  1454,     0,  1456,  1458,
     2361    1460,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2362       0,     0,     0,   742,     0,     0,     0,     0,   509,     0,
     2363       0,     0,     0,     0,     0,     0,   759,     0,     0,   414,
     2364       0,   742,     0,     0,   742,     0,     0,     0,  1490,     0,
     2365    1492,     0,  1233,     0,     0,     0,     0,   769,     0,     0,
     2366     414,  1147,     0,     0,     0,     0,     0,  1503,     0,     0,
     2367       0,   364,     0,     0,     0,     0,     0,   414,  1159,   790,
     2368     614,   614,  1164,     0,     0,     0,     0,     0,     0,   799,
     2369       0,     0,   364,   364,     0,     0,   346,     0,     0,     0,
     2370       0,   759,     0,     0,     1,     2,     3,     4,     5,     6,
     2371       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2372      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2373       0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
     2374      31,    32,     0,     0,     0,     0,     0,     0,   509,     0,
     2375     864,     0,     0,     0,     0,   414,     0,   414,   382,     0,
     2376       0,     0,   414,     0,     0,    33,     0,     0,    34,     0,
     2377      35,   614,    36,    37,     0,    38,    39,    40,     0,     0,
     2378       0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
     2379       0,     0,     0,   509,   805,   414,  1247,     0,     0,     0,
     2380       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2381      43,     0,    44,     0,     0,     0,  -523,     0,    45,    46,
     2382     364,     0,     0,     0,     0,     0,     0,     0,   509,     0,
     2383       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2384       0,   509,     0,     0,     0,     0,     0,     0,   282,   283,
     2385       0,   284,     0,     0,     0,     0,   759,     0,   965,     0,
     2386       0,     0,     0,     0,     0,     0,     0,     0,   976,     0,
     2387       0,     0,     0,     0,   984,     0,     0,   285,     0,     0,
     2388       0,   341,   509,   641,     0,   139,   140,   287,     0,     0,
     2389     288,   289,   290,   291,    41,    42,     0,   292,   293,   364,
     2390       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2391       0,     0,     0,     0,     0,     0,     0,  1002,  1003,     0,
     2392     294,   346,   642,     0,   643,   380,     0,     0,    45,    46,
     2393     296,   297,   298,   299,     0,   346,     0,     0,     0,     0,
     2394       0,     0,     0,     0,     0,     0,     0,     0,   364,   364,
     2395       0,     0,     0,     0,     0,     0,     0,     0,     0,   509,
     2396       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2397       0,     0,     0,     0,     0,  1033,     0,     0,     0,   382,
     2398       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2399       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    21462400      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2147       21,    22,    23,    24,    25,  -293,     0,    26,    27,    28,
    2148        0,     0,     0,     0,   509,     0,    31,     0,     0,     0,
    2149        0,   356,   356,     0,     0,     0,     0,     0,   355,   363,
    2150        0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    2151        0,   363,     0,     0,    34,     0,   225,  1143,   126,   363,
    2152        0,    38,    39,   363,     0,  -293,     0,   592,     0,   600,
    2153        0,     0,     0,     0,  1155,     0,     0,     0,     0,     0,
    2154      624,   625,     0,     0,     0,    77,     0,     0,     0,     0,
    2155      282,   283,    77,   284,     0,     0,   635,     0,   338,     0,
    2156        0,     0,   356,     0,    45,    46,     0,     0,     0,     0,
    2157        0,     0,     0,     0,     0,     0,     0,     0,     0,   285,
    2158        0,     0,     0,     0,    86,   286,     0,     0,     0,   287,
    2159        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    2160      293,     0,     0,    77,     0,   224,     0,     0,     0,     0,
    2161        0,     0,   413,     0,   363,     0,     0,     0,     0,     0,
    2162        0,     0,   294,     0,   379,     0,     0,    79,     0,     0,
    2163       45,    46,   296,   297,   298,   299,     0,     0,     0,   356,
    2164        0,   356,  1013,   787,     0,     8,     9,    10,    11,    12,
    2165        0,     0,  1243,   509,   509,   509,   509,   509,   509,   509,
    2166      509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
    2167      509,   356,   282,   283,    31,   284,     0,     0,     0,   356,
    2168      356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
    2169      356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
    2170        0,   285,    34,     0,    79,     0,     0,   286,     0,     0,
    2171        0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2172        0,   292,   293,     0,     0,     0,     0,   363,   363,     0,
    2173      363,   363,     0,     0,     0,     0,     0,     0,     0,     0,
    2174        0,     0,     0,   356,   294,     0,   379,     0,     0,     0,
    2175       86,     0,   344,    46,   296,   297,   298,   299,     0,     0,
     2401      21,    22,    23,    24,    25,     0,   346,    26,    27,    28,
     2402      29,   509,   509,    30,     0,     0,    31,    32,     0,     0,
     2403       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2404       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2405       0,    33,     0,     0,    34,   321,    35,     0,    36,    37,
     2406       0,    38,    39,    40,     0,     0,     0,     0,   364,     0,
     2407      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2408       0,     0,     0,   382,     0,     0,     0,   282,   283,   976,
     2409     284,     0,     0,   742,     0,     0,    43,     0,    44,     0,
     2410       0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
     2411       0,     0,     0,     0,  1154,     0,   285,     0,     0,     0,
     2412       0,     0,   286,     0,     0,  1169,   287,     0,     0,   288,
     2413     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2414       0,     0,     0,     0,     0,     0,     0,   382,     0,  1187,
     2415       0,     0,     0,   282,   283,   414,   284,     0,     0,   294,
     2416       0,   379,     0,     0,   976,   976,   758,    45,    46,   296,
     2417     297,   298,   299,     0,     0,     0,     0,     0,     0,   414,
     2418     414,     0,   285,     0,     0,  1219,     0,     0,   286,     0,
     2419       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2420      42,     0,   292,   293,   414,     0,     0,     0,     0,     0,
     2421       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2422       0,     0,     0,     0,     0,   294,   509,   379,     0,     0,
     2423     973,     0,     0,    45,    46,   296,   297,   298,   299,     0,
     2424     976,     0,   509,     0,     0,     0,     0,     0,     0,     0,
     2425       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2426     864,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2427       0,     0,     0,     0,     0,  1270,  1271,     0,     0,     0,
     2428       0,     1,     2,   206,     4,     5,     6,     7,     8,     9,
     2429      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2430      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2431      28,    29,   509,   509,    30,   282,   283,    31,  1042,  1043,
     2432       0,  1044,     0,     0,  1045,  1046,  1047,  1048,  1049,  1050,
     2433    1051,  1052,     0,     0,     0,  1053,     0,     0,     0,  1054,
     2434    1055,     0,    33,     0,   285,    34,     0,    35,     0,    36,
     2435    1056,     0,    38,    39,   287,     0,     0,   288,   289,   290,
     2436     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
     2437       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2438       0,     0,     0,     0,     0,     0,     0,   294,     0,  1057,
     2439       0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
     2440     299,     0,     0,     0,     0,  1058,     0,     0,     0,     0,
     2441    -131,     0,     0,     0,     0,     0,  1375,     0,     0,   742,
    21762442       1,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    21772443      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2178       21,    22,    23,    24,    25,   363,   363,    26,    27,    28,
    2179       29,     0,     0,    30,   282,   283,    31,   284,     0,   509,
    2180        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2181      356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2182        0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
    2183        0,    38,    39,   287,   165,     0,   288,   289,   290,   291,
     2444      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2445      29,     0,     0,    30,   282,   283,    31,   284,     8,     9,
     2446      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2447      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2448      28,     0,     0,   285,    34,     0,    35,    31,    36,   286,
     2449       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    21842450      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2185        0,   218,     0,     0,     0,     0,   363,    79,     0,     0,
    2186      509,     0,     0,     0,    79,     0,   294,     0,  1056,     0,
    2187        0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
    2188        0,     0,     0,   926,     0,   927,     0,     0,     0,  -128,
    2189      509,     0,   930,   931,     0,     0,     0,   936,   165,   225,
    2190        0,     0,   272,     0,     0,     0,     0,     0,     0,   941,
    2191        0,     0,     0,     0,   945,    79,     0,     0,     0,     0,
    2192        0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
    2193        0,   165,     0,   363,     0,   363,     0,     0,     0,     0,
    2194        0,   369,   979,     0,     0,   375,     0,     0,     0,     0,
    2195        0,     0,     0,     0,     0,     0,  1163,     0,     0,     8,
    2196        9,    10,    11,    12,     0,   363,     0,     0,     0,     0,
    2197        0,     0,     0,   363,   363,   363,     0,     0,     0,     0,
    2198        0,     0,     0,     0,   363,   363,   282,   283,    31,   284,
    2199        0,     0,     0,     0,   165,     0,     0,     0,    86,     0,
    2200        0,     0,     0,     0,     0,     0,   218,     0,     0,     0,
    2201      509,     0,     0,     0,     0,   285,    34,     0,     0,     0,
    2202        0,   286,     0,     0,   165,   287,     0,     0,   288,   289,
    2203      290,   291,    41,    42,     0,   292,   293,   363,     0,     0,
    2204        0,  1024,  1025,  1026,  1027,     0,  1029,     0,     0,   375,
    2205        0,     0,     0,     0,     0,   509,   165,     0,   294,     0,
    2206      379,  1073,     0,     0,     0,     0,  1164,    46,   296,   297,
    2207      298,   299,     0,     0,     0,  1079,     0,     0,     0,   524,
    2208        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2209      509,     0,   165,     0,     0,     0,     0,     0,     0,   211,
    2210        0,     0,     0,   509,   363,     0,     0,     0,   231,     0,
    2211      235,     0,   237,     0,     0,  1099,     0,     0,     0,   246,
    2212        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2213      598,     0,     0,     0,     0,   622,     0,     0,     0,     0,
    2214        0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
    2215      211,    86,   235,   237,   246,     0,     0,     0,    86,     0,
    2216     1130,     0,     0,     0,     0,     0,  1137,     0,     0,     0,
    2217        0,  1141,     0,     0,     0,     0,  1145,     0,  1146,     0,
    2218        0,     0,  1148,     0,  1149,  1150,     0,     0,  1153,     0,
    2219        0,     0,     0,   211,     0,     0,     0,  1165,     0,     0,
    2220        0,     0,     0,     0,     0,     0,     0,     0,     0,    86,
    2221        0,   165,   165,     0,     0,  1180,  1181,     0,   369,     0,
    2222        0,   509,     0,     0,     0,     0,     0,     0,     0,     0,
    2223        0,     0,     0,     0,     0,     0,     0,     0,     0,   524,
    2224        0,     0,  1211,     0,     0,  1213,     0,     0,     0,     0,
    2225        0,     0,     0,     0,   211,     0,   235,   237,   246,     0,
    2226        0,     0,     0,     0,     0,     0,     0,   716,     0,     0,
    2227        0,     8,     9,    10,    11,    12,     0,     0,     0,   165,
    2228        0,   509,   509,     0,     0,     0,     0,     0,  1227,     0,
    2229        0,   524,   211,   524,  1231,  1232,   524,   211,   165,   524,
    2230       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2231        0,   369,   497,     0,  1248,     0,     0,  1252,     0,     0,
    2232        0,  1254,     0,     0,     0,     0,     0,     0,    34,     0,
    2233        0,     0,     0,    37,  1262,   183,   184,    40,     0,     0,
    2234        0,     0,     0,     0,    41,    42,     0,  1269,     0,  1271,
    2235     1272,  1273,  1274,     0,     0,     0,     0,     0,     0,     0,
    2236        0,   211,     0,     0,   165,  1281,     0,  1282,     0,     0,
    2237      185,   172,     0,     0,     0,     0,   369,     0,    45,    46,
    2238      811,     0,     0,   211,     0,     0,     0,     0,   235,   237,
    2239        0,     0,     0,     0,     0,     0,   246,     0,     0,     0,
    2240     1310,  1311,     0,     0,     0,     0,   598,     0,     0,     0,
    2241        0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
    2242      369,   369,   369,     0,     0,     0,     0,     0,     0,     0,
    2243        0,     0,     0,     0,     0,     0,     0,     0,   369,   211,
    2244        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2245     1343,  1344,     0,     0,     0,     0,     0,   211,     0,     0,
    2246     1354,     0,   211,     0,   211,     0,     0,     0,     0,     0,
    2247      524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2248        0,   211,     0,     0,   211,   211,   509,     0,     0,     0,
    2249        0,     0,   211,     0,     0,     0,   369,     0,   935,     0,
    2250        0,     0,   509,     0,     0,     0,   211,     0,     0,     0,
    2251        0,     0,     0,   211,     0,     0,     0,     0,     0,     0,
    2252        0,  1389,     0,  1390,  1391,  1392,     0,     0,     0,     0,
    2253        0,   716,     0,     0,     0,  1396,   156,     0,     0,     0,
    2254        0,     0,     0,     0,  1407,     8,     9,    10,    11,    12,
    2255       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2256       23,    24,    25,     0,     0,    26,    27,    28,     0,  1428,
    2257        0,     0,   509,   509,    31,     0,     0,     8,     9,    10,
    2258       11,    12,     0,   251,     0,     0,     0,   369,     0,     0,
    2259        0,   622,     0,   256,     0,   369,     0,     0,     0,     0,
    2260        0,     0,    34,     0,     0,     0,    31,    37,     0,    38,
    2261       39,    40,  1466,  1467,     0,     0,     0,     0,    41,    42,
    2262        0,     0,     0,     0,     0,  1472,     0,     0,   211,     0,
    2263        0,     0,  1472,     0,    34,     0,     0,     0,     0,    37,
    2264        0,   183,   184,    40,    43,     0,   157,     0,     0,   156,
    2265       41,    42,    45,    46,     0,     0,   211,     0,     0,     0,
    2266        0,   211,     0,   386,  1505,     0,     0,     0,  1511,     0,
    2267        0,     0,     0,     0,     0,     0,   265,     0,     0,     0,
    2268        0,     0,     0,     0,    45,    46,   418,     0,     0,     0,
    2269      716,     0,     0,     0,     0,     0,  1533,     0,  1534,     0,
    2270      433,     0,     0,     0,     0,   524,     0,     0,     0,   438,
    2271        0,     0,     0,     0,     0,     0,     0,     0,     0,   446,
    2272        0,     0,     0,     0,     0,     0,  1549,  1550,     0,   165,
    2273        0,     0,   211,     0,  1553,  1554,     0,     0,     0,     0,
    2274        0,     0,     0,     0,   464,     0,   211,     0,     0,   474,
    2275        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2276        0,     0,   482,     0,     0,     0,   497,     0,   492,     0,
    2277      496,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2278        0,     0,     0,     0,     0,   598,     0,   526,     8,     9,
    2279       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2280       20,    21,    22,    23,    24,    25,   369,   369,    26,    27,
    2281       28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    2282        0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
    2283      586,     0,     0,     0,     0,   591,     0,     0,     0,   211,
    22842451       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2285       37,     0,    38,    39,    40,     0,     0,     0,   211,     0,
    2286        0,    41,    42,     0,   636,     0,   524,     0,   637,   638,
    2287        0,   640,     0,     0,     0,     0,     0,     0,   651,   652,
    2288        0,   653,   654,     0,   655,     0,   656,    43,     0,    44,
    2289        0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
    2290        0,     0,     0,   586,     0,     0,     0,     0,     0,     0,
    2291        0,   671,     0,     0,     0,     0,     0,     0,     0,   341,
    2292      364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2293        0,     0,   716,     0,     0,     0,   682,     0,     0,     0,
    2294        0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
    2295       12,     0,     0,   414,     0,     0,     0,     0,     0,     0,
    2296      414,     0,   708,     0,     0,     0,     0,     0,   711,     0,
    2297        0,   211,     0,   464,   218,    31,     8,     9,    10,    11,
    2298       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2299       22,    23,    24,    25,  -293,     0,    26,    27,    28,     0,
    2300        0,   211,     0,    34,     0,    31,     0,     0,    37,   746,
    2301        0,   716,    40,     0,     0,     0,     0,     0,     0,    41,
    2302       42,     0,     0,     0,   764,     0,     0,     0,     0,     0,
    2303        0,     0,   414,    34,     0,     0,   211,     0,    37,     0,
    2304      336,   337,    40,     0,  -293,   719,     0,   211,     0,    41,
    2305       42,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2306      369,   369,     0,   790,     0,     0,     0,     0,     0,   218,
    2307        0,     0,   800,     0,     0,   635,     0,   338,   321,   802,
    2308        0,     0,     0,    45,    46,   810,     0,   414,   346,     0,
    2309        0,     0,     0,     0,   824,   414,   582,     0,   414,   585,
    2310      382,   382,     0,     0,     0,     0,     0,     0,     0,   364,
    2311        0,     0,     0,   614,     0,     0,     0,     0,     0,   211,
    2312        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2313        0,     0,   632,   211,   864,   341,   205,     2,   206,     4,
    2314        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2315       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2316       25,     0,   414,    26,    27,    28,   414,     0,     0,     0,
    2317      810,   321,    31,     0,     0,     0,     0,     0,   905,     0,
    2318      369,     0,   282,   283,     0,   284,     0,     0,     0,     0,
    2319        0,     0,     0,     0,     0,   478,     0,   364,     0,     0,
    2320       34,     0,    35,     0,    36,     0,     0,   207,    39,   251,
    2321        0,   285,     0,     0,     0,     0,     0,   286,     0,   942,
    2322      943,   287,   211,     0,   288,   289,   290,   291,    41,    42,
    2323        0,   292,   293,     0,     0,     0,   524,     0,   524,     0,
    2324        0,     0,     0,   414,   208,     0,   364,     0,     0,     0,
    2325       45,    46,   980,     0,   294,     0,   379,   984,     0,   380,
    2326        0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
    2327        0,     0,   524,     0,   524,     0,     0,     0,     0,     0,
    2328        0,     0,     0,     0,     0,   414,     0,     0,     0,   341,
    2329      364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2330        0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
    2331        0,     0,   382,     0,     0,     0,     0,   211,     0,     0,
    2332        0,  1018,     0,     0,     0,     0,     0,     0,  1019,     0,
    2333        0,     0,     0,     0,     0,   414,   414,     0,     0,     0,
    2334        0,  1021,     0,  1022,     0,     0,     0,     0,     0,     0,
    2335        0,     0,     0,     0,   804,   364,     0,  1034,     0,     0,
    2336        0,     0,     0,  1038,     0,   614,     0,   614,   614,     0,
    2337        0,     0,     0,     0,   614,  1076,     0,     0,  1077,     0,
    2338        0,     0,     0,     0,   843,   364,     0,     0,     0,     0,
    2339      364,     0,     0,     0,     0,     0,     0,     0,     0,   364,
    2340      364,   364,     0,     0,     0,     0,   710,     0,     0,     0,
    2341        0,     0,     0,     0,     0,     0,     0,   364,     0,     0,
    2342        0,     0,   414,   885,     0,     0,   414,   888,     0,     0,
    2343        0,     0,     0,   890,     0,     0,     0,     0,     0,     0,
    2344        0,     0,     0,     0,     0,   742,     0,     0,     0,     0,
    2345        0,     0,   414,     0,     0,   591,     0,     0,   759,     0,
    2346        0,     0,     0,   742,     0,     0,   742,     0,     0,     0,
    2347        0,     0,     0,     0,     0,   364,   614,     0,     0,   768,
    2348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2349     1147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2350        0,   789,     0,     0,     0,     0,     0,     0,     0,   341,
    2351      364,   798,     0,     0,   414,   414,     0,     0,   346,     0,
    2352        0,     0,     0,   759,     0,     0,     0,     0,     0,     0,
    2353        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2354       18,    19,    20,    21,    22,    23,    24,    25,   526,     0,
    2355       26,    27,    28,     0,  1212,     0,     0,     0,   414,    31,
    2356        0,     0,     0,     0,   211,     0,   364,     0,     0,     0,
    2357        0,     0,   863,   804,   364,     0,     0,   614,     0,   614,
    2358      382,     0,     0,     0,     0,     0,     0,    34,  1224,   614,
    2359        0,     0,    37,  1226,   207,    39,    40,     0,     0,     0,
    2360        0,  1230,     0,    41,    42,     0,     8,     9,    10,    11,
    2361       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2362       22,    23,    24,    25,  -293,     0,     0,     0,     0,    43,
    2363        0,   270,     0,     0,  1256,    31,     0,    45,    46,     0,
    2364        0,     0,     0,     0,     0,     0,  1264,     0,     0,  1265,
    2365        0,  1266,     0,     0,     0,     0,     0,     0,     0,     0,
    2366        0,   804,     0,    34,     0,  1275,  1276,     0,   341,   364,
    2367      414,     0,   414,     0,  -293,     0,   414,     0,   759,     0,
    2368      964,     0,     0,     0,     0,     0,     0,  1289,     0,     0,
    2369      975,     0,     0,     0,     0,     0,   983,   614,   614,     0,
    2370        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2371       18,    19,    20,    21,    22,    23,    24,    25,  -294,     0,
    2372        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
    2373        0,     0,   414,     0,  1328,     0,     0,     0,  1001,  1002,
    2374        0,     0,   346,     0,     0,     0,     0,     0,   282,   283,
    2375        0,   284,     0,   414,  1144,     0,   346,    34,     0,     0,
    2376        0,     0,     0,     0,   364,     0,     0,     0,  -294,     0,
    2377      414,  1156,     0,   614,   614,  1161,     0,   285,     0,     0,
    2378        0,     0,     0,   286,     0,   364,   364,   287,     0,     0,
    2379      288,   289,   290,   291,    41,    42,  1032,   292,   293,     0,
    2380      382,     0,     0,     0,     0,     0,     0,     0,     0,  1378,
    2381        0,  1379,     0,     0,     0,     0,     0,     0,     0,     0,
    2382      294,     0,   379,  1387,     0,  1388,     0,   758,    45,    46,
    2383      296,   297,   298,   299,     0,     0,     0,   346,     0,     0,
    2384        0,     0,  1395,     0,     0,     0,     0,     0,   414,     0,
    2385      414,     0,     0,     0,     0,   414,     0,     0,  1413,  1415,
    2386        0,     0,     0,     0,   614,     0,     0,     0,     0,  1420,
    2387        0,     0,  1230,     0,     0,     0,   321,     0,     0,     0,
    2388        0,     0,     0,     0,     0,     0,     0,   804,   414,  1244,
    2389        0,     0,     0,  1442,     0,     0,     0,     0,     0,     0,
    2390        0,     0,  1449,     0,   382,  1451,     0,  1453,  1455,  1457,
    2391      975,   364,     0,     0,   742,   282,   283,     0,   284,     0,
    2392        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2393        0,     0,     0,     0,     0,  1151,     0,     0,     0,     0,
    2394        0,     0,     0,     0,   285,     0,  1166,  1487,     0,  1489,
    2395      641,  1230,   139,   140,   287,     0,     0,   288,   289,   290,
    2396      291,    41,    42,     0,   292,   293,  1500,     0,   382,     0,
    2397     1184,     0,   341,     0,     0,     0,     0,     0,     0,     0,
    2398        0,     0,     0,     0,     0,   975,   975,   294,     0,   642,
    2399      364,   643,   380,     0,     0,    45,    46,   296,   297,   298,
    2400      299,     0,     0,     0,     0,     0,  1216,     0,     0,     0,
     2452     110,     0,    38,    39,     0,     0,   294,     0,  1057,     0,
     2453       0,    41,    42,     0,    45,    46,   296,   297,   298,   299,
     2454       0,     0,     0,     0,     0,     0,     0,     0,     0,  -131,
    24012455       0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
    24022456       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2403       17,    18,    19,    20,    21,    22,    23,    24,    25,   364,
    2404      364,    26,    27,    28,    29,     0,     0,    30,     0,     0,
    2405       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2406        0,   975,     0,     0,     0,     0,     0,     0,     0,     0,
    2407        0,     0,     0,     0,     0,     0,     0,     0,    34,   863,
    2408       35,     0,    36,     0,     0,    38,    39,     0,     0,     0,
    2409        0,     0,     0,     0,  1267,  1268,     0,     1,     2,   206,
    2410        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2411       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2412       24,    25,    44,     0,    26,    27,    28,    29,    45,    46,
    2413       30,   282,   283,    31,  1041,  1042,     0,  1043,     0,     0,
    2414     1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,
    2415        0,  1052,     0,     0,     0,  1053,  1054,     0,    33,   364,
    2416      285,    34,     0,    35,     0,    36,  1055,     0,    38,    39,
    2417      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2418      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2457      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2458       0,    26,    27,    28,    29,     0,     0,    30,   282,   283,
     2459      31,   284,     0,     0,     0,     8,     9,    10,    11,    12,
     2460      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2461      23,    24,    25,  -297,     0,     0,     0,   285,    34,     0,
     2462      35,     0,    36,   286,    31,    38,    39,   287,     0,   321,
     2463     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    24192464       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2420        0,     0,     0,   294,     0,  1056,     0,     0,   171,     0,
    2421        0,    45,    46,   296,   297,   298,   299,     0,     0,     0,
    2422        0,  1057,     0,     0,     0,     0,  -128,     0,     0,     0,
    2423        0,     0,     0,     0,     0,  1372,     0,     0,   742,     0,
    2424        0,     0,     0,     0,     0,     0,   414,     0,     0,     0,
    2425        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2426        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2427      414,   414,     0,     0,     0,     0,     0,     0,     0,     0,
    2428        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2429        0,     0,     0,     0,     0,   414,     1,     2,   206,     4,
    2430        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2431       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2432       25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
    2433      282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
    2434       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2435       24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
    2436       34,     0,    35,    31,    36,   286,     0,    38,    39,   287,
    2437        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    2438      293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2439        0,    34,     0,     0,     0,     0,   110,     0,    38,    39,
    2440        0,     0,   294,     0,    44,     0,     0,    41,    42,     0,
    2441       45,    46,   296,   297,   298,   299,     2,   206,     4,     5,
    2442        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2443       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2444        0,     0,    26,    27,    28,     0,     0,     0,   321,   282,
    2445      283,    31,   284,     8,     9,    10,    11,    12,    13,    14,
    2446       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2447       25,     0,     0,    26,    27,    28,     0,     0,   285,    34,
    2448        0,    35,    31,    36,   286,     0,    38,    39,   287,     0,
    2449        0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    2450        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2451       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2452        0,   294,     0,   343,     0,     0,     0,     0,   758,   344,
    2453       46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
    2454        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2455       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2456        0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
    2457       31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
    2458       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2459        0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
    2460       35,    31,    36,   286,     0,    38,    39,   287,     0,     0,
    2461      288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2462        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2463        0,     0,     0,     0,     0,     0,   207,    39,     0,     0,
    2464      294,     0,   963,     0,     0,     0,     0,   758,   344,    46,
     2465       0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
     2466     294,     0,    44,  -297,     0,     0,     0,     0,    45,    46,
    24652467     296,   297,   298,   299,     2,   206,     4,     5,     6,     7,
    24662468       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     
    24692471     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24702472      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2471        0,     0,     0,     0,     0,     0,   285,    34,     0,    35,
     2473       0,    26,    27,    28,     0,     0,   285,    34,     0,    35,
    24722474      31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
    24732475     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    24742476       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2475        0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2476        0,   963,     0,     0,     0,     0,   758,    45,    46,   296,
     2477       0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
     2478       0,   343,     0,     0,     0,     0,   758,   344,    46,   296,
    24772479     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
    24782480       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    24792481      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    24802482      27,    28,     0,     0,     0,     0,   282,   283,    31,   284,
    2481        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2482        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2483        0,     0,     0,     0,     0,   285,    34,     0,    35,     0,
     2483       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2484      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2485      26,    27,    28,     0,     0,   285,    34,     0,    35,    31,
    24842486      36,   286,     0,    38,    39,   287,     0,     0,   288,   289,
    24852487     290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
    2486        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2487        0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2488      343,     0,     0,     0,     0,     0,   344,    46,   296,   297,
     2488       0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
     2489       0,     0,     0,     0,   207,    39,     0,     0,   294,     0,
     2490     964,     0,     0,     0,     0,   758,   344,    46,   296,   297,
    24892491     298,   299,     2,   206,     4,     5,     6,     7,     8,     9,
    24902492      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    24942496       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24952497       0,     0,     0,     0,   285,    34,     0,    35,     0,    36,
    2496      286,     0,   207,    39,   287,     0,     0,   288,   289,   290,
     2498     286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
    24972499     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    24982500       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2499        0,     0,     0,     0,     0,     0,     0,   294,     0,   998,
    2500        0,     0,     0,     0,     0,   999,    46,   296,   297,   298,
     2501       0,     0,     0,     0,     0,     0,     0,   294,     0,   964,
     2502       0,     0,     0,     0,   758,    45,    46,   296,   297,   298,
    25012503     299,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    25022504      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     
    25092511      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    25102512       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2511        0,     0,     0,     0,     0,     0,   294,     0,   963,     0,
     2513       0,     0,     0,     0,     0,     0,   294,     0,   343,     0,
    25122514       0,     0,     0,     0,   344,    46,   296,   297,   298,   299,
    25132515       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     
    25212523      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    25222524       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
    2524        0,     0,     0,    45,    46,   296,   297,   298,   299,  -516,
    2525        0,     0,     1,     2,     3,     4,     5,     6,     7,     8,
     2525       0,     0,     0,     0,     0,   294,     0,   999,     0,     0,
     2526       0,     0,     0,  1000,    46,   296,   297,   298,   299,     2,
     2527     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2528      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2529      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2530       0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
     2531       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2532       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2533       0,   285,    34,     0,    35,     0,    36,   286,     0,    38,
     2534      39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2535       0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
     2536       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2537       0,     0,     0,     0,   294,     0,   964,     0,     0,     0,
     2538       0,     0,   344,    46,   296,   297,   298,   299,     2,   206,
     2539       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2540      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2541      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2542       0,   282,   283,    31,   284,     0,     0,     0,     0,     0,
     2543       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2544       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2545     285,    34,     0,    35,     0,    36,   286,     0,   207,    39,
     2546     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2547     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2548       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2549       0,     0,     0,   294,     0,   379,     0,     0,     0,     0,
     2550       0,    45,    46,   296,   297,   298,   299,   205,     2,   206,
     2551       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2552      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2553      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2554       0,     0,     0,    31,     0,     8,     9,    10,    11,    12,
     2555      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2556      23,    24,    25,     0,     0,    26,    27,    28,   485,   486,
     2557     487,    34,     0,    35,    31,    36,    37,     0,   207,    39,
     2558      40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
     2559       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2560       0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
     2561      39,     0,     0,    43,     0,   208,     0,     0,     0,     0,
     2562       0,    45,    46,     1,     2,   206,     4,     5,     6,     7,
     2563       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2564      18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
     2565      26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
     2566       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2567       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2568       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2569       0,    36,     0,     0,    38,    39,     0,     0,  -296,     1,
     2570       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2571      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2572      22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
     2573       0,    44,    30,     0,     0,    31,     0,    45,    46,     0,
     2574       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2575       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2576       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2577      38,    39,   205,     2,   206,     4,     5,     6,     7,     8,
    25262578       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    25272579      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2528       27,    28,    29,     0,     0,    30,     0,     0,    31,    32,
     2580      27,    28,     0,     0,     0,     0,     0,    44,    31,     0,
     2581       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2582       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2583       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2584      36,     0,     0,   207,    39,     0,     2,   206,     4,     5,
     2585       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2586      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2587       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2588     208,    31,     0,     0,     0,     0,    45,    46,     0,     0,
     2589       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2590       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2591       0,    35,     0,    36,    37,     0,   207,    39,    40,     0,
     2592       0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    25292593       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25302594       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531        0,     0,     0,    33,     0,     0,    34,     0,    35,     0,
    2532       36,    37,     0,    38,    39,    40,     0,     0,     0,     0,
    2533        0,     0,    41,    42,     0,     0,     0,     0,     0,     0,
     2595       0,    43,     0,   208,     0,     0,     0,     0,     0,    45,
     2596      46,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2597      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2598      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2599       0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
     2600       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2601      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2602       0,    26,    27,    28,    34,     0,    35,     0,    36,     0,
     2603      31,    38,    39,     0,     2,   206,     4,     5,     6,     7,
     2604       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2605      18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
     2606      26,    27,    28,     0,     0,    38,    39,  -403,   678,    31,
     2607       0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
    25342608       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2535        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
    2536       44,     0,     0,     0,     0,     0,    45,    46,     1,     2,
    2537        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2609       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2610     635,    36,   338,     0,    38,    39,     0,     0,    45,    46,
     2611       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2612       0,     0,     0,     0,     0,     0,  1354,     0,     0,     0,
     2613       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2614       0,   678,     0,     0,     0,     0,     0,    45,    46,     2,
     2615     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    25382616      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2539       23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
    2540        0,    30,     0,     0,    31,    32,     0,     0,     0,     0,
     2617      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2618       0,     0,     0,     0,    31,     0,     0,     0,     8,     9,
     2619      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2620      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2621      28,     0,    34,     0,    35,     0,    36,    31,   685,    38,
     2622      39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25412623       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2542        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2543        0,     0,    34,     0,    35,     0,    36,    37,     0,    38,
    2544       39,    40,     0,     0,     0,     0,     0,     0,    41,    42,
     2624       0,  1356,     0,     0,     0,    34,     0,     0,     0,     0,
     2625       0,     0,    38,    39,     0,     0,   678,     0,     0,     0,
     2626       0,     0,    45,    46,     2,   206,     4,     5,     6,     7,
     2627       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2628      18,    19,    20,    21,    22,    23,    24,    25,     0,   686,
     2629      26,    27,    28,   687,     0,    45,    46,     0,     0,    31,
    25452630       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25462631       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2547        0,     0,     0,     0,    43,     0,    44,     0,     0,     0,
    2548     -520,     0,    45,    46,     1,     2,     3,     4,     5,     6,
    2549        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2550       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2551        0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
    2552       31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
    2553        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2554        0,     0,     0,     0,     0,    33,     0,     0,    34,     0,
    2555       35,     0,    36,    37,     0,    38,    39,    40,     0,     0,
    2556        0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
    2557        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2558        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2559       43,     0,    44,     0,     0,     0,     0,     0,    45,    46,
    2560      205,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    2561       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2562       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2563        0,     0,     0,     0,     0,     0,    31,     0,     8,     9,
    2564       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2565       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2566       28,   485,   486,   487,    34,     0,    35,    31,    36,    37,
    2567        0,   207,    39,    40,     0,     0,     0,     0,     0,     0,
    2568       41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
    2569        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2570        0,     0,    38,    39,     0,     0,    43,     0,   208,     0,
    2571        0,     0,     0,     0,    45,    46,     1,     2,   206,     4,
     2632       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2633       0,    36,     0,     0,   207,    39,     0,     2,   206,     4,
    25722634       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25732635      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2574       25,  -293,     0,    26,    27,    28,    29,     0,     0,    30,
    2575        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2636      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2637       0,   270,    31,     0,     0,     0,     0,    45,    46,     0,
    25762638       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25772639       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25782640      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
    2579        0,  -293,     2,   206,     4,     5,     6,     7,     8,     9,
    2580       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2581       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2582       28,     0,     0,     0,    44,     0,     0,    31,     0,     0,
     2641       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2642      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2643      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2644       0,     0,     0,     0,   678,    31,     0,     0,     0,     0,
    25832645      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    25842646       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2585        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2586       37,     0,   207,    39,    40,     0,     0,     0,     0,     0,
    2587        0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2588        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2589        0,     0,     0,     0,     0,     0,     0,    43,     0,   208,
    2590        0,     0,     0,     0,     0,    45,    46,     2,   206,     4,
    2591        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2592       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2593       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2594        0,     0,    31,     0,     0,     0,     0,     8,     9,    10,
    2595       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2596       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2597       34,     0,    35,     0,    36,     0,    31,    38,    39,     0,
    2598        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2599       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2600       22,    23,    24,    25,    34,     0,    26,    27,    28,     0,
    2601        0,    38,    39,  -400,   678,    31,     0,     0,     0,     0,
    2602       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2603        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2604        0,     0,     0,    34,     0,    35,   635,    36,   338,     0,
    2605       38,    39,     0,     0,    45,    46,     0,     0,     0,     0,
    2606        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2607        0,     0,  1351,     0,     0,     0,     0,     0,     0,     0,
    2608        0,     0,     0,     0,     0,     0,     0,   678,     0,     0,
    2609        0,     0,     0,    45,    46,     2,   206,     4,     5,     6,
    2610        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2611       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2612        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2613       31,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2614       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2615       24,    25,     0,     0,    26,    27,    28,     0,    34,     0,
    2616       35,     0,    36,    31,   685,    38,    39,     0,     0,     0,
    2617        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2618        0,     0,     0,     0,     0,     0,     0,  1353,     0,     0,
    2619        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2620        0,     0,   678,     0,     0,     0,     0,     0,    45,    46,
    2621        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2622       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2623       22,    23,    24,    25,     0,   686,    26,    27,    28,   687,
    2624        0,    45,    46,     0,     0,    31,     0,     0,     0,     0,
    2625        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26272647       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2628      207,    39,     0,     2,   206,     4,     5,     6,     7,     8,
     2648      38,    39,     0,     2,   206,     4,     5,     6,     7,     8,
    26292649       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26302650      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2631       27,    28,     0,     0,     0,     0,     0,   270,    31,     0,
     2651      27,    28,     0,     0,     0,     0,     0,   593,    31,     0,
    26322652       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    26332653       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26342654       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2635       36,     0,     0,    38,    39,     0,     2,   206,     4,     5,
    2636        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2637       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2638        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2639      678,    31,     0,     0,     0,     0,    45,    46,     0,     0,
    2640        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2641        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2642        0,    35,     0,    36,     0,     0,    38,    39,     0,     2,
    2643      206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2655      36,     0,     0,   207,    39,     8,     9,    10,    11,    12,
    26442656      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26452657      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2646        0,     0,     0,   593,    31,     0,     0,     0,     0,    45,
    2647       46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2658       0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
     2659     208,     0,     0,     0,     0,     0,    45,    46,     0,     0,
    26482660       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2649        0,     0,    34,     0,    35,     0,    36,     0,     0,   207,
    2650       39,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2661       0,   285,    34,     0,     0,     0,     0,   286,     0,    38,
     2662      39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2663       0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
     2664       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2665       0,     0,     0,     0,   294,     0,   517,     0,     0,   171,
     2666       0,     0,    45,    46,   296,   297,   298,   299,     8,     9,
     2667      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2668      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2669      28,     0,     0,     0,     0,   282,   283,    31,   284,     8,
     2670       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2671      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2672      27,    28,     0,     0,   285,    34,     0,     0,    31,     0,
     2673     286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
     2674     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
     2675       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2676       0,    37,     0,   336,   337,    40,     0,   294,   -37,   295,
     2677       0,     0,    41,    42,     0,    45,    46,   296,   297,   298,
     2678     299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26512679      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2652        0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
    2653       31,   284,     0,     0,     0,     0,   208,     0,     0,     0,
    2654        0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    2655        0,     0,     0,     0,     0,     0,     0,   285,    34,     0,
    2656        0,     0,     0,   286,     0,    38,    39,   287,     0,     0,
     2680     338,    26,    27,    28,     0,     0,    45,    46,   282,   283,
     2681      31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
     2682      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2683       0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
     2684       0,    31,     0,   286,     0,    38,    39,   287,     0,     0,
    26572685     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2659        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2660      294,     0,   517,     0,     0,   171,     0,     0,    45,    46,
     2686       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2687       0,     0,     0,     0,   110,     0,    38,    39,     0,     0,
     2688     294,     0,   295,     0,     0,    41,    42,     0,    45,    46,
    26612689     296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
    26622690      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2663       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2664        0,   282,   283,    31,   284,     8,     9,    10,    11,    12,
     2691      24,    25,     0,    44,    26,    27,    28,     0,     0,    45,
     2692      46,   282,   283,    31,   284,     8,     9,    10,    11,    12,
    26652693      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26662694      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2667      285,    34,     0,     0,    31,     0,   286,     0,    38,    39,
     2695     285,    34,     0,     0,    31,   685,   286,     0,    38,    39,
    26682696     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    26692697     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2670        0,     0,    34,     0,     0,     0,     0,    37,     0,   336,
    2671      337,    40,     0,   294,   -36,   295,     0,     0,    41,    42,
     2698       0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
     2699      39,     0,     0,   294,     0,   157,     0,     0,     0,     0,
    26722700       0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
    26732701      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2674       21,    22,    23,    24,    25,     0,   338,    26,    27,    28,
    2675        0,     0,    45,    46,   282,   283,    31,   284,     8,     9,
     2702      21,    22,    23,    24,    25,     0,   686,    26,    27,    28,
     2703    1093,     0,    45,    46,   282,   283,    31,   284,     8,     9,
    26762704      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    26772705      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2678       28,     0,     0,   285,    34,     0,     0,    31,     0,   286,
     2706      28,     0,     0,   285,    34,     0,     0,    31,   685,   286,
    26792707       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    26802708      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    26812709       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2682      110,     0,    38,    39,     0,     0,   294,     0,   295,     0,
    2683        0,    41,    42,     0,    45,    46,   296,   297,   298,   299,
     2710       0,     0,    38,    39,     0,     0,   294,     0,   593,     0,
     2711       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
    26842712       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2685       18,    19,    20,    21,    22,    23,    24,    25,     0,    44,
    2686       26,    27,    28,     0,     0,    45,    46,   282,   283,    31,
    2687      284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2713      18,    19,    20,    21,    22,    23,    24,    25,     0,   686,
     2714      26,    27,    28,  1224,     0,    45,    46,   282,   283,    31,
     2715     284,     0,     0,     0,     0,     0,     0,     0,     8,     9,
     2716      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2717      20,    21,    22,    23,    24,    25,   285,    34,    26,    27,
     2718      28,     0,   286,     0,    38,    39,   287,    31,     0,   288,
     2719     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2720       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2721       0,     0,     0,     0,     0,    34,     0,     0,     0,   294,
     2722       0,   379,    38,    39,     0,     0,     0,    45,    46,   296,
     2723     297,   298,   299,   467,     2,   206,     4,     5,     6,     7,
     2724       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2725      18,    19,    20,    21,    22,    23,    24,    25,     0,   257,
     2726      26,    27,    28,     0,     0,    45,    46,     0,     0,    31,
     2727       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2728      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2729      25,     0,     0,    26,    27,    28,     0,    34,     0,    35,
     2730       0,    36,    31,     0,    38,    39,     0,     0,     0,     0,
     2731       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26882732      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2689        0,    26,    27,    28,     0,     0,   285,    34,     0,     0,
    2690       31,   685,   286,     0,    38,    39,   287,     0,     0,   288,
    2691      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2692        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2693        0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
    2694        0,   157,     0,     0,     0,     0,     0,    45,    46,   296,
    2695      297,   298,   299,     8,     9,    10,    11,    12,    13,    14,
    2696       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2697       25,     0,   686,    26,    27,    28,  1092,     0,    45,    46,
    2698      282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
    2699       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2700       24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
    2701       34,     0,     0,    31,   685,   286,     0,    38,    39,   287,
    2702        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    2703      293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2704        0,    34,     0,     0,     0,     0,     0,     0,    38,    39,
    2705        0,     0,   294,     0,   593,     0,     0,     0,     0,     0,
    2706       45,    46,   296,   297,   298,   299,     8,     9,    10,    11,
     2733      34,    26,    27,    28,     0,    37,     0,    38,    39,    40,
     2734      31,     0,     0,     0,    -3,     0,    41,    42,     0,     8,
     2735       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2736      19,    20,    21,    22,    23,    24,    25,     0,    34,    26,
     2737      27,    28,    43,    37,    44,   207,    39,    40,    31,     0,
     2738      45,    46,     0,     0,    41,    42,     0,     8,     9,    10,
     2739      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2740      21,    22,    23,    24,    25,  -296,    34,    26,    27,    28,
     2741      43,    37,   270,   336,   337,    40,    31,     0,    45,    46,
     2742       0,     0,    41,    42,     0,     8,     9,    10,    11,    12,
     2743      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2744      23,    24,    25,  -296,    34,    26,    27,    28,   635,     0,
     2745     338,    38,    39,     0,    31,  -296,    45,    46,     8,     9,
     2746      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2747      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2748      28,     0,    34,     0,     0,     0,   635,    31,   338,    38,
     2749      39,     0,     0,  -296,    45,    46,     8,     9,    10,    11,
    27072750      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2708       22,    23,    24,    25,     0,   686,    26,    27,    28,  1221,
    2709        0,    45,    46,   282,   283,    31,   284,     0,     0,     0,
    2710        0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2711       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2712       24,    25,   285,    34,    26,    27,    28,     0,   286,     0,
    2713       38,    39,   287,    31,     0,   288,   289,   290,   291,    41,
    2714       42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    2715        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2716        0,    34,     0,     0,     0,   294,     0,   379,    38,    39,
    2717        0,     0,     0,    45,    46,   296,   297,   298,   299,   467,
    2718        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2719       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2720       22,    23,    24,    25,     0,   257,    26,    27,    28,     0,
    2721        0,    45,    46,     0,     0,    31,     0,     0,     0,     8,
    2722        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2723       19,    20,    21,    22,    23,    24,    25,  -293,     0,    26,
    2724       27,    28,     0,    34,     0,    35,     0,    36,    31,     0,
    2725       38,    39,     0,     0,     0,     0,     0,     8,     9,    10,
    2726       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2727       21,    22,    23,    24,    25,     0,    34,    26,    27,    28,
    2728        0,    37,     0,   336,   337,    40,    31,  -293,     0,     0,
    2729       -3,     0,    41,    42,     0,     8,     9,    10,    11,    12,
    2730       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2731       23,    24,    25,  -293,    34,    26,    27,    28,     0,    37,
    2732      338,   336,   337,    40,    31,     0,    45,    46,     0,     0,
    2733       41,    42,     0,     8,     9,    10,    11,    12,    13,    14,
    2734       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2735       25,     0,    34,    26,    27,    28,   635,     0,   338,    38,
    2736       39,     0,    31,  -293,    45,    46,     8,     9,    10,    11,
    2737       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2738       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2739       34,     0,     0,     0,     0,    31,   338,    38,    39,     0,
     2751      22,    23,    24,    25,     0,    34,    26,    27,    28,     0,
     2752       0,     0,    38,    39,     0,    31,   338,     0,     0,     0,
    27402753       0,     0,    45,    46,     8,     9,    10,    11,    12,    13,
    27412754      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2742       24,    25,     0,    34,    26,    27,    28,     0,     0,     0,
    2743      207,    39,     0,    31,   157,     0,     0,     0,     0,     0,
    2744       45,    46,     8,     9,    10,    11,    12,    13,    14,    15,
    2745       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2746        0,    34,    26,    27,    28,     0,     0,   270,    38,    39,
    2747        0,    31,     0,    45,    46,     8,     9,    10,    11,    12,
     2755      24,    25,     0,    34,    26,    27,    28,     0,     0,   157,
     2756     207,    39,     0,    31,     0,    45,    46,     8,     9,    10,
     2757      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2758      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2759       0,    34,     0,     0,     0,     0,    31,   270,    38,    39,
     2760       0,     0,     0,    45,    46,     8,     9,    10,    11,    12,
    27482761      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2749       23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
    2750        0,     0,     0,     0,    31,   338,    38,    39,     0,     0,
     2762      23,    24,    25,     0,    34,    26,    27,    28,     0,     0,
     2763       0,    38,    39,     0,    31,   338,     0,     0,     0,     0,
    27512764       0,    45,    46,     8,     9,    10,    11,    12,    13,    14,
    27522765      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2753       25,     0,    34,    26,    27,    28,     0,     0,     0,    38,
    2754       39,     0,    31,   686,     0,     0,     0,     0,     0,    45,
    2755       46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2756       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2757       34,    26,    27,    28,     0,     0,   593,    38,    39,     0,
    2758       31,     0,    45,    46,     2,   206,     4,     5,     6,     7,
    2759        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2760       18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
    2761       26,    27,    28,     0,    44,   207,    39,     0,     0,    31,
    2762       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2766      25,     0,    34,    26,    27,    28,     0,     0,   686,    38,
     2767      39,     0,    31,     0,    45,    46,     2,   206,     4,     5,
     2768       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2769      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2770      34,     0,    26,    27,    28,     0,   593,    38,    39,     0,
     2771       0,    31,    45,    46,     0,     0,     0,     0,     0,     0,
    27632772       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2764        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2765        0,    36,     0,     0,    38,    39,     0,     0,    45,    46,
    2766      282,   283,     0,   284,  1042,     0,  1043,     0,     0,  1044,
    2767     1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,  1525,
    2768     1052,     0,     0,     0,  1053,  1054,     0,    33,     0,   285,
    2769     -413,     0,     0,     0,     0,  1055,     0,     0,     0,   287,
     2773       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2774       0,    35,     0,    36,    44,     0,    38,    39,     0,     0,
     2775      45,    46,   282,   283,     0,   284,  1043,     0,  1044,     0,
     2776       0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
     2777       0,  1528,  1053,     0,     0,     0,  1054,  1055,     0,    33,
     2778       0,   285,  -416,     0,     0,     0,     0,  1056,     0,     0,
     2779       0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2780       0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
     2781       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2782       0,     0,     0,     0,   294,     0,   379,     0,     0,   171,
     2783       0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2784     282,   283,  1058,   284,  1043,     0,  1044,  -131,     0,  1045,
     2785    1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,     0,     0,
     2786    1053,     0,     0,     0,  1054,  1055,     0,    33,     0,   285,
     2787       0,     0,     0,     0,     0,  1056,     0,     0,     0,   287,
    27702788       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    27712789     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27722790       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27732791       0,     0,   294,     0,   379,     0,     0,   171,     0,     0,
    2774       45,    46,   296,   297,   298,   299,     0,     0,   282,   283,
    2775     1057,   284,  1042,     0,  1043,  -128,     0,  1044,  1045,  1046,
    2776     1047,  1048,  1049,  1050,  1051,     0,     0,     0,  1052,     0,
    2777        0,     0,  1053,  1054,     0,    33,     0,   285,     0,     0,
    2778        0,     0,     0,  1055,     0,     0,     0,   287,     0,     0,
    2779      288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
     2792      45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
     2793    1058,     0,     0,     0,     0,  -131,     2,   206,     4,     5,
     2794       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2795      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2796       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2797       0,    31,     0,   282,   283,     0,   284,  1043,     0,  1044,
     2798    1402,  1403,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,
     2799       0,     0,  1528,  1053,     0,     0,     0,  1054,  1055,    34,
     2800      33,    35,   285,    36,     0,     0,    38,    39,  1056,     0,
     2801       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2802      42,     0,   292,   293,     0,     0,     0,     0,  1315,     0,
    27802803       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2781        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2782      294,     0,   379,     0,     0,   171,     0,     0,    45,    46,
    2783      296,   297,   298,   299,     0,     0,     0,     0,  1057,     0,
    2784        0,     0,     0,  -128,     2,   206,     4,     5,     6,     7,
    2785        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2786       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2787       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
    2788        0,   282,   283,     0,   284,  1042,     0,  1043,  1399,  1400,
    2789     1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,     0,     0,
    2790     1525,  1052,     0,     0,     0,  1053,  1054,    34,    33,    35,
    2791      285,    36,     0,     0,    38,    39,  1055,     0,     0,     0,
     2804       0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
     2805     171,     0,     0,    45,    46,   296,   297,   298,   299,     0,
     2806       0,   282,   283,  1058,   284,  1043,     0,  1044,  1402,  1403,
     2807    1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,     0,
     2808       0,  1053,     0,     0,     0,  1054,  1055,     0,    33,     0,
     2809     285,     0,     0,     0,     0,     0,  1056,     0,     0,     0,
    27922810     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2793      292,   293,     0,     0,     0,     0,  1312,     0,     0,     0,
     2811     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    27942812       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27952813       0,     0,     0,   294,     0,   379,     0,     0,   171,     0,
    27962814       0,    45,    46,   296,   297,   298,   299,     0,     0,   282,
    2797      283,  1057,   284,  1042,     0,  1043,  1399,  1400,  1044,  1045,
    2798     1046,  1047,  1048,  1049,  1050,  1051,     0,     0,     0,  1052,
    2799        0,     0,     0,  1053,  1054,     0,    33,     0,   285,     0,
    2800        0,     0,     0,     0,  1055,     0,     0,     0,   287,     0,
     2815     283,  1058,   284,  1043,     0,  1044,     0,     0,  1045,  1046,
     2816    1047,  1048,  1049,  1050,  1051,  1052,     0,     0,     0,  1053,
     2817       0,     0,     0,  1054,  1055,     0,    33,     0,   285,     0,
     2818       0,     0,     0,     0,  1056,     0,     0,     0,   287,     0,
    28012819       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
     2820       0,     0,     0,     0,     0,     0,   282,   283,     0,   284,
     2821       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2822       0,   294,     0,   379,     0,     0,   171,     0,     0,    45,
     2823      46,   296,   297,   298,   299,   285,     0,     0,     0,  1058,
     2824       0,   286,     0,     0,     0,   287,     0,     0,   288,   289,
     2825     290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
     2826       0,     0,     0,   282,   283,     0,   284,     0,     0,     0,
     2827       0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
     2828     379,     0,   282,   283,     0,   284,    45,    46,   296,   297,
     2829     298,   299,   285,     0,     0,     0,     0,     0,   286,     0,
     2830       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2831      42,   285,   292,   293,     0,     0,     0,   286,     0,     0,
     2832       0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2833       0,   292,   293,     0,     0,   294,     0,   379,     0,   282,
     2834     283,     0,   284,   709,    46,   296,   297,   298,   299,     0,
     2835       0,     0,     0,     0,   294,     0,   379,     0,   282,   283,
     2836       0,   284,   344,    46,   296,   297,   298,   299,   285,     0,
     2837       0,     0,     0,     0,   286,     0,     0,     0,   287,     0,
     2838       0,   288,   289,   290,   291,    41,    42,   285,   292,   293,
     2839       0,     0,     0,   286,     0,     0,     0,   287,     0,     0,
     2840     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
     2841       0,   506,     0,     0,     0,   282,   283,     0,   284,    45,
     2842      46,   296,   297,   298,   299,     0,     0,     0,     0,     0,
     2843     294,     0,     0,     0,   282,   283,     0,   284,    45,    46,
     2844     296,   297,   298,   299,   285,     0,     0,     0,     0,     0,
     2845     286,     0,     0,     0,   287,     0,     0,   288,   289,   290,
     2846     291,    41,    42,   285,   292,   293,     0,     0,     0,   286,
     2847       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2848      41,    42,     0,   292,   293,     0,     0,   511,     0,     0,
     2849       0,     0,     0,     0,     0,    45,    46,   296,   297,   298,
     2850     299,     0,     0,     0,     0,     0,   514,     0,     0,     0,
     2851       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
     2852       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2853      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2854      22,    23,    24,    25,     0,     0,     0,     0,     0,     0,
     2855       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
    28022856       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28032857       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2804        0,   294,     0,   379,     0,     0,   171,     0,     0,    45,
    2805       46,   296,   297,   298,   299,     0,     0,   282,   283,  1057,
    2806      284,  1042,     0,  1043,     0,     0,  1044,  1045,  1046,  1047,
    2807     1048,  1049,  1050,  1051,     0,     0,     0,  1052,     0,     0,
    2808        0,  1053,  1054,     0,    33,     0,   285,     0,     0,     0,
    2809        0,     0,  1055,     0,     0,     0,   287,     0,     0,   288,
    2810      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2811        0,     0,     0,     0,   282,   283,     0,   284,     0,     0,
    2812        0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2813        0,   379,     0,     0,   171,     0,     0,    45,    46,   296,
    2814      297,   298,   299,   285,     0,     0,     0,  1057,     0,   286,
    2815        0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    2816       41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2817        0,   282,   283,     0,   284,     0,     0,     0,     0,     0,
    2818        0,     0,     0,     0,     0,     0,   294,     0,   379,     0,
    2819        0,   972,     0,     0,    45,    46,   296,   297,   298,   299,
    2820      285,     0,     0,     0,     0,     0,   286,     0,     0,     0,
    2821      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2822      292,   293,     0,     0,     0,     0,     0,     0,   282,   283,
    2823        0,   284,     0,     0,     0,     0,     0,     0,     0,     0,
    2824        0,     0,     0,   294,     0,   379,     0,   282,   283,     0,
    2825      284,    45,    46,   296,   297,   298,   299,   285,     0,     0,
    2826        0,     0,     0,   286,     0,     0,     0,   287,     0,     0,
    2827      288,   289,   290,   291,    41,    42,   285,   292,   293,     0,
    2828        0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
    2829      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2830      294,     0,   379,     0,   282,   283,     0,   284,   709,    46,
    2831      296,   297,   298,   299,     0,     0,     0,     0,     0,   294,
    2832        0,   379,     0,   282,   283,     0,   284,   344,    46,   296,
    2833      297,   298,   299,   285,     0,     0,     0,     0,     0,   286,
    2834        0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    2835       41,    42,   285,   292,   293,     0,     0,     0,   286,     0,
    2836        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2837       42,     0,   292,   293,     0,     0,   506,     0,     0,     0,
    2838      282,   283,     0,   284,    45,    46,   296,   297,   298,   299,
    2839        0,     0,     0,     0,     0,   294,     0,     0,     0,   282,
    2840      283,     0,   284,    45,    46,   296,   297,   298,   299,   285,
    2841        0,     0,     0,     0,     0,   286,     0,     0,     0,   287,
    2842        0,     0,   288,   289,   290,   291,    41,    42,   285,   292,
    2843      293,     0,     0,     0,   286,     0,     0,     0,   287,     0,
    2844        0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    2845        0,     0,   511,     0,     0,     0,     0,     0,     0,     0,
    2846       45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
    2847        0,   514,     0,     0,     0,     0,     0,     0,     0,    45,
    2848       46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
     2858       0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
     2859     174,   175,    40,     0,     0,     0,     0,     0,     0,    41,
     2860      42,   205,     2,   206,     4,     5,     6,     7,     8,     9,
     2861      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2862      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2863      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     2864       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2865       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2866       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
     2867       0,     0,   207,    39,   467,     2,   206,     4,     5,     6,
    28492868       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    28502869      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2851        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2870       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    28522871      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28532872       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28542873       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2855       35,     0,    36,    37,     0,   174,   175,    40,     0,     0,
    2856        0,     0,     0,     0,    41,    42,   205,     2,   206,     4,
     2874      35,     0,    36,     0,     0,    38,    39,     2,   206,     4,
    28572875       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    28582876      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    28612879       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28622880       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2863       34,     0,    35,     0,    36,     0,     0,   207,    39,   467,
    2864        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2865       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2866       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2867        0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
    2868        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2869        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2870        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2871       38,    39,     2,   206,     4,     5,     6,     7,     8,     9,
    2872       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2873       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2874       28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    2875        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2876        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2877        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2878        0,     0,   207,    39
     2881      34,     0,    35,     0,    36,     0,     0,   207,    39
    28792882};
    28802883
    28812884#define yypact_value_is_default(yystate) \
    2882   ((yystate) == (-1323))
     2885  ((yystate) == (-1338))
    28832886
    28842887#define yytable_value_is_error(yytable_value) \
     
    28872890static const yytype_int16 yycheck[] =
    28882891{
    2889        0,     1,   186,    43,   239,   185,   204,     0,    43,   219,
    2890       43,   116,   185,   521,   534,   185,     1,   875,   186,     0,
    2891        1,   185,   757,    51,   647,   603,   750,   185,     0,     1,
    2892      281,   621,    32,   750,  1041,     0,  1022,    43,   185,    32,
    2893      345,   185,   750,    43,   168,   169,   513,   349,   875,    49,
    2894      156,    32,   603,    32,     0,   693,    49,   349,   187,     0,
    2895       32,   572,    57,    63,   601,  1322,    66,    32,    43,    69,
    2896       63,     0,     1,    66,   696,    63,    69,  1399,   734,   492,
    2897        0,   109,   266,   496,    69,   265,    32,   601,    69,    39,
    2898       39,    32,   265,   490,    66,   265,   201,    69,   266,   601,
    2899       39,   265,    43,    32,   604,   105,   601,   265,    49,    49,
    2900      610,   106,    32,   113,   109,   418,   116,   117,   265,    82,
    2901       66,   265,    63,    63,    39,    66,    66,    39,    69,    69,
    2902      601,   984,   261,   262,   284,   438,    43,    66,    28,   601,
    2903       69,   105,    72,   446,   132,   185,   146,   147,  1470,   601,
    2904      185,    72,   185,    49,   147,   155,   156,   307,   308,   109,
    2905      160,   111,   111,  1420,    39,   787,    82,   160,    72,   364,
    2906      109,    39,   111,   368,  1021,  1022,    82,   482,    96,   185,
    2907      688,  1034,   906,  1116,   156,   185,   186,  1120,    78,   906,
    2908      156,   155,     0,   186,   110,   345,   488,   109,   906,   111,
    2909      410,   201,   132,    96,   122,   111,   147,   147,   605,   209,
    2910      185,   132,   609,   117,  1041,    64,   209,   113,   109,   160,
    2911      160,   221,   406,   218,    32,   265,   109,   110,   221,   122,
    2912      265,   381,   265,   630,   109,   256,   111,   634,   406,   239,
    2913     1226,   109,   864,   111,   185,   186,   186,   825,   719,   221,
    2914      146,   251,   987,   504,    57,    44,    45,   719,   251,   259,
    2915      109,   426,   427,   901,   264,   265,   266,   719,   209,   209,
    2916      251,   271,   251,   266,   825,   221,   813,   272,   185,   251,
    2917      221,   221,  1289,   794,   279,   907,   251,   109,   696,    85,
    2918     1276,   396,   221,  1502,   294,    49,   480,   636,   637,   813,
    2919      109,   603,   925,   106,  1453,   251,   109,   307,  1053,  1054,
    2920      251,   813,   480,   209,   653,   815,   621,   113,   813,   424,
    2921     1529,   626,   251,   323,   265,   430,   115,   433,   328,   494,
    2922      952,   251,    95,    44,    45,   328,   107,   112,  1487,   116,
    2923     1489,   341,   813,   239,   109,   345,   111,   109,   513,   349,
    2924      350,   813,   155,   348,  1212,   132,   934,     0,   110,   113,
    2925      131,   813,    44,    45,   364,   987,   129,  1473,   368,   131,
    2926      365,   371,   711,  1479,   369,   271,   116,   341,   130,   682,
    2927       72,    11,    74,    75,  1129,  1212,   228,   328,   328,    32,
    2928      130,    83,    84,  1499,  1050,   590,   396,   418,  1504,   114,
    2929      550,   551,   552,   114,   350,   247,   406,   371,   349,  1395,
    2930     1000,   307,   110,   406,   579,   218,  1038,   438,   116,   933,
    2931      526,   109,   114,   111,   424,   446,   426,   427,  1275,  1276,
    2932      430,   933,   114,   433,    72,  1442,   110,   632,   933,   110,
    2933       72,   746,  1449,   251,  1502,    83,    84,   110,   256,   345,
    2934      847,    83,    84,   116,   454,   209,   130,   119,   120,   130,
    2935      968,   433,  1289,   802,  1522,   406,   406,   433,   110,   272,
    2936      112,  1529,   472,   111,   116,   128,   279,   110,   131,   111,
    2937      480,   116,   482,   116,   484,   591,   737,   480,   488,   131,
    2938      132,   484,    70,  1500,   494,    73,  1118,   132,    76,   907,
    2939       78,    90,    91,   484,   688,  1128,   506,    85,   508,  1009,
    2940     1010,   511,   484,   513,   514,   982,   482,   271,   116,   484,
    2941      688,   521,  1100,   825,   648,   525,   526,   473,   657,   942,
    2942      426,   427,   130,   825,  1387,  1388,   125,   126,   484,   109,
    2943      294,   111,   939,   484,   952,   348,   110,   488,  1395,   116,
    2944      655,   116,   116,   307,   526,   484,  1178,  1179,    72,   116,
    2945      526,   525,   365,   130,   484,    72,   369,    74,    75,    83,
    2946       84,   571,   572,    88,    89,   132,    83,    84,  1086,   579,
    2947     1403,    72,     3,  1091,     4,     5,     6,     7,     8,     9,
    2948      590,   591,    83,    84,    72,   595,   116,   111,   494,     3,
    2949      905,   601,     1,   603,   111,    83,    84,   757,   251,   804,
    2950      418,   116,   132,   256,   809,  1442,     0,   513,   110,   591,
    2951      111,   621,  1449,     0,   116,   591,   626,   622,   628,   432,
    2952      438,   109,   632,  1289,   212,   635,   636,   637,   446,   111,
    2953      111,   113,   113,   638,   112,   109,   938,   111,   116,    69,
    2954      116,    71,   862,   653,   116,   655,   109,   652,   130,   130,
    2955      601,   682,   603,   635,   636,   637,   132,   109,   116,   111,
    2956      132,   591,   882,  1500,  1497,   116,   484,   623,   116,  1502,
    2957      116,   653,   131,   579,   132,   685,    72,   708,   688,   116,
    2958       76,   132,   116,   109,   132,  1000,   132,    83,    84,  1522,
    2959      454,   279,   897,    72,   810,   132,  1529,  1363,   132,   944,
    2960     1118,   711,   712,   713,    83,    84,   110,   109,   116,   719,
    2961      720,   116,   116,   109,   908,   621,   906,    92,    93,   110,
    2962      626,   117,   118,   906,   132,   116,   906,   132,   733,   711,
    2963      908,   109,   906,   110,   868,   745,   746,   688,   906,   116,
    2964      750,   751,   506,   699,   508,   109,   109,   511,   111,   906,
    2965      514,  1383,   906,   110,   117,   118,   294,   713,   112,   116,
    2966     1178,  1179,   116,   109,   352,   418,   354,  1399,   719,   720,
    2967      746,   745,  1506,   109,   112,   111,  1306,   590,   116,  1506,
    2968     1446,   109,  1448,   111,   794,   438,   109,   112,  1506,   117,
    2969      118,   116,   802,   446,   804,    72,   806,    74,    75,   809,
    2970      810,   110,   109,   813,   111,  1013,    83,    84,   110,   622,
    2971      117,   118,    72,   110,   116,   825,    76,   110,   112,   116,
    2972      802,   110,   116,    83,    84,   638,   110,   116,   810,   482,
    2973      110,   484,  1147,   112,   810,  1501,   116,  1469,  1470,   652,
    2974     1000,   115,   116,   252,    10,    11,    12,    13,    14,   109,
    2975      806,   111,   110,   111,   442,  1116,   109,   117,   118,  1120,
    2976     1121,   110,   813,   117,   682,   875,   110,   116,     3,   123,
    2977      124,   110,   116,    39,   825,    10,    11,    12,    13,    14,
    2978      810,  1041,    58,    59,   875,   110,   110,   897,   426,   427,
    2979      708,   116,  1086,   875,   904,   905,   906,  1091,   908,   110,
    2980      110,    67,  1036,   109,    39,    72,   116,   115,  1086,    76,
    2981      920,  1226,   109,  1091,   111,   109,    83,    84,  1123,   875,
    2982      733,   685,    64,   933,   934,   110,   115,   116,   938,   905,
    2983      904,   116,    67,   943,   944,    72,   875,    74,    75,    76,
    2984        0,     1,   109,    44,    45,   875,    83,    84,   943,   132,
    2985      117,   118,   943,   110,    66,   906,   109,   908,   968,   116,
    2986      109,   943,   111,   109,  1482,  1383,   553,   554,   506,    29,
    2987       30,   112,    32,   511,   132,  1236,   514,   506,   109,   508,
    2988      111,  1399,   511,    43,   911,   514,   913,   938,   114,    49,
    2989     1000,   555,   556,  1108,   114,   114,    72,    57,    74,    75,
    2990       76,   561,   562,    63,   943,   117,    66,    83,    84,    69,
    2991      132,  1021,  1022,  1531,   132,     4,     5,     6,     7,     8,
    2992        9,   109,    82,    83,   557,   558,   559,   560,    82,   682,
    2993      568,  1041,     4,     5,     6,     7,     8,     9,   944,  1021,
    2994     1022,    85,    86,    87,   109,  1021,   106,  1003,   160,   109,
    2995     1041,  1469,  1470,   109,   112,   708,   116,   875,   467,  1041,
    2996       82,    33,  1323,   118,   127,   109,  1327,   111,    94,   113,
    2997      114,  1081,   109,   110,   111,   128,  1086,   109,   110,   111,
    2998       69,  1091,    71,   131,   897,  1041,   111,   147,   109,   109,
    2999     1100,   110,   110,   746,  1000,   155,     3,    69,  1108,    71,
    3000      160,   112,  1041,    10,    11,    12,    13,    14,   112,   221,
    3001      112,  1041,   110,  1123,   109,   110,   111,   110,   110,   528,
    3002      110,   109,   110,   111,   533,   185,   186,    72,   109,    74,
    3003       75,    76,    39,   112,   111,  1086,   114,  1147,    83,    84,
    3004     1091,   201,   116,   132,   131,   733,   114,   259,   114,   209,
    3005      109,   112,   264,    58,    59,    60,   920,   110,   218,   110,
    3006       67,   221,   112,  1424,   109,   112,   111,   130,   228,   112,
    3007      112,  1147,   117,   118,   583,  1249,  1250,  1251,   130,  1189,
    3008     1190,   130,   116,   243,    29,   130,   110,   247,   110,   112,
    3009      115,   251,   252,   114,   112,  1190,   110,   116,  1208,  1190,
    3010      115,   109,  1212,   115,   110,   265,   266,  1189,  1190,   110,
    3011      130,   110,   272,   116,   110,   132,  1226,     3,   110,   279,
    3012     1230,  1212,   875,  1041,    10,    11,    12,    13,    14,   110,
    3013     1212,   116,   110,  1189,  1208,  1230,   110,   110,   350,  1230,
    3014      110,   110,   110,   110,     1,   654,   110,   656,  1230,   110,
    3015     1189,  1190,   905,    39,   110,   110,  1212,   110,    72,   110,
    3016       74,    75,    76,   115,  1379,  1275,  1276,    29,   328,    83,
    3017       84,  1516,   131,  1212,  1284,   110,   130,   116,   875,  1289,
    3018      112,    67,  1212,   112,   110,   110,   116,   110,   348,   349,
    3019      130,  1230,    49,  1275,  1276,   109,   109,   706,  1289,  1275,
    3020      116,   112,  1284,   117,   118,   365,   114,  1289,   110,   369,
    3021      110,   110,  1322,  1507,   112,   116,  1506,  1081,   110,   431,
    3022      380,   116,   116,  1506,    55,   110,  1506,  1322,  1284,  1507,
    3023      110,  1322,  1506,  1289,   112,   109,   396,  1531,  1506,   109,
    3024     1322,   109,   109,   109,   132,  1284,   406,   130,   105,  1506,
    3025     1289,   112,  1506,  1531,   110,   115,   113,   110,   110,  1289,
    3026      115,   473,   110,   128,   424,   115,    97,  1482,   114,  1379,
    3027      430,   112,   432,  1378,   132,   112,   116,   112,   110,    72,
    3028      110,    74,    75,  1322,   110,  1395,   110,   112,  1041,   146,
    3029       83,    84,   112,   112,  1212,  1208,   112,    72,   155,    74,
    3030       75,    76,   112,    72,   112,    74,    75,   467,    83,    84,
    3031     1420,    47,   472,  1395,    83,    84,   109,   132,   132,   132,
    3032      480,   114,   112,   132,   484,  1420,   132,   115,   488,  1420,
    3033      110,   491,  1442,   493,   109,   130,   115,   110,  1420,  1449,
    3034      109,  1451,   112,  1453,   115,   114,   112,  1044,   205,   112,
    3035      112,  1442,   209,   112,   110,   110,  1506,   109,  1449,   112,
    3036     1442,  1506,   193,  1506,   112,   109,   109,  1449,   528,    60,
    3037      110,  1289,  1482,   533,   132,   110,   114,  1487,   109,  1489,
    3038      112,  1420,   239,   595,   112,   216,  1442,   110,   112,   110,
    3039     1500,    96,    96,  1449,  1147,   226,  1506,  1507,   109,   109,
    3040      464,   115,   132,  1442,  1507,   130,  1516,   110,   110,  1500,
    3041     1449,   623,  1442,   110,   271,   110,   628,   274,  1500,  1449,
    3042      116,  1531,    42,   583,   132,   132,   110,   110,  1531,    66,
    3043      590,    96,    96,   132,   110,   110,   110,   294,    75,   132,
    3044      132,   601,   110,   603,  1500,   115,   112,   132,   115,   958,
    3045      307,   112,   109,   132,   110,  1506,    30,   115,   110,  1212,
    3046      132,  1500,   622,   294,   110,  1378,   110,   667,  1057,   563,
    3047     1500,   980,   978,  1226,   565,   984,  1212,  1365,   638,   564,
    3048      117,   464,   566,   643,   341,   567,  1470,   699,   345,  1541,
    3049     1299,  1327,   652,  1121,   654,   655,   656,  1072,  1449,   685,
    3050      685,   713,   913,   698,    66,  1091,   921,   364,    82,    83,
    3051     1516,   368,   583,   972,   371,  1212,   868,   723,   649,   940,
    3052       82,  1230,   484,   160,  1442,  1034,     0,     1,   688,   733,
    3053      571,  1449,   692,   571,   694,   571,  1289,    72,   698,    74,
    3054       75,    76,    -1,    -1,    -1,    -1,   706,    -1,    83,    84,
    3055       -1,    -1,    -1,  1191,  1192,   117,  1194,    -1,    32,   719,
    3056      720,    -1,    -1,  1201,    -1,  1203,    -1,    -1,    -1,   426,
    3057      427,    -1,    -1,   733,   109,    49,    -1,    10,    11,    12,
    3058       13,    14,  1500,    -1,   221,    -1,    -1,  1451,    -1,  1453,
    3059       -1,    -1,    -1,    -1,   806,    69,    -1,   454,   160,    -1,
    3060       85,    86,    87,    -1,    -1,    -1,    39,   671,  1305,    -1,
    3061      467,    -1,   443,    -1,    -1,    -1,    -1,    10,    11,    12,
    3062       13,    14,   259,  1487,   109,  1489,   111,   264,   113,   114,
    3063       -1,   105,    -1,    -1,    67,   492,    -1,   494,   469,   496,
    3064       -1,    -1,   279,    -1,    -1,    -1,    39,    -1,    -1,   506,
    3065       -1,   508,    -1,   813,   511,    -1,   513,   514,    -1,   221,
    3066     1357,    -1,    -1,  1360,    -1,   825,    -1,    -1,   525,   243,
    3067       -1,    -1,    -1,   147,    67,   506,   109,    -1,   111,    -1,
    3068      511,   155,   156,   514,   117,   118,    -1,    -1,   671,  1442,
    3069       -1,    -1,    -1,    -1,    -1,    -1,  1449,   259,    -1,    -1,
    3070       -1,    -1,   264,    -1,    -1,    -1,  1403,    -1,   868,    -1,
    3071       -1,  1408,   186,   350,   874,    -1,   109,    -1,   111,    -1,
    3072       -1,  1359,   579,    -1,   117,   118,   790,   201,    -1,    -1,
    3073      204,   205,    -1,   590,    -1,   209,   800,   897,    -1,  1436,
    3074     1249,  1250,  1251,    -1,    -1,    -1,   906,  1500,   908,    -1,
    3075      814,    -1,    -1,    -1,    -1,   915,   230,    -1,    -1,    -1,
    3076      234,    -1,   236,    -1,   621,    -1,    -1,    -1,    -1,   626,
    3077       -1,   245,    -1,    -1,    -1,   632,     0,   251,   938,    -1,
    3078       -1,    -1,   256,    -1,    -1,    -1,    -1,    -1,   350,    -1,
    3079       -1,  1003,   266,    -1,   431,    -1,    -1,    -1,   958,    -1,
    3080      274,    10,    11,    12,    13,    14,   380,   790,    32,    -1,
    3081       -1,   448,   972,    -1,    -1,    -1,    -1,   800,    -1,    -1,
    3082      980,    -1,    -1,  1520,   984,    -1,    -1,    -1,   685,  1526,
    3083       39,   814,    -1,    -1,    -1,    -1,   473,    -1,    -1,   670,
    3084     1537,    -1,   671,    -1,  1541,    69,    -1,    -1,   679,    -1,
    3085       -1,    -1,   683,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3086       -1,    72,    -1,    74,    75,    76,   723,   341,    -1,   431,
    3087       -1,   345,    83,    84,  1034,    -1,    -1,   351,  1387,  1388,
    3088       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,
    3089      364,    -1,    -1,    -1,   368,    -1,    -1,   371,   109,    -1,
    3090      109,    -1,   111,    -1,    -1,    -1,   117,   118,   117,   118,
    3091       -1,   473,  1072,    -1,    -1,    -1,  1425,   491,    -1,   493,
    3092       -1,    -1,    -1,    -1,    -1,    -1,  1086,    -1,    -1,    -1,
    3093       -1,  1091,   156,    97,    98,    99,   100,   101,   102,   103,
    3094      104,   105,   106,   107,   418,    -1,    -1,   804,  1108,    -1,
    3095       -1,    -1,   809,    -1,  1018,  1019,    -1,    -1,   595,   433,
    3096       -1,   790,    -1,    -1,   438,    -1,    -1,   131,    -1,    -1,
    3097       -1,   800,   446,    -1,  1483,    -1,    -1,  1189,    -1,    -1,
    3098       -1,    -1,    -1,  1492,    -1,   814,   623,    -1,    -1,    -1,
    3099      464,   628,    72,   467,    74,    75,    76,    -1,    -1,    -1,
    3100       -1,    -1,    -1,    83,    84,    -1,   230,    -1,   482,    -1,
    3101      484,    -1,  1076,  1077,    -1,    -1,    -1,    -1,   492,    -1,
    3102       -1,    -1,   496,    -1,    -1,  1185,    -1,   251,    -1,   109,
    3103       -1,   111,   256,   595,    -1,  1018,  1019,   117,   118,    -1,
    3104      897,    -1,    -1,    -1,    -1,    -1,    -1,   904,  1208,    -1,
    3105       -1,   525,   526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3106       -1,   623,   699,   920,    -1,    -1,   628,    -1,   899,   643,
    3107       -1,    -1,  1284,     0,    -1,    -1,   713,    -1,    -1,    -1,
    3108       -1,    -1,    -1,    -1,    -1,   942,   943,   944,    -1,  1249,
    3109     1250,  1251,    -1,  1076,  1077,    -1,   733,    -1,   572,    72,
    3110       -1,    74,    75,    76,    -1,    32,    -1,    -1,    -1,    -1,
    3111       83,    84,    -1,    -1,    -1,    -1,   590,   591,   692,    -1,
    3112      694,    -1,    -1,    -1,   698,    -1,    -1,   351,    72,   603,
    3113       74,    75,    76,    -1,    -1,    -1,   109,   699,   111,    83,
    3114       84,    -1,    69,  1000,   117,   118,    -1,   621,    -1,    -1,
    3115       -1,   713,   626,    -1,    -1,    -1,    -1,    -1,   632,    -1,
    3116     1224,   635,   636,   637,    -1,   109,    -1,   111,    -1,   806,
    3117       -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,   653,
    3118       -1,    -1,    -1,    26,    27,    28,    -1,    -1,    -1,  1018,
    3119     1019,    -1,  1256,    -1,   418,    -1,    -1,   671,    -1,    -1,
    3120     1264,  1265,  1266,    -1,    -1,    -1,    -1,    -1,   682,   433,
    3121       -1,    -1,    -1,    -1,   438,    -1,    -1,    -1,  1378,  1379,
    3122       -1,  1052,   446,    -1,  1081,    -1,    -1,  1387,  1388,   156,
    3123       -1,    -1,    -1,    -1,   708,    -1,    -1,   711,    -1,    -1,
    3124      464,  1224,    -1,    -1,   806,    -1,   720,  1076,  1077,   723,
    3125       -1,    -1,    -1,    -1,    -1,    98,    -1,   100,   482,    -1,
    3126      484,    -1,    -1,    -1,  1328,  1425,  1123,    -1,    -1,    -1,
    3127       -1,   745,   746,  1256,    -1,    -1,    -1,   751,    -1,    -1,
    3128       -1,  1264,  1265,  1266,    -1,    -1,    -1,    -1,    -1,    -1,
    3129       -1,    -1,    -1,    -1,   868,    -1,    -1,    -1,    -1,    -1,
    3130      874,    -1,   526,    -1,    -1,    -1,    -1,    26,    27,    28,
    3131       -1,    -1,    -1,    -1,    -1,    -1,   790,    -1,    -1,    -1,
    3132       -1,    -1,  1482,  1483,   251,    -1,   800,    -1,   802,   256,
    3133      804,    -1,  1492,   807,    -1,   809,   810,    -1,   181,    -1,
    3134      814,   915,    -1,    -1,    -1,  1328,  1506,  1507,   191,   192,
    3135      824,  1208,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,
    3136       -1,    -1,    -1,    -1,    -1,    -1,  1003,   591,    -1,    -1,
    3137       -1,  1531,    -1,  1230,    -1,    -1,    -1,    -1,    -1,    98,
    3138       -1,   100,    -1,    -1,    -1,     0,    -1,    -1,    -1,    -1,
    3139       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   972,    -1,
    3140       -1,   875,    -1,    -1,    -1,    -1,   125,    -1,    -1,    -1,
    3141       -1,   635,   636,   637,    -1,    -1,    -1,    32,    -1,    -1,
    3142       -1,    -1,    -1,   897,   351,    -1,    -1,  1256,    -1,   653,
    3143      904,   905,    -1,    -1,   908,  1264,  1265,  1266,    -1,    -1,
    3144       -1,  1003,    -1,    -1,    -1,    -1,    -1,   671,    -1,    -1,
    3145       -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,   682,    -1,
    3146      934,    -1,   181,    -1,    -1,  1322,    -1,  1298,   942,   943,
    3147      189,    -1,   191,   192,    -1,    -1,    -1,   196,    -1,   198,
    3148      199,    -1,    -1,    -1,   708,    -1,    -1,   711,    -1,    -1,
    3149       -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,  1072,  1328,
    3150       -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
    3151       -1,   438,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   446,
    3152       -1,    -1,   746,    -1,    -1,    -1,  1000,    10,    11,    12,
    3153       13,    14,    -1,    -1,    -1,    -1,    -1,   464,    -1,  1013,
    3154       -1,   156,    -1,    -1,  1018,  1019,    -1,  1021,  1022,   268,
    3155       -1,    -1,  1189,    -1,    -1,   482,    39,   484,    -1,    -1,
    3156       -1,    -1,    -1,  1420,    -1,    -1,   790,  1041,    -1,    -1,
    3157       -1,    -1,    -1,    -1,    -1,    -1,   800,    -1,   802,    -1,
    3158       -1,    -1,    -1,   807,    67,    -1,   810,    -1,    -1,    72,
    3159      814,    74,    75,    76,  1451,    -1,  1453,    -1,    -1,   526,
    3160       83,    84,  1076,  1077,    -1,    -1,    -1,    -1,    -1,    -1,
    3161       -1,  1185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1450,
    3162       -1,  1452,    -1,    -1,    -1,    -1,   109,  1189,   111,    -1,
    3163     1487,    -1,  1489,    -1,   117,   118,   251,    -1,    -1,    -1,
    3164       -1,   256,    -1,    -1,    -1,    -1,    -1,  1284,    -1,  1123,
    3165       -1,   875,    -1,    -1,    -1,  1486,    -1,  1488,    -1,  1516,
    3166       -1,    -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
    3167       -1,    -1,    -1,  1147,    -1,    -1,    -1,    -1,    -1,     0,
    3168       -1,   905,    -1,    -1,    -1,    -1,    -1,   189,    -1,    -1,
    3169       -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,  1530,
    3170       -1,  1532,    -1,    -1,    -1,    -1,    -1,    -1,   635,   636,
    3171      637,    32,    -1,    -1,  1545,  1546,  1190,    -1,    -1,    -1,
    3172       -1,    -1,  1284,    -1,    -1,    -1,   653,    -1,    -1,    -1,
    3173       -1,    -1,   575,   576,  1208,    -1,   351,    -1,  1212,    -1,
    3174       -1,    -1,    -1,    -1,   671,    -1,    -1,    -1,    69,    -1,
    3175     1224,    -1,  1226,    -1,    -1,   682,  1230,    -1,    -1,    -1,
    3176       -1,   604,    -1,    -1,   607,   608,   268,   610,    -1,   612,
    3177      613,    -1,    -1,    -1,   617,   618,    -1,    -1,    -1,    -1,
    3178       -1,   708,  1256,    -1,   711,    -1,    -1,    -1,    -1,    -1,
    3179     1264,  1265,  1266,    -1,  1018,  1019,    -1,  1021,  1022,    -1,
    3180       -1,  1275,  1276,   418,    -1,    -1,    -1,    -1,    10,    11,
    3181       12,    13,    14,    -1,    -1,  1289,    -1,  1041,   433,   746,
    3182       -1,   323,    -1,   438,    -1,    -1,    -1,    -1,    -1,   331,
    3183       -1,   446,   334,    -1,    -1,   156,    -1,    39,    -1,    -1,
    3184       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1322,   464,
    3185       -1,    -1,  1076,  1077,  1328,    -1,   575,   576,    -1,    -1,
    3186       -1,    -1,    -1,   790,    -1,    67,    -1,   482,    -1,   484,
    3187       72,    -1,    -1,   800,    76,   802,    -1,    -1,    -1,    -1,
    3188      807,    83,    84,   810,    -1,   604,    -1,   814,   607,   608,
    3189       -1,   610,    -1,   612,   613,    -1,   398,    -1,   617,   618,
    3190      402,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,
    3191       -1,   526,   755,   756,    -1,   117,   118,    -1,    -1,    -1,
    3192       -1,  1395,    -1,  1147,    -1,    -1,    -1,    -1,    -1,    -1,
    3193      251,    -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,
    3194       -1,    -1,    -1,    -1,    -1,    -1,  1420,    -1,   875,    -1,
     2892       0,     1,   239,    43,   185,   116,   534,     0,   204,   185,
     2893      43,   185,   185,   281,   185,    43,   521,     1,   601,   185,
     2894     185,   603,   168,   169,   105,   750,     0,     1,   219,   621,
     2895     349,   876,    32,   345,    49,   750,     0,   693,   603,    32,
     2896     156,   750,   513,    43,  1023,   757,   647,   572,   186,    49,
     2897    1325,   985,   186,   492,   189,     0,    49,   496,    32,  1022,
     2898    1023,   196,   156,    63,    32,  1402,    66,   601,    32,    69,
     2899      63,     0,    28,    66,   155,   187,    69,   109,   601,    39,
     2900      85,    43,   601,     0,   265,    69,    57,    32,   349,   265,
     2901     201,   265,   265,    43,   265,    69,    39,   601,   113,   265,
     2902     265,  1035,    63,    32,    51,   105,   364,   256,   113,   418,
     2903     368,   601,  1042,   113,    39,    32,   116,   117,    72,   696,
     2904      43,   109,    78,   111,   604,   601,   109,   876,   266,   438,
     2905     610,   146,   266,   268,   490,   106,  1473,   446,   109,    96,
     2906      39,   734,    72,   426,   427,   185,   146,   147,  1423,   261,
     2907     262,   111,   185,  1456,   147,   155,   156,   185,  1054,  1055,
     2908     160,    95,   109,   109,   110,   122,   109,   160,   111,    64,
     2909     482,   132,     0,     1,     0,    72,    82,    96,   132,    72,
     2910     636,   637,   907,   688,   284,   185,   186,  1490,   323,  1492,
     2911      83,    84,   907,   186,   209,   129,   331,   653,   907,   334,
     2912      82,   201,   132,   122,    32,   111,    32,   307,   308,   209,
     2913     109,   494,   111,  1117,   109,   719,   209,  1121,   111,   410,
     2914     117,   221,   876,   185,   239,   265,   294,   488,   221,   719,
     2915     513,   814,   265,    39,  1130,   185,   504,   265,    66,   239,
     2916      66,    69,    11,   719,   826,   345,   902,   218,    39,   605,
     2917    1229,   251,  1505,   609,   128,   711,   271,   131,   251,   259,
     2918     341,   826,   185,   398,   264,   265,   266,   402,   406,   418,
     2919     795,   271,   406,   266,   630,   109,   988,   251,   634,  1532,
     2920     814,   381,    39,   251,   603,   396,   116,   251,  1406,   438,
     2921     371,   814,   307,  1042,   294,   814,   579,   446,    44,    45,
     2922    1279,   272,   107,   109,   112,   111,   251,   307,   279,   621,
     2923     814,   256,    82,   424,   626,  1278,  1279,   433,   109,   430,
     2924     111,   109,   251,   323,   814,   926,   131,   256,   328,   112,
     2925     345,   908,   590,   116,   251,   328,   816,   228,   814,   433,
     2926     110,   341,   480,   131,   479,   345,   480,   803,   114,   349,
     2927     350,   934,   109,   935,   111,     3,   247,    70,   426,   427,
     2928      73,   110,  1292,    76,   364,    78,   116,     3,   368,   115,
     2929    1215,   371,    85,   682,   632,    49,   953,   348,    44,    45,
     2930     130,   130,  1500,    44,    45,    90,    91,  1505,   482,   116,
     2931      72,  1045,    72,   221,   365,   221,   396,    79,   369,    79,
     2932     934,    83,    84,    83,    84,    72,   406,  1525,   110,  1001,
     2933     526,   426,   427,   406,  1532,   934,    83,    84,   112,  1398,
     2934     125,   126,   116,   251,   424,   251,   426,   427,   130,   111,
     2935     430,   111,   526,   433,   746,  1398,   571,   572,   506,   113,
     2936    1505,   110,   109,   511,   525,   116,   514,   109,   114,   111,
     2937     550,   551,   552,   114,   454,     0,  1390,  1391,  1051,   130,
     2938    1525,   130,   464,   109,   969,   116,  1215,  1532,  1252,   737,
     2939    1254,  1255,   472,   418,    72,   591,    74,    75,     0,   494,
     2940     480,   132,   482,   109,   484,    83,    84,   480,   488,   418,
     2941     110,   484,   848,   438,   494,   109,   116,   591,   513,   212,
     2942     568,   446,   648,   109,   943,   111,   506,   826,   508,   438,
     2943     484,   511,   983,   513,   514,  1445,   114,   446,   131,  1101,
     2944     484,   521,  1452,   658,   350,   525,   526,   662,  1129,    72,
     2945    1010,  1011,   111,   682,   113,   209,    79,   119,   120,   484,
     2946      83,    84,  1119,  1292,   655,   657,    72,   805,    74,    75,
     2947     688,   130,   810,   482,   688,   484,   112,    83,    84,   708,
     2948     116,  1215,   116,   116,   579,   826,   279,   484,   111,   116,
     2949     116,   571,   572,  1503,   111,   110,   113,   130,   132,   579,
     2950     109,   116,  1087,   109,   940,   132,   132,  1092,   114,   109,
     2951     590,   591,   116,   130,   906,   595,  1476,   271,   109,   110,
     2952     111,   601,  1482,   603,  1181,  1182,   621,    72,   132,    74,
     2953      75,   626,     4,     5,     6,     7,     8,     9,    83,    84,
     2954     294,   621,  1502,   110,   117,   112,   626,  1507,   628,   116,
     2955     123,   124,   632,   307,   109,   635,   636,   637,    72,   352,
     2956     898,   354,    76,   116,   131,   132,   111,   473,   109,    83,
     2957      84,   622,   746,   653,  1308,   655,   484,   757,   484,   132,
     2958     795,     0,     1,   912,   745,   914,   116,   638,   110,   671,
     2959     116,   116,   863,   110,   591,   109,   112,    69,   939,    71,
     2960     116,   652,   132,   117,   118,   685,   132,   132,   688,  1001,
     2961      29,    30,   883,    32,   109,   811,  1445,   110,   116,  1292,
     2962     116,   110,   110,  1452,    43,   116,  1360,   116,   945,  1363,
     2963      49,   711,   712,   713,   132,   110,   132,   811,    57,   719,
     2964     720,   132,   116,   869,    63,   110,   907,    66,   109,   442,
     2965      69,   907,   116,   907,   907,   112,   907,   682,   132,   116,
     2966     132,   907,   907,    82,    83,   745,   746,    72,   132,    30,
     2967     750,   751,  1406,   682,  1503,   110,   112,  1411,    83,    84,
     2968     109,   116,   733,   708,    85,    86,    87,   106,    88,    89,
     2969     109,   909,   115,  1366,   109,   909,   111,   116,   913,   708,
     2970     454,  1309,   117,   118,  1509,  1439,    92,    93,   109,   791,
     2971     111,   132,   113,   114,  1509,   795,   109,   623,   110,   801,
     2972    1509,    82,    83,   803,   116,   805,    64,   807,   147,  1386,
     2973     810,   811,   906,   815,   814,   109,   155,   746,  1014,   112,
     2974     109,   160,   111,   132,   905,  1402,   826,   114,   117,   118,
     2975     115,   116,   506,    72,   508,    74,    75,   511,  1150,   114,
     2976     514,   109,   110,   111,    83,    84,   185,   186,    72,  1117,
     2977      74,    75,    76,  1121,  1122,   990,  1449,   114,  1451,    83,
     2978      84,   110,   201,   506,   109,   508,  1124,   116,   511,  1523,
     2979     209,   514,  1007,   699,   110,  1529,   876,   110,   111,   218,
     2980     116,    72,   221,    74,    75,   109,  1540,   713,   132,   228,
     2981    1544,  1037,    83,    84,   811,  1472,  1473,   109,   898,   111,
     2982     132,  1001,   876,    72,   243,   905,   906,   907,   247,   909,
     2983      79,  1504,   251,   252,    83,    84,   110,  1229,   109,    58,
     2984      59,   921,   116,   114,    44,    45,   265,   266,  1022,    82,
     2985     945,   876,   110,   272,   934,   935,   112,   110,   116,   939,
     2986     279,   109,  1042,   116,   944,   945,   110,   876,   109,  1087,
     2987    1085,   110,   116,  1087,  1092,   115,   116,   116,  1092,   876,
     2988     944,    72,   243,    74,    75,    76,   109,     1,   111,   969,
     2989     944,  1239,    83,    84,   117,   118,   110,   906,   110,   127,
     2990    1485,   807,   116,    82,   116,     3,  1001,   553,   554,   328,
     2991    1125,   110,    10,    11,    12,    13,    14,   116,  1109,   561,
     2992     562,  1001,    10,    11,    12,    13,    14,   110,   110,   348,
     2993     349,   685,   118,   116,   116,    49,   128,  1019,  1020,   110,
     2994     733,    39,  1022,  1023,    94,   116,   365,   555,   556,  1534,
     2995     369,    39,    10,    11,    12,    13,    14,   110,   109,   110,
     2996     111,   380,  1042,   116,     3,   109,   110,   111,   876,    67,
     2997     876,    10,    11,    12,    13,    14,  1150,   396,  1326,    67,
     2998     111,    39,  1330,   557,   558,   559,   560,   406,  1042,   131,
     2999     109,   105,    58,    59,    60,  1077,  1078,   109,   109,   113,
     3000      39,   109,  1082,   111,   109,   424,   111,  1087,   109,    67,
     3001     111,   430,  1092,   432,    72,   112,   112,  1042,    76,   380,
     3002     109,  1101,   111,   110,   110,    83,    84,   112,    67,  1109,
     3003     110,    72,   146,  1042,   110,    76,   944,   110,   110,     0,
     3004       1,   155,    83,    84,  1124,  1042,  1194,  1195,   467,  1197,
     3005    1211,   109,   109,   472,   111,   111,  1204,     0,  1206,   117,
     3006     118,   480,   112,   114,   116,   484,   131,   114,   109,   488,
     3007    1150,    32,   491,   110,   493,   109,   117,   118,   114,  1427,
     3008     112,     4,     5,     6,     7,     8,     9,   110,   112,    32,
     3009      72,   205,    74,    75,    76,   209,   112,   112,  1004,   112,
     3010      43,    83,    84,   130,  1278,    66,    49,   116,    69,   528,
     3011      33,   130,  1192,  1193,   533,    29,   130,   110,   110,     1,
     3012      63,   112,   110,    66,   114,   239,    69,   109,   112,  1193,
     3013     491,  1211,   493,   116,  1042,  1215,  1042,   115,   115,  1193,
     3014      72,  1150,    74,    75,    76,  1227,    69,   115,    71,  1229,
     3015     109,    83,    84,  1233,   110,   130,   132,   271,   110,   116,
     3016     274,  1215,   110,   110,   583,     3,   110,   921,   110,  1233,
     3017     116,   590,    10,    11,    12,    13,    14,  1259,   115,  1233,
     3018     294,   110,   601,   110,   603,  1267,  1268,  1269,   110,   110,
     3019    1215,  1382,   110,   307,   110,   156,    29,   110,  1278,  1279,
     3020     110,    39,  1519,   622,   147,   110,  1215,  1287,   110,   110,
     3021     110,   110,  1292,   130,  1362,   110,   131,   160,  1215,   638,
     3022    1229,   112,   116,   112,   643,   110,   110,   341,   116,    67,
     3023     110,   345,   130,   652,   109,   654,   655,   656,  1292,   116,
     3024     114,   112,   185,   186,   110,  1325,   110,   110,  1509,  1331,
     3025     364,   116,   112,  1509,   368,  1509,  1509,   371,  1509,   110,
     3026     221,  1325,   116,  1509,  1509,   110,   209,  1292,   116,   688,
     3027     110,  1325,   109,   692,   109,   694,   112,   109,   221,   698,
     3028     109,   109,   643,  1292,  1192,  1193,  1192,   706,   130,   112,
     3029     251,   132,  1510,   115,  1485,  1292,  1510,   464,   110,   110,
     3030     719,   720,  1382,   110,   128,   115,   115,  1215,   251,  1215,
     3031     114,   112,   426,   427,   733,    72,  1534,   132,  1398,    76,
     3032    1534,    49,   265,   110,   112,  1233,    83,    84,  1082,   112,
     3033    1381,   692,   116,   694,   110,    63,   110,   698,    66,   110,
     3034     454,    69,   112,  1423,   112,   112,   110,   112,    47,   112,
     3035     112,   132,   109,   467,   111,   132,   115,   132,   110,  1423,
     3036     117,   118,   115,   132,   110,  1445,   132,   115,   112,  1423,
     3037     252,   112,  1452,   112,  1454,   130,  1456,   112,   492,  1287,
     3038     494,  1287,   496,   112,  1292,   328,  1292,   112,   110,  1509,
     3039     110,  1445,   506,   112,   508,   814,  1509,   511,  1452,   513,
     3040     514,  1509,   112,   109,   109,  1485,   349,   826,   109,    60,
     3041    1490,   525,  1492,   110,   110,   109,   114,  1325,   132,   147,
     3042    1445,   112,   112,  1503,  1519,   110,   112,  1452,   110,  1509,
     3043    1510,    96,   160,    96,   109,   109,  1445,  1510,   115,  1519,
     3044      57,   110,   110,  1452,    55,   132,   110,    42,  1445,  1503,
     3045     869,   110,     0,     1,  1534,  1452,   875,   130,   186,   116,
     3046     671,  1534,   132,   406,   110,   579,     4,     5,     6,     7,
     3047       8,     9,   433,   110,   132,    96,   590,    96,  1503,   898,
     3048     132,   209,   110,   132,    32,   110,    97,   132,   907,   106,
     3049     909,   115,   109,   221,  1503,   110,   110,   916,    85,    86,
     3050      87,    49,   112,   112,   671,   132,  1503,   621,   869,   109,
     3051     132,   115,   626,   115,   875,  1423,   110,   110,   632,   132,
     3052     939,    69,   109,   484,   111,   110,   113,   114,   110,   667,
     3053    1058,    69,   563,    71,   564,   979,   565,  1445,   155,  1445,
     3054     959,   484,   567,  1215,  1452,   488,  1452,    72,   566,    74,
     3055      75,    76,  1473,  1368,   973,   916,  1544,   105,    83,    84,
     3056    1122,  1330,   981,  1302,  1073,   526,   985,   685,  1452,   685,
     3057     914,   685,  1092,   698,   973,    66,   922,   583,   869,   649,
     3058     791,   941,   193,   723,   109,   467,   111,   484,  1233,    -1,
     3059     801,    82,   117,   118,   733,  1503,    -1,  1503,   571,   147,
     3060     328,   218,   571,    -1,   815,   216,   571,   155,   156,   723,
     3061      -1,    -1,   973,    -1,    -1,   226,  1035,    -1,    -1,    -1,
     3062      -1,    -1,    -1,    -1,   791,    -1,   117,    -1,    -1,    -1,
     3063     591,   745,    -1,    -1,   801,    -1,    -1,    -1,   186,    -1,
     3064      -1,    -1,    -1,    -1,    -1,    -1,   528,    -1,   815,    -1,
     3065      -1,   533,    -1,   201,  1073,   272,   204,   205,   601,    -1,
     3066     603,   209,   279,    -1,    -1,    -1,    -1,    -1,  1087,   160,
     3067      -1,    -1,    -1,  1092,   635,   636,   637,    -1,   406,    -1,
     3068      -1,    -1,   230,   294,    -1,    -1,   234,    -1,   236,    -1,
     3069    1109,   805,   653,    -1,    -1,    -1,   810,   245,    -1,    -1,
     3070    1454,   583,  1456,   251,    -1,    -1,    -1,    -1,   256,    -1,
     3071     696,    -1,  1073,    -1,    -1,    -1,    -1,    -1,   266,    -1,
     3072      -1,    72,    -1,    74,    75,    76,   274,    -1,    -1,    -1,
     3073     221,   348,    83,    84,    -1,    -1,  1490,    -1,  1492,    -1,
     3074      -1,    -1,    -1,    -1,    -1,   688,    -1,    -1,   365,    -1,
     3075     711,    -1,   369,    -1,    -1,    -1,     0,    -1,   109,    -1,
     3076     111,    10,    11,    12,    13,    14,   117,   118,   259,  1188,
     3077      -1,    -1,   654,   264,   656,    -1,   719,   720,    -1,   130,
     3078      -1,    -1,    -1,    -1,   898,    -1,    -1,    -1,    32,    -1,
     3079      39,   905,  1211,   341,    -1,    -1,    -1,   345,    -1,    -1,
     3080      -1,    -1,   788,   351,    -1,    -1,    -1,   921,  1019,  1020,
     3081      -1,    -1,    -1,    -1,    -1,   432,   364,    -1,    67,    -1,
     3082     368,    -1,    -1,   371,   706,    69,    -1,  1188,    -1,   943,
     3083     944,   945,   443,  1252,    -1,  1254,  1255,    -1,    -1,    -1,
     3084      -1,    -1,   803,    -1,    10,    11,    12,    13,    14,    -1,
     3085     811,    -1,  1019,  1020,    -1,    -1,    -1,    -1,   469,   350,
     3086     109,    -1,   111,    -1,    -1,    -1,  1077,  1078,   117,   118,
     3087     418,   814,    -1,    39,    -1,    -1,    -1,    -1,    -1,   865,
     3088      -1,    -1,    -1,   826,    -1,   433,    -1,  1001,    -1,    -1,
     3089     438,    -1,    -1,    -1,    -1,   506,    -1,    -1,   446,    -1,
     3090     511,    67,    -1,   514,    -1,    -1,    -1,    -1,    -1,    -1,
     3091    1077,  1078,   156,    -1,    -1,   876,   464,    -1,    -1,   467,
     3092      -1,    -1,   908,    -1,    10,    11,    12,    13,    14,    -1,
     3093      -1,    -1,    -1,    -1,   482,    -1,   484,    -1,    -1,    -1,
     3094     431,    -1,    -1,   109,   492,   111,    -1,    -1,   496,    -1,
     3095      -1,   117,   118,    39,    -1,    -1,    -1,    -1,    -1,    -1,
     3096      -1,    -1,  1381,  1382,   907,    -1,   909,   953,  1082,    -1,
     3097      -1,  1390,  1391,   590,    -1,    -1,    -1,   525,   526,    -1,
     3098      -1,    67,   473,   944,    -1,    -1,   230,    -1,    -1,    -1,
     3099      -1,    -1,    -1,    -1,    -1,    -1,   939,    -1,    -1,    -1,
     3100      -1,    -1,   988,    -1,    -1,   622,    -1,   251,    -1,  1428,
     3101    1124,    -1,   256,    -1,    -1,    -1,    -1,     0,    -1,    -1,
     3102      -1,   638,    -1,   109,   572,   111,    -1,    -1,    -1,    -1,
     3103      -1,   117,   118,    -1,    72,   652,    74,    75,    76,    -1,
     3104      -1,    -1,   590,   591,    -1,    83,    84,    -1,  1259,    32,
     3105      -1,    -1,    -1,  1039,    -1,   603,  1267,  1268,  1269,   670,
     3106    1227,  1022,  1023,    -1,    -1,    -1,  1485,  1486,   679,    -1,
     3107      -1,   109,   683,   621,    -1,    -1,  1495,   959,   626,   117,
     3108     118,  1042,    -1,    -1,   632,    -1,    69,   635,   636,   637,
     3109    1509,  1510,  1259,    -1,    -1,    -1,    -1,  1211,    -1,   981,
     3110    1267,  1268,  1269,   985,   595,   653,    72,   351,    74,    75,
     3111      76,    -1,    -1,    -1,    -1,  1534,   733,    83,    84,  1233,
     3112    1331,    -1,    -1,   671,    -1,    -1,    10,    11,    12,    13,
     3113      14,    -1,   623,  1119,   682,    -1,    -1,   628,    -1,    -1,
     3114      -1,    -1,    -1,   109,  1087,   111,    -1,    -1,    -1,  1092,
     3115      -1,   117,   118,  1035,    -1,    39,    -1,    -1,    -1,    -1,
     3116     708,    -1,    -1,   711,  1331,    -1,    -1,    66,    -1,    -1,
     3117      -1,    -1,   720,   156,   418,   723,    -1,    -1,    -1,    -1,
     3118      -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,   433,
     3119      74,    75,    76,    -1,   438,  1181,  1182,   745,   746,    83,
     3120      84,    -1,   446,   751,    -1,    -1,    -1,    -1,   699,    -1,
     3121      -1,  1325,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,
     3122     464,    -1,   713,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3123      -1,  1192,  1193,   117,   118,    -1,    -1,    -1,   482,    -1,
     3124     484,    -1,    -1,   791,    -1,    -1,    -1,    -1,    -1,    -1,
     3125      -1,    -1,    -1,   801,  1215,   803,    -1,   805,    -1,    -1,
     3126     808,   160,   810,   811,    -1,    -1,    -1,   815,   251,    -1,
     3127      -1,    -1,  1233,   256,    -1,    -1,    -1,   825,    -1,    -1,
     3128      -1,   898,   526,    -1,    -1,    -1,    -1,    -1,    -1,   900,
     3129      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3130      19,    20,    21,    22,    23,    24,    25,    26,    27,  1423,
     3131      -1,    30,    31,    32,    -1,    -1,   807,  1278,  1279,    -1,
     3132      39,     0,   221,    -1,    -1,    -1,  1287,    -1,   876,    -1,
     3133      -1,  1292,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
     3134    1454,    -1,  1456,    -1,    -1,    83,    84,   591,    67,    -1,
     3135     898,    -1,    -1,    32,    -1,    74,    75,   905,   906,    -1,
     3136     259,   909,    -1,    -1,  1325,   264,    -1,    -1,   351,    -1,
     3137    1252,   109,  1254,  1255,    -1,    -1,  1490,    -1,  1492,   117,
     3138     118,    -1,    -1,    -1,    -1,    -1,    -1,   935,    -1,    -1,
     3139      69,   635,   636,   637,    -1,   943,   944,    -1,   117,   118,
     3140    1386,    -1,    -1,    -1,    -1,  1519,    -1,    -1,    -1,   653,
     3141      -1,    -1,    -1,    -1,    -1,    -1,  1402,    -1,    -1,    -1,
     3142      -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,    -1,    -1,
     3143      -1,    -1,    -1,    -1,    -1,   418,    -1,  1398,   682,    -1,
     3144      -1,    -1,  1053,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3145     433,   350,    -1,  1001,    -1,   438,    -1,    -1,    -1,    -1,
     3146      -1,    -1,  1423,   446,   708,    -1,  1014,   711,    -1,    -1,
     3147      -1,  1019,  1020,    -1,  1022,  1023,    -1,   156,    -1,    -1,
     3148      -1,   464,    -1,    -1,  1445,    -1,  1472,  1473,    -1,    -1,
     3149      -1,  1452,    -1,    -1,  1042,    -1,    -1,    -1,    -1,   482,
     3150      -1,   484,   746,    -1,    -1,    -1,    -1,    -1,  1390,  1391,
     3151      -1,    -1,    -1,  1004,    -1,    -1,    10,    11,    12,    13,
     3152      14,    -1,    10,    11,    12,    13,    14,    -1,    -1,  1077,
     3153    1078,    -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3154      -1,    -1,  1503,   526,    -1,    39,  1428,   791,    -1,    -1,
     3155      -1,    39,    -1,    -1,    -1,    -1,    -1,   801,    -1,   803,
     3156      -1,    -1,    -1,    -1,   808,    -1,  1509,   811,    -1,    -1,
     3157      -1,   815,   251,    67,   473,    -1,  1124,   256,    72,    67,
     3158      74,    75,    76,    -1,    72,    -1,    74,    75,    76,    83,
     3159      84,    -1,    -1,    -1,  1211,    83,    84,    -1,    -1,    -1,
     3160      -1,    -1,  1150,    -1,  1486,    -1,    -1,    -1,   591,    -1,
     3161      -1,    -1,    -1,  1495,    -1,   109,    -1,   111,    -1,    -1,
     3162      -1,   109,    -1,   117,   118,    -1,    -1,    -1,    -1,   117,
     3163     118,    -1,   876,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3164      75,    76,    -1,    -1,    -1,  1193,    -1,    -1,    83,    84,
     3165      -1,    -1,   635,   636,   637,    -1,    -1,    -1,    -1,    -1,
     3166      -1,    -1,   906,  1211,    -1,    -1,    -1,  1215,    -1,    -1,
     3167     653,    -1,   351,    -1,   109,    -1,   111,    -1,    -1,  1227,
     3168      -1,  1229,   117,   118,    -1,  1233,    66,    -1,   671,    -1,
     3169    1301,    -1,    -1,    -1,    -1,    75,   595,    -1,    -1,   682,
     3170      -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3171      -1,  1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267,
     3172    1268,  1269,    -1,    -1,   623,   708,    -1,    -1,   711,   628,
     3173    1278,  1279,    -1,    -1,    -1,    -1,    -1,   117,     0,   418,
     3174      -1,    -1,    -1,    -1,  1292,    -1,    -1,    -1,    -1,    -1,
     3175      -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,   438,
     3176      -1,    -1,    -1,   746,  1381,    -1,    -1,   446,    -1,    -1,
     3177      32,    -1,    -1,    -1,    -1,  1019,  1020,  1325,  1022,  1023,
     3178     160,    -1,    -1,  1331,    -1,   464,    -1,    -1,    -1,    -1,
     3179      -1,    -1,    -1,    -1,    -1,    -1,  1287,    -1,  1042,    -1,
     3180     699,    -1,    -1,   482,    -1,   484,    -1,    69,   791,    -1,
     3181      -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,   801,    -1,
     3182     803,    -1,    -1,    -1,    -1,   808,    -1,    -1,   811,    -1,
     3183      -1,    -1,   815,  1077,  1078,    -1,    -1,    -1,    -1,    -1,
     3184      -1,   221,  1453,    -1,  1455,    -1,    -1,   526,    -1,    -1,
     3185    1398,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
     3186      53,    -1,    55,    -1,    -1,    58,    59,    60,    -1,    62,
     3187      -1,    -1,    -1,    -1,    -1,  1423,    -1,    -1,  1489,   259,
     3188    1491,    39,    -1,    76,   264,    -1,    -1,    -1,    -1,    -1,
     3189      -1,    -1,    -1,   876,   156,    88,    89,  1445,    -1,   279,
     3190      -1,    -1,    -1,    -1,  1452,    -1,  1150,    -1,   807,    67,
     3191      -1,    -1,   591,    -1,    72,    -1,    74,    75,    76,    -1,
     3192      -1,    -1,  1533,   906,  1535,    83,    84,    -1,    -1,    -1,
     3193      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1548,  1549,    -1,
     3194      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1193,
     3195      -1,   109,    -1,   111,    -1,  1503,   635,   636,   637,   117,
     3196     118,    -1,  1510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3197     350,  1215,    -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,
     3198      -1,    -1,    -1,  1227,    -1,  1229,    -1,    -1,    -1,   251,
     3199      -1,    -1,   671,    -1,   256,    -1,    -1,    -1,    -1,    -1,
     3200      -1,    -1,    -1,   682,    -1,    -1,    -1,    -1,    -1,    10,
     3201      11,    12,    13,    14,    -1,  1259,    -1,    -1,    -1,    -1,
     3202      -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,    -1,   708,
     3203      -1,    -1,   711,    -1,  1278,  1279,  1019,  1020,    39,  1022,
     3204    1023,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,    -1,
     3205      -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1042,
     3206      -1,    -1,    -1,    -1,    -1,    -1,    67,   746,   448,    -1,
     3207      -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3208      -1,    -1,    83,    84,    -1,    -1,    -1,  1331,    -1,   351,
     3209      -1,    -1,    -1,   473,  1077,  1078,    26,    27,    28,    -1,
     3210      -1,    -1,    -1,    -1,    -1,  1004,    -1,    -1,   109,    -1,
     3211      -1,    -1,   791,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3212      -1,    -1,   801,    -1,   803,    -1,    -1,    -1,    -1,   808,
     3213      -1,    -1,   811,    -1,    -1,    -1,   815,    -1,    97,    98,
     3214      99,   100,   101,   102,   103,   104,   105,   106,   107,    -1,
     3215      -1,   344,    -1,   346,  1398,    -1,   418,    -1,    -1,    -1,
     3216      -1,    -1,    -1,    -1,   357,   358,    -1,  1150,    98,    -1,
     3217     100,   433,   131,    -1,    -1,    -1,   438,    -1,    -1,    -1,
     3218      -1,    -1,    -1,    -1,   446,    -1,    -1,    -1,    -1,    -1,
     3219      -1,    -1,    -1,    -1,    -1,    -1,    -1,   876,    -1,    -1,
     3220      -1,  1445,   464,    -1,    -1,    -1,    -1,    -1,  1452,    -1,
     3221    1193,    -1,    -1,    -1,    -1,   595,    -1,    -1,    -1,    -1,
     3222     482,    -1,   484,    -1,    -1,    -1,    -1,   906,    -1,    -1,
     3223      -1,    -1,  1215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3224      -1,    -1,    -1,   623,  1227,    -1,  1229,    -1,   628,    -1,
     3225      -1,   181,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1503,
     3226      -1,   191,   192,    -1,   526,    -1,   196,    -1,   198,   199,
     3227      -1,    -1,    -1,    -1,    -1,    -1,  1259,    -1,    -1,    -1,
     3228      -1,    -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,    -1,
     3229      -1,    -1,    -1,  1192,    -1,  1278,  1279,    -1,    -1,    -1,
     3230      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,
     3231      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   699,
     3232      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   591,
     3233      -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,
     3234    1019,  1020,    -1,  1022,  1023,    -1,    -1,    -1,  1331,    -1,
     3235      -1,    -1,    -1,   733,    -1,    -1,    -1,    -1,    -1,    -1,
     3236      -1,    -1,    -1,  1042,     7,    -1,    -1,    10,    11,    12,
     3237      13,    14,    -1,   635,   636,   637,    -1,    -1,    -1,    -1,
     3238      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1287,    -1,
     3239      -1,   653,    -1,    -1,    37,    38,    39,    40,  1077,  1078,
     3240      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,
     3241      -1,    -1,    -1,    -1,    -1,  1398,    -1,    -1,    -1,    -1,
     3242     682,    -1,    -1,    66,    67,    -1,    -1,   807,    -1,    72,
     3243      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3244      83,    84,    -1,    86,    87,    -1,   708,    -1,    -1,   711,
     3245      -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
     3246      -1,    -1,  1445,    -1,    -1,    -1,   109,    -1,   111,  1452,
     3247      -1,  1150,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3248      -1,    -1,    39,    -1,   746,    -1,    -1,    -1,    -1,    -1,
    31953249      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3196       -1,    -1,    -1,    -1,    -1,    -1,  1190,    -1,  1442,    -1,
    3197       -1,    -1,    -1,    -1,    -1,  1449,   591,   479,   905,    -1,
    3198       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1212,    -1,
     3250      -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,   702,
     3251      67,    -1,    -1,    -1,  1193,    72,   709,   710,    -1,    76,
     3252    1503,   714,    -1,    -1,    -1,    -1,    83,    84,    -1,   791,
     3253      -1,    -1,    -1,   726,    -1,    -1,  1215,    -1,   731,   801,
     3254      -1,   803,    -1,    -1,    -1,    -1,   808,    -1,  1227,   811,
     3255    1229,    -1,   109,   815,    -1,    -1,    -1,    -1,    -1,    -1,
     3256     117,   118,    -1,    -1,    -1,    -1,   759,    -1,    -1,    -1,
    31993257      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3200     1224,    -1,  1226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3201       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    3202      635,   636,   637,    -1,    -1,    -1,  1500,    -1,    -1,    -1,
    3203      351,    -1,  1256,  1507,    -1,    -1,   755,   756,   653,    -1,
    3204     1264,  1265,  1266,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    3205       -1,  1275,  1276,    -1,    -1,    -1,   671,    -1,    -1,    -1,
    3206       -1,    -1,    -1,    -1,    -1,  1289,    -1,   682,    -1,   571,
    3207      572,    67,    -1,    -1,   917,    -1,    72,    -1,    74,    75,
     3258    1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267,  1268,
     3259    1269,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,
     3260    1279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,  1292,   876,    -1,    -1,    -1,    -1,    -1,
     3262      -1,    -1,    -1,    -1,  1004,    -1,    -1,    -1,    -1,    -1,
     3263      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3264      -1,    -1,    -1,    -1,   906,   575,   576,    -1,    -1,    -1,
     3265      -1,    -1,  1331,    -1,    -1,    -1,    -1,    -1,    49,    -1,
     3266      -1,    -1,    37,    38,    39,    40,   859,   860,   861,   862,
     3267      -1,   864,    -1,    -1,   604,    66,    -1,   607,   608,    -1,
     3268     610,    -1,   612,   613,    -1,    -1,   879,   617,   618,    -1,
     3269      -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3270     893,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3271      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,  1398,
     3272      -1,    -1,   113,    -1,    -1,    -1,   117,    -1,    -1,    -1,
     3273      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3274     933,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3275      -1,    -1,    -1,    -1,    -1,   146,    -1,  1019,  1020,    -1,
     3276    1022,  1023,    -1,    -1,    -1,   156,  1445,    -1,    -1,   160,
     3277      -1,    -1,    -1,  1452,    -1,    -1,    -1,    -1,    -1,    -1,
     3278    1042,    -1,    -1,    -1,    -1,   978,    -1,    -1,    -1,    -1,
     3279      -1,   984,    -1,    -1,    -1,    -1,   989,    -1,    -1,    -1,
     3280      -1,   994,    -1,   996,    -1,    -1,    -1,  1000,    -1,  1002,
     3281    1003,    -1,  1192,  1006,    -1,  1077,  1078,    -1,   209,    -1,
     3282      -1,    -1,  1015,    -1,  1503,   755,   756,    -1,    -1,    -1,
     3283     221,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3284    1033,  1034,    -1,    -1,    -1,    -1,    -1,    -1,   239,    10,
     3285      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3286      21,    22,    23,    24,    25,    26,    27,  1060,    -1,    -1,
     3287    1063,    -1,    -1,   264,    -1,    -1,    -1,    -1,    39,    -1,
     3288     271,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1150,    -1,
     3289      -1,    -1,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,
     3290      -1,    -1,    -1,   294,    -1,    -1,    67,  1287,    -1,    -1,
     3291      -1,    -1,    -1,  1106,    -1,    -1,   307,    -1,    -1,  1112,
     3292    1113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3293      -1,  1193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1132,
     3294      -1,    -1,    -1,  1136,    -1,    -1,    -1,    -1,  1141,    -1,
     3295      -1,    -1,    -1,  1215,   345,    -1,    -1,    -1,    -1,   350,
     3296      -1,  1154,    -1,    -1,    98,  1227,   100,  1229,    -1,    -1,
     3297      -1,    -1,    -1,    -1,  1167,    -1,  1169,  1170,  1171,  1172,
     3298      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
     3299      -1,   125,  1185,    -1,  1187,    -1,    -1,  1259,  1191,    -1,
     3300      -1,    -1,    -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,
     3301      -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,    -1,    -1,
     3302      66,    -1,    -1,    -1,    -1,    -1,    -1,  1220,  1221,    75,
     3303    1292,    77,    -1,    79,    -1,   426,   427,    -1,    -1,    -1,
     3304      86,    -1,   433,    -1,    -1,    -1,    -1,   181,    -1,    -1,
     3305      -1,    -1,    -1,    -1,    -1,   189,    -1,   191,   192,    -1,
     3306      -1,    -1,   196,   454,   198,   199,    -1,    -1,    -1,  1331,
     3307      -1,   117,    -1,   119,   120,   121,    -1,  1270,  1271,    -1,
     3308      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1280,    -1,    -1,
     3309      -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3310      -1,    -1,    -1,   494,    -1,    -1,    -1,    -1,    -1,    -1,
     3311      -1,    -1,    -1,    -1,   160,   506,    -1,   508,    -1,    -1,
     3312     511,    -1,   513,   514,    -1,    -1,    -1,    -1,    -1,    -1,
     3313      -1,    -1,    -1,    -1,   268,   526,  1398,    -1,    -1,    -1,
     3314      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1341,  1079,
     3315    1343,  1344,  1345,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3316      -1,    -1,  1355,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3317      -1,  1364,    -1,    -1,    -1,   221,    -1,   223,   224,   225,
     3318      -1,    -1,    -1,  1445,    -1,    -1,    -1,    -1,   579,    -1,
     3319    1452,    -1,    -1,    -1,    -1,    -1,  1389,    -1,    -1,    -1,
     3320     591,    -1,    -1,    -1,   595,    -1,    -1,    -1,    -1,    -1,
     3321      -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,    -1,
     3322      -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,
     3323     621,    -1,    -1,   279,    -1,   626,    -1,    -1,    -1,  1432,
     3324    1433,  1503,    -1,    -1,   635,   636,   637,    -1,    -1,    -1,
     3325      -1,    -1,  1445,    -1,    -1,    -1,    -1,    -1,    -1,  1452,
     3326      -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3327      -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3328    1210,   101,   328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3329      -1,  1484,    -1,    -1,   685,  1488,    -1,    -1,    -1,    -1,
     3330      -1,    -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,   355,
     3331     356,    -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,
     3332     711,    -1,   713,  1516,    -1,  1518,    -1,    -1,    -1,    -1,
     3333      -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,    -1,
     3334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3335      -1,   171,    -1,  1546,  1547,   746,    -1,    -1,    -1,    -1,
     3336     406,  1554,  1555,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3337      -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,   424,    37,
     3338      38,    -1,    40,   429,    -1,   431,    -1,    -1,   208,    -1,
     3339      -1,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,
     3340      -1,    -1,   448,    -1,    -1,   451,   452,   227,    66,    -1,
     3341      -1,    -1,   803,   459,    72,    -1,   807,    -1,    76,    -1,
     3342     811,    79,    80,    81,    82,    83,    84,   473,    86,    87,
     3343      -1,    -1,   252,    -1,   480,    -1,    -1,   257,    -1,    -1,
     3344      -1,   575,   576,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3345     270,   109,    -1,   111,    -1,    -1,   276,    -1,   278,   117,
     3346     118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
     3347     604,    -1,   130,   607,   608,   295,   610,    -1,   612,   613,
     3348      -1,    -1,    -1,   617,   618,    10,    11,    12,    13,    14,
     3349      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3350      25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,
     3351      -1,    -1,    -1,    -1,    39,   906,    -1,    -1,   338,    -1,
     3352      -1,    -1,    -1,   343,    -1,    -1,    -1,    -1,    -1,    -1,
     3353     921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3354      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,   595,
     3355      -1,    -1,   372,    78,   945,    -1,   376,   377,    -1,   379,
     3356      -1,    -1,    -1,    -1,    -1,    -1,   386,   387,    -1,   389,
     3357     390,    -1,   392,    -1,   394,    -1,    -1,   623,    -1,    -1,
     3358      -1,    -1,   628,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3359      -1,   411,    -1,    -1,    37,    38,    -1,    40,    -1,   419,
     3360      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3361    1001,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3362      -1,   755,   756,    66,   444,    -1,    -1,    -1,    -1,    72,
     3363      -1,  1022,  1023,    76,    -1,    -1,    79,    80,    81,    82,
     3364      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3365     470,    -1,    -1,   699,    -1,    -1,   476,    -1,    -1,    -1,
     3366      -1,   481,    -1,    -1,    -1,    -1,   109,   713,   111,    -1,
     3367      -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3368      -1,    -1,    -1,    -1,    -1,    -1,    -1,   733,    -1,    -1,
     3369      -1,  1082,    -1,    -1,    -1,    -1,    -1,   517,    -1,    -1,
     3370      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3371      -1,    -1,   532,    -1,     0,    -1,    -1,     3,     4,     5,
     3372       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3373      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3374      26,    27,    -1,    -1,    30,    31,    32,    33,    -1,   795,
     3375      36,   571,    -1,    39,    40,    -1,    -1,    -1,    -1,  1150,
     3376     580,   807,    -1,    -1,    -1,    -1,    -1,   587,    -1,    -1,
     3377      -1,    -1,    -1,   593,    -1,    -1,    -1,    -1,    64,   913,
     3378     826,    67,   602,    69,   918,    71,    72,    -1,    74,    75,
    32083379      76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3209       -1,  1018,  1019,   708,  1021,  1022,   711,   418,    -1,    -1,
    3210       -1,    -1,    -1,    -1,  1328,    -1,    -1,    -1,    -1,    -1,
    3211       -1,    -1,   433,   109,  1041,   111,    -1,   438,    -1,    -1,
    3212       -1,   117,   118,    -1,    -1,   446,    -1,    -1,    -1,    -1,
    3213       -1,   746,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3214       -1,    -1,    -1,   464,    -1,    -1,    -1,    -1,    -1,  1076,
    3215     1077,    -1,    -1,    -1,    -1,    -1,   658,    -1,    -1,    -1,
    3216      662,   482,    -1,   484,    -1,    -1,    -1,    -1,    -1,    -1,
    3217       -1,  1395,    -1,    -1,    -1,   790,    -1,    -1,    -1,    -1,
    3218       -1,    -1,    -1,    -1,    -1,   800,    -1,   802,    -1,    -1,
    3219       -1,    -1,   807,   912,    -1,   810,    -1,    -1,   917,   814,
    3220       -1,    -1,    -1,    -1,    -1,   526,    53,    -1,    55,    -1,
    3221       -1,    58,    59,    60,    -1,    62,    -1,    -1,  1442,    -1,
    3222     1147,    -1,    -1,    -1,    -1,  1449,    -1,    -1,    -1,    76,
    3223       -1,    -1,    -1,    -1,    -1,  1078,    -1,    -1,    -1,    -1,
    3224       -1,    88,    89,    -1,    10,    11,    12,    13,    14,    -1,
     3380      -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3381      -1,    -1,    -1,    -1,    -1,   155,   156,    -1,    -1,    -1,
     3382      -1,    -1,   642,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3383      -1,   117,   118,    -1,    -1,    -1,    -1,    -1,  1229,    -1,
     3384      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   189,
     3385      -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,   678,    -1,
     3386      -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,    -1,    10,
     3387      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3388      21,    22,    23,    24,    25,    26,    27,  1278,  1279,    30,
     3389      31,    32,    -1,   939,    -1,    -1,  1287,   717,    39,    -1,
     3390      -1,    -1,    -1,    -1,    -1,    -1,    -1,   727,   728,    -1,
    32253391      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3226      875,    -1,    -1,  1190,    -1,    -1,    -1,    -1,    -1,    -1,
    3227      591,    -1,    -1,    39,    -1,    -1,  1500,    -1,    -1,    -1,
    3228       -1,    -1,    -1,    -1,    -1,  1212,    -1,    -1,    -1,    -1,
    3229      905,    -1,   794,    -1,    -1,    -1,    -1,  1224,    -1,  1226,
    3230       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3231       76,    -1,    -1,    -1,   635,   636,   637,    83,    84,    -1,
    3232       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1256,
    3233       -1,    -1,   653,    -1,    -1,    -1,    -1,  1264,  1265,  1266,
    3234       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,  1275,  1276,
    3235      671,   117,   118,    -1,    -1,   282,    -1,   284,   285,  1078,
    3236       -1,   682,  1289,    -1,  1207,   292,   293,    -1,    -1,    -1,
     3392      -1,    -1,    -1,   969,    -1,    -1,    67,    -1,   268,    -1,
     3393      -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3394     760,    -1,    83,    84,    -1,  1079,   766,    -1,    -1,    -1,
     3395      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1004,    -1,
     3396      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,  1015,
     3397     111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3398      -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,
     3399      -1,   331,   332,    -1,   334,   335,    -1,    -1,    -1,    -1,
     3400      -1,    -1,    -1,    -1,    -1,   345,    -1,  1398,    -1,   349,
     3401     830,    -1,    -1,    -1,    -1,    -1,    -1,   837,    -1,    -1,
     3402      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
     3403     850,   371,   852,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3404      -1,  1087,    -1,    -1,    -1,    -1,   866,    -1,    -1,    -1,
     3405      -1,    -1,   872,    -1,    -1,  1101,    -1,    -1,   398,    -1,
     3406      -1,    -1,   402,  1454,   884,  1456,    -1,   887,    -1,    -1,
     3407      -1,    -1,    -1,    -1,    -1,    -1,  1210,    -1,    -1,    -1,
    32373408      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3238      307,   308,    -1,    -1,    -1,    -1,    -1,   708,    -1,    -1,
    3239      711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3240       -1,  1328,    -1,  1018,  1019,    -1,  1021,  1022,    -1,    -1,
    3241      912,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,
    3242       -1,    -1,    -1,    -1,    -1,   746,  1041,    10,    11,    12,
    3243       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3244       23,    24,    25,    26,    27,    28,    -1,    30,    31,    32,
    3245       -1,    -1,    -1,    -1,   381,    -1,    39,    -1,    -1,    -1,
    3246       -1,  1076,  1077,    -1,    -1,    -1,    -1,    -1,  1395,   790,
    3247       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   800,
    3248       -1,   802,    -1,    -1,    67,    -1,   807,   989,  1207,   810,
    3249       -1,    74,    75,   814,    -1,    78,    -1,   344,    -1,   346,
    3250       -1,    -1,    -1,    -1,  1006,    -1,    -1,    -1,    -1,    -1,
    3251      357,   358,    -1,    -1,    -1,  1442,    -1,    -1,    -1,    -1,
    3252       37,    38,  1449,    40,    -1,    -1,   109,    -1,   111,    -1,
    3253       -1,    -1,  1147,    -1,   117,   118,    -1,    -1,    -1,    -1,
    3254       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3255       -1,    -1,    -1,    -1,   875,    72,    -1,    -1,    -1,    76,
    3256       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3257       87,    -1,    -1,  1500,    -1,  1190,    -1,    -1,    -1,    -1,
    3258       -1,    -1,  1084,    -1,   905,    -1,    -1,    -1,    -1,    -1,
    3259       -1,    -1,   109,    -1,   111,    -1,    -1,  1212,    -1,    -1,
    3260      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,  1224,
    3261       -1,  1226,     7,   130,    -1,    10,    11,    12,    13,    14,
    3262       -1,    -1,  1124,   550,   551,   552,   553,   554,   555,   556,
    3263      557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
    3264      567,  1256,    37,    38,    39,    40,    -1,    -1,    -1,  1264,
    3265     1265,  1266,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3266     1275,  1276,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3267       -1,    66,    67,    -1,  1289,    -1,    -1,    72,    -1,    -1,
    3268       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3269       -1,    86,    87,    -1,    -1,    -1,    -1,  1018,  1019,    -1,
    3270     1021,  1022,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3271       -1,    -1,    -1,  1328,   109,    -1,   111,    -1,    -1,    -1,
    3272     1041,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3409      -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,    -1,  1490,
     3410      -1,  1492,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3411      -1,    -1,   282,    -1,   284,   285,    -1,    -1,    -1,    -1,
     3412      -1,    -1,   292,   293,    -1,    -1,    -1,    -1,  1519,    -1,
     3413      -1,    -1,    -1,    -1,    -1,    -1,    -1,   307,   308,   479,
     3414      -1,    -1,   482,    -1,   964,    -1,  1192,    -1,    -1,    -1,
     3415      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3416      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3417      -1,    30,    31,    32,    -1,   345,    -1,    -1,    -1,   999,
     3418      39,   521,    -1,    -1,    -1,   525,   526,    -1,    -1,    -1,
     3419      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3420      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3421      -1,   381,    -1,    72,    -1,    74,    75,    76,    -1,    78,
     3422      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
     3423      -1,   571,   572,    -1,    -1,    -1,    -1,  1057,    -1,    -1,
     3424      -1,  1287,    -1,  1063,    -1,    -1,   146,    -1,    -1,    -1,
     3425     590,   591,   111,    -1,    -1,    -1,   156,    -1,   117,   118,
     3426      -1,   601,    -1,   603,   604,    -1,    -1,    -1,   168,   169,
     3427     610,    -1,    -1,    -1,    -1,    -1,    -1,  1097,    -1,    -1,
     3428     620,   621,  1102,    -1,    -1,    -1,   626,    -1,    -1,    -1,
     3429    1110,    -1,    -1,    -1,    -1,   635,   636,   637,    -1,    -1,
     3430      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3431      -1,    -1,    -1,   653,    -1,    -1,    -1,    -1,   658,   659,
     3432      -1,    -1,   662,   663,    -1,  1145,    -1,    -1,    -1,   669,
     3433      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1157,    -1,   239,
     3434    1160,    -1,  1162,    -1,    -1,    -1,    -1,    -1,   688,    -1,
     3435      -1,    -1,    -1,    -1,    -1,    -1,  1176,  1177,    -1,    -1,
     3436      -1,    -1,    -1,   263,    -1,    -1,    -1,    -1,    -1,    -1,
     3437      -1,   711,   712,    -1,    -1,    -1,    -1,    -1,  1198,    -1,
     3438     550,   551,   552,   553,   554,   555,   556,   557,   558,   559,
     3439     560,   561,   562,   563,   564,   565,   566,   567,    -1,    -1,
     3440      -1,    -1,    -1,    -1,    -1,   745,   746,    -1,    -1,    -1,
     3441     750,   751,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3442      -1,    -1,    -1,    -1,    -1,  1245,    -1,    -1,    -1,    -1,
     3443      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3444      20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
     3445      30,    31,    32,    -1,    -1,   795,    -1,    -1,    -1,    39,
     3446      -1,    -1,    -1,   803,    -1,    -1,    -1,    -1,    -1,    -1,
     3447     810,   811,    -1,    -1,   814,    -1,   816,    -1,    -1,    -1,
     3448     380,    -1,    -1,    -1,    -1,    -1,   826,    67,  1534,    -1,
     3449      -1,    -1,    72,    -1,    74,    75,    76,    -1,    78,    -1,
     3450    1320,    -1,  1322,    83,    84,    -1,    -1,    -1,    -1,    -1,
     3451      -1,    -1,    -1,    -1,    -1,    -1,  1336,    -1,  1338,    -1,
     3452      -1,    -1,    -1,    -1,    -1,    -1,   696,    -1,    -1,   109,
     3453      -1,   111,    -1,  1353,    -1,    -1,    -1,   117,   118,    -1,
     3454      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1369,
     3455    1370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,
     3456    1380,    -1,    -1,  1383,    -1,   905,   906,   907,    -1,   909,
     3457      -1,    -1,    -1,   913,   474,    -1,    -1,    -1,    -1,    -1,
     3458      -1,    -1,    -1,    -1,  1404,    -1,    -1,   757,    -1,    -1,
     3459      -1,    -1,    -1,  1413,   934,   935,  1416,    -1,  1418,  1419,
     3460    1420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3461      -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,   788,    -1,
     3462      -1,    -1,    -1,    -1,    -1,    -1,   526,    -1,    -1,   969,
     3463      -1,   531,    -1,    -1,   534,    -1,    -1,    -1,  1458,    -1,
     3464    1460,    -1,  1462,    -1,    -1,    -1,    -1,   547,    -1,    -1,
     3465     990,   991,    -1,    -1,    -1,    -1,    -1,  1477,    -1,    -1,
     3466      -1,  1001,    -1,    -1,    -1,    -1,    -1,  1007,  1008,   569,
     3467    1010,  1011,  1012,    -1,    -1,    -1,    -1,    -1,    -1,   579,
     3468      -1,    -1,  1022,  1023,    -1,    -1,   586,    -1,    -1,    -1,
     3469      -1,   591,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3470       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3471      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3472      -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
     3473      39,    40,    -1,    -1,    -1,    -1,    -1,    -1,   908,    -1,
     3474     640,    -1,    -1,    -1,    -1,  1085,    -1,  1087,   648,    -1,
     3475      -1,    -1,  1092,    -1,    -1,    64,    -1,    -1,    67,    -1,
     3476      69,  1101,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3477      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
     3478      -1,    -1,    -1,   953,  1124,  1125,  1126,    -1,    -1,    -1,
     3479      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3480     109,    -1,   111,    -1,    -1,    -1,   115,    -1,   117,   118,
     3481    1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   988,    -1,
     3482      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3483      -1,  1001,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3484      -1,    40,    -1,    -1,    -1,    -1,   746,    -1,   748,    -1,
     3485      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   758,    -1,
     3486      -1,    -1,    -1,    -1,   764,    -1,    -1,    66,    -1,    -1,
     3487      -1,  1211,  1042,    72,    -1,    74,    75,    76,    -1,    -1,
     3488      79,    80,    81,    82,    83,    84,    -1,    86,    87,  1229,
     3489      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3490      -1,    -1,    -1,    -1,    -1,    -1,    -1,   807,   808,    -1,
     3491     109,   811,   111,    -1,   113,   114,    -1,    -1,   117,   118,
     3492     119,   120,   121,   122,    -1,   825,    -1,    -1,    -1,    -1,
     3493      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,
     3494      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1119,
     3495      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3496      -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,   869,
     3497      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32733498       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    32743499      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3275       23,    24,    25,    26,    27,  1076,  1077,    30,    31,    32,
    3276       33,    -1,    -1,    36,    37,    38,    39,    40,    -1,   696,
     3500      23,    24,    25,    26,    27,    -1,   906,    30,    31,    32,
     3501      33,  1181,  1182,    36,    -1,    -1,    39,    40,    -1,    -1,
    32773502      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3278     1395,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3279       -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
    3280       -1,    74,    75,    76,    49,    -1,    79,    80,    81,    82,
     3503      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3504      -1,    64,    -1,    -1,    67,   945,    69,    -1,    71,    72,
     3505      -1,    74,    75,    76,    -1,    -1,    -1,    -1,  1398,    -1,
     3506      83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3507      -1,    -1,    -1,   973,    -1,    -1,    -1,    37,    38,   979,
     3508      40,    -1,    -1,   983,    -1,    -1,   109,    -1,   111,    -1,
     3509      -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3510      -1,    -1,    -1,    -1,  1004,    -1,    66,    -1,    -1,    -1,
     3511      -1,    -1,    72,    -1,    -1,  1015,    76,    -1,    -1,    79,
     3512      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3513      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1037,    -1,  1039,
     3514      -1,    -1,    -1,    37,    38,  1485,    40,    -1,    -1,   109,
     3515      -1,   111,    -1,    -1,  1054,  1055,   116,   117,   118,   119,
     3516     120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,  1509,
     3517    1510,    -1,    66,    -1,    -1,  1075,    -1,    -1,    72,    -1,
     3518      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3519      84,    -1,    86,    87,  1534,    -1,    -1,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3521      -1,    -1,    -1,    -1,    -1,   109,  1386,   111,    -1,    -1,
     3522     114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3523    1130,    -1,  1402,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3524      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3525    1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3526      -1,    -1,    -1,    -1,    -1,  1165,  1166,    -1,    -1,    -1,
     3527      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3528      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3529      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3530      32,    33,  1472,  1473,    36,    37,    38,    39,    40,    41,
     3531      -1,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
     3532      52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
     3533      62,    -1,    64,    -1,    66,    67,    -1,    69,    -1,    71,
     3534      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3535      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3536      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3537      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3538      -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,   121,
     3539     122,    -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,
     3540     132,    -1,    -1,    -1,    -1,    -1,  1306,    -1,    -1,  1309,
     3541       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3542      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3543      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3544      33,    -1,    -1,    36,    37,    38,    39,    40,    10,    11,
     3545      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3546      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3547      32,    -1,    -1,    66,    67,    -1,    69,    39,    71,    72,
     3548      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    32813549      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3282       -1,    66,    -1,    -1,    -1,    -1,  1147,  1442,    -1,    -1,
    3283      757,    -1,    -1,    -1,  1449,    -1,   109,    -1,   111,    -1,
    3284       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3285       -1,    -1,    -1,   700,    -1,   702,    -1,    -1,    -1,   132,
    3286      787,    -1,   709,   710,    -1,    -1,    -1,   714,   113,  1190,
    3287       -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,   726,
    3288       -1,    -1,    -1,    -1,   731,  1500,    -1,    -1,    -1,    -1,
    3289       -1,  1212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3290       -1,   146,    -1,  1224,    -1,  1226,    -1,    -1,    -1,    -1,
    3291       -1,   156,   759,    -1,    -1,   160,    -1,    -1,    -1,    -1,
    3292       -1,    -1,    -1,    -1,    -1,    -1,     7,    -1,    -1,    10,
    3293       11,    12,    13,    14,    -1,  1256,    -1,    -1,    -1,    -1,
    3294       -1,    -1,    -1,  1264,  1265,  1266,    -1,    -1,    -1,    -1,
    3295       -1,    -1,    -1,    -1,  1275,  1276,    37,    38,    39,    40,
    3296       -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,  1289,    -1,
    3297       -1,    -1,    -1,    -1,    -1,    -1,   221,    -1,    -1,    -1,
    3298      907,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
    3299       -1,    72,    -1,    -1,   239,    76,    -1,    -1,    79,    80,
    3300       81,    82,    83,    84,    -1,    86,    87,  1328,    -1,    -1,
    3301       -1,   858,   859,   860,   861,    -1,   863,    -1,    -1,   264,
    3302       -1,    -1,    -1,    -1,    -1,   952,   271,    -1,   109,    -1,
    3303      111,   878,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
    3304      121,   122,    -1,    -1,    -1,   892,    -1,    -1,    -1,   294,
    3305       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3306      987,    -1,   307,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3307       -1,    -1,    -1,  1000,  1395,    -1,    -1,    -1,    75,    -1,
    3308       77,    -1,    79,    -1,    -1,   932,    -1,    -1,    -1,    86,
    3309       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3310      345,    -1,    -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    -1,  1041,    -1,    -1,    -1,    -1,    -1,
    3312      117,  1442,   119,   120,   121,    -1,    -1,    -1,  1449,    -1,
    3313      977,    -1,    -1,    -1,    -1,    -1,   983,    -1,    -1,    -1,
    3314       -1,   988,    -1,    -1,    -1,    -1,   993,    -1,   995,    -1,
    3315       -1,    -1,   999,    -1,  1001,  1002,    -1,    -1,  1005,    -1,
    3316       -1,    -1,    -1,   160,    -1,    -1,    -1,  1014,    -1,    -1,
    3317       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1500,
    3318       -1,   426,   427,    -1,    -1,  1032,  1033,    -1,   433,    -1,
    3319       -1,  1118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3320       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   454,
    3321       -1,    -1,  1059,    -1,    -1,  1062,    -1,    -1,    -1,    -1,
    3322       -1,    -1,    -1,    -1,   221,    -1,   223,   224,   225,    -1,
    3323       -1,    -1,    -1,    -1,    -1,    -1,    -1,   482,    -1,    -1,
    3324       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,   494,
    3325       -1,  1178,  1179,    -1,    -1,    -1,    -1,    -1,  1105,    -1,
    3326       -1,   506,   259,   508,  1111,  1112,   511,   264,   513,   514,
    3327       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3328       -1,   526,   279,    -1,  1131,    -1,    -1,  1134,    -1,    -1,
    3329       -1,  1138,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3330       -1,    -1,    -1,    72,  1151,    74,    75,    76,    -1,    -1,
    3331       -1,    -1,    -1,    -1,    83,    84,    -1,  1164,    -1,  1166,
    3332     1167,  1168,  1169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3333       -1,   328,    -1,    -1,   579,  1182,    -1,  1184,    -1,    -1,
    3334      109,  1188,    -1,    -1,    -1,    -1,   591,    -1,   117,   118,
    3335      595,    -1,    -1,   350,    -1,    -1,    -1,    -1,   355,   356,
    3336       -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,    -1,
    3337     1217,  1218,    -1,    -1,    -1,    -1,   621,    -1,    -1,    -1,
    3338       -1,   626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3339      635,   636,   637,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3340       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,   406,
    3341       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3342     1267,  1268,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,
    3343     1277,    -1,   429,    -1,   431,    -1,    -1,    -1,    -1,    -1,
    3344      685,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3345       -1,   448,    -1,    -1,   451,   452,  1383,    -1,    -1,    -1,
    3346       -1,    -1,   459,    -1,    -1,    -1,   711,    -1,   713,    -1,
    3347       -1,    -1,  1399,    -1,    -1,    -1,   473,    -1,    -1,    -1,
    3348       -1,    -1,    -1,   480,    -1,    -1,    -1,    -1,    -1,    -1,
    3349       -1,  1338,    -1,  1340,  1341,  1342,    -1,    -1,    -1,    -1,
    3350       -1,   746,    -1,    -1,    -1,  1352,    44,    -1,    -1,    -1,
    3351       -1,    -1,    -1,    -1,  1361,    10,    11,    12,    13,    14,
    3352       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3353       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,  1386,
    3354       -1,    -1,  1469,  1470,    39,    -1,    -1,    10,    11,    12,
    3355       13,    14,    -1,    91,    -1,    -1,    -1,   802,    -1,    -1,
    3356       -1,   806,    -1,   101,    -1,   810,    -1,    -1,    -1,    -1,
    3357       -1,    -1,    67,    -1,    -1,    -1,    39,    72,    -1,    74,
    3358       75,    76,  1429,  1430,    -1,    -1,    -1,    -1,    83,    84,
    3359       -1,    -1,    -1,    -1,    -1,  1442,    -1,    -1,   595,    -1,
    3360       -1,    -1,  1449,    -1,    67,    -1,    -1,    -1,    -1,    72,
    3361       -1,    74,    75,    76,   109,    -1,   111,    -1,    -1,   157,
    3362       83,    84,   117,   118,    -1,    -1,   623,    -1,    -1,    -1,
    3363       -1,   628,    -1,   171,  1481,    -1,    -1,    -1,  1485,    -1,
    3364       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
    3365       -1,    -1,    -1,    -1,   117,   118,   194,    -1,    -1,    -1,
    3366      905,    -1,    -1,    -1,    -1,    -1,  1513,    -1,  1515,    -1,
    3367      208,    -1,    -1,    -1,    -1,   920,    -1,    -1,    -1,   217,
    3368       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   227,
    3369       -1,    -1,    -1,    -1,    -1,    -1,  1543,  1544,    -1,   944,
    3370       -1,    -1,   699,    -1,  1551,  1552,    -1,    -1,    -1,    -1,
    3371       -1,    -1,    -1,    -1,   252,    -1,   713,    -1,    -1,   257,
    3372       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3373       -1,    -1,   270,    -1,    -1,    -1,   733,    -1,   276,    -1,
    3374      278,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3375       -1,    -1,    -1,    -1,    -1,  1000,    -1,   295,    10,    11,
    3376       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3377       22,    23,    24,    25,    26,    27,  1021,  1022,    30,    31,
    3378       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    3379       -1,    -1,    -1,    -1,    -1,    -1,    -1,   794,    -1,    -1,
    3380      338,    -1,    -1,    -1,    -1,   343,    -1,    -1,    -1,   806,
    33813550      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3382       72,    -1,    74,    75,    76,    -1,    -1,    -1,   825,    -1,
    3383       -1,    83,    84,    -1,   372,    -1,  1081,    -1,   376,   377,
    3384       -1,   379,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
    3385       -1,   389,   390,    -1,   392,    -1,   394,   109,    -1,   111,
    3386       -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,
    3387       -1,    -1,    -1,   411,    -1,    -1,    -1,    -1,    -1,    -1,
    3388       -1,   419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
    3389      156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3390       -1,    -1,  1147,    -1,    -1,    -1,   444,    -1,    -1,    -1,
    3391       -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
    3392       14,    -1,    -1,   189,    -1,    -1,    -1,    -1,    -1,    -1,
    3393      196,    -1,   470,    -1,    -1,    -1,    -1,    -1,   476,    -1,
    3394       -1,   938,    -1,   481,  1189,    39,    10,    11,    12,    13,
    3395       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3396       24,    25,    26,    27,    28,    -1,    30,    31,    32,    -1,
    3397       -1,   968,    -1,    67,    -1,    39,    -1,    -1,    72,   517,
    3398       -1,  1226,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    3399       84,    -1,    -1,    -1,   532,    -1,    -1,    -1,    -1,    -1,
    3400       -1,    -1,   268,    67,    -1,    -1,  1003,    -1,    72,    -1,
    3401       74,    75,    76,    -1,    78,   109,    -1,  1014,    -1,    83,
    3402       84,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
    3403     1275,  1276,    -1,   571,    -1,    -1,    -1,    -1,    -1,  1284,
    3404       -1,    -1,   580,    -1,    -1,   109,    -1,   111,   146,   587,
    3405       -1,    -1,    -1,   117,   118,   593,    -1,   323,   156,    -1,
    3406       -1,    -1,    -1,    -1,   602,   331,   332,    -1,   334,   335,
    3407      168,   169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
    3408       -1,    -1,    -1,   349,    -1,    -1,    -1,    -1,    -1,  1086,
    3409       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3410       -1,    -1,   368,  1100,   642,   371,     3,     4,     5,     6,
    3411        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3412       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3413       27,    -1,   398,    30,    31,    32,   402,    -1,    -1,    -1,
    3414      678,   239,    39,    -1,    -1,    -1,    -1,    -1,   686,    -1,
    3415     1395,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
    3416       -1,    -1,    -1,    -1,    -1,   263,    -1,   433,    -1,    -1,
    3417       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,   717,
    3418       -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,   727,
    3419      728,    76,  1189,    -1,    79,    80,    81,    82,    83,    84,
    3420       -1,    86,    87,    -1,    -1,    -1,  1451,    -1,  1453,    -1,
    3421       -1,    -1,    -1,   479,   111,    -1,   482,    -1,    -1,    -1,
    3422      117,   118,   760,    -1,   109,    -1,   111,   765,    -1,   114,
    3423       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3424       -1,    -1,  1487,    -1,  1489,    -1,    -1,    -1,    -1,    -1,
    3425       -1,    -1,    -1,    -1,    -1,   521,    -1,    -1,    -1,   525,
    3426      526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,  1516,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3428       -1,    -1,   380,    -1,    -1,    -1,    -1,  1284,    -1,    -1,
    3429       -1,   829,    -1,    -1,    -1,    -1,    -1,    -1,   836,    -1,
    3430       -1,    -1,    -1,    -1,    -1,   571,   572,    -1,    -1,    -1,
    3431       -1,   849,    -1,   851,    -1,    -1,    -1,    -1,    -1,    -1,
    3432       -1,    -1,    -1,    -1,   590,   591,    -1,   865,    -1,    -1,
    3433       -1,    -1,    -1,   871,    -1,   601,    -1,   603,   604,    -1,
    3434       -1,    -1,    -1,    -1,   610,   883,    -1,    -1,   886,    -1,
    3435       -1,    -1,    -1,    -1,   620,   621,    -1,    -1,    -1,    -1,
    3436      626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   635,
    3437      636,   637,    -1,    -1,    -1,    -1,   474,    -1,    -1,    -1,
    3438       -1,    -1,    -1,    -1,    -1,    -1,    -1,   653,    -1,    -1,
    3439       -1,    -1,   658,   659,    -1,    -1,   662,   663,    -1,    -1,
    3440       -1,    -1,    -1,   669,    -1,    -1,    -1,    -1,    -1,    -1,
    3441       -1,    -1,    -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,
    3442       -1,    -1,   688,    -1,    -1,   963,    -1,    -1,   526,    -1,
    3443       -1,    -1,    -1,   531,    -1,    -1,   534,    -1,    -1,    -1,
    3444       -1,    -1,    -1,    -1,    -1,   711,   712,    -1,    -1,   547,
    3445       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3446      998,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3447       -1,   569,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,
    3448      746,   579,    -1,    -1,   750,   751,    -1,    -1,   586,    -1,
    3449       -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
    3450       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3451       20,    21,    22,    23,    24,    25,    26,    27,  1056,    -1,
    3452       30,    31,    32,    -1,  1062,    -1,    -1,    -1,   794,    39,
    3453       -1,    -1,    -1,    -1,  1531,    -1,   802,    -1,    -1,    -1,
    3454       -1,    -1,   640,   809,   810,    -1,    -1,   813,    -1,   815,
    3455      648,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1096,   825,
    3456       -1,    -1,    72,  1101,    74,    75,    76,    -1,    -1,    -1,
    3457       -1,  1109,    -1,    83,    84,    -1,    10,    11,    12,    13,
    3458       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3459       24,    25,    26,    27,    28,    -1,    -1,    -1,    -1,   109,
    3460       -1,   111,    -1,    -1,  1142,    39,    -1,   117,   118,    -1,
    3461       -1,    -1,    -1,    -1,    -1,    -1,  1154,    -1,    -1,  1157,
    3462       -1,  1159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3463       -1,   897,    -1,    67,    -1,  1173,  1174,    -1,   904,   905,
    3464      906,    -1,   908,    -1,    78,    -1,   912,    -1,   746,    -1,
    3465      748,    -1,    -1,    -1,    -1,    -1,    -1,  1195,    -1,    -1,
    3466      758,    -1,    -1,    -1,    -1,    -1,   764,   933,   934,    -1,
    3467       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3468       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3469       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3470       -1,    -1,   968,    -1,  1242,    -1,    -1,    -1,   806,   807,
    3471       -1,    -1,   810,    -1,    -1,    -1,    -1,    -1,    37,    38,
    3472       -1,    40,    -1,   989,   990,    -1,   824,    67,    -1,    -1,
    3473       -1,    -1,    -1,    -1,  1000,    -1,    -1,    -1,    78,    -1,
    3474     1006,  1007,    -1,  1009,  1010,  1011,    -1,    66,    -1,    -1,
    3475       -1,    -1,    -1,    72,    -1,  1021,  1022,    76,    -1,    -1,
    3476       79,    80,    81,    82,    83,    84,   864,    86,    87,    -1,
    3477      868,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1317,
    3478       -1,  1319,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3479      109,    -1,   111,  1331,    -1,  1333,    -1,   116,   117,   118,
    3480      119,   120,   121,   122,    -1,    -1,    -1,   905,    -1,    -1,
    3481       -1,    -1,  1350,    -1,    -1,    -1,    -1,    -1,  1084,    -1,
    3482     1086,    -1,    -1,    -1,    -1,  1091,    -1,    -1,  1366,  1367,
    3483       -1,    -1,    -1,    -1,  1100,    -1,    -1,    -1,    -1,  1377,
    3484       -1,    -1,  1380,    -1,    -1,    -1,   944,    -1,    -1,    -1,
    3485       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1123,  1124,  1125,
    3486       -1,    -1,    -1,  1401,    -1,    -1,    -1,    -1,    -1,    -1,
    3487       -1,    -1,  1410,    -1,   972,  1413,    -1,  1415,  1416,  1417,
    3488      978,  1147,    -1,    -1,   982,    37,    38,    -1,    40,    -1,
    3489       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3490       -1,    -1,    -1,    -1,    -1,  1003,    -1,    -1,    -1,    -1,
    3491       -1,    -1,    -1,    -1,    66,    -1,  1014,  1455,    -1,  1457,
    3492       72,  1459,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3493       82,    83,    84,    -1,    86,    87,  1474,    -1,  1036,    -1,
    3494     1038,    -1,  1208,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3495       -1,    -1,    -1,    -1,    -1,  1053,  1054,   109,    -1,   111,
    3496     1226,   113,   114,    -1,    -1,   117,   118,   119,   120,   121,
    3497      122,    -1,    -1,    -1,    -1,    -1,  1074,    -1,    -1,    -1,
     3551      72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3552      -1,    83,    84,    -1,   117,   118,   119,   120,   121,   122,
     3553      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,
    34983554      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    34993555       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3500       19,    20,    21,    22,    23,    24,    25,    26,    27,  1275,
    3501     1276,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
    3502       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3503       -1,  1129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3504       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1147,
    3505       69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
    3506       -1,    -1,    -1,    -1,  1162,  1163,    -1,     3,     4,     5,
    3507        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3508       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3509       26,    27,   111,    -1,    30,    31,    32,    33,   117,   118,
    3510       36,    37,    38,    39,    40,    41,    -1,    43,    -1,    -1,
    3511       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    3512       -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,  1395,
    3513       66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
    3514       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3515       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3556      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3557      -1,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
     3558      39,    40,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3559      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3560      25,    26,    27,    28,    -1,    -1,    -1,    66,    67,    -1,
     3561      69,    -1,    71,    72,    39,    74,    75,    76,    -1,  1519,
     3562      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    35163563      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3517       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
    3518       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3519       -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,
    3520       -1,    -1,    -1,    -1,    -1,  1303,    -1,    -1,  1306,    -1,
    3521       -1,    -1,    -1,    -1,    -1,    -1,  1482,    -1,    -1,    -1,
    3522       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3523       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3524     1506,  1507,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3525       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3526       -1,    -1,    -1,    -1,    -1,  1531,     3,     4,     5,     6,
    3527        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3528       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3529       27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
    3530       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3531       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3532       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
    3533       67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
    3534       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3535       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3536       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3537       -1,    -1,   109,    -1,   111,    -1,    -1,    83,    84,    -1,
    3538      117,   118,   119,   120,   121,   122,     4,     5,     6,     7,
    3539        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3540       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3541       -1,    -1,    30,    31,    32,    -1,    -1,    -1,  1516,    37,
    3542       38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
    3543       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3544       27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
    3545       -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
    3546       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3547       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3548       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    3549       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,   117,
    3550      118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    3551        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3552       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3553       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    3554       39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
    3555       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3556       -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
    3557       69,    39,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3558       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3559       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3560       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
    3561      109,    -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
     3564      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3565     109,    -1,   111,    78,    -1,    -1,    -1,    -1,   117,   118,
    35623566     119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
    35633567      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    35663570      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    35673571      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3568       -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,
     3572      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    69,
    35693573      39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    35703574      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    35713575      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3572       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3576      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
    35733577      -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
    35743578     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
     
    35763580      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    35773581      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3580       -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
     3582      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3583      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3584      30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
    35813585      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    35823586      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3583       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3584       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3585      111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
     3587      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3588      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
     3589     111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
    35863590     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
    35873591      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     
    35953599      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35963600      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    3597       -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3601      -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,   121,
    35983602     122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    35993603      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    36193623      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36203624      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3621       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     0,
    3622       -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    3623       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3624       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3625       31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,
     3625      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     4,
     3626       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3627      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3628      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3629      -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    36263630      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36273631      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3628       -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,    -1,
    3629       71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
    3630       -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,
     3632      -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3633      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3634      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36313635      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3632       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3633      111,    -1,    -1,    -1,    -1,    -1,   117,   118,     3,     4,
    3634        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3635       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3636       25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
    3637       -1,    36,    -1,    -1,    39,    40,    -1,    -1,    -1,    -1,
    3638       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3639       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,
    3640       -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3641       75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
     3636      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3637      -1,    -1,   117,   118,   119,   120,   121,   122,     4,     5,
     3638       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3639      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3640      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3641      -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
    36423642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36433643      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3644       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3645      115,    -1,   117,   118,     3,     4,     5,     6,     7,     8,
    3646        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3647       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3648       -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
    3649       39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3644      66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3645      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3646      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36503647      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3651       -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,
    3652       69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3653       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
     3648      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3649      -1,   117,   118,   119,   120,   121,   122,     3,     4,     5,
     3650       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3651      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3652      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3653      -1,    -1,    -1,    39,    -1,    10,    11,    12,    13,    14,
     3654      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3655      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    34,
     3656      35,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
     3657      76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
     3658      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3659      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3660      75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
     3661      -1,   117,   118,     3,     4,     5,     6,     7,     8,     9,
     3662      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3663      20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
     3664      30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
    36543665      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36553666      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3656      109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    3657        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3658       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3659       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3660       -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    10,    11,
    3661       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3662       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3663       32,    33,    34,    35,    67,    -1,    69,    39,    71,    72,
    3664       -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
    3665       83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3666       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3667       -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
    3668       -1,    -1,    -1,    -1,   117,   118,     3,     4,     5,     6,
    3669        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3670       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3671       27,    28,    -1,    30,    31,    32,    33,    -1,    -1,    36,
    3672       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3673       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3674       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3675       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    3676       -1,    78,     4,     5,     6,     7,     8,     9,    10,    11,
    3677       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3678       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3679       32,    -1,    -1,    -1,   111,    -1,    -1,    39,    -1,    -1,
    3680      117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3682       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3683       72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
    3684       -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3685       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3686       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    3687       -1,    -1,    -1,    -1,    -1,   117,   118,     4,     5,     6,
    3688        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3689       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3690       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3691       -1,    -1,    39,    -1,    -1,    -1,    -1,    10,    11,    12,
    3692       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3693       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3694       67,    -1,    69,    -1,    71,    -1,    39,    74,    75,    -1,
     3667      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3668      -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,     3,
    36953669       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    36963670      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3697       24,    25,    26,    27,    67,    -1,    30,    31,    32,    -1,
    3698       -1,    74,    75,   110,   111,    39,    -1,    -1,    -1,    -1,
    3699      117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3700       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3701       -1,    -1,    -1,    67,    -1,    69,   109,    71,   111,    -1,
    3702       74,    75,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
    3703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3704       -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3705       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    3706       -1,    -1,    -1,   117,   118,     4,     5,     6,     7,     8,
    3707        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3708       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3709       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3710       39,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3711       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3712       26,    27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,
    3713       69,    -1,    71,    39,    40,    74,    75,    -1,    -1,    -1,
    3714       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3715       -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
    3716       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    3717       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    3718        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3719       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3720       24,    25,    26,    27,    -1,   111,    30,    31,    32,   115,
    3721       -1,   117,   118,    -1,    -1,    39,    -1,    -1,    -1,    -1,
     3671      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
     3672      -1,   111,    36,    -1,    -1,    39,    -1,   117,   118,    -1,
    37223673      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37233674      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37243675      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3725       74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
     3676      74,    75,     3,     4,     5,     6,     7,     8,     9,    10,
    37263677      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    37273678      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     
    37373688      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37383689      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3739       -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,     4,
     3690      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3691      -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
     3692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3694      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3695     118,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3696      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3697      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3698      -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
     3699      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3700      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3701      -1,    30,    31,    32,    67,    -1,    69,    -1,    71,    -1,
     3702      39,    74,    75,    -1,     4,     5,     6,     7,     8,     9,
     3703      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3704      20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
     3705      30,    31,    32,    -1,    -1,    74,    75,   110,   111,    39,
     3706      -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3707      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3708      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3709     109,    71,   111,    -1,    74,    75,    -1,    -1,   117,   118,
     3710      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3711      -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
     3712      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3713      -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,     4,
    37403714       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    37413715      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37423716      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3743       -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,   117,
    3744      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3717      -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    10,    11,
     3718      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3719      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3720      32,    -1,    67,    -1,    69,    -1,    71,    39,    40,    74,
     3721      75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37453722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3746       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3747       75,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3748       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3749       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    3750       39,    40,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3751       -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
    3752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
    3753       -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3754       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3723      -1,    96,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3724      -1,    -1,    74,    75,    -1,    -1,   111,    -1,    -1,    -1,
     3725      -1,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
     3726      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3727      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
     3728      30,    31,    32,   115,    -1,   117,   118,    -1,    -1,    39,
    37553729      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37563730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3757      109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
     3731      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3732      -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,     6,
     3733       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3734      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3735      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3736      -1,   111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,
     3737      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3738      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3739      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3740       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3741      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3742      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3743      -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
     3744     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3745      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3746      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3747      74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
     3748      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3749      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3750      31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
     3751      -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
     3752      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3753      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3754      71,    -1,    -1,    74,    75,    10,    11,    12,    13,    14,
     3755      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3756      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3757      -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3758     111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
     3759      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3760      -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3761      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3762      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3763      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3764      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3765      -1,    -1,   117,   118,   119,   120,   121,   122,    10,    11,
     3766      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3767      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3768      32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    10,
     3769      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3770      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3771      31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,
     3772      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3773      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3774      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3775      -1,    72,    -1,    74,    75,    76,    -1,   109,   110,   111,
     3776      -1,    -1,    83,    84,    -1,   117,   118,   119,   120,   121,
     3777     122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3778      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3779     111,    30,    31,    32,    -1,    -1,   117,   118,    37,    38,
     3780      39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
     3781      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3782      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
     3783      -1,    39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3784      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3785      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3786      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,
     3787     109,    -1,   111,    -1,    -1,    83,    84,    -1,   117,   118,
    37583788     119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
    37593789      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3760       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3761       -1,    37,    38,    39,    40,    10,    11,    12,    13,    14,
     3790      26,    27,    -1,   111,    30,    31,    32,    -1,    -1,   117,
     3791     118,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    37623792      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37633793      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3764       66,    67,    -1,    -1,    39,    -1,    72,    -1,    74,    75,
     3794      66,    67,    -1,    -1,    39,    40,    72,    -1,    74,    75,
    37653795      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    37663796      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3767       -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3768       75,    76,    -1,   109,   110,   111,    -1,    -1,    83,    84,
     3797      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3798      75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    37693799      -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
    37703800      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    37713801      23,    24,    25,    26,    27,    -1,   111,    30,    31,    32,
    3772       -1,    -1,   117,   118,    37,    38,    39,    40,    10,    11,
     3802     115,    -1,   117,   118,    37,    38,    39,    40,    10,    11,
    37733803      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    37743804      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3775       32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,    72,
     3805      32,    -1,    -1,    66,    67,    -1,    -1,    39,    40,    72,
    37763806      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    37773807      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    37783808      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3779       72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
    3780       -1,    83,    84,    -1,   117,   118,   119,   120,   121,   122,
     3809      -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3810      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    37813811      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    37823812      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3783       30,    31,    32,    -1,    -1,   117,   118,    37,    38,    39,
    3784       40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3813      30,    31,    32,   115,    -1,   117,   118,    37,    38,    39,
     3814      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
     3815      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3816      22,    23,    24,    25,    26,    27,    66,    67,    30,    31,
     3817      32,    -1,    72,    -1,    74,    75,    76,    39,    -1,    79,
     3818      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3819      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3820      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,   109,
     3821      -1,   111,    74,    75,    -1,    -1,    -1,   117,   118,   119,
     3822     120,   121,   122,     3,     4,     5,     6,     7,     8,     9,
     3823      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3824      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
     3825      30,    31,    32,    -1,    -1,   117,   118,    -1,    -1,    39,
     3826      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3827      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3828      27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,    69,
     3829      -1,    71,    39,    -1,    74,    75,    -1,    -1,    -1,    -1,
     3830      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    37853831      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3786       -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,
    3787       39,    40,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    3788       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3789       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3790       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
    3791       -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
    3792      120,   121,   122,    10,    11,    12,    13,    14,    15,    16,
    3793       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3794       27,    -1,   111,    30,    31,    32,   115,    -1,   117,   118,
    3795       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3796       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3797       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
    3798       67,    -1,    -1,    39,    40,    72,    -1,    74,    75,    76,
    3799       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3800       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3801       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    3802       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3803      117,   118,   119,   120,   121,   122,    10,    11,    12,    13,
     3832      67,    30,    31,    32,    -1,    72,    -1,    74,    75,    76,
     3833      39,    -1,    -1,    -1,   114,    -1,    83,    84,    -1,    10,
     3834      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3835      21,    22,    23,    24,    25,    26,    27,    -1,    67,    30,
     3836      31,    32,   109,    72,   111,    74,    75,    76,    39,    -1,
     3837     117,   118,    -1,    -1,    83,    84,    -1,    10,    11,    12,
     3838      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3839      23,    24,    25,    26,    27,    28,    67,    30,    31,    32,
     3840     109,    72,   111,    74,    75,    76,    39,    -1,   117,   118,
     3841      -1,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
     3842      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3843      25,    26,    27,    28,    67,    30,    31,    32,   109,    -1,
     3844     111,    74,    75,    -1,    39,    78,   117,   118,    10,    11,
     3845      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3846      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3847      32,    -1,    67,    -1,    -1,    -1,   109,    39,   111,    74,
     3848      75,    -1,    -1,    78,   117,   118,    10,    11,    12,    13,
    38043849      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3805       24,    25,    26,    27,    -1,   111,    30,    31,    32,   115,
    3806       -1,   117,   118,    37,    38,    39,    40,    -1,    -1,    -1,
    3807       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3808       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3809       26,    27,    66,    67,    30,    31,    32,    -1,    72,    -1,
    3810       74,    75,    76,    39,    -1,    79,    80,    81,    82,    83,
    3811       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3812       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3813       -1,    67,    -1,    -1,    -1,   109,    -1,   111,    74,    75,
    3814       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     3,
    3815        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3816       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3817       24,    25,    26,    27,    -1,   111,    30,    31,    32,    -1,
    3818       -1,   117,   118,    -1,    -1,    39,    -1,    -1,    -1,    10,
    3819       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3820       21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
    3821       31,    32,    -1,    67,    -1,    69,    -1,    71,    39,    -1,
    3822       74,    75,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
    3823       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3824       23,    24,    25,    26,    27,    -1,    67,    30,    31,    32,
    3825       -1,    72,    -1,    74,    75,    76,    39,    78,    -1,    -1,
    3826      114,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
    3827       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3828       25,    26,    27,    28,    67,    30,    31,    32,    -1,    72,
    3829      111,    74,    75,    76,    39,    -1,   117,   118,    -1,    -1,
    3830       83,    84,    -1,    10,    11,    12,    13,    14,    15,    16,
    3831       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3832       27,    -1,    67,    30,    31,    32,   109,    -1,   111,    74,
    3833       75,    -1,    39,    78,   117,   118,    10,    11,    12,    13,
    3834       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3835       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3836       67,    -1,    -1,    -1,    -1,    39,   111,    74,    75,    -1,
     3850      24,    25,    26,    27,    -1,    67,    30,    31,    32,    -1,
     3851      -1,    -1,    74,    75,    -1,    39,   111,    -1,    -1,    -1,
    38373852      -1,    -1,   117,   118,    10,    11,    12,    13,    14,    15,
    38383853      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3839       26,    27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,
    3840       74,    75,    -1,    39,   111,    -1,    -1,    -1,    -1,    -1,
    3841      117,   118,    10,    11,    12,    13,    14,    15,    16,    17,
    3842       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3843       -1,    67,    30,    31,    32,    -1,    -1,   111,    74,    75,
    3844       -1,    39,    -1,   117,   118,    10,    11,    12,    13,    14,
     3854      26,    27,    -1,    67,    30,    31,    32,    -1,    -1,   111,
     3855      74,    75,    -1,    39,    -1,   117,   118,    10,    11,    12,
     3856      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3857      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3858      -1,    67,    -1,    -1,    -1,    -1,    39,   111,    74,    75,
     3859      -1,    -1,    -1,   117,   118,    10,    11,    12,    13,    14,
    38453860      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3846       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    67,
    3847       -1,    -1,    -1,    -1,    39,   111,    74,    75,    -1,    -1,
     3861      25,    26,    27,    -1,    67,    30,    31,    32,    -1,    -1,
     3862      -1,    74,    75,    -1,    39,   111,    -1,    -1,    -1,    -1,
    38483863      -1,   117,   118,    10,    11,    12,    13,    14,    15,    16,
    38493864      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3850       27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,    74,
    3851       75,    -1,    39,   111,    -1,    -1,    -1,    -1,    -1,   117,
    3852      118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3853       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3854       67,    30,    31,    32,    -1,    -1,   111,    74,    75,    -1,
    3855       39,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
    3856       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3857       20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
    3858       30,    31,    32,    -1,   111,    74,    75,    -1,    -1,    39,
    3859      117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3865      27,    -1,    67,    30,    31,    32,    -1,    -1,   111,    74,
     3866      75,    -1,    39,    -1,   117,   118,     4,     5,     6,     7,
     3867       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3868      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3869      67,    -1,    30,    31,    32,    -1,   111,    74,    75,    -1,
     3870      -1,    39,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
    38603871      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3861       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3862       -1,    71,    -1,    -1,    74,    75,    -1,    -1,   117,   118,
    3863       37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,    46,
    3864       47,    48,    49,    50,    51,    52,    53,    -1,    -1,    56,
     3872      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3873      -1,    69,    -1,    71,   111,    -1,    74,    75,    -1,    -1,
     3874     117,   118,    37,    38,    -1,    40,    41,    -1,    43,    -1,
     3875      -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3876      -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
     3877      -1,    66,   110,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3878      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3879      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3880      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3881      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3882      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3883      37,    38,   127,    40,    41,    -1,    43,   132,    -1,    46,
     3884      47,    48,    49,    50,    51,    52,    53,    -1,    -1,    -1,
    38653885      57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,
    3866      110,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3886      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    38673887      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    38683888      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38693889      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38703890      -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
    3871      117,   118,   119,   120,   121,   122,    -1,    -1,    37,    38,
    3872      127,    40,    41,    -1,    43,   132,    -1,    46,    47,    48,
    3873       49,    50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,
    3874       -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
    3875       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3876       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3891     117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
     3892     127,    -1,    -1,    -1,    -1,   132,     4,     5,     6,     7,
     3893       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3894      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3895      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3896      -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,    43,
     3897      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
     3898      -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    67,
     3899      64,    69,    66,    71,    -1,    -1,    74,    75,    72,    -1,
     3900      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3901      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    96,    -1,
    38773902      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3878       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3879      109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,
    3880      119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,    -1,
    3881       -1,    -1,    -1,   132,     4,     5,     6,     7,     8,     9,
    3882       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3883       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3884       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
    3885       -1,    37,    38,    -1,    40,    41,    -1,    43,    44,    45,
     3903      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3904     114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3905      -1,    37,    38,   127,    40,    41,    -1,    43,    44,    45,
    38863906      46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    3887       56,    57,    -1,    -1,    -1,    61,    62,    67,    64,    69,
    3888       66,    71,    -1,    -1,    74,    75,    72,    -1,    -1,    -1,
     3907      -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,
     3908      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    38893909      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3890       86,    87,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
     3910      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38913911      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    38923912      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
    38933913      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    37,
    3894       38,   127,    40,    41,    -1,    43,    44,    45,    46,    47,
     3914      38,   127,    40,    41,    -1,    43,    -1,    -1,    46,    47,
    38953915      48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
    38963916      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,
    38973917      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    38983918      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3919      -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
     3920      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3921      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,
     3922     118,   119,   120,   121,   122,    66,    -1,    -1,    -1,   127,
     3923      -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
     3924      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3925      -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
     3926      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3927     111,    -1,    37,    38,    -1,    40,   117,   118,   119,   120,
     3928     121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     3929      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3930      84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,    -1,
     3931      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3932      -1,    86,    87,    -1,    -1,   109,    -1,   111,    -1,    37,
     3933      38,    -1,    40,   117,   118,   119,   120,   121,   122,    -1,
     3934      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,
     3935      -1,    40,   117,   118,   119,   120,   121,   122,    66,    -1,
     3936      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3937      -1,    79,    80,    81,    82,    83,    84,    66,    86,    87,
     3938      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3939      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3940      -1,   109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,
     3941     118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
     3942     109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,   118,
     3943     119,   120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,
     3944      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     3945      82,    83,    84,    66,    86,    87,    -1,    -1,    -1,    72,
     3946      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3947      83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,
     3948      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3949     122,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     3950      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3951       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3952      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3953      24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
     3954      -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    38993955      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39003956      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3901       -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,
    3902      118,   119,   120,   121,   122,    -1,    -1,    37,    38,   127,
    3903       40,    41,    -1,    43,    -1,    -1,    46,    47,    48,    49,
    3904       50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
    3905       -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
    3906       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3907       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3908       -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
    3909       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    3910       -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,
    3911      120,   121,   122,    66,    -1,    -1,    -1,   127,    -1,    72,
    3912       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3913       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3914       -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
    3915       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    3916       -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3917       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    3918       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3919       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
    3920       -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3921       -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,
    3922       40,   117,   118,   119,   120,   121,   122,    66,    -1,    -1,
    3923       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3924       79,    80,    81,    82,    83,    84,    66,    86,    87,    -1,
    3925       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3926       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3927      109,    -1,   111,    -1,    37,    38,    -1,    40,   117,   118,
    3928      119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,   109,
    3929       -1,   111,    -1,    37,    38,    -1,    40,   117,   118,   119,
    3930      120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,
    3931       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3932       83,    84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,
    3933       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3934       84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,    -1,
    3935       37,    38,    -1,    40,   117,   118,   119,   120,   121,   122,
    3936       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    37,
    3937       38,    -1,    40,   117,   118,   119,   120,   121,   122,    66,
    3938       -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    3939       -1,    -1,    79,    80,    81,    82,    83,    84,    66,    86,
    3940       87,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3941       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3942       -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3943      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3944       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3945      118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
     3957      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
     3958      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3959      84,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3960      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3961      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3962      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     3963      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3964      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3965      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
     3966      -1,    -1,    74,    75,     3,     4,     5,     6,     7,     8,
    39463967       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    39473968      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3948       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3969      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    39493970      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39503971      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39513972      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3952       69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3953       -1,    -1,    -1,    -1,    83,    84,     3,     4,     5,     6,
     3973      69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
    39543974       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    39553975      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    39583978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39593979      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3960       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     3,
    3961        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3962       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3963       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3964       -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    3965       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3966       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3967       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3968       74,    75,     4,     5,     6,     7,     8,     9,    10,    11,
    3969       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3970       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3971       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    3972       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3973       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3974       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3975       -1,    -1,    74,    75
     3980      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75
    39763981};
    39773982
     
    39843989      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    39853990      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    3986       76,    83,    84,   109,   111,   117,   118,   137,   140,   150,
    3987      199,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    3988      222,   223,   224,   225,   226,   227,   228,   229,   230,   232,
    3989      233,   234,   235,   236,   237,   238,   240,   241,   242,   243,
    3990      244,   245,   247,   255,   256,   283,   284,   285,   293,   296,
    3991      302,   303,   305,   307,   308,   314,   319,   323,   324,   325,
    3992      326,   327,   328,   329,   330,   350,   367,   368,   369,   370,
    3993       72,   139,   140,   150,   216,   218,   226,   228,   237,   241,
    3994      243,   284,    82,   109,   312,   313,   314,   312,   312,    72,
    3995       74,    75,    76,   138,   139,   273,   274,   294,   295,    74,
    3996       75,   274,   109,   305,    11,   200,   109,   150,   319,   324,
    3997      325,   326,   328,   329,   330,   112,   134,   111,   219,   226,
    3998      228,   323,   327,   366,   367,   370,   371,   135,   107,   131,
    3999      277,   114,   135,   174,    74,    75,   137,   272,   135,   135,
    4000      135,   116,   135,    74,    75,   109,   150,   309,   318,   319,
    4001      320,   321,   322,   323,   327,   331,   332,   333,   334,   335,
    4002      341,     3,    28,    78,   239,     3,     5,    74,   111,   150,
    4003      218,   229,   233,   235,   244,   285,   323,   327,   370,   216,
    4004      218,   228,   237,   241,   243,   284,   323,   327,    33,   234,
    4005      234,   229,   235,   135,   234,   229,   234,   229,    75,   109,
    4006      114,   274,   285,   114,   274,   234,   229,   116,   135,   135,
    4007        0,   134,   109,   174,   312,   312,   134,   111,   226,   228,
    4008      368,   272,   272,   131,   228,   109,   150,   309,   319,   323,
    4009      111,   150,   370,   306,   231,   314,   109,   290,   109,   109,
     3991      76,    83,    84,   109,   111,   117,   118,   137,   140,   151,
     3992     200,   214,   215,   216,   217,   218,   219,   220,   221,   222,
     3993     223,   224,   225,   226,   227,   228,   229,   230,   231,   233,
     3994     234,   235,   236,   237,   238,   239,   241,   242,   243,   244,
     3995     245,   246,   248,   256,   257,   284,   285,   286,   294,   297,
     3996     303,   304,   306,   308,   309,   315,   320,   324,   325,   326,
     3997     327,   328,   329,   330,   331,   351,   368,   369,   370,   371,
     3998      72,   139,   140,   151,   217,   219,   227,   229,   238,   242,
     3999     244,   285,    82,   109,   313,   314,   315,   313,   313,    72,
     4000      74,    75,    76,   138,   139,   274,   275,   295,   296,    74,
     4001      75,   275,   109,   306,    11,   201,   109,   151,   320,   325,
     4002     326,   327,   329,   330,   331,   112,   134,   111,   220,   227,
     4003     229,   324,   328,   367,   368,   371,   372,   135,   107,   131,
     4004     278,   114,   135,   175,    74,    75,   137,   273,   135,   135,
     4005     135,   116,   135,    74,    75,   109,   151,   310,   319,   320,
     4006     321,   322,   323,   324,   328,   332,   333,   334,   335,   336,
     4007     342,     3,    28,    78,   240,     3,     5,    74,   111,   151,
     4008     219,   230,   234,   236,   245,   286,   324,   328,   371,   217,
     4009     219,   229,   238,   242,   244,   285,   324,   328,    33,   235,
     4010     235,   230,   236,   135,   235,   230,   235,   230,    75,   109,
     4011     114,   275,   286,   114,   275,   235,   230,   116,   135,   135,
     4012       0,   134,   109,   175,   313,   313,   134,   111,   227,   229,
     4013     369,   273,   273,   131,   229,   109,   151,   310,   320,   324,
     4014     111,   151,   371,   307,   232,   315,   109,   291,   109,   109,
    40104015      51,   109,    37,    38,    40,    66,    72,    76,    79,    80,
    40114016      81,    82,    86,    87,   109,   111,   119,   120,   121,   122,
    4012      136,   140,   141,   142,   143,   144,   149,   150,   151,   152,
    4013      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
    4014      163,   165,   168,   226,   276,   292,   366,   371,   228,   110,
    4015      110,   110,   110,   110,   110,   110,    74,    75,   111,   226,
    4016      272,   350,   368,   111,   117,   150,   165,   218,   219,   225,
    4017      228,   232,   233,   237,   240,   241,   243,   262,   263,   267,
    4018      268,   269,   270,   284,   350,   362,   363,   364,   365,   370,
    4019      371,   112,   109,   323,   327,   370,   109,   116,   132,   111,
    4020      114,   150,   165,   278,   278,   115,   134,   116,   132,   109,
    4021      116,   132,   116,   132,   116,   132,   312,   132,   319,   320,
    4022      321,   322,   332,   333,   334,   335,   228,   318,   331,    64,
    4023      311,   111,   312,   349,   350,   312,   312,   174,   134,   109,
    4024      312,   349,   312,   312,   228,   309,   109,   109,   227,   228,
    4025      226,   228,   112,   134,   226,   366,   371,   174,   134,   272,
    4026      277,   218,   233,   323,   327,   174,   134,   294,   228,   237,
    4027      132,   228,   228,   292,   248,   246,   258,   274,   257,   228,
    4028      294,   132,   132,   305,   134,   139,   271,     3,   135,   208,
    4029      209,   223,   225,   228,   134,   311,   109,   311,   165,   319,
    4030      228,   109,   134,   272,   114,    33,    34,    35,   226,   286,
    4031      287,   289,   134,   128,   131,   291,   134,   229,   234,   235,
    4032      272,   315,   316,   317,   109,   141,   109,   149,   109,   149,
    4033      152,   109,   149,   109,   109,   149,   149,   111,   165,   170,
    4034      174,   226,   275,   366,   370,   112,   134,    82,    85,    86,
     4017     136,   140,   141,   142,   143,   144,   150,   151,   152,   153,
     4018     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
     4019     164,   166,   169,   227,   277,   293,   367,   372,   229,   110,
     4020     110,   110,   110,   110,   110,   110,    74,    75,   111,   227,
     4021     273,   351,   369,   111,   117,   151,   166,   219,   220,   226,
     4022     229,   233,   234,   238,   241,   242,   244,   263,   264,   268,
     4023     269,   270,   271,   285,   351,   363,   364,   365,   366,   371,
     4024     372,   112,   109,   324,   328,   371,   109,   116,   132,   111,
     4025     114,   151,   166,   279,   279,   115,   134,   116,   132,   109,
     4026     116,   132,   116,   132,   116,   132,   313,   132,   320,   321,
     4027     322,   323,   333,   334,   335,   336,   229,   319,   332,    64,
     4028     312,   111,   313,   350,   351,   313,   313,   175,   134,   109,
     4029     313,   350,   313,   313,   229,   310,   109,   109,   228,   229,
     4030     227,   229,   112,   134,   227,   367,   372,   175,   134,   273,
     4031     278,   219,   234,   324,   328,   175,   134,   295,   229,   238,
     4032     132,   229,   229,   293,   249,   247,   259,   275,   258,   229,
     4033     295,   132,   132,   306,   134,   139,   272,     3,   135,   209,
     4034     210,   224,   226,   229,   134,   312,   109,   312,   166,   320,
     4035     229,   109,   134,   273,   114,    33,    34,    35,   227,   287,
     4036     288,   290,   134,   128,   131,   292,   134,   230,   235,   236,
     4037     273,   316,   317,   318,   109,   141,   109,   150,   109,   150,
     4038     153,   109,   150,   109,   109,   150,   150,   111,   166,   171,
     4039     175,   227,   276,   367,   371,   112,   134,    82,    85,    86,
    40354040      87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
    4036      102,   103,   104,   105,   106,   107,   131,   167,   152,   152,
     4041     102,   103,   104,   105,   106,   107,   131,   168,   153,   153,
    40374042     117,   123,   124,   119,   120,    88,    89,    90,    91,   125,
    40384043     126,    92,    93,   118,   127,   128,    94,    95,   129,   131,
    4039      373,   109,   150,   345,   346,   347,   348,   349,   110,   116,
    4040      109,   349,   350,   109,   349,   350,   134,   109,   226,   368,
    4041      112,   134,   135,   111,   226,   228,   361,   362,   370,   371,
    4042      135,   109,   111,   150,   319,   336,   337,   338,   339,   340,
    4043      341,   342,   343,   344,   350,   351,   352,   353,   354,   355,
    4044      356,   150,   370,   228,   135,   135,   150,   226,   228,   363,
    4045      272,   226,   350,   363,   272,   109,   134,   134,   134,   112,
    4046      134,    72,   111,   113,   140,   274,   278,   279,   280,   281,
    4047      282,   134,   134,   134,   134,   134,   134,   309,   110,   110,
    4048      110,   110,   110,   110,   110,   318,   331,   109,   277,   112,
    4049      208,   134,   309,   170,   276,   170,   276,   309,   111,   208,
    4050      311,   174,   134,   208,   110,    40,   111,   115,   226,   249,
    4051      250,   251,   366,   114,   116,   372,   131,   259,   114,   228,
    4052      264,   265,   266,   269,   270,   110,   116,   174,   134,   117,
    4053      165,   134,   225,   228,   263,   362,   370,   303,   304,   109,
    4054      150,   336,   110,   116,   373,   274,   286,   109,   114,   274,
    4055      276,   286,   110,   116,   109,   141,   110,   130,   275,   275,
    4056      275,   146,   165,   276,   275,   112,   134,   110,   116,   110,
    4057      109,   150,   349,   357,   358,   359,   360,   110,   116,   165,
    4058      111,   139,   145,   146,   134,   111,   139,   145,   165,   152,
    4059      152,   152,   153,   153,   154,   154,   155,   155,   155,   155,
    4060      156,   156,   157,   158,   159,   160,   161,   130,   170,   165,
    4061      134,   346,   347,   348,   228,   345,   312,   312,   165,   276,
    4062      134,   271,   134,   226,   350,   363,   228,   232,   112,   112,
    4063      134,   370,   112,   109,   134,   319,   337,   338,   339,   342,
    4064      352,   353,   354,   112,   134,   228,   336,   340,   351,   109,
    4065      312,   355,   373,   312,   312,   373,   109,   312,   355,   312,
    4066      312,   312,   312,   350,   226,   361,   371,   272,   112,   116,
    4067      112,   116,   373,   226,   363,   373,   260,   261,   262,   263,
    4068      260,   260,   272,   165,   134,   111,   274,   130,   116,   372,
    4069      278,   111,   130,   282,    29,   210,   211,   272,   260,   139,
    4070      309,   139,   311,   109,   349,   350,   109,   349,   350,   142,
    4071      350,   174,   264,   110,   110,   110,   110,   112,   174,   208,
    4072      174,   114,   250,   251,   112,   134,   109,   130,   150,   252,
    4073      254,   318,   319,   331,   357,   116,   132,   116,   132,   274,
    4074      248,   274,   115,   163,   164,   258,   135,   135,   139,   223,
    4075      135,   135,   260,   109,   150,   370,   135,   115,   228,   287,
    4076      288,   135,   134,   134,   109,   135,   110,   316,   170,   171,
    4077      130,   132,   111,   141,   201,   202,   203,   110,   116,   110,
    4078      110,   110,   110,   111,   165,   358,   359,   360,   228,   357,
    4079      312,   312,   114,   152,   168,   165,   166,   169,   116,   135,
    4080      134,   110,   116,   165,   134,   115,   163,   130,   264,   110,
    4081      110,   110,   345,   264,   110,   260,   226,   363,   111,   117,
    4082      150,   165,   165,   228,   342,   264,   110,   110,   110,   110,
    4083      110,   110,   110,     7,   228,   336,   340,   351,   134,   134,
    4084      373,   134,   134,   110,   135,   135,   135,   135,   277,   135,
    4085      163,   164,   165,   310,   134,   278,   280,   115,   134,   212,
    4086      274,    40,    41,    43,    46,    47,    48,    49,    50,    51,
    4087       52,    53,    57,    61,    62,    72,   111,   127,   171,   172,
    4088      173,   174,   175,   176,   178,   179,   191,   193,   194,   199,
    4089      213,   308,    29,   135,   131,   277,   134,   134,   110,   135,
    4090      174,   248,   132,   132,   319,   164,   228,   253,   254,   253,
    4091      274,   312,   115,   259,   372,   110,   116,   112,   112,   135,
    4092      228,   116,   373,   290,   110,   286,   216,   218,   226,   298,
    4093      299,   300,   301,   292,   110,   110,   130,   164,   109,   110,
    4094      130,   116,   139,   112,   110,   110,   110,   357,   279,   116,
    4095      135,   169,   112,   139,   147,   148,   146,   135,   147,   163,
    4096      168,   135,   109,   349,   350,   135,   135,   134,   135,   135,
    4097      135,   165,   110,   135,   109,   349,   350,   109,   355,   109,
    4098      355,   350,   227,     7,   117,   135,   165,   264,   264,   263,
    4099      267,   267,   268,   116,   116,   110,   110,   112,    96,   122,
    4100      135,   135,   147,   278,   165,   116,   132,   213,   217,   228,
    4101      232,   109,   109,   172,   109,   109,    72,   132,    72,   132,
    4102       72,   117,   171,   109,   174,   166,   166,   130,   112,   144,
    4103      132,   135,   134,   135,   212,   110,   165,   264,   264,   312,
    4104      110,   115,   252,   115,   134,   110,   134,   135,   309,   115,
    4105      134,   135,   135,   110,   114,   201,   112,   164,   132,   201,
    4106      203,   110,   109,   349,   350,   372,   166,   112,   135,    85,
    4107      113,   116,   135,   112,   135,   110,   134,   110,   110,   112,
    4108      112,   112,   135,   110,   134,   134,   134,   165,   165,   135,
    4109      112,   135,   135,   135,   135,   134,   134,   164,   164,   112,
    4110      112,   135,   135,   274,   228,   170,   170,    47,   170,   134,
    4111      132,   132,   132,   170,   132,   170,    58,    59,    60,   195,
    4112      196,   197,   132,    63,   132,   312,   114,   176,   115,   132,
    4113      135,   135,    96,   269,   270,   110,   299,   116,   132,   116,
    4114      132,   115,   297,   130,   141,   110,   110,   130,   134,   115,
    4115      112,   111,   148,   111,   148,   148,   112,   112,   264,   112,
    4116      264,   264,   264,   135,   135,   112,   112,   110,   110,   112,
    4117      116,    96,   263,    96,   135,   112,   112,   110,   110,   109,
    4118      110,   171,   192,   213,   132,   110,   109,   109,   174,   197,
    4119       58,    59,   165,   172,   145,   110,   110,   114,   134,   134,
    4120      298,   141,   204,   109,   132,   204,   264,   134,   134,   135,
    4121      135,   135,   135,   112,   112,   134,   135,   112,   172,    44,
    4122       45,   114,   182,   183,   184,   170,   172,   135,   110,   171,
    4123      114,   184,    96,   134,    96,   134,   109,   109,   132,   115,
    4124      134,   272,   309,   115,   116,   130,   164,   110,   135,   147,
    4125      147,   110,   110,   110,   110,   267,    42,   164,   180,   181,
    4126      310,   130,   134,   172,   182,   110,   132,   172,   132,   134,
    4127      110,   134,   110,   134,    96,   134,    96,   134,   132,   298,
    4128      141,   139,   205,   110,   132,   110,   135,   135,   172,    96,
    4129      116,   130,   135,   206,   207,   213,   132,   171,   171,   206,
    4130      174,   198,   226,   366,   174,   198,   110,   134,   110,   134,
    4131      115,   110,   116,   112,   112,   164,   180,   183,   185,   186,
    4132      134,   132,   183,   187,   188,   135,   109,   150,   309,   357,
    4133      139,   135,   174,   198,   174,   198,   109,   132,   139,   172,
    4134      177,   115,   183,   213,   171,    56,   177,   190,   115,   183,
    4135      110,   228,   110,   135,   135,   292,   172,   177,   132,   189,
    4136      190,   177,   190,   174,   174,   110,   110,   110,   189,   135,
    4137      135,   174,   174,   135,   135
     4044     374,   109,   151,   346,   347,   348,   349,   350,   110,   116,
     4045     109,   350,   351,   109,   350,   351,   134,   109,   227,   369,
     4046     112,   134,   135,   111,   227,   229,   362,   363,   371,   372,
     4047     135,   109,   111,   151,   320,   337,   338,   339,   340,   341,
     4048     342,   343,   344,   345,   351,   352,   353,   354,   355,   356,
     4049     357,   151,   371,   229,   135,   135,   151,   227,   229,   364,
     4050     273,   227,   351,   364,   273,   109,   134,   134,   134,   112,
     4051     134,    72,   111,   113,   140,   275,   279,   280,   281,   282,
     4052     283,   134,   134,   134,   134,   134,   134,   310,   110,   110,
     4053     110,   110,   110,   110,   110,   319,   332,   109,   278,   112,
     4054     209,   134,   310,   171,   277,   171,   277,   310,   111,   209,
     4055     312,   175,   134,   209,   110,    40,   111,   115,   227,   250,
     4056     251,   252,   367,   114,   116,   373,   131,   260,   114,   229,
     4057     265,   266,   267,   270,   271,   110,   116,   175,   134,   117,
     4058     166,   134,   226,   229,   264,   363,   371,   304,   305,   109,
     4059     151,   337,   110,   116,   374,   275,   287,   109,   114,   275,
     4060     277,   287,   110,   116,   109,   141,   110,   130,   276,   276,
     4061     276,   146,   166,   277,   276,   112,   134,   110,   116,   110,
     4062     109,   151,   350,   358,   359,   360,   361,   110,   116,   166,
     4063     111,   139,   145,   146,   134,    79,   111,   139,   145,   166,
     4064     153,   153,   153,   154,   154,   155,   155,   156,   156,   156,
     4065     156,   157,   157,   158,   159,   160,   161,   162,   130,   171,
     4066     166,   134,   347,   348,   349,   229,   346,   313,   313,   166,
     4067     277,   134,   272,   134,   227,   351,   364,   229,   233,   112,
     4068     112,   134,   371,   112,   109,   134,   320,   338,   339,   340,
     4069     343,   353,   354,   355,   112,   134,   229,   337,   341,   352,
     4070     109,   313,   356,   374,   313,   313,   374,   109,   313,   356,
     4071     313,   313,   313,   313,   351,   227,   362,   372,   273,   112,
     4072     116,   112,   116,   374,   227,   364,   374,   261,   262,   263,
     4073     264,   261,   261,   273,   166,   134,   111,   275,   130,   116,
     4074     373,   279,   111,   130,   283,    29,   211,   212,   273,   261,
     4075     139,   310,   139,   312,   109,   350,   351,   109,   350,   351,
     4076     142,   351,   175,   265,   110,   110,   110,   110,   112,   175,
     4077     209,   175,   114,   251,   252,   112,   134,   109,   130,   151,
     4078     253,   255,   319,   320,   332,   358,   116,   132,   116,   132,
     4079     275,   249,   275,   115,   164,   165,   259,   135,   135,   139,
     4080     224,   135,   135,   261,   109,   151,   371,   135,   115,   229,
     4081     288,   289,   135,   134,   134,   109,   135,   110,   317,   171,
     4082     172,   130,   132,   111,   141,   202,   203,   204,   110,   116,
     4083     110,   110,   110,   110,   111,   166,   359,   360,   361,   229,
     4084     358,   313,   313,   114,   153,   169,   166,   167,   170,   116,
     4085     135,   134,   110,   116,   166,   134,   115,   164,   130,   265,
     4086     110,   110,   110,   346,   265,   110,   261,   227,   364,   111,
     4087     117,   151,   166,   166,   229,   343,   265,   110,   110,   110,
     4088     110,   110,   110,   110,     7,   229,   337,   341,   352,   134,
     4089     134,   374,   134,   134,   110,   135,   135,   135,   135,   278,
     4090     135,   164,   165,   166,   311,   134,   279,   281,   115,   134,
     4091     213,   275,    40,    41,    43,    46,    47,    48,    49,    50,
     4092      51,    52,    53,    57,    61,    62,    72,   111,   127,   172,
     4093     173,   174,   175,   176,   177,   179,   180,   192,   194,   195,
     4094     200,   214,   309,    29,   135,   131,   278,   134,   134,   110,
     4095     135,   175,   249,   132,   132,   320,   165,   229,   254,   255,
     4096     254,   275,   313,   115,   260,   373,   110,   116,   112,   112,
     4097     135,   229,   116,   374,   291,   110,   287,   217,   219,   227,
     4098     299,   300,   301,   302,   293,   110,   110,   130,   165,   109,
     4099     110,   130,   116,   139,   112,   110,   110,   110,   358,   280,
     4100     116,   135,   170,   112,    79,   139,   147,   148,   149,   146,
     4101     135,   147,   164,   169,   135,   109,   350,   351,   135,   135,
     4102     134,   135,   135,   135,   166,   110,   135,   109,   350,   351,
     4103     109,   356,   109,   356,   351,   228,     7,   117,   135,   166,
     4104     265,   265,   264,   268,   268,   269,   116,   116,   110,   110,
     4105     112,    96,   122,   135,   135,   147,   279,   166,   116,   132,
     4106     214,   218,   229,   233,   109,   109,   173,   109,   109,    72,
     4107     132,    72,   132,    72,   117,   172,   109,   175,   167,   167,
     4108     130,   112,   144,   132,   135,   134,   135,   213,   110,   166,
     4109     265,   265,   313,   110,   115,   253,   115,   134,   110,   134,
     4110     135,   310,   115,   134,   135,   135,   110,   114,   202,   112,
     4111     165,   132,   202,   204,   110,   109,   350,   351,   373,   167,
     4112     112,   135,   116,   135,    85,   113,   112,   135,   110,   134,
     4113     110,   110,   112,   112,   112,   135,   110,   134,   134,   134,
     4114     166,   166,   135,   112,   135,   135,   135,   135,   134,   134,
     4115     165,   165,   112,   112,   135,   135,   275,   229,   171,   171,
     4116      47,   171,   134,   132,   132,   132,   171,   132,   171,    58,
     4117      59,    60,   196,   197,   198,   132,    63,   132,   313,   114,
     4118     177,   115,   132,   135,   135,    96,   270,   271,   110,   300,
     4119     116,   132,   116,   132,   115,   298,   130,   141,   110,   110,
     4120     130,   134,   115,   112,   148,   112,   111,   148,   111,   148,
     4121     112,   265,   112,   265,   265,   265,   135,   135,   112,   112,
     4122     110,   110,   112,   116,    96,   264,    96,   135,   112,   112,
     4123     110,   110,   109,   110,   172,   193,   214,   132,   110,   109,
     4124     109,   175,   198,    58,    59,   166,   173,   145,   110,   110,
     4125     114,   134,   134,   299,   141,   205,   109,   132,   205,   265,
     4126     134,   134,   135,   135,   135,   135,   112,   112,   134,   135,
     4127     112,   173,    44,    45,   114,   183,   184,   185,   171,   173,
     4128     135,   110,   172,   114,   185,    96,   134,    96,   134,   109,
     4129     109,   132,   115,   134,   273,   310,   115,   116,   130,   165,
     4130     110,   135,   147,   147,   110,   110,   110,   110,   268,    42,
     4131     165,   181,   182,   311,   130,   134,   173,   183,   110,   132,
     4132     173,   132,   134,   110,   134,   110,   134,    96,   134,    96,
     4133     134,   132,   299,   141,   139,   206,   110,   132,   110,   135,
     4134     135,   173,    96,   116,   130,   135,   207,   208,   214,   132,
     4135     172,   172,   207,   175,   199,   227,   367,   175,   199,   110,
     4136     134,   110,   134,   115,   110,   116,   112,   112,   165,   181,
     4137     184,   186,   187,   134,   132,   184,   188,   189,   135,   109,
     4138     151,   310,   358,   139,   135,   175,   199,   175,   199,   109,
     4139     132,   139,   173,   178,   115,   184,   214,   172,    56,   178,
     4140     191,   115,   184,   110,   229,   110,   135,   135,   293,   173,
     4141     178,   132,   190,   191,   178,   191,   175,   175,   110,   110,
     4142     110,   190,   135,   135,   175,   175,   135,   135
    41384143};
    41394144
     
    49724977
    49734978/* Line 1806 of yacc.c  */
    4974 #line 301 "parser.yy"
     4979#line 302 "parser.yy"
    49754980    { typedefTable.enterScope(); }
    49764981    break;
     
    49794984
    49804985/* Line 1806 of yacc.c  */
    4981 #line 305 "parser.yy"
     4986#line 306 "parser.yy"
    49824987    { typedefTable.leaveScope(); }
    49834988    break;
     
    49864991
    49874992/* Line 1806 of yacc.c  */
    4988 #line 312 "parser.yy"
     4993#line 313 "parser.yy"
    49894994    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    49904995    break;
     
    49934998
    49944999/* Line 1806 of yacc.c  */
    4995 #line 313 "parser.yy"
     5000#line 314 "parser.yy"
    49965001    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    49975002    break;
     
    50005005
    50015006/* Line 1806 of yacc.c  */
    5002 #line 314 "parser.yy"
     5007#line 315 "parser.yy"
    50035008    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    50045009    break;
     
    50075012
    50085013/* Line 1806 of yacc.c  */
    5009 #line 339 "parser.yy"
     5014#line 340 "parser.yy"
    50105015    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    50115016    break;
     
    50145019
    50155020/* Line 1806 of yacc.c  */
    5016 #line 343 "parser.yy"
     5021#line 344 "parser.yy"
    50175022    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    50185023    break;
     
    50215026
    50225027/* Line 1806 of yacc.c  */
    5023 #line 345 "parser.yy"
     5028#line 346 "parser.yy"
    50245029    {
    50255030                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    50325037
    50335038/* Line 1806 of yacc.c  */
    5034 #line 356 "parser.yy"
     5039#line 357 "parser.yy"
    50355040    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50365041    break;
     
    50395044
    50405045/* Line 1806 of yacc.c  */
    5041 #line 358 "parser.yy"
     5046#line 359 "parser.yy"
    50425047    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50435048    break;
     
    50465051
    50475052/* Line 1806 of yacc.c  */
    5048 #line 360 "parser.yy"
     5053#line 361 "parser.yy"
    50495054    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50505055    break;
     
    50535058
    50545059/* Line 1806 of yacc.c  */
    5055 #line 362 "parser.yy"
     5060#line 363 "parser.yy"
    50565061    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50575062    break;
     
    50605065
    50615066/* Line 1806 of yacc.c  */
    5062 #line 372 "parser.yy"
     5067#line 373 "parser.yy"
    50635068    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    50645069    break;
     
    50675072
    50685073/* Line 1806 of yacc.c  */
    5069 #line 374 "parser.yy"
     5074#line 375 "parser.yy"
    50705075    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    50715076    break;
     
    50745079
    50755080/* Line 1806 of yacc.c  */
    5076 #line 378 "parser.yy"
     5081#line 379 "parser.yy"
    50775082    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50785083    break;
    50795084
    5080   case 28:
    5081 
    5082 /* Line 1806 of yacc.c  */
    5083 #line 381 "parser.yy"
     5085  case 29:
     5086
     5087/* Line 1806 of yacc.c  */
     5088#line 383 "parser.yy"
    50845089    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50855090    break;
    50865091
    5087   case 30:
    5088 
    5089 /* Line 1806 of yacc.c  */
    5090 #line 384 "parser.yy"
     5092  case 31:
     5093
     5094/* Line 1806 of yacc.c  */
     5095#line 386 "parser.yy"
    50915096    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    50925097    break;
    50935098
    5094   case 31:
    5095 
    5096 /* Line 1806 of yacc.c  */
    5097 #line 386 "parser.yy"
     5099  case 32:
     5100
     5101/* Line 1806 of yacc.c  */
     5102#line 388 "parser.yy"
    50985103    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    50995104    break;
    51005105
    5101   case 32:
    5102 
    5103 /* Line 1806 of yacc.c  */
    5104 #line 388 "parser.yy"
     5106  case 33:
     5107
     5108/* Line 1806 of yacc.c  */
     5109#line 390 "parser.yy"
    51055110    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    51065111    break;
    51075112
    5108   case 33:
    5109 
    5110 /* Line 1806 of yacc.c  */
    5111 #line 390 "parser.yy"
     5113  case 34:
     5114
     5115/* Line 1806 of yacc.c  */
     5116#line 392 "parser.yy"
    51125117    {
    51135118                        Token fn;
     
    51175122    break;
    51185123
    5119   case 35:
    5120 
    5121 /* Line 1806 of yacc.c  */
    5122 #line 400 "parser.yy"
     5124  case 36:
     5125
     5126/* Line 1806 of yacc.c  */
     5127#line 402 "parser.yy"
    51235128    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    51245129    break;
    51255130
    5126   case 36:
    5127 
    5128 /* Line 1806 of yacc.c  */
    5129 #line 405 "parser.yy"
     5131  case 37:
     5132
     5133/* Line 1806 of yacc.c  */
     5134#line 407 "parser.yy"
    51305135    { (yyval.en) = 0; }
    51315136    break;
    51325137
    5133   case 39:
    5134 
    5135 /* Line 1806 of yacc.c  */
    5136 #line 411 "parser.yy"
     5138  case 40:
     5139
     5140/* Line 1806 of yacc.c  */
     5141#line 413 "parser.yy"
    51375142    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    51385143    break;
    51395144
    5140   case 40:
    5141 
    5142 /* Line 1806 of yacc.c  */
    5143 #line 416 "parser.yy"
     5145  case 41:
     5146
     5147/* Line 1806 of yacc.c  */
     5148#line 420 "parser.yy"
    51445149    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    51455150    break;
    51465151
    5147   case 41:
    5148 
    5149 /* Line 1806 of yacc.c  */
    5150 #line 420 "parser.yy"
     5152  case 42:
     5153
     5154/* Line 1806 of yacc.c  */
     5155#line 422 "parser.yy"
    51515156    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51525157    break;
    51535158
    5154   case 42:
    5155 
    5156 /* Line 1806 of yacc.c  */
    5157 #line 422 "parser.yy"
     5159  case 43:
     5160
     5161/* Line 1806 of yacc.c  */
     5162#line 424 "parser.yy"
    51585163    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51595164    break;
    51605165
    5161   case 43:
    5162 
    5163 /* Line 1806 of yacc.c  */
    5164 #line 424 "parser.yy"
     5166  case 44:
     5167
     5168/* Line 1806 of yacc.c  */
     5169#line 426 "parser.yy"
    51655170    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51665171    break;
    51675172
    5168   case 44:
    5169 
    5170 /* Line 1806 of yacc.c  */
    5171 #line 426 "parser.yy"
     5173  case 45:
     5174
     5175/* Line 1806 of yacc.c  */
     5176#line 428 "parser.yy"
    51725177    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51735178    break;
    51745179
    5175   case 46:
    5176 
    5177 /* Line 1806 of yacc.c  */
    5178 #line 434 "parser.yy"
     5180  case 49:
     5181
     5182/* Line 1806 of yacc.c  */
     5183#line 441 "parser.yy"
    51795184    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51805185    break;
    51815186
    5182   case 47:
    5183 
    5184 /* Line 1806 of yacc.c  */
    5185 #line 436 "parser.yy"
     5187  case 50:
     5188
     5189/* Line 1806 of yacc.c  */
     5190#line 443 "parser.yy"
    51865191    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    51875192    break;
    51885193
    5189   case 48:
    5190 
    5191 /* Line 1806 of yacc.c  */
    5192 #line 438 "parser.yy"
     5194  case 51:
     5195
     5196/* Line 1806 of yacc.c  */
     5197#line 445 "parser.yy"
    51935198    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    51945199    break;
    51955200
    5196   case 49:
    5197 
    5198 /* Line 1806 of yacc.c  */
    5199 #line 443 "parser.yy"
     5201  case 52:
     5202
     5203/* Line 1806 of yacc.c  */
     5204#line 450 "parser.yy"
    52005205    {
    52015206                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52125217    break;
    52135218
    5214   case 50:
    5215 
    5216 /* Line 1806 of yacc.c  */
    5217 #line 456 "parser.yy"
     5219  case 53:
     5220
     5221/* Line 1806 of yacc.c  */
     5222#line 463 "parser.yy"
    52185223    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    52195224    break;
    52205225
    5221   case 51:
    5222 
    5223 /* Line 1806 of yacc.c  */
    5224 #line 458 "parser.yy"
     5226  case 54:
     5227
     5228/* Line 1806 of yacc.c  */
     5229#line 465 "parser.yy"
    52255230    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    52265231    break;
    52275232
    5228   case 52:
    5229 
    5230 /* Line 1806 of yacc.c  */
    5231 #line 460 "parser.yy"
     5233  case 55:
     5234
     5235/* Line 1806 of yacc.c  */
     5236#line 467 "parser.yy"
    52325237    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    52335238    break;
    52345239
    5235   case 53:
    5236 
    5237 /* Line 1806 of yacc.c  */
    5238 #line 462 "parser.yy"
     5240  case 56:
     5241
     5242/* Line 1806 of yacc.c  */
     5243#line 469 "parser.yy"
    52395244    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52405245    break;
    52415246
    5242   case 54:
    5243 
    5244 /* Line 1806 of yacc.c  */
    5245 #line 464 "parser.yy"
     5247  case 57:
     5248
     5249/* Line 1806 of yacc.c  */
     5250#line 471 "parser.yy"
    52465251    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52475252    break;
    52485253
    5249   case 55:
    5250 
    5251 /* Line 1806 of yacc.c  */
    5252 #line 466 "parser.yy"
     5254  case 58:
     5255
     5256/* Line 1806 of yacc.c  */
     5257#line 473 "parser.yy"
    52535258    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52545259    break;
    52555260
    5256   case 56:
    5257 
    5258 /* Line 1806 of yacc.c  */
    5259 #line 468 "parser.yy"
     5261  case 59:
     5262
     5263/* Line 1806 of yacc.c  */
     5264#line 475 "parser.yy"
    52605265    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52615266    break;
    52625267
    5263   case 57:
    5264 
    5265 /* Line 1806 of yacc.c  */
    5266 #line 470 "parser.yy"
     5268  case 60:
     5269
     5270/* Line 1806 of yacc.c  */
     5271#line 477 "parser.yy"
    52675272    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    52685273    break;
    52695274
    5270   case 58:
    5271 
    5272 /* Line 1806 of yacc.c  */
    5273 #line 472 "parser.yy"
     5275  case 61:
     5276
     5277/* Line 1806 of yacc.c  */
     5278#line 479 "parser.yy"
    52745279    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    52755280    break;
    52765281
    5277   case 59:
    5278 
    5279 /* Line 1806 of yacc.c  */
    5280 #line 474 "parser.yy"
     5282  case 62:
     5283
     5284/* Line 1806 of yacc.c  */
     5285#line 481 "parser.yy"
    52815286    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    52825287    break;
    52835288
    5284   case 60:
    5285 
    5286 /* Line 1806 of yacc.c  */
    5287 #line 476 "parser.yy"
     5289  case 63:
     5290
     5291/* Line 1806 of yacc.c  */
     5292#line 483 "parser.yy"
    52885293    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    52895294    break;
    52905295
    5291   case 61:
    5292 
    5293 /* Line 1806 of yacc.c  */
    5294 #line 482 "parser.yy"
     5296  case 64:
     5297
     5298/* Line 1806 of yacc.c  */
     5299#line 489 "parser.yy"
    52955300    { (yyval.op) = OperKinds::PointTo; }
    52965301    break;
    52975302
    5298   case 62:
    5299 
    5300 /* Line 1806 of yacc.c  */
    5301 #line 483 "parser.yy"
     5303  case 65:
     5304
     5305/* Line 1806 of yacc.c  */
     5306#line 490 "parser.yy"
    53025307    { (yyval.op) = OperKinds::AddressOf; }
    53035308    break;
    53045309
    5305   case 63:
    5306 
    5307 /* Line 1806 of yacc.c  */
    5308 #line 489 "parser.yy"
     5310  case 66:
     5311
     5312/* Line 1806 of yacc.c  */
     5313#line 496 "parser.yy"
    53095314    { (yyval.op) = OperKinds::UnPlus; }
    53105315    break;
    53115316
    5312   case 64:
    5313 
    5314 /* Line 1806 of yacc.c  */
    5315 #line 490 "parser.yy"
     5317  case 67:
     5318
     5319/* Line 1806 of yacc.c  */
     5320#line 497 "parser.yy"
    53165321    { (yyval.op) = OperKinds::UnMinus; }
    53175322    break;
    53185323
    5319   case 65:
    5320 
    5321 /* Line 1806 of yacc.c  */
    5322 #line 491 "parser.yy"
     5324  case 68:
     5325
     5326/* Line 1806 of yacc.c  */
     5327#line 498 "parser.yy"
    53235328    { (yyval.op) = OperKinds::Neg; }
    53245329    break;
    53255330
    5326   case 66:
    5327 
    5328 /* Line 1806 of yacc.c  */
    5329 #line 492 "parser.yy"
     5331  case 69:
     5332
     5333/* Line 1806 of yacc.c  */
     5334#line 499 "parser.yy"
    53305335    { (yyval.op) = OperKinds::BitNeg; }
    53315336    break;
    53325337
    5333   case 68:
    5334 
    5335 /* Line 1806 of yacc.c  */
    5336 #line 498 "parser.yy"
     5338  case 71:
     5339
     5340/* Line 1806 of yacc.c  */
     5341#line 505 "parser.yy"
    53375342    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53385343    break;
    53395344
    5340   case 69:
    5341 
    5342 /* Line 1806 of yacc.c  */
    5343 #line 500 "parser.yy"
     5345  case 72:
     5346
     5347/* Line 1806 of yacc.c  */
     5348#line 507 "parser.yy"
    53445349    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53455350    break;
    53465351
    5347   case 71:
    5348 
    5349 /* Line 1806 of yacc.c  */
    5350 #line 506 "parser.yy"
     5352  case 74:
     5353
     5354/* Line 1806 of yacc.c  */
     5355#line 513 "parser.yy"
    53515356    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53525357    break;
    53535358
    5354   case 72:
    5355 
    5356 /* Line 1806 of yacc.c  */
    5357 #line 508 "parser.yy"
     5359  case 75:
     5360
     5361/* Line 1806 of yacc.c  */
     5362#line 515 "parser.yy"
    53585363    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53595364    break;
    53605365
    5361   case 73:
    5362 
    5363 /* Line 1806 of yacc.c  */
    5364 #line 510 "parser.yy"
     5366  case 76:
     5367
     5368/* Line 1806 of yacc.c  */
     5369#line 517 "parser.yy"
    53655370    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53665371    break;
    53675372
    5368   case 75:
    5369 
    5370 /* Line 1806 of yacc.c  */
    5371 #line 516 "parser.yy"
     5373  case 78:
     5374
     5375/* Line 1806 of yacc.c  */
     5376#line 523 "parser.yy"
    53725377    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53735378    break;
    53745379
    5375   case 76:
    5376 
    5377 /* Line 1806 of yacc.c  */
    5378 #line 518 "parser.yy"
     5380  case 79:
     5381
     5382/* Line 1806 of yacc.c  */
     5383#line 525 "parser.yy"
    53795384    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53805385    break;
    53815386
    5382   case 78:
    5383 
    5384 /* Line 1806 of yacc.c  */
    5385 #line 524 "parser.yy"
     5387  case 81:
     5388
     5389/* Line 1806 of yacc.c  */
     5390#line 531 "parser.yy"
    53865391    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53875392    break;
    53885393
    5389   case 79:
    5390 
    5391 /* Line 1806 of yacc.c  */
    5392 #line 526 "parser.yy"
     5394  case 82:
     5395
     5396/* Line 1806 of yacc.c  */
     5397#line 533 "parser.yy"
    53935398    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53945399    break;
    53955400
    5396   case 81:
    5397 
    5398 /* Line 1806 of yacc.c  */
    5399 #line 532 "parser.yy"
     5401  case 84:
     5402
     5403/* Line 1806 of yacc.c  */
     5404#line 539 "parser.yy"
    54005405    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54015406    break;
    54025407
    5403   case 82:
    5404 
    5405 /* Line 1806 of yacc.c  */
    5406 #line 534 "parser.yy"
     5408  case 85:
     5409
     5410/* Line 1806 of yacc.c  */
     5411#line 541 "parser.yy"
    54075412    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54085413    break;
    54095414
    5410   case 83:
    5411 
    5412 /* Line 1806 of yacc.c  */
    5413 #line 536 "parser.yy"
     5415  case 86:
     5416
     5417/* Line 1806 of yacc.c  */
     5418#line 543 "parser.yy"
    54145419    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54155420    break;
    54165421
    5417   case 84:
    5418 
    5419 /* Line 1806 of yacc.c  */
    5420 #line 538 "parser.yy"
     5422  case 87:
     5423
     5424/* Line 1806 of yacc.c  */
     5425#line 545 "parser.yy"
    54215426    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54225427    break;
    54235428
    5424   case 86:
    5425 
    5426 /* Line 1806 of yacc.c  */
    5427 #line 544 "parser.yy"
     5429  case 89:
     5430
     5431/* Line 1806 of yacc.c  */
     5432#line 551 "parser.yy"
    54285433    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54295434    break;
    54305435
    5431   case 87:
    5432 
    5433 /* Line 1806 of yacc.c  */
    5434 #line 546 "parser.yy"
     5436  case 90:
     5437
     5438/* Line 1806 of yacc.c  */
     5439#line 553 "parser.yy"
    54355440    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54365441    break;
    54375442
    5438   case 89:
    5439 
    5440 /* Line 1806 of yacc.c  */
    5441 #line 552 "parser.yy"
     5443  case 92:
     5444
     5445/* Line 1806 of yacc.c  */
     5446#line 559 "parser.yy"
    54425447    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54435448    break;
    54445449
    5445   case 91:
    5446 
    5447 /* Line 1806 of yacc.c  */
    5448 #line 558 "parser.yy"
     5450  case 94:
     5451
     5452/* Line 1806 of yacc.c  */
     5453#line 565 "parser.yy"
    54495454    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54505455    break;
    54515456
    5452   case 93:
    5453 
    5454 /* Line 1806 of yacc.c  */
    5455 #line 564 "parser.yy"
     5457  case 96:
     5458
     5459/* Line 1806 of yacc.c  */
     5460#line 571 "parser.yy"
    54565461    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54575462    break;
    54585463
    5459   case 95:
    5460 
    5461 /* Line 1806 of yacc.c  */
    5462 #line 570 "parser.yy"
     5464  case 98:
     5465
     5466/* Line 1806 of yacc.c  */
     5467#line 577 "parser.yy"
    54635468    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54645469    break;
    54655470
    5466   case 97:
    5467 
    5468 /* Line 1806 of yacc.c  */
    5469 #line 576 "parser.yy"
     5471  case 100:
     5472
     5473/* Line 1806 of yacc.c  */
     5474#line 583 "parser.yy"
    54705475    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    54715476    break;
    54725477
    5473   case 99:
    5474 
    5475 /* Line 1806 of yacc.c  */
    5476 #line 582 "parser.yy"
     5478  case 102:
     5479
     5480/* Line 1806 of yacc.c  */
     5481#line 589 "parser.yy"
    54775482    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54785483    break;
    54795484
    5480   case 100:
    5481 
    5482 /* Line 1806 of yacc.c  */
    5483 #line 585 "parser.yy"
     5485  case 103:
     5486
     5487/* Line 1806 of yacc.c  */
     5488#line 592 "parser.yy"
    54845489    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    54855490    break;
    54865491
    5487   case 101:
    5488 
    5489 /* Line 1806 of yacc.c  */
    5490 #line 587 "parser.yy"
     5492  case 104:
     5493
     5494/* Line 1806 of yacc.c  */
     5495#line 594 "parser.yy"
    54915496    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54925497    break;
    54935498
    5494   case 104:
    5495 
    5496 /* Line 1806 of yacc.c  */
    5497 #line 598 "parser.yy"
     5499  case 107:
     5500
     5501/* Line 1806 of yacc.c  */
     5502#line 605 "parser.yy"
    54985503    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54995504    break;
    55005505
    5501   case 105:
    5502 
    5503 /* Line 1806 of yacc.c  */
    5504 #line 600 "parser.yy"
     5506  case 108:
     5507
     5508/* Line 1806 of yacc.c  */
     5509#line 607 "parser.yy"
    55055510    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
    55065511    break;
    55075512
    5508   case 106:
    5509 
    5510 /* Line 1806 of yacc.c  */
    5511 #line 605 "parser.yy"
     5513  case 109:
     5514
     5515/* Line 1806 of yacc.c  */
     5516#line 612 "parser.yy"
    55125517    { (yyval.en) = nullptr; }
    55135518    break;
    55145519
    5515   case 108:
    5516 
    5517 /* Line 1806 of yacc.c  */
    5518 #line 610 "parser.yy"
     5520  case 111:
     5521
     5522/* Line 1806 of yacc.c  */
     5523#line 617 "parser.yy"
    55195524    { (yyval.op) = OperKinds::Assign; }
    55205525    break;
    55215526
    5522   case 109:
    5523 
    5524 /* Line 1806 of yacc.c  */
    5525 #line 611 "parser.yy"
     5527  case 112:
     5528
     5529/* Line 1806 of yacc.c  */
     5530#line 618 "parser.yy"
    55265531    { (yyval.op) = OperKinds::AtAssn; }
    55275532    break;
    55285533
    5529   case 110:
    5530 
    5531 /* Line 1806 of yacc.c  */
    5532 #line 612 "parser.yy"
     5534  case 113:
     5535
     5536/* Line 1806 of yacc.c  */
     5537#line 619 "parser.yy"
    55335538    { (yyval.op) = OperKinds::MulAssn; }
    55345539    break;
    55355540
    5536   case 111:
    5537 
    5538 /* Line 1806 of yacc.c  */
    5539 #line 613 "parser.yy"
     5541  case 114:
     5542
     5543/* Line 1806 of yacc.c  */
     5544#line 620 "parser.yy"
    55405545    { (yyval.op) = OperKinds::DivAssn; }
    55415546    break;
    55425547
    5543   case 112:
    5544 
    5545 /* Line 1806 of yacc.c  */
    5546 #line 614 "parser.yy"
     5548  case 115:
     5549
     5550/* Line 1806 of yacc.c  */
     5551#line 621 "parser.yy"
    55475552    { (yyval.op) = OperKinds::ModAssn; }
    55485553    break;
    55495554
    5550   case 113:
    5551 
    5552 /* Line 1806 of yacc.c  */
    5553 #line 615 "parser.yy"
     5555  case 116:
     5556
     5557/* Line 1806 of yacc.c  */
     5558#line 622 "parser.yy"
    55545559    { (yyval.op) = OperKinds::PlusAssn; }
    55555560    break;
    55565561
    5557   case 114:
    5558 
    5559 /* Line 1806 of yacc.c  */
    5560 #line 616 "parser.yy"
     5562  case 117:
     5563
     5564/* Line 1806 of yacc.c  */
     5565#line 623 "parser.yy"
    55615566    { (yyval.op) = OperKinds::MinusAssn; }
    55625567    break;
    55635568
    5564   case 115:
    5565 
    5566 /* Line 1806 of yacc.c  */
    5567 #line 617 "parser.yy"
     5569  case 118:
     5570
     5571/* Line 1806 of yacc.c  */
     5572#line 624 "parser.yy"
    55685573    { (yyval.op) = OperKinds::LSAssn; }
    55695574    break;
    55705575
    5571   case 116:
    5572 
    5573 /* Line 1806 of yacc.c  */
    5574 #line 618 "parser.yy"
     5576  case 119:
     5577
     5578/* Line 1806 of yacc.c  */
     5579#line 625 "parser.yy"
    55755580    { (yyval.op) = OperKinds::RSAssn; }
    55765581    break;
    55775582
    5578   case 117:
    5579 
    5580 /* Line 1806 of yacc.c  */
    5581 #line 619 "parser.yy"
     5583  case 120:
     5584
     5585/* Line 1806 of yacc.c  */
     5586#line 626 "parser.yy"
    55825587    { (yyval.op) = OperKinds::AndAssn; }
    55835588    break;
    55845589
    5585   case 118:
    5586 
    5587 /* Line 1806 of yacc.c  */
    5588 #line 620 "parser.yy"
     5590  case 121:
     5591
     5592/* Line 1806 of yacc.c  */
     5593#line 627 "parser.yy"
    55895594    { (yyval.op) = OperKinds::ERAssn; }
    55905595    break;
    55915596
    5592   case 119:
    5593 
    5594 /* Line 1806 of yacc.c  */
    5595 #line 621 "parser.yy"
     5597  case 122:
     5598
     5599/* Line 1806 of yacc.c  */
     5600#line 628 "parser.yy"
    55965601    { (yyval.op) = OperKinds::OrAssn; }
    55975602    break;
    55985603
    5599   case 120:
    5600 
    5601 /* Line 1806 of yacc.c  */
    5602 #line 628 "parser.yy"
     5604  case 123:
     5605
     5606/* Line 1806 of yacc.c  */
     5607#line 635 "parser.yy"
    56035608    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    56045609    break;
    56055610
    5606   case 121:
    5607 
    5608 /* Line 1806 of yacc.c  */
    5609 #line 630 "parser.yy"
     5611  case 124:
     5612
     5613/* Line 1806 of yacc.c  */
     5614#line 637 "parser.yy"
    56105615    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    56115616    break;
    56125617
    5613   case 122:
    5614 
    5615 /* Line 1806 of yacc.c  */
    5616 #line 632 "parser.yy"
     5618  case 125:
     5619
     5620/* Line 1806 of yacc.c  */
     5621#line 639 "parser.yy"
    56175622    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    56185623    break;
    56195624
    5620   case 123:
    5621 
    5622 /* Line 1806 of yacc.c  */
    5623 #line 634 "parser.yy"
     5625  case 126:
     5626
     5627/* Line 1806 of yacc.c  */
     5628#line 641 "parser.yy"
    56245629    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56255630    break;
    56265631
    5627   case 125:
    5628 
    5629 /* Line 1806 of yacc.c  */
    5630 #line 640 "parser.yy"
     5632  case 128:
     5633
     5634/* Line 1806 of yacc.c  */
     5635#line 647 "parser.yy"
    56315636    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    56325637    break;
    56335638
    5634   case 127:
    5635 
    5636 /* Line 1806 of yacc.c  */
    5637 #line 646 "parser.yy"
     5639  case 130:
     5640
     5641/* Line 1806 of yacc.c  */
     5642#line 653 "parser.yy"
    56385643    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56395644    break;
    56405645
    5641   case 128:
    5642 
    5643 /* Line 1806 of yacc.c  */
    5644 #line 651 "parser.yy"
     5646  case 131:
     5647
     5648/* Line 1806 of yacc.c  */
     5649#line 658 "parser.yy"
    56455650    { (yyval.en) = 0; }
    56465651    break;
    56475652
    5648   case 132:
    5649 
    5650 /* Line 1806 of yacc.c  */
    5651 #line 660 "parser.yy"
     5653  case 135:
     5654
     5655/* Line 1806 of yacc.c  */
     5656#line 667 "parser.yy"
    56525657    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56535658    break;
    56545659
    5655   case 138:
    5656 
    5657 /* Line 1806 of yacc.c  */
    5658 #line 667 "parser.yy"
     5660  case 141:
     5661
     5662/* Line 1806 of yacc.c  */
     5663#line 674 "parser.yy"
    56595664    {
    56605665                        Token fn;
     
    56645669    break;
    56655670
    5666   case 139:
    5667 
    5668 /* Line 1806 of yacc.c  */
    5669 #line 677 "parser.yy"
     5671  case 142:
     5672
     5673/* Line 1806 of yacc.c  */
     5674#line 684 "parser.yy"
    56705675    {
    56715676                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56735678    break;
    56745679
    5675   case 140:
    5676 
    5677 /* Line 1806 of yacc.c  */
    5678 #line 684 "parser.yy"
     5680  case 143:
     5681
     5682/* Line 1806 of yacc.c  */
     5683#line 691 "parser.yy"
    56795684    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    56805685    break;
    56815686
    5682   case 141:
    5683 
    5684 /* Line 1806 of yacc.c  */
    5685 #line 691 "parser.yy"
     5687  case 144:
     5688
     5689/* Line 1806 of yacc.c  */
     5690#line 698 "parser.yy"
    56865691    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    56875692    break;
    56885693
    5689   case 143:
    5690 
    5691 /* Line 1806 of yacc.c  */
    5692 #line 697 "parser.yy"
     5694  case 146:
     5695
     5696/* Line 1806 of yacc.c  */
     5697#line 704 "parser.yy"
    56935698    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56945699    break;
    56955700
    5696   case 144:
    5697 
    5698 /* Line 1806 of yacc.c  */
    5699 #line 702 "parser.yy"
     5701  case 147:
     5702
     5703/* Line 1806 of yacc.c  */
     5704#line 709 "parser.yy"
    57005705    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57015706    break;
    57025707
    5703   case 145:
    5704 
    5705 /* Line 1806 of yacc.c  */
    5706 #line 704 "parser.yy"
     5708  case 148:
     5709
     5710/* Line 1806 of yacc.c  */
     5711#line 711 "parser.yy"
    57075712    {   // mark all fields in list
    57085713                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    57125717    break;
    57135718
    5714   case 146:
    5715 
    5716 /* Line 1806 of yacc.c  */
    5717 #line 710 "parser.yy"
     5719  case 149:
     5720
     5721/* Line 1806 of yacc.c  */
     5722#line 717 "parser.yy"
    57185723    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57195724    break;
    57205725
    5721   case 149:
    5722 
    5723 /* Line 1806 of yacc.c  */
    5724 #line 717 "parser.yy"
     5726  case 152:
     5727
     5728/* Line 1806 of yacc.c  */
     5729#line 724 "parser.yy"
    57255730    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57265731    break;
    57275732
    5728   case 150:
    5729 
    5730 /* Line 1806 of yacc.c  */
    5731 #line 722 "parser.yy"
     5733  case 153:
     5734
     5735/* Line 1806 of yacc.c  */
     5736#line 729 "parser.yy"
    57325737    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57335738    break;
    57345739
    5735   case 151:
    5736 
    5737 /* Line 1806 of yacc.c  */
    5738 #line 728 "parser.yy"
     5740  case 154:
     5741
     5742/* Line 1806 of yacc.c  */
     5743#line 735 "parser.yy"
    57395744    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57405745    break;
    57415746
    5742   case 152:
    5743 
    5744 /* Line 1806 of yacc.c  */
    5745 #line 730 "parser.yy"
     5747  case 155:
     5748
     5749/* Line 1806 of yacc.c  */
     5750#line 737 "parser.yy"
    57465751    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57475752    break;
    57485753
    5749   case 153:
    5750 
    5751 /* Line 1806 of yacc.c  */
    5752 #line 732 "parser.yy"
     5754  case 156:
     5755
     5756/* Line 1806 of yacc.c  */
     5757#line 739 "parser.yy"
    57535758    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57545759    break;
    57555760
    5756   case 154:
    5757 
    5758 /* Line 1806 of yacc.c  */
    5759 #line 734 "parser.yy"
     5761  case 157:
     5762
     5763/* Line 1806 of yacc.c  */
     5764#line 741 "parser.yy"
    57605765    {
    57615766                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57695774    break;
    57705775
    5771   case 155:
    5772 
    5773 /* Line 1806 of yacc.c  */
    5774 #line 744 "parser.yy"
     5776  case 158:
     5777
     5778/* Line 1806 of yacc.c  */
     5779#line 751 "parser.yy"
    57755780    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57765781    break;
    57775782
    5778   case 156:
    5779 
    5780 /* Line 1806 of yacc.c  */
    5781 #line 746 "parser.yy"
     5783  case 159:
     5784
     5785/* Line 1806 of yacc.c  */
     5786#line 753 "parser.yy"
    57825787    {
    57835788                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57865791    break;
    57875792
    5788   case 157:
    5789 
    5790 /* Line 1806 of yacc.c  */
    5791 #line 756 "parser.yy"
     5793  case 160:
     5794
     5795/* Line 1806 of yacc.c  */
     5796#line 763 "parser.yy"
    57925797    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57935798    break;
    57945799
    5795   case 158:
    5796 
    5797 /* Line 1806 of yacc.c  */
    5798 #line 758 "parser.yy"
     5800  case 161:
     5801
     5802/* Line 1806 of yacc.c  */
     5803#line 765 "parser.yy"
    57995804    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    58005805    break;
    58015806
    5802   case 160:
    5803 
    5804 /* Line 1806 of yacc.c  */
    5805 #line 763 "parser.yy"
     5807  case 163:
     5808
     5809/* Line 1806 of yacc.c  */
     5810#line 770 "parser.yy"
    58065811    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    58075812    break;
    58085813
    5809   case 161:
    5810 
    5811 /* Line 1806 of yacc.c  */
    5812 #line 765 "parser.yy"
     5814  case 164:
     5815
     5816/* Line 1806 of yacc.c  */
     5817#line 772 "parser.yy"
    58135818    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    58145819    break;
    58155820
    5816   case 162:
    5817 
    5818 /* Line 1806 of yacc.c  */
    5819 #line 769 "parser.yy"
     5821  case 165:
     5822
     5823/* Line 1806 of yacc.c  */
     5824#line 776 "parser.yy"
    58205825    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    58215826    break;
    58225827
    5823   case 163:
    5824 
    5825 /* Line 1806 of yacc.c  */
    5826 #line 770 "parser.yy"
     5828  case 166:
     5829
     5830/* Line 1806 of yacc.c  */
     5831#line 777 "parser.yy"
    58275832    { (yyval.sn) = new StatementNode( build_default() ); }
    58285833    break;
    58295834
    5830   case 165:
    5831 
    5832 /* Line 1806 of yacc.c  */
    5833 #line 776 "parser.yy"
     5835  case 168:
     5836
     5837/* Line 1806 of yacc.c  */
     5838#line 783 "parser.yy"
    58345839    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    58355840    break;
    58365841
    5837   case 166:
    5838 
    5839 /* Line 1806 of yacc.c  */
    5840 #line 780 "parser.yy"
     5842  case 169:
     5843
     5844/* Line 1806 of yacc.c  */
     5845#line 787 "parser.yy"
    58415846    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58425847    break;
    58435848
    5844   case 167:
    5845 
    5846 /* Line 1806 of yacc.c  */
    5847 #line 785 "parser.yy"
     5849  case 170:
     5850
     5851/* Line 1806 of yacc.c  */
     5852#line 792 "parser.yy"
    58485853    { (yyval.sn) = 0; }
    58495854    break;
    58505855
    5851   case 169:
    5852 
    5853 /* Line 1806 of yacc.c  */
    5854 #line 791 "parser.yy"
     5856  case 172:
     5857
     5858/* Line 1806 of yacc.c  */
     5859#line 798 "parser.yy"
    58555860    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58565861    break;
    58575862
    5858   case 170:
    5859 
    5860 /* Line 1806 of yacc.c  */
    5861 #line 793 "parser.yy"
     5863  case 173:
     5864
     5865/* Line 1806 of yacc.c  */
     5866#line 800 "parser.yy"
    58625867    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    58635868    break;
    58645869
    5865   case 171:
    5866 
    5867 /* Line 1806 of yacc.c  */
    5868 #line 798 "parser.yy"
     5870  case 174:
     5871
     5872/* Line 1806 of yacc.c  */
     5873#line 805 "parser.yy"
    58695874    { (yyval.sn) = 0; }
    58705875    break;
    58715876
    5872   case 173:
    5873 
    5874 /* Line 1806 of yacc.c  */
    5875 #line 804 "parser.yy"
     5877  case 176:
     5878
     5879/* Line 1806 of yacc.c  */
     5880#line 811 "parser.yy"
    58765881    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58775882    break;
    58785883
    5879   case 174:
    5880 
    5881 /* Line 1806 of yacc.c  */
    5882 #line 806 "parser.yy"
     5884  case 177:
     5885
     5886/* Line 1806 of yacc.c  */
     5887#line 813 "parser.yy"
    58835888    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    58845889    break;
    58855890
    5886   case 175:
    5887 
    5888 /* Line 1806 of yacc.c  */
    5889 #line 808 "parser.yy"
     5891  case 178:
     5892
     5893/* Line 1806 of yacc.c  */
     5894#line 815 "parser.yy"
    58905895    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58915896    break;
    58925897
    5893   case 176:
    5894 
    5895 /* Line 1806 of yacc.c  */
    5896 #line 810 "parser.yy"
     5898  case 179:
     5899
     5900/* Line 1806 of yacc.c  */
     5901#line 817 "parser.yy"
    58975902    { (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) ) ) ) ) ) ); }
    58985903    break;
    58995904
    5900   case 177:
    5901 
    5902 /* Line 1806 of yacc.c  */
    5903 #line 815 "parser.yy"
     5905  case 180:
     5906
     5907/* Line 1806 of yacc.c  */
     5908#line 822 "parser.yy"
    59045909    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59055910    break;
    59065911
    5907   case 179:
    5908 
    5909 /* Line 1806 of yacc.c  */
    5910 #line 821 "parser.yy"
     5912  case 182:
     5913
     5914/* Line 1806 of yacc.c  */
     5915#line 828 "parser.yy"
    59115916    { (yyval.sn) = 0; }
    59125917    break;
    59135918
    5914   case 180:
    5915 
    5916 /* Line 1806 of yacc.c  */
    5917 #line 823 "parser.yy"
     5919  case 183:
     5920
     5921/* Line 1806 of yacc.c  */
     5922#line 830 "parser.yy"
    59185923    { (yyval.sn) = 0; }
    59195924    break;
    59205925
    5921   case 181:
    5922 
    5923 /* Line 1806 of yacc.c  */
    5924 #line 828 "parser.yy"
     5926  case 184:
     5927
     5928/* Line 1806 of yacc.c  */
     5929#line 835 "parser.yy"
    59255930    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59265931    break;
    59275932
    5928   case 182:
    5929 
    5930 /* Line 1806 of yacc.c  */
    5931 #line 830 "parser.yy"
     5933  case 185:
     5934
     5935/* Line 1806 of yacc.c  */
     5936#line 837 "parser.yy"
    59325937    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    59335938    break;
    59345939
    5935   case 183:
    5936 
    5937 /* Line 1806 of yacc.c  */
    5938 #line 832 "parser.yy"
     5940  case 186:
     5941
     5942/* Line 1806 of yacc.c  */
     5943#line 839 "parser.yy"
    59395944    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59405945    break;
    59415946
    5942   case 184:
    5943 
    5944 /* Line 1806 of yacc.c  */
    5945 #line 837 "parser.yy"
     5947  case 187:
     5948
     5949/* Line 1806 of yacc.c  */
     5950#line 844 "parser.yy"
    59465951    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59475952    break;
    59485953
    5949   case 185:
    5950 
    5951 /* Line 1806 of yacc.c  */
    5952 #line 839 "parser.yy"
     5954  case 188:
     5955
     5956/* Line 1806 of yacc.c  */
     5957#line 846 "parser.yy"
    59535958    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59545959    break;
    59555960
    5956   case 186:
    5957 
    5958 /* Line 1806 of yacc.c  */
    5959 #line 844 "parser.yy"
     5961  case 189:
     5962
     5963/* Line 1806 of yacc.c  */
     5964#line 851 "parser.yy"
    59605965    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    59615966    break;
    59625967
    5963   case 187:
    5964 
    5965 /* Line 1806 of yacc.c  */
    5966 #line 848 "parser.yy"
     5968  case 190:
     5969
     5970/* Line 1806 of yacc.c  */
     5971#line 855 "parser.yy"
    59675972    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    59685973    break;
    59695974
    5970   case 188:
    5971 
    5972 /* Line 1806 of yacc.c  */
    5973 #line 851 "parser.yy"
     5975  case 191:
     5976
     5977/* Line 1806 of yacc.c  */
     5978#line 858 "parser.yy"
    59745979    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    59755980    break;
    59765981
    5977   case 189:
    5978 
    5979 /* Line 1806 of yacc.c  */
    5980 #line 855 "parser.yy"
     5982  case 192:
     5983
     5984/* Line 1806 of yacc.c  */
     5985#line 862 "parser.yy"
    59815986    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    59825987    break;
    59835988
    5984   case 190:
    5985 
    5986 /* Line 1806 of yacc.c  */
    5987 #line 858 "parser.yy"
     5989  case 193:
     5990
     5991/* Line 1806 of yacc.c  */
     5992#line 865 "parser.yy"
    59885993    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59895994    break;
    59905995
    5991   case 191:
    5992 
    5993 /* Line 1806 of yacc.c  */
    5994 #line 862 "parser.yy"
     5996  case 194:
     5997
     5998/* Line 1806 of yacc.c  */
     5999#line 869 "parser.yy"
    59956000    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    59966001    break;
    59976002
    5998   case 192:
    5999 
    6000 /* Line 1806 of yacc.c  */
    6001 #line 864 "parser.yy"
     6003  case 195:
     6004
     6005/* Line 1806 of yacc.c  */
     6006#line 871 "parser.yy"
    60026007    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    60036008    break;
    60046009
    6005   case 193:
    6006 
    6007 /* Line 1806 of yacc.c  */
    6008 #line 866 "parser.yy"
     6010  case 196:
     6011
     6012/* Line 1806 of yacc.c  */
     6013#line 873 "parser.yy"
    60096014    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60106015    break;
    60116016
    6012   case 194:
    6013 
    6014 /* Line 1806 of yacc.c  */
    6015 #line 868 "parser.yy"
     6017  case 197:
     6018
     6019/* Line 1806 of yacc.c  */
     6020#line 875 "parser.yy"
    60166021    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60176022    break;
    60186023
    6019   case 195:
    6020 
    6021 /* Line 1806 of yacc.c  */
    6022 #line 870 "parser.yy"
     6024  case 198:
     6025
     6026/* Line 1806 of yacc.c  */
     6027#line 877 "parser.yy"
    60236028    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60246029    break;
    60256030
    6026   case 196:
    6027 
    6028 /* Line 1806 of yacc.c  */
    6029 #line 875 "parser.yy"
     6031  case 199:
     6032
     6033/* Line 1806 of yacc.c  */
     6034#line 882 "parser.yy"
    60306035    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    60316036    break;
    60326037
    6033   case 197:
    6034 
    6035 /* Line 1806 of yacc.c  */
    6036 #line 877 "parser.yy"
     6038  case 200:
     6039
     6040/* Line 1806 of yacc.c  */
     6041#line 884 "parser.yy"
    60376042    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    60386043    break;
    60396044
    6040   case 198:
    6041 
    6042 /* Line 1806 of yacc.c  */
    6043 #line 879 "parser.yy"
     6045  case 201:
     6046
     6047/* Line 1806 of yacc.c  */
     6048#line 886 "parser.yy"
    60446049    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60456050    break;
    60466051
    6047   case 200:
    6048 
    6049 /* Line 1806 of yacc.c  */
    6050 #line 886 "parser.yy"
     6052  case 203:
     6053
     6054/* Line 1806 of yacc.c  */
     6055#line 893 "parser.yy"
    60516056    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60526057    break;
    60536058
    6054   case 201:
    6055 
    6056 /* Line 1806 of yacc.c  */
    6057 #line 888 "parser.yy"
     6059  case 204:
     6060
     6061/* Line 1806 of yacc.c  */
     6062#line 895 "parser.yy"
    60586063    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60596064    break;
    60606065
    6061   case 202:
    6062 
    6063 /* Line 1806 of yacc.c  */
    6064 #line 890 "parser.yy"
     6066  case 205:
     6067
     6068/* Line 1806 of yacc.c  */
     6069#line 897 "parser.yy"
    60656070    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60666071    break;
    60676072
    6068   case 203:
    6069 
    6070 /* Line 1806 of yacc.c  */
    6071 #line 892 "parser.yy"
     6073  case 206:
     6074
     6075/* Line 1806 of yacc.c  */
     6076#line 899 "parser.yy"
    60726077    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60736078    break;
    60746079
    6075   case 204:
    6076 
    6077 /* Line 1806 of yacc.c  */
    6078 #line 897 "parser.yy"
     6080  case 207:
     6081
     6082/* Line 1806 of yacc.c  */
     6083#line 904 "parser.yy"
    60796084    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60806085    break;
    60816086
    6082   case 205:
    6083 
    6084 /* Line 1806 of yacc.c  */
    6085 #line 899 "parser.yy"
     6087  case 208:
     6088
     6089/* Line 1806 of yacc.c  */
     6090#line 906 "parser.yy"
    60866091    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60876092    break;
    60886093
    6089   case 206:
    6090 
    6091 /* Line 1806 of yacc.c  */
    6092 #line 901 "parser.yy"
     6094  case 209:
     6095
     6096/* Line 1806 of yacc.c  */
     6097#line 908 "parser.yy"
    60936098    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60946099    break;
    60956100
    6096   case 207:
    6097 
    6098 /* Line 1806 of yacc.c  */
    6099 #line 903 "parser.yy"
     6101  case 210:
     6102
     6103/* Line 1806 of yacc.c  */
     6104#line 910 "parser.yy"
    61006105    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    61016106    break;
    61026107
    6103   case 208:
    6104 
    6105 /* Line 1806 of yacc.c  */
    6106 #line 908 "parser.yy"
     6108  case 211:
     6109
     6110/* Line 1806 of yacc.c  */
     6111#line 915 "parser.yy"
    61076112    {
    61086113                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61106115    break;
    61116116
    6112   case 210:
    6113 
    6114 /* Line 1806 of yacc.c  */
    6115 #line 921 "parser.yy"
     6117  case 213:
     6118
     6119/* Line 1806 of yacc.c  */
     6120#line 928 "parser.yy"
    61166121    {
    61176122                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61206125    break;
    61216126
    6122   case 211:
    6123 
    6124 /* Line 1806 of yacc.c  */
    6125 #line 926 "parser.yy"
     6127  case 214:
     6128
     6129/* Line 1806 of yacc.c  */
     6130#line 933 "parser.yy"
    61266131    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61276132    break;
    61286133
    6129   case 212:
    6130 
    6131 /* Line 1806 of yacc.c  */
    6132 #line 928 "parser.yy"
     6134  case 215:
     6135
     6136/* Line 1806 of yacc.c  */
     6137#line 935 "parser.yy"
    61336138    {
    61346139                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61376142    break;
    61386143
    6139   case 214:
    6140 
    6141 /* Line 1806 of yacc.c  */
    6142 #line 937 "parser.yy"
     6144  case 217:
     6145
     6146/* Line 1806 of yacc.c  */
     6147#line 944 "parser.yy"
    61436148    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    61446149    break;
    61456150
    6146   case 215:
    6147 
    6148 /* Line 1806 of yacc.c  */
    6149 #line 939 "parser.yy"
     6151  case 218:
     6152
     6153/* Line 1806 of yacc.c  */
     6154#line 946 "parser.yy"
    61506155    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    61516156    break;
    61526157
    6153   case 216:
    6154 
    6155 /* Line 1806 of yacc.c  */
    6156 #line 941 "parser.yy"
     6158  case 219:
     6159
     6160/* Line 1806 of yacc.c  */
     6161#line 948 "parser.yy"
    61576162    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    61586163    break;
    61596164
    6160   case 217:
    6161 
    6162 /* Line 1806 of yacc.c  */
    6163 #line 943 "parser.yy"
     6165  case 220:
     6166
     6167/* Line 1806 of yacc.c  */
     6168#line 950 "parser.yy"
    61646169    { (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) ) ); }
    61656170    break;
    61666171
    6167   case 218:
    6168 
    6169 /* Line 1806 of yacc.c  */
    6170 #line 945 "parser.yy"
     6172  case 221:
     6173
     6174/* Line 1806 of yacc.c  */
     6175#line 952 "parser.yy"
    61716176    { (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) ) ); }
    61726177    break;
    61736178
    6174   case 219:
    6175 
    6176 /* Line 1806 of yacc.c  */
    6177 #line 950 "parser.yy"
     6179  case 222:
     6180
     6181/* Line 1806 of yacc.c  */
     6182#line 957 "parser.yy"
    61786183    { (yyval.flag) = false; }
    61796184    break;
    61806185
    6181   case 220:
    6182 
    6183 /* Line 1806 of yacc.c  */
    6184 #line 952 "parser.yy"
     6186  case 223:
     6187
     6188/* Line 1806 of yacc.c  */
     6189#line 959 "parser.yy"
    61856190    { (yyval.flag) = true; }
    61866191    break;
    61876192
    6188   case 221:
    6189 
    6190 /* Line 1806 of yacc.c  */
    6191 #line 957 "parser.yy"
     6193  case 224:
     6194
     6195/* Line 1806 of yacc.c  */
     6196#line 964 "parser.yy"
    61926197    { (yyval.en) = 0; }
    61936198    break;
    61946199
    6195   case 224:
    6196 
    6197 /* Line 1806 of yacc.c  */
    6198 #line 964 "parser.yy"
     6200  case 227:
     6201
     6202/* Line 1806 of yacc.c  */
     6203#line 971 "parser.yy"
    61996204    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    62006205    break;
    62016206
    6202   case 225:
    6203 
    6204 /* Line 1806 of yacc.c  */
    6205 #line 969 "parser.yy"
     6207  case 228:
     6208
     6209/* Line 1806 of yacc.c  */
     6210#line 976 "parser.yy"
    62066211    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    62076212    break;
    62086213
    6209   case 226:
    6210 
    6211 /* Line 1806 of yacc.c  */
    6212 #line 971 "parser.yy"
     6214  case 229:
     6215
     6216/* Line 1806 of yacc.c  */
     6217#line 978 "parser.yy"
    62136218    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    62146219    break;
    62156220
    6216   case 227:
    6217 
    6218 /* Line 1806 of yacc.c  */
    6219 #line 976 "parser.yy"
     6221  case 230:
     6222
     6223/* Line 1806 of yacc.c  */
     6224#line 983 "parser.yy"
    62206225    { (yyval.en) = 0; }
    62216226    break;
    62226227
    6223   case 228:
    6224 
    6225 /* Line 1806 of yacc.c  */
    6226 #line 978 "parser.yy"
     6228  case 231:
     6229
     6230/* Line 1806 of yacc.c  */
     6231#line 985 "parser.yy"
    62276232    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62286233    break;
    62296234
    6230   case 229:
    6231 
    6232 /* Line 1806 of yacc.c  */
    6233 #line 980 "parser.yy"
     6235  case 232:
     6236
     6237/* Line 1806 of yacc.c  */
     6238#line 987 "parser.yy"
    62346239    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62356240    break;
    62366241
    6237   case 230:
    6238 
    6239 /* Line 1806 of yacc.c  */
    6240 #line 985 "parser.yy"
     6242  case 233:
     6243
     6244/* Line 1806 of yacc.c  */
     6245#line 992 "parser.yy"
    62416246    {
    62426247                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62456250    break;
    62466251
    6247   case 231:
    6248 
    6249 /* Line 1806 of yacc.c  */
    6250 #line 990 "parser.yy"
     6252  case 234:
     6253
     6254/* Line 1806 of yacc.c  */
     6255#line 997 "parser.yy"
    62516256    {
    62526257                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62556260    break;
    62566261
    6257   case 232:
    6258 
    6259 /* Line 1806 of yacc.c  */
    6260 #line 1000 "parser.yy"
     6262  case 235:
     6263
     6264/* Line 1806 of yacc.c  */
     6265#line 1007 "parser.yy"
    62616266    { (yyval.decl) = 0; }
    62626267    break;
    62636268
    6264   case 235:
    6265 
    6266 /* Line 1806 of yacc.c  */
    6267 #line 1007 "parser.yy"
     6269  case 238:
     6270
     6271/* Line 1806 of yacc.c  */
     6272#line 1014 "parser.yy"
    62686273    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62696274    break;
    62706275
    6271   case 236:
    6272 
    6273 /* Line 1806 of yacc.c  */
    6274 #line 1012 "parser.yy"
     6276  case 239:
     6277
     6278/* Line 1806 of yacc.c  */
     6279#line 1019 "parser.yy"
    62756280    { (yyval.decl) = 0; }
    62766281    break;
    62776282
    6278   case 239:
    6279 
    6280 /* Line 1806 of yacc.c  */
    6281 #line 1019 "parser.yy"
     6283  case 242:
     6284
     6285/* Line 1806 of yacc.c  */
     6286#line 1026 "parser.yy"
    62826287    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62836288    break;
    62846289
    6285   case 244:
    6286 
    6287 /* Line 1806 of yacc.c  */
    6288 #line 1033 "parser.yy"
     6290  case 247:
     6291
     6292/* Line 1806 of yacc.c  */
     6293#line 1040 "parser.yy"
    62896294    {}
    62906295    break;
    62916296
    6292   case 245:
    6293 
    6294 /* Line 1806 of yacc.c  */
    6295 #line 1034 "parser.yy"
     6297  case 248:
     6298
     6299/* Line 1806 of yacc.c  */
     6300#line 1041 "parser.yy"
    62966301    {}
    62976302    break;
    62986303
    6299   case 253:
    6300 
    6301 /* Line 1806 of yacc.c  */
    6302 #line 1063 "parser.yy"
     6304  case 256:
     6305
     6306/* Line 1806 of yacc.c  */
     6307#line 1070 "parser.yy"
    63036308    {
    63046309                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63076312    break;
    63086313
    6309   case 254:
    6310 
    6311 /* Line 1806 of yacc.c  */
    6312 #line 1070 "parser.yy"
     6314  case 257:
     6315
     6316/* Line 1806 of yacc.c  */
     6317#line 1077 "parser.yy"
    63136318    {
    63146319                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63176322    break;
    63186323
    6319   case 255:
    6320 
    6321 /* Line 1806 of yacc.c  */
    6322 #line 1075 "parser.yy"
     6324  case 258:
     6325
     6326/* Line 1806 of yacc.c  */
     6327#line 1082 "parser.yy"
    63236328    {
    63246329                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63276332    break;
    63286333
    6329   case 256:
    6330 
    6331 /* Line 1806 of yacc.c  */
    6332 #line 1085 "parser.yy"
     6334  case 259:
     6335
     6336/* Line 1806 of yacc.c  */
     6337#line 1092 "parser.yy"
    63336338    {
    63346339                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63376342    break;
    63386343
    6339   case 257:
    6340 
    6341 /* Line 1806 of yacc.c  */
    6342 #line 1090 "parser.yy"
     6344  case 260:
     6345
     6346/* Line 1806 of yacc.c  */
     6347#line 1097 "parser.yy"
    63436348    {
    63446349                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63476352    break;
    63486353
    6349   case 258:
    6350 
    6351 /* Line 1806 of yacc.c  */
    6352 #line 1095 "parser.yy"
     6354  case 261:
     6355
     6356/* Line 1806 of yacc.c  */
     6357#line 1102 "parser.yy"
    63536358    {
    63546359                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63576362    break;
    63586363
    6359   case 259:
    6360 
    6361 /* Line 1806 of yacc.c  */
    6362 #line 1103 "parser.yy"
     6364  case 262:
     6365
     6366/* Line 1806 of yacc.c  */
     6367#line 1110 "parser.yy"
    63636368    {
    63646369                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63676372    break;
    63686373
    6369   case 260:
    6370 
    6371 /* Line 1806 of yacc.c  */
    6372 #line 1108 "parser.yy"
     6374  case 263:
     6375
     6376/* Line 1806 of yacc.c  */
     6377#line 1115 "parser.yy"
    63736378    {
    63746379                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63776382    break;
    63786383
    6379   case 261:
    6380 
    6381 /* Line 1806 of yacc.c  */
    6382 #line 1113 "parser.yy"
     6384  case 264:
     6385
     6386/* Line 1806 of yacc.c  */
     6387#line 1120 "parser.yy"
    63836388    {
    63846389                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63876392    break;
    63886393
    6389   case 262:
    6390 
    6391 /* Line 1806 of yacc.c  */
    6392 #line 1118 "parser.yy"
     6394  case 265:
     6395
     6396/* Line 1806 of yacc.c  */
     6397#line 1125 "parser.yy"
    63936398    {
    63946399                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63976402    break;
    63986403
    6399   case 263:
    6400 
    6401 /* Line 1806 of yacc.c  */
    6402 #line 1123 "parser.yy"
     6404  case 266:
     6405
     6406/* Line 1806 of yacc.c  */
     6407#line 1130 "parser.yy"
    64036408    {
    64046409                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64076412    break;
    64086413
    6409   case 264:
    6410 
    6411 /* Line 1806 of yacc.c  */
    6412 #line 1131 "parser.yy"
     6414  case 267:
     6415
     6416/* Line 1806 of yacc.c  */
     6417#line 1138 "parser.yy"
    64136418    {
    64146419                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64166421    break;
    64176422
    6418   case 265:
    6419 
    6420 /* Line 1806 of yacc.c  */
    6421 #line 1154 "parser.yy"
     6423  case 268:
     6424
     6425/* Line 1806 of yacc.c  */
     6426#line 1161 "parser.yy"
    64226427    {
    64236428                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64256430    break;
    64266431
    6427   case 266:
    6428 
    6429 /* Line 1806 of yacc.c  */
    6430 #line 1158 "parser.yy"
     6432  case 269:
     6433
     6434/* Line 1806 of yacc.c  */
     6435#line 1165 "parser.yy"
    64316436    {
    64326437                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64346439    break;
    64356440
    6436   case 267:
    6437 
    6438 /* Line 1806 of yacc.c  */
    6439 #line 1165 "parser.yy"
     6441  case 270:
     6442
     6443/* Line 1806 of yacc.c  */
     6444#line 1172 "parser.yy"
    64406445    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64416446    break;
    64426447
    6443   case 268:
    6444 
    6445 /* Line 1806 of yacc.c  */
    6446 #line 1169 "parser.yy"
     6448  case 271:
     6449
     6450/* Line 1806 of yacc.c  */
     6451#line 1176 "parser.yy"
    64476452    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64486453    break;
    64496454
    6450   case 269:
    6451 
    6452 /* Line 1806 of yacc.c  */
    6453 #line 1174 "parser.yy"
     6455  case 272:
     6456
     6457/* Line 1806 of yacc.c  */
     6458#line 1181 "parser.yy"
    64546459    {
    64556460                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64586463    break;
    64596464
    6460   case 270:
    6461 
    6462 /* Line 1806 of yacc.c  */
    6463 #line 1179 "parser.yy"
     6465  case 273:
     6466
     6467/* Line 1806 of yacc.c  */
     6468#line 1186 "parser.yy"
    64646469    {
    64656470                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64686473    break;
    64696474
    6470   case 271:
    6471 
    6472 /* Line 1806 of yacc.c  */
    6473 #line 1184 "parser.yy"
     6475  case 274:
     6476
     6477/* Line 1806 of yacc.c  */
     6478#line 1191 "parser.yy"
    64746479    {
    64756480                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64786483    break;
    64796484
    6480   case 272:
    6481 
    6482 /* Line 1806 of yacc.c  */
    6483 #line 1195 "parser.yy"
     6485  case 275:
     6486
     6487/* Line 1806 of yacc.c  */
     6488#line 1202 "parser.yy"
    64846489    {
    64856490                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64886493    break;
    64896494
    6490   case 273:
    6491 
    6492 /* Line 1806 of yacc.c  */
    6493 #line 1200 "parser.yy"
     6495  case 276:
     6496
     6497/* Line 1806 of yacc.c  */
     6498#line 1207 "parser.yy"
    64946499    {
    64956500                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64986503    break;
    64996504
    6500   case 274:
    6501 
    6502 /* Line 1806 of yacc.c  */
    6503 #line 1205 "parser.yy"
     6505  case 277:
     6506
     6507/* Line 1806 of yacc.c  */
     6508#line 1212 "parser.yy"
    65046509    {
    65056510                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65086513    break;
    65096514
    6510   case 275:
    6511 
    6512 /* Line 1806 of yacc.c  */
    6513 #line 1210 "parser.yy"
     6515  case 278:
     6516
     6517/* Line 1806 of yacc.c  */
     6518#line 1217 "parser.yy"
    65146519    {
    65156520                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65186523    break;
    65196524
    6520   case 276:
    6521 
    6522 /* Line 1806 of yacc.c  */
    6523 #line 1215 "parser.yy"
     6525  case 279:
     6526
     6527/* Line 1806 of yacc.c  */
     6528#line 1222 "parser.yy"
    65246529    {
    65256530                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65286533    break;
    65296534
    6530   case 277:
    6531 
    6532 /* Line 1806 of yacc.c  */
    6533 #line 1224 "parser.yy"
     6535  case 280:
     6536
     6537/* Line 1806 of yacc.c  */
     6538#line 1231 "parser.yy"
    65346539    {
    65356540                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65386543    break;
    65396544
    6540   case 278:
    6541 
    6542 /* Line 1806 of yacc.c  */
    6543 #line 1229 "parser.yy"
     6545  case 281:
     6546
     6547/* Line 1806 of yacc.c  */
     6548#line 1236 "parser.yy"
    65446549    {
    65456550                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65486553    break;
    65496554
    6550   case 283:
    6551 
    6552 /* Line 1806 of yacc.c  */
    6553 #line 1246 "parser.yy"
     6555  case 286:
     6556
     6557/* Line 1806 of yacc.c  */
     6558#line 1253 "parser.yy"
    65546559    {
    65556560                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65586563    break;
    65596564
    6560   case 284:
    6561 
    6562 /* Line 1806 of yacc.c  */
    6563 #line 1251 "parser.yy"
     6565  case 287:
     6566
     6567/* Line 1806 of yacc.c  */
     6568#line 1258 "parser.yy"
    65646569    {
    65656570                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65686573    break;
    65696574
    6570   case 293:
    6571 
    6572 /* Line 1806 of yacc.c  */
    6573 #line 1273 "parser.yy"
     6575  case 296:
     6576
     6577/* Line 1806 of yacc.c  */
     6578#line 1280 "parser.yy"
    65746579    { (yyval.decl) = 0; }
    65756580    break;
    65766581
    6577   case 296:
    6578 
    6579 /* Line 1806 of yacc.c  */
    6580 #line 1285 "parser.yy"
     6582  case 299:
     6583
     6584/* Line 1806 of yacc.c  */
     6585#line 1292 "parser.yy"
    65816586    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65826587    break;
    65836588
    6584   case 299:
    6585 
    6586 /* Line 1806 of yacc.c  */
    6587 #line 1296 "parser.yy"
     6589  case 302:
     6590
     6591/* Line 1806 of yacc.c  */
     6592#line 1303 "parser.yy"
    65886593    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65896594    break;
    65906595
    6591   case 300:
    6592 
    6593 /* Line 1806 of yacc.c  */
    6594 #line 1298 "parser.yy"
     6596  case 303:
     6597
     6598/* Line 1806 of yacc.c  */
     6599#line 1305 "parser.yy"
    65956600    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65966601    break;
    65976602
    6598   case 301:
    6599 
    6600 /* Line 1806 of yacc.c  */
    6601 #line 1300 "parser.yy"
     6603  case 304:
     6604
     6605/* Line 1806 of yacc.c  */
     6606#line 1307 "parser.yy"
    66026607    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66036608    break;
    66046609
    6605   case 302:
    6606 
    6607 /* Line 1806 of yacc.c  */
    6608 #line 1302 "parser.yy"
     6610  case 305:
     6611
     6612/* Line 1806 of yacc.c  */
     6613#line 1309 "parser.yy"
    66096614    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66106615    break;
    66116616
    6612   case 303:
    6613 
    6614 /* Line 1806 of yacc.c  */
    6615 #line 1304 "parser.yy"
     6617  case 306:
     6618
     6619/* Line 1806 of yacc.c  */
     6620#line 1311 "parser.yy"
    66166621    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66176622    break;
    66186623
    6619   case 304:
    6620 
    6621 /* Line 1806 of yacc.c  */
    6622 #line 1306 "parser.yy"
     6624  case 307:
     6625
     6626/* Line 1806 of yacc.c  */
     6627#line 1313 "parser.yy"
    66236628    {
    66246629                        typedefTable.enterScope();
     
    66266631    break;
    66276632
    6628   case 305:
    6629 
    6630 /* Line 1806 of yacc.c  */
    6631 #line 1310 "parser.yy"
     6633  case 308:
     6634
     6635/* Line 1806 of yacc.c  */
     6636#line 1317 "parser.yy"
    66326637    {
    66336638                        typedefTable.leaveScope();
     
    66366641    break;
    66376642
    6638   case 307:
    6639 
    6640 /* Line 1806 of yacc.c  */
    6641 #line 1319 "parser.yy"
     6643  case 310:
     6644
     6645/* Line 1806 of yacc.c  */
     6646#line 1326 "parser.yy"
    66426647    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66436648    break;
    66446649
    6645   case 308:
    6646 
    6647 /* Line 1806 of yacc.c  */
    6648 #line 1321 "parser.yy"
     6650  case 311:
     6651
     6652/* Line 1806 of yacc.c  */
     6653#line 1328 "parser.yy"
    66496654    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66506655    break;
    66516656
    6652   case 310:
    6653 
    6654 /* Line 1806 of yacc.c  */
    6655 #line 1332 "parser.yy"
     6657  case 313:
     6658
     6659/* Line 1806 of yacc.c  */
     6660#line 1339 "parser.yy"
    66566661    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66576662    break;
    66586663
    6659   case 311:
    6660 
    6661 /* Line 1806 of yacc.c  */
    6662 #line 1337 "parser.yy"
     6664  case 314:
     6665
     6666/* Line 1806 of yacc.c  */
     6667#line 1344 "parser.yy"
    66636668    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66646669    break;
    66656670
    6666   case 312:
    6667 
    6668 /* Line 1806 of yacc.c  */
    6669 #line 1339 "parser.yy"
     6671  case 315:
     6672
     6673/* Line 1806 of yacc.c  */
     6674#line 1346 "parser.yy"
    66706675    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66716676    break;
    66726677
    6673   case 313:
    6674 
    6675 /* Line 1806 of yacc.c  */
    6676 #line 1341 "parser.yy"
     6678  case 316:
     6679
     6680/* Line 1806 of yacc.c  */
     6681#line 1348 "parser.yy"
    66776682    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66786683    break;
    66796684
    6680   case 314:
    6681 
    6682 /* Line 1806 of yacc.c  */
    6683 #line 1343 "parser.yy"
     6685  case 317:
     6686
     6687/* Line 1806 of yacc.c  */
     6688#line 1350 "parser.yy"
    66846689    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66856690    break;
    66866691
    6687   case 315:
    6688 
    6689 /* Line 1806 of yacc.c  */
    6690 #line 1346 "parser.yy"
     6692  case 318:
     6693
     6694/* Line 1806 of yacc.c  */
     6695#line 1353 "parser.yy"
    66916696    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    66926697    break;
    66936698
    6694   case 316:
    6695 
    6696 /* Line 1806 of yacc.c  */
    6697 #line 1348 "parser.yy"
     6699  case 319:
     6700
     6701/* Line 1806 of yacc.c  */
     6702#line 1355 "parser.yy"
    66986703    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    66996704    break;
    67006705
    6701   case 317:
    6702 
    6703 /* Line 1806 of yacc.c  */
    6704 #line 1351 "parser.yy"
     6706  case 320:
     6707
     6708/* Line 1806 of yacc.c  */
     6709#line 1358 "parser.yy"
    67056710    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    67066711    break;
    67076712
    6708   case 318:
    6709 
    6710 /* Line 1806 of yacc.c  */
    6711 #line 1353 "parser.yy"
     6713  case 321:
     6714
     6715/* Line 1806 of yacc.c  */
     6716#line 1360 "parser.yy"
    67126717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67136718    break;
    67146719
    6715   case 319:
    6716 
    6717 /* Line 1806 of yacc.c  */
    6718 #line 1358 "parser.yy"
     6720  case 322:
     6721
     6722/* Line 1806 of yacc.c  */
     6723#line 1365 "parser.yy"
    67196724    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67206725    break;
    67216726
    6722   case 320:
    6723 
    6724 /* Line 1806 of yacc.c  */
    6725 #line 1360 "parser.yy"
     6727  case 323:
     6728
     6729/* Line 1806 of yacc.c  */
     6730#line 1367 "parser.yy"
    67266731    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67276732    break;
    67286733
    6729   case 321:
    6730 
    6731 /* Line 1806 of yacc.c  */
    6732 #line 1362 "parser.yy"
     6734  case 324:
     6735
     6736/* Line 1806 of yacc.c  */
     6737#line 1369 "parser.yy"
    67336738    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67346739    break;
    67356740
    6736   case 322:
    6737 
    6738 /* Line 1806 of yacc.c  */
    6739 #line 1364 "parser.yy"
     6741  case 325:
     6742
     6743/* Line 1806 of yacc.c  */
     6744#line 1371 "parser.yy"
    67406745    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67416746    break;
    67426747
    6743   case 323:
    6744 
    6745 /* Line 1806 of yacc.c  */
    6746 #line 1366 "parser.yy"
     6748  case 326:
     6749
     6750/* Line 1806 of yacc.c  */
     6751#line 1373 "parser.yy"
    67476752    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    67486753    break;
    67496754
    6750   case 324:
    6751 
    6752 /* Line 1806 of yacc.c  */
    6753 #line 1368 "parser.yy"
     6755  case 327:
     6756
     6757/* Line 1806 of yacc.c  */
     6758#line 1375 "parser.yy"
    67546759    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    67556760    break;
    67566761
    6757   case 325:
    6758 
    6759 /* Line 1806 of yacc.c  */
    6760 #line 1370 "parser.yy"
     6762  case 328:
     6763
     6764/* Line 1806 of yacc.c  */
     6765#line 1377 "parser.yy"
    67616766    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    67626767    break;
    67636768
    6764   case 326:
    6765 
    6766 /* Line 1806 of yacc.c  */
    6767 #line 1372 "parser.yy"
     6769  case 329:
     6770
     6771/* Line 1806 of yacc.c  */
     6772#line 1379 "parser.yy"
    67686773    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    67696774    break;
    67706775
    6771   case 327:
    6772 
    6773 /* Line 1806 of yacc.c  */
    6774 #line 1374 "parser.yy"
     6776  case 330:
     6777
     6778/* Line 1806 of yacc.c  */
     6779#line 1381 "parser.yy"
    67756780    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67766781    break;
    67776782
    6778   case 328:
    6779 
    6780 /* Line 1806 of yacc.c  */
    6781 #line 1376 "parser.yy"
     6783  case 331:
     6784
     6785/* Line 1806 of yacc.c  */
     6786#line 1383 "parser.yy"
    67826787    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67836788    break;
    67846789
    6785   case 329:
    6786 
    6787 /* Line 1806 of yacc.c  */
    6788 #line 1378 "parser.yy"
     6790  case 332:
     6791
     6792/* Line 1806 of yacc.c  */
     6793#line 1385 "parser.yy"
    67896794    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    67906795    break;
    67916796
    6792   case 330:
    6793 
    6794 /* Line 1806 of yacc.c  */
    6795 #line 1380 "parser.yy"
     6797  case 333:
     6798
     6799/* Line 1806 of yacc.c  */
     6800#line 1387 "parser.yy"
    67966801    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    67976802    break;
    67986803
    6799   case 331:
    6800 
    6801 /* Line 1806 of yacc.c  */
    6802 #line 1382 "parser.yy"
     6804  case 334:
     6805
     6806/* Line 1806 of yacc.c  */
     6807#line 1389 "parser.yy"
    68036808    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    68046809    break;
    68056810
    6806   case 333:
    6807 
    6808 /* Line 1806 of yacc.c  */
    6809 #line 1389 "parser.yy"
     6811  case 336:
     6812
     6813/* Line 1806 of yacc.c  */
     6814#line 1396 "parser.yy"
    68106815    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68116816    break;
    68126817
    6813   case 334:
    6814 
    6815 /* Line 1806 of yacc.c  */
    6816 #line 1391 "parser.yy"
     6818  case 337:
     6819
     6820/* Line 1806 of yacc.c  */
     6821#line 1398 "parser.yy"
    68176822    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68186823    break;
    68196824
    6820   case 335:
    6821 
    6822 /* Line 1806 of yacc.c  */
    6823 #line 1393 "parser.yy"
     6825  case 338:
     6826
     6827/* Line 1806 of yacc.c  */
     6828#line 1400 "parser.yy"
    68246829    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68256830    break;
    68266831
    6827   case 336:
    6828 
    6829 /* Line 1806 of yacc.c  */
    6830 #line 1395 "parser.yy"
     6832  case 339:
     6833
     6834/* Line 1806 of yacc.c  */
     6835#line 1402 "parser.yy"
    68316836    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68326837    break;
    68336838
    6834   case 338:
    6835 
    6836 /* Line 1806 of yacc.c  */
    6837 #line 1401 "parser.yy"
     6839  case 341:
     6840
     6841/* Line 1806 of yacc.c  */
     6842#line 1408 "parser.yy"
    68386843    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68396844    break;
    68406845
    6841   case 340:
    6842 
    6843 /* Line 1806 of yacc.c  */
    6844 #line 1408 "parser.yy"
     6846  case 343:
     6847
     6848/* Line 1806 of yacc.c  */
     6849#line 1415 "parser.yy"
    68456850    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68466851    break;
    68476852
    6848   case 341:
    6849 
    6850 /* Line 1806 of yacc.c  */
    6851 #line 1410 "parser.yy"
     6853  case 344:
     6854
     6855/* Line 1806 of yacc.c  */
     6856#line 1417 "parser.yy"
    68526857    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68536858    break;
    68546859
    6855   case 342:
    6856 
    6857 /* Line 1806 of yacc.c  */
    6858 #line 1412 "parser.yy"
     6860  case 345:
     6861
     6862/* Line 1806 of yacc.c  */
     6863#line 1419 "parser.yy"
    68596864    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68606865    break;
    68616866
    6862   case 343:
    6863 
    6864 /* Line 1806 of yacc.c  */
    6865 #line 1417 "parser.yy"
     6867  case 346:
     6868
     6869/* Line 1806 of yacc.c  */
     6870#line 1424 "parser.yy"
    68666871    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68676872    break;
    68686873
    6869   case 344:
    6870 
    6871 /* Line 1806 of yacc.c  */
    6872 #line 1419 "parser.yy"
     6874  case 347:
     6875
     6876/* Line 1806 of yacc.c  */
     6877#line 1426 "parser.yy"
    68736878    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68746879    break;
    68756880
    6876   case 345:
    6877 
    6878 /* Line 1806 of yacc.c  */
    6879 #line 1421 "parser.yy"
     6881  case 348:
     6882
     6883/* Line 1806 of yacc.c  */
     6884#line 1428 "parser.yy"
    68806885    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68816886    break;
    68826887
    6883   case 346:
    6884 
    6885 /* Line 1806 of yacc.c  */
    6886 #line 1423 "parser.yy"
     6888  case 349:
     6889
     6890/* Line 1806 of yacc.c  */
     6891#line 1430 "parser.yy"
    68876892    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68886893    break;
    68896894
    6890   case 348:
    6891 
    6892 /* Line 1806 of yacc.c  */
    6893 #line 1429 "parser.yy"
     6895  case 351:
     6896
     6897/* Line 1806 of yacc.c  */
     6898#line 1436 "parser.yy"
    68946899    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68956900    break;
    68966901
    6897   case 349:
    6898 
    6899 /* Line 1806 of yacc.c  */
    6900 #line 1431 "parser.yy"
     6902  case 352:
     6903
     6904/* Line 1806 of yacc.c  */
     6905#line 1438 "parser.yy"
    69016906    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69026907    break;
    69036908
    6904   case 350:
    6905 
    6906 /* Line 1806 of yacc.c  */
    6907 #line 1433 "parser.yy"
     6909  case 353:
     6910
     6911/* Line 1806 of yacc.c  */
     6912#line 1440 "parser.yy"
    69086913    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69096914    break;
    69106915
    6911   case 352:
    6912 
    6913 /* Line 1806 of yacc.c  */
    6914 #line 1439 "parser.yy"
     6916  case 355:
     6917
     6918/* Line 1806 of yacc.c  */
     6919#line 1446 "parser.yy"
    69156920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69166921    break;
    69176922
    6918   case 353:
    6919 
    6920 /* Line 1806 of yacc.c  */
    6921 #line 1441 "parser.yy"
     6923  case 356:
     6924
     6925/* Line 1806 of yacc.c  */
     6926#line 1448 "parser.yy"
    69226927    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69236928    break;
    69246929
    6925   case 355:
    6926 
    6927 /* Line 1806 of yacc.c  */
    6928 #line 1447 "parser.yy"
     6930  case 358:
     6931
     6932/* Line 1806 of yacc.c  */
     6933#line 1454 "parser.yy"
    69296934    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69306935    break;
    69316936
    6932   case 356:
    6933 
    6934 /* Line 1806 of yacc.c  */
    6935 #line 1449 "parser.yy"
     6937  case 359:
     6938
     6939/* Line 1806 of yacc.c  */
     6940#line 1456 "parser.yy"
    69366941    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69376942    break;
    69386943
    6939   case 357:
    6940 
    6941 /* Line 1806 of yacc.c  */
    6942 #line 1451 "parser.yy"
     6944  case 360:
     6945
     6946/* Line 1806 of yacc.c  */
     6947#line 1458 "parser.yy"
    69436948    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69446949    break;
    69456950
    6946   case 358:
    6947 
    6948 /* Line 1806 of yacc.c  */
    6949 #line 1456 "parser.yy"
     6951  case 361:
     6952
     6953/* Line 1806 of yacc.c  */
     6954#line 1463 "parser.yy"
    69506955    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69516956    break;
    69526957
    6953   case 359:
    6954 
    6955 /* Line 1806 of yacc.c  */
    6956 #line 1458 "parser.yy"
     6958  case 362:
     6959
     6960/* Line 1806 of yacc.c  */
     6961#line 1465 "parser.yy"
    69576962    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69586963    break;
    69596964
    6960   case 360:
    6961 
    6962 /* Line 1806 of yacc.c  */
    6963 #line 1460 "parser.yy"
     6965  case 363:
     6966
     6967/* Line 1806 of yacc.c  */
     6968#line 1467 "parser.yy"
    69646969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69656970    break;
    69666971
    6967   case 363:
    6968 
    6969 /* Line 1806 of yacc.c  */
    6970 #line 1470 "parser.yy"
     6972  case 366:
     6973
     6974/* Line 1806 of yacc.c  */
     6975#line 1477 "parser.yy"
    69716976    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    69726977    break;
    69736978
    6974   case 364:
    6975 
    6976 /* Line 1806 of yacc.c  */
    6977 #line 1472 "parser.yy"
     6979  case 367:
     6980
     6981/* Line 1806 of yacc.c  */
     6982#line 1479 "parser.yy"
    69786983    {
    69796984                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69826987    break;
    69836988
    6984   case 365:
    6985 
    6986 /* Line 1806 of yacc.c  */
    6987 #line 1477 "parser.yy"
     6989  case 368:
     6990
     6991/* Line 1806 of yacc.c  */
     6992#line 1484 "parser.yy"
    69886993    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    69896994    break;
    69906995
    6991   case 366:
    6992 
    6993 /* Line 1806 of yacc.c  */
    6994 #line 1479 "parser.yy"
     6996  case 369:
     6997
     6998/* Line 1806 of yacc.c  */
     6999#line 1486 "parser.yy"
    69957000    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
    69967001    break;
    69977002
    6998   case 367:
    6999 
    7000 /* Line 1806 of yacc.c  */
    7001 #line 1481 "parser.yy"
     7003  case 370:
     7004
     7005/* Line 1806 of yacc.c  */
     7006#line 1488 "parser.yy"
    70027007    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    70037008    break;
    70047009
    7005   case 368:
    7006 
    7007 /* Line 1806 of yacc.c  */
    7008 #line 1483 "parser.yy"
     7010  case 371:
     7011
     7012/* Line 1806 of yacc.c  */
     7013#line 1490 "parser.yy"
    70097014    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70107015    break;
    70117016
    7012   case 369:
    7013 
    7014 /* Line 1806 of yacc.c  */
    7015 #line 1488 "parser.yy"
     7017  case 372:
     7018
     7019/* Line 1806 of yacc.c  */
     7020#line 1495 "parser.yy"
    70167021    { (yyval.aggKey) = DeclarationNode::Struct; }
    70177022    break;
    70187023
    7019   case 370:
    7020 
    7021 /* Line 1806 of yacc.c  */
    7022 #line 1490 "parser.yy"
     7024  case 373:
     7025
     7026/* Line 1806 of yacc.c  */
     7027#line 1497 "parser.yy"
    70237028    { (yyval.aggKey) = DeclarationNode::Union; }
    70247029    break;
    70257030
    7026   case 371:
    7027 
    7028 /* Line 1806 of yacc.c  */
    7029 #line 1495 "parser.yy"
     7031  case 374:
     7032
     7033/* Line 1806 of yacc.c  */
     7034#line 1502 "parser.yy"
    70307035    { (yyval.decl) = 0; }
    70317036    break;
    70327037
    7033   case 372:
    7034 
    7035 /* Line 1806 of yacc.c  */
    7036 #line 1497 "parser.yy"
     7038  case 375:
     7039
     7040/* Line 1806 of yacc.c  */
     7041#line 1504 "parser.yy"
    70377042    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70387043    break;
    70397044
    7040   case 374:
    7041 
    7042 /* Line 1806 of yacc.c  */
    7043 #line 1503 "parser.yy"
     7045  case 377:
     7046
     7047/* Line 1806 of yacc.c  */
     7048#line 1510 "parser.yy"
    70447049    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70457050    break;
    70467051
    7047   case 376:
    7048 
    7049 /* Line 1806 of yacc.c  */
    7050 #line 1506 "parser.yy"
     7052  case 379:
     7053
     7054/* Line 1806 of yacc.c  */
     7055#line 1513 "parser.yy"
    70517056    {   // mark all fields in list
    70527057                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70567061    break;
    70577062
    7058   case 378:
    7059 
    7060 /* Line 1806 of yacc.c  */
    7061 #line 1516 "parser.yy"
     7063  case 381:
     7064
     7065/* Line 1806 of yacc.c  */
     7066#line 1523 "parser.yy"
    70627067    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70637068    break;
    70647069
    7065   case 379:
    7066 
    7067 /* Line 1806 of yacc.c  */
    7068 #line 1518 "parser.yy"
     7070  case 382:
     7071
     7072/* Line 1806 of yacc.c  */
     7073#line 1525 "parser.yy"
    70697074    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70707075    break;
    70717076
    7072   case 380:
    7073 
    7074 /* Line 1806 of yacc.c  */
    7075 #line 1520 "parser.yy"
     7077  case 383:
     7078
     7079/* Line 1806 of yacc.c  */
     7080#line 1527 "parser.yy"
    70767081    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70777082    break;
    70787083
    7079   case 381:
    7080 
    7081 /* Line 1806 of yacc.c  */
    7082 #line 1525 "parser.yy"
     7084  case 384:
     7085
     7086/* Line 1806 of yacc.c  */
     7087#line 1532 "parser.yy"
    70837088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70847089    break;
    70857090
    7086   case 382:
    7087 
    7088 /* Line 1806 of yacc.c  */
    7089 #line 1527 "parser.yy"
     7091  case 385:
     7092
     7093/* Line 1806 of yacc.c  */
     7094#line 1534 "parser.yy"
    70907095    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70917096    break;
    70927097
    7093   case 383:
    7094 
    7095 /* Line 1806 of yacc.c  */
    7096 #line 1532 "parser.yy"
     7098  case 386:
     7099
     7100/* Line 1806 of yacc.c  */
     7101#line 1539 "parser.yy"
    70977102    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70987103    break;
    70997104
    7100   case 384:
    7101 
    7102 /* Line 1806 of yacc.c  */
    7103 #line 1534 "parser.yy"
     7105  case 387:
     7106
     7107/* Line 1806 of yacc.c  */
     7108#line 1541 "parser.yy"
    71047109    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71057110    break;
    71067111
    7107   case 385:
    7108 
    7109 /* Line 1806 of yacc.c  */
    7110 #line 1537 "parser.yy"
     7112  case 388:
     7113
     7114/* Line 1806 of yacc.c  */
     7115#line 1544 "parser.yy"
    71117116    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71127117    break;
    71137118
    7114   case 386:
    7115 
    7116 /* Line 1806 of yacc.c  */
    7117 #line 1540 "parser.yy"
     7119  case 389:
     7120
     7121/* Line 1806 of yacc.c  */
     7122#line 1547 "parser.yy"
    71187123    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71197124    break;
    71207125
    7121   case 388:
    7122 
    7123 /* Line 1806 of yacc.c  */
    7124 #line 1546 "parser.yy"
     7126  case 391:
     7127
     7128/* Line 1806 of yacc.c  */
     7129#line 1553 "parser.yy"
    71257130    { (yyval.en) = 0; }
    71267131    break;
    71277132
    7128   case 389:
    7129 
    7130 /* Line 1806 of yacc.c  */
    7131 #line 1548 "parser.yy"
     7133  case 392:
     7134
     7135/* Line 1806 of yacc.c  */
     7136#line 1555 "parser.yy"
    71327137    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71337138    break;
    71347139
    7135   case 390:
    7136 
    7137 /* Line 1806 of yacc.c  */
    7138 #line 1553 "parser.yy"
     7140  case 393:
     7141
     7142/* Line 1806 of yacc.c  */
     7143#line 1560 "parser.yy"
    71397144    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71407145    break;
    71417146
    7142   case 392:
    7143 
    7144 /* Line 1806 of yacc.c  */
    7145 #line 1562 "parser.yy"
     7147  case 395:
     7148
     7149/* Line 1806 of yacc.c  */
     7150#line 1569 "parser.yy"
    71467151    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    71477152    break;
    71487153
    7149   case 393:
    7150 
    7151 /* Line 1806 of yacc.c  */
    7152 #line 1564 "parser.yy"
     7154  case 396:
     7155
     7156/* Line 1806 of yacc.c  */
     7157#line 1571 "parser.yy"
    71537158    {
    71547159                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71577162    break;
    71587163
    7159   case 394:
    7160 
    7161 /* Line 1806 of yacc.c  */
    7162 #line 1569 "parser.yy"
     7164  case 397:
     7165
     7166/* Line 1806 of yacc.c  */
     7167#line 1576 "parser.yy"
    71637168    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    71647169    break;
    71657170
    7166   case 395:
    7167 
    7168 /* Line 1806 of yacc.c  */
    7169 #line 1571 "parser.yy"
     7171  case 398:
     7172
     7173/* Line 1806 of yacc.c  */
     7174#line 1578 "parser.yy"
    71707175    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    71717176    break;
    71727177
    7173   case 396:
    7174 
    7175 /* Line 1806 of yacc.c  */
    7176 #line 1576 "parser.yy"
     7178  case 399:
     7179
     7180/* Line 1806 of yacc.c  */
     7181#line 1583 "parser.yy"
    71777182    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71787183    break;
    71797184
    7180   case 397:
    7181 
    7182 /* Line 1806 of yacc.c  */
    7183 #line 1578 "parser.yy"
     7185  case 400:
     7186
     7187/* Line 1806 of yacc.c  */
     7188#line 1585 "parser.yy"
    71847189    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71857190    break;
    71867191
    7187   case 398:
    7188 
    7189 /* Line 1806 of yacc.c  */
    7190 #line 1583 "parser.yy"
     7192  case 401:
     7193
     7194/* Line 1806 of yacc.c  */
     7195#line 1590 "parser.yy"
    71917196    { (yyval.en) = 0; }
    71927197    break;
    71937198
    7194   case 399:
    7195 
    7196 /* Line 1806 of yacc.c  */
    7197 #line 1585 "parser.yy"
     7199  case 402:
     7200
     7201/* Line 1806 of yacc.c  */
     7202#line 1592 "parser.yy"
    71987203    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71997204    break;
    72007205
    7201   case 400:
    7202 
    7203 /* Line 1806 of yacc.c  */
    7204 #line 1592 "parser.yy"
     7206  case 403:
     7207
     7208/* Line 1806 of yacc.c  */
     7209#line 1599 "parser.yy"
    72057210    { (yyval.decl) = 0; }
    72067211    break;
    72077212
    7208   case 404:
    7209 
    7210 /* Line 1806 of yacc.c  */
    7211 #line 1600 "parser.yy"
     7213  case 407:
     7214
     7215/* Line 1806 of yacc.c  */
     7216#line 1607 "parser.yy"
    72127217    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72137218    break;
    72147219
    7215   case 405:
    7216 
    7217 /* Line 1806 of yacc.c  */
    7218 #line 1602 "parser.yy"
     7220  case 408:
     7221
     7222/* Line 1806 of yacc.c  */
     7223#line 1609 "parser.yy"
    72197224    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72207225    break;
    72217226
    7222   case 406:
    7223 
    7224 /* Line 1806 of yacc.c  */
    7225 #line 1604 "parser.yy"
     7227  case 409:
     7228
     7229/* Line 1806 of yacc.c  */
     7230#line 1611 "parser.yy"
    72267231    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72277232    break;
    72287233
    7229   case 408:
    7230 
    7231 /* Line 1806 of yacc.c  */
    7232 #line 1612 "parser.yy"
     7234  case 411:
     7235
     7236/* Line 1806 of yacc.c  */
     7237#line 1619 "parser.yy"
    72337238    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72347239    break;
    72357240
    7236   case 409:
    7237 
    7238 /* Line 1806 of yacc.c  */
    7239 #line 1614 "parser.yy"
     7241  case 412:
     7242
     7243/* Line 1806 of yacc.c  */
     7244#line 1621 "parser.yy"
    72407245    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72417246    break;
    72427247
    7243   case 410:
    7244 
    7245 /* Line 1806 of yacc.c  */
    7246 #line 1616 "parser.yy"
     7248  case 413:
     7249
     7250/* Line 1806 of yacc.c  */
     7251#line 1623 "parser.yy"
    72477252    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72487253    break;
    72497254
    7250   case 412:
    7251 
    7252 /* Line 1806 of yacc.c  */
    7253 #line 1622 "parser.yy"
     7255  case 415:
     7256
     7257/* Line 1806 of yacc.c  */
     7258#line 1629 "parser.yy"
    72547259    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72557260    break;
    72567261
    7257   case 413:
    7258 
    7259 /* Line 1806 of yacc.c  */
    7260 #line 1627 "parser.yy"
     7262  case 416:
     7263
     7264/* Line 1806 of yacc.c  */
     7265#line 1634 "parser.yy"
    72617266    { (yyval.decl) = 0; }
    72627267    break;
    72637268
    7264   case 416:
    7265 
    7266 /* Line 1806 of yacc.c  */
    7267 #line 1634 "parser.yy"
     7269  case 419:
     7270
     7271/* Line 1806 of yacc.c  */
     7272#line 1641 "parser.yy"
    72687273    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72697274    break;
    72707275
    7271   case 419:
    7272 
    7273 /* Line 1806 of yacc.c  */
    7274 #line 1641 "parser.yy"
     7276  case 422:
     7277
     7278/* Line 1806 of yacc.c  */
     7279#line 1648 "parser.yy"
    72757280    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72767281    break;
    72777282
    7278   case 420:
    7279 
    7280 /* Line 1806 of yacc.c  */
    7281 #line 1643 "parser.yy"
     7283  case 423:
     7284
     7285/* Line 1806 of yacc.c  */
     7286#line 1650 "parser.yy"
    72827287    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72837288    break;
    72847289
    7285   case 422:
    7286 
    7287 /* Line 1806 of yacc.c  */
    7288 #line 1652 "parser.yy"
     7290  case 425:
     7291
     7292/* Line 1806 of yacc.c  */
     7293#line 1659 "parser.yy"
    72897294    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72907295    break;
    72917296
    7292   case 423:
    7293 
    7294 /* Line 1806 of yacc.c  */
    7295 #line 1655 "parser.yy"
     7297  case 426:
     7298
     7299/* Line 1806 of yacc.c  */
     7300#line 1662 "parser.yy"
    72967301    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72977302    break;
    72987303
    7299   case 424:
    7300 
    7301 /* Line 1806 of yacc.c  */
    7302 #line 1657 "parser.yy"
     7304  case 427:
     7305
     7306/* Line 1806 of yacc.c  */
     7307#line 1664 "parser.yy"
    73037308    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73047309    break;
    73057310
    7306   case 429:
    7307 
    7308 /* Line 1806 of yacc.c  */
    7309 #line 1667 "parser.yy"
     7311  case 432:
     7312
     7313/* Line 1806 of yacc.c  */
     7314#line 1674 "parser.yy"
    73107315    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73117316    break;
    73127317
    7313   case 431:
    7314 
    7315 /* Line 1806 of yacc.c  */
    7316 #line 1673 "parser.yy"
     7318  case 434:
     7319
     7320/* Line 1806 of yacc.c  */
     7321#line 1680 "parser.yy"
    73177322    {
    73187323                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73217326    break;
    73227327
    7323   case 432:
    7324 
    7325 /* Line 1806 of yacc.c  */
    7326 #line 1678 "parser.yy"
     7328  case 435:
     7329
     7330/* Line 1806 of yacc.c  */
     7331#line 1685 "parser.yy"
    73277332    {
    73287333                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73317336    break;
    73327337
    7333   case 434:
    7334 
    7335 /* Line 1806 of yacc.c  */
    7336 #line 1687 "parser.yy"
     7338  case 437:
     7339
     7340/* Line 1806 of yacc.c  */
     7341#line 1694 "parser.yy"
    73377342    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73387343    break;
    73397344
    7340   case 435:
    7341 
    7342 /* Line 1806 of yacc.c  */
    7343 #line 1696 "parser.yy"
     7345  case 438:
     7346
     7347/* Line 1806 of yacc.c  */
     7348#line 1703 "parser.yy"
    73447349    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73457350    break;
    73467351
    7347   case 436:
    7348 
    7349 /* Line 1806 of yacc.c  */
    7350 #line 1698 "parser.yy"
     7352  case 439:
     7353
     7354/* Line 1806 of yacc.c  */
     7355#line 1705 "parser.yy"
    73517356    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73527357    break;
    73537358
    7354   case 448:
    7355 
    7356 /* Line 1806 of yacc.c  */
    7357 #line 1723 "parser.yy"
     7359  case 451:
     7360
     7361/* Line 1806 of yacc.c  */
     7362#line 1730 "parser.yy"
    73587363    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73597364    break;
    73607365
    7361   case 452:
    7362 
    7363 /* Line 1806 of yacc.c  */
    7364 #line 1731 "parser.yy"
     7366  case 455:
     7367
     7368/* Line 1806 of yacc.c  */
     7369#line 1738 "parser.yy"
    73657370    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73667371    break;
    73677372
    7368   case 453:
    7369 
    7370 /* Line 1806 of yacc.c  */
    7371 #line 1736 "parser.yy"
     7373  case 456:
     7374
     7375/* Line 1806 of yacc.c  */
     7376#line 1743 "parser.yy"
    73727377    { (yyval.in) = 0; }
    73737378    break;
    73747379
    7375   case 454:
    7376 
    7377 /* Line 1806 of yacc.c  */
    7378 #line 1738 "parser.yy"
     7380  case 457:
     7381
     7382/* Line 1806 of yacc.c  */
     7383#line 1745 "parser.yy"
    73797384    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73807385    break;
    73817386
    7382   case 455:
    7383 
    7384 /* Line 1806 of yacc.c  */
    7385 #line 1740 "parser.yy"
     7387  case 458:
     7388
     7389/* Line 1806 of yacc.c  */
     7390#line 1747 "parser.yy"
    73867391    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    73877392    break;
    73887393
    7389   case 456:
    7390 
    7391 /* Line 1806 of yacc.c  */
    7392 #line 1744 "parser.yy"
     7394  case 459:
     7395
     7396/* Line 1806 of yacc.c  */
     7397#line 1751 "parser.yy"
    73937398    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    73947399    break;
    73957400
    7396   case 457:
    7397 
    7398 /* Line 1806 of yacc.c  */
    7399 #line 1745 "parser.yy"
     7401  case 460:
     7402
     7403/* Line 1806 of yacc.c  */
     7404#line 1752 "parser.yy"
    74007405    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    74017406    break;
    74027407
    7403   case 458:
    7404 
    7405 /* Line 1806 of yacc.c  */
    7406 #line 1750 "parser.yy"
     7408  case 461:
     7409
     7410/* Line 1806 of yacc.c  */
     7411#line 1757 "parser.yy"
    74077412    { (yyval.in) = 0; }
    74087413    break;
    74097414
    7410   case 460:
    7411 
    7412 /* Line 1806 of yacc.c  */
    7413 #line 1752 "parser.yy"
     7415  case 463:
     7416
     7417/* Line 1806 of yacc.c  */
     7418#line 1759 "parser.yy"
    74147419    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74157420    break;
    74167421
    7417   case 461:
    7418 
    7419 /* Line 1806 of yacc.c  */
    7420 #line 1753 "parser.yy"
     7422  case 464:
     7423
     7424/* Line 1806 of yacc.c  */
     7425#line 1760 "parser.yy"
    74217426    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    74227427    break;
    74237428
    7424   case 462:
    7425 
    7426 /* Line 1806 of yacc.c  */
    7427 #line 1755 "parser.yy"
     7429  case 465:
     7430
     7431/* Line 1806 of yacc.c  */
     7432#line 1762 "parser.yy"
    74287433    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74297434    break;
    74307435
    7431   case 464:
    7432 
    7433 /* Line 1806 of yacc.c  */
    7434 #line 1771 "parser.yy"
     7436  case 467:
     7437
     7438/* Line 1806 of yacc.c  */
     7439#line 1778 "parser.yy"
    74357440    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74367441    break;
    74377442
    7438   case 466:
    7439 
    7440 /* Line 1806 of yacc.c  */
    7441 #line 1777 "parser.yy"
     7443  case 469:
     7444
     7445/* Line 1806 of yacc.c  */
     7446#line 1784 "parser.yy"
    74427447    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    74437448    break;
    74447449
    7445   case 467:
    7446 
    7447 /* Line 1806 of yacc.c  */
    7448 #line 1783 "parser.yy"
     7450  case 470:
     7451
     7452/* Line 1806 of yacc.c  */
     7453#line 1790 "parser.yy"
    74497454    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74507455    break;
    74517456
    7452   case 468:
    7453 
    7454 /* Line 1806 of yacc.c  */
    7455 #line 1786 "parser.yy"
     7457  case 471:
     7458
     7459/* Line 1806 of yacc.c  */
     7460#line 1793 "parser.yy"
    74567461    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74577462    break;
    74587463
    7459   case 469:
    7460 
    7461 /* Line 1806 of yacc.c  */
    7462 #line 1788 "parser.yy"
     7464  case 472:
     7465
     7466/* Line 1806 of yacc.c  */
     7467#line 1795 "parser.yy"
    74637468    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74647469    break;
    74657470
    7466   case 470:
    7467 
    7468 /* Line 1806 of yacc.c  */
    7469 #line 1790 "parser.yy"
     7471  case 473:
     7472
     7473/* Line 1806 of yacc.c  */
     7474#line 1797 "parser.yy"
    74707475    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    74717476    break;
    74727477
    7473   case 471:
    7474 
    7475 /* Line 1806 of yacc.c  */
    7476 #line 1792 "parser.yy"
     7478  case 474:
     7479
     7480/* Line 1806 of yacc.c  */
     7481#line 1799 "parser.yy"
    74777482    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74787483    break;
    74797484
    7480   case 473:
    7481 
    7482 /* Line 1806 of yacc.c  */
    7483 #line 1816 "parser.yy"
     7485  case 476:
     7486
     7487/* Line 1806 of yacc.c  */
     7488#line 1823 "parser.yy"
    74847489    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74857490    break;
    74867491
    7487   case 474:
    7488 
    7489 /* Line 1806 of yacc.c  */
    7490 #line 1818 "parser.yy"
     7492  case 477:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1825 "parser.yy"
    74917496    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74927497    break;
    74937498
    7494   case 475:
    7495 
    7496 /* Line 1806 of yacc.c  */
    7497 #line 1820 "parser.yy"
     7499  case 478:
     7500
     7501/* Line 1806 of yacc.c  */
     7502#line 1827 "parser.yy"
    74987503    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    74997504    break;
    75007505
    7501   case 477:
    7502 
    7503 /* Line 1806 of yacc.c  */
    7504 #line 1826 "parser.yy"
     7506  case 480:
     7507
     7508/* Line 1806 of yacc.c  */
     7509#line 1833 "parser.yy"
    75057510    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75067511    break;
    75077512
    7508   case 478:
    7509 
    7510 /* Line 1806 of yacc.c  */
    7511 #line 1828 "parser.yy"
     7513  case 481:
     7514
     7515/* Line 1806 of yacc.c  */
     7516#line 1835 "parser.yy"
    75127517    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75137518    break;
    75147519
    7515   case 479:
    7516 
    7517 /* Line 1806 of yacc.c  */
    7518 #line 1833 "parser.yy"
     7520  case 482:
     7521
     7522/* Line 1806 of yacc.c  */
     7523#line 1840 "parser.yy"
    75197524    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75207525    break;
    75217526
    7522   case 481:
    7523 
    7524 /* Line 1806 of yacc.c  */
    7525 #line 1839 "parser.yy"
     7527  case 484:
     7528
     7529/* Line 1806 of yacc.c  */
     7530#line 1846 "parser.yy"
    75267531    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75277532    break;
    75287533
    7529   case 482:
    7530 
    7531 /* Line 1806 of yacc.c  */
    7532 #line 1844 "parser.yy"
     7534  case 485:
     7535
     7536/* Line 1806 of yacc.c  */
     7537#line 1851 "parser.yy"
    75337538    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75347539    break;
    75357540
    7536   case 483:
    7537 
    7538 /* Line 1806 of yacc.c  */
    7539 #line 1846 "parser.yy"
     7541  case 486:
     7542
     7543/* Line 1806 of yacc.c  */
     7544#line 1853 "parser.yy"
    75407545    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75417546    break;
    75427547
    7543   case 485:
    7544 
    7545 /* Line 1806 of yacc.c  */
    7546 #line 1852 "parser.yy"
     7548  case 488:
     7549
     7550/* Line 1806 of yacc.c  */
     7551#line 1859 "parser.yy"
    75477552    { (yyval.tclass) = DeclarationNode::Otype; }
    75487553    break;
    75497554
    7550   case 486:
    7551 
    7552 /* Line 1806 of yacc.c  */
    7553 #line 1854 "parser.yy"
     7555  case 489:
     7556
     7557/* Line 1806 of yacc.c  */
     7558#line 1861 "parser.yy"
    75547559    { (yyval.tclass) = DeclarationNode::Ftype; }
    75557560    break;
    75567561
    7557   case 487:
    7558 
    7559 /* Line 1806 of yacc.c  */
    7560 #line 1856 "parser.yy"
     7562  case 490:
     7563
     7564/* Line 1806 of yacc.c  */
     7565#line 1863 "parser.yy"
    75617566    { (yyval.tclass) = DeclarationNode::Dtype; }
    75627567    break;
    75637568
    7564   case 488:
    7565 
    7566 /* Line 1806 of yacc.c  */
    7567 #line 1861 "parser.yy"
     7569  case 491:
     7570
     7571/* Line 1806 of yacc.c  */
     7572#line 1868 "parser.yy"
    75687573    { (yyval.decl) = 0; }
    75697574    break;
    75707575
    7571   case 489:
    7572 
    7573 /* Line 1806 of yacc.c  */
    7574 #line 1863 "parser.yy"
     7576  case 492:
     7577
     7578/* Line 1806 of yacc.c  */
     7579#line 1870 "parser.yy"
    75757580    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75767581    break;
    75777582
    7578   case 490:
    7579 
    7580 /* Line 1806 of yacc.c  */
    7581 #line 1868 "parser.yy"
     7583  case 493:
     7584
     7585/* Line 1806 of yacc.c  */
     7586#line 1875 "parser.yy"
    75827587    {
    75837588                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75867591    break;
    75877592
    7588   case 491:
    7589 
    7590 /* Line 1806 of yacc.c  */
    7591 #line 1873 "parser.yy"
     7593  case 494:
     7594
     7595/* Line 1806 of yacc.c  */
     7596#line 1880 "parser.yy"
    75927597    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75937598    break;
    75947599
    7595   case 492:
    7596 
    7597 /* Line 1806 of yacc.c  */
    7598 #line 1875 "parser.yy"
     7600  case 495:
     7601
     7602/* Line 1806 of yacc.c  */
     7603#line 1882 "parser.yy"
    75997604    { (yyval.decl) = 0; }
    76007605    break;
    76017606
    7602   case 493:
    7603 
    7604 /* Line 1806 of yacc.c  */
    7605 #line 1880 "parser.yy"
     7607  case 496:
     7608
     7609/* Line 1806 of yacc.c  */
     7610#line 1887 "parser.yy"
    76067611    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    76077612    break;
    76087613
    7609   case 495:
    7610 
    7611 /* Line 1806 of yacc.c  */
    7612 #line 1883 "parser.yy"
     7614  case 498:
     7615
     7616/* Line 1806 of yacc.c  */
     7617#line 1890 "parser.yy"
    76137618    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    76147619    break;
    76157620
    7616   case 496:
    7617 
    7618 /* Line 1806 of yacc.c  */
    7619 #line 1885 "parser.yy"
     7621  case 499:
     7622
     7623/* Line 1806 of yacc.c  */
     7624#line 1892 "parser.yy"
    76207625    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    76217626    break;
    76227627
    7623   case 497:
    7624 
    7625 /* Line 1806 of yacc.c  */
    7626 #line 1890 "parser.yy"
     7628  case 500:
     7629
     7630/* Line 1806 of yacc.c  */
     7631#line 1897 "parser.yy"
    76277632    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76287633    break;
    76297634
    7630   case 498:
    7631 
    7632 /* Line 1806 of yacc.c  */
    7633 #line 1892 "parser.yy"
     7635  case 501:
     7636
     7637/* Line 1806 of yacc.c  */
     7638#line 1899 "parser.yy"
    76347639    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76357640    break;
    76367641
    7637   case 499:
    7638 
    7639 /* Line 1806 of yacc.c  */
    7640 #line 1894 "parser.yy"
     7642  case 502:
     7643
     7644/* Line 1806 of yacc.c  */
     7645#line 1901 "parser.yy"
    76417646    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76427647    break;
    76437648
    7644   case 500:
    7645 
    7646 /* Line 1806 of yacc.c  */
    7647 #line 1899 "parser.yy"
     7649  case 503:
     7650
     7651/* Line 1806 of yacc.c  */
     7652#line 1906 "parser.yy"
    76487653    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76497654    break;
    76507655
    7651   case 501:
    7652 
    7653 /* Line 1806 of yacc.c  */
    7654 #line 1901 "parser.yy"
     7656  case 504:
     7657
     7658/* Line 1806 of yacc.c  */
     7659#line 1908 "parser.yy"
    76557660    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76567661    break;
    76577662
    7658   case 502:
    7659 
    7660 /* Line 1806 of yacc.c  */
    7661 #line 1906 "parser.yy"
     7663  case 505:
     7664
     7665/* Line 1806 of yacc.c  */
     7666#line 1913 "parser.yy"
    76627667    {
    76637668                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76667671    break;
    76677672
    7668   case 503:
    7669 
    7670 /* Line 1806 of yacc.c  */
    7671 #line 1911 "parser.yy"
     7673  case 506:
     7674
     7675/* Line 1806 of yacc.c  */
     7676#line 1918 "parser.yy"
    76727677    {
    76737678                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76767681    break;
    76777682
    7678   case 504:
    7679 
    7680 /* Line 1806 of yacc.c  */
    7681 #line 1919 "parser.yy"
     7683  case 507:
     7684
     7685/* Line 1806 of yacc.c  */
     7686#line 1926 "parser.yy"
    76827687    {
    76837688                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76867691    break;
    76877692
    7688   case 505:
    7689 
    7690 /* Line 1806 of yacc.c  */
    7691 #line 1924 "parser.yy"
     7693  case 508:
     7694
     7695/* Line 1806 of yacc.c  */
     7696#line 1931 "parser.yy"
    76927697    {
    76937698                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    76967701    break;
    76977702
    7698   case 506:
    7699 
    7700 /* Line 1806 of yacc.c  */
    7701 #line 1929 "parser.yy"
     7703  case 509:
     7704
     7705/* Line 1806 of yacc.c  */
     7706#line 1936 "parser.yy"
    77027707    {
    77037708                        typedefTable.leaveTrait();
     
    77077712    break;
    77087713
    7709   case 508:
    7710 
    7711 /* Line 1806 of yacc.c  */
    7712 #line 1939 "parser.yy"
     7714  case 511:
     7715
     7716/* Line 1806 of yacc.c  */
     7717#line 1946 "parser.yy"
    77137718    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77147719    break;
    77157720
    7716   case 511:
    7717 
    7718 /* Line 1806 of yacc.c  */
    7719 #line 1949 "parser.yy"
     7721  case 514:
     7722
     7723/* Line 1806 of yacc.c  */
     7724#line 1956 "parser.yy"
    77207725    {
    77217726                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77247729    break;
    77257730
    7726   case 512:
    7727 
    7728 /* Line 1806 of yacc.c  */
    7729 #line 1954 "parser.yy"
     7731  case 515:
     7732
     7733/* Line 1806 of yacc.c  */
     7734#line 1961 "parser.yy"
    77307735    {
    77317736                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77347739    break;
    77357740
    7736   case 513:
    7737 
    7738 /* Line 1806 of yacc.c  */
    7739 #line 1959 "parser.yy"
     7741  case 516:
     7742
     7743/* Line 1806 of yacc.c  */
     7744#line 1966 "parser.yy"
    77407745    {
    77417746                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77447749    break;
    77457750
    7746   case 514:
    7747 
    7748 /* Line 1806 of yacc.c  */
    7749 #line 1967 "parser.yy"
     7751  case 517:
     7752
     7753/* Line 1806 of yacc.c  */
     7754#line 1974 "parser.yy"
    77507755    {
    77517756                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77547759    break;
    77557760
    7756   case 515:
    7757 
    7758 /* Line 1806 of yacc.c  */
    7759 #line 1972 "parser.yy"
     7761  case 518:
     7762
     7763/* Line 1806 of yacc.c  */
     7764#line 1979 "parser.yy"
    77607765    {
    77617766                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77647769    break;
    77657770
    7766   case 516:
    7767 
    7768 /* Line 1806 of yacc.c  */
    7769 #line 1982 "parser.yy"
     7771  case 519:
     7772
     7773/* Line 1806 of yacc.c  */
     7774#line 1989 "parser.yy"
    77707775    {}
    77717776    break;
    77727777
    7773   case 517:
    7774 
    7775 /* Line 1806 of yacc.c  */
    7776 #line 1984 "parser.yy"
     7778  case 520:
     7779
     7780/* Line 1806 of yacc.c  */
     7781#line 1991 "parser.yy"
    77777782    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    77787783    break;
    77797784
    7780   case 519:
    7781 
    7782 /* Line 1806 of yacc.c  */
    7783 #line 1990 "parser.yy"
     7785  case 522:
     7786
     7787/* Line 1806 of yacc.c  */
     7788#line 1997 "parser.yy"
    77847789    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77857790    break;
    77867791
    7787   case 520:
    7788 
    7789 /* Line 1806 of yacc.c  */
    7790 #line 1995 "parser.yy"
     7792  case 523:
     7793
     7794/* Line 1806 of yacc.c  */
     7795#line 2002 "parser.yy"
    77917796    { (yyval.decl) = 0; }
    77927797    break;
    77937798
    7794   case 524:
    7795 
    7796 /* Line 1806 of yacc.c  */
    7797 #line 2003 "parser.yy"
     7799  case 527:
     7800
     7801/* Line 1806 of yacc.c  */
     7802#line 2010 "parser.yy"
    77987803    {}
    77997804    break;
    78007805
    7801   case 525:
    7802 
    7803 /* Line 1806 of yacc.c  */
    7804 #line 2005 "parser.yy"
     7806  case 528:
     7807
     7808/* Line 1806 of yacc.c  */
     7809#line 2012 "parser.yy"
    78057810    {
    78067811                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    7807                         linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
     7812                        linkage = LinkageSpec::linkageCheck( (yyvsp[(2) - (2)].tok) );
    78087813                }
    78097814    break;
    78107815
    7811   case 526:
    7812 
    7813 /* Line 1806 of yacc.c  */
    7814 #line 2010 "parser.yy"
     7816  case 529:
     7817
     7818/* Line 1806 of yacc.c  */
     7819#line 2017 "parser.yy"
    78157820    {
    78167821                        linkage = linkageStack.top();
     
    78207825    break;
    78217826
    7822   case 527:
    7823 
    7824 /* Line 1806 of yacc.c  */
    7825 #line 2016 "parser.yy"
     7827  case 530:
     7828
     7829/* Line 1806 of yacc.c  */
     7830#line 2023 "parser.yy"
    78267831    {   // mark all fields in list
    78277832                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78317836    break;
    78327837
    7833   case 529:
    7834 
    7835 /* Line 1806 of yacc.c  */
    7836 #line 2031 "parser.yy"
     7838  case 532:
     7839
     7840/* Line 1806 of yacc.c  */
     7841#line 2038 "parser.yy"
    78377842    {
    78387843                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78427847    break;
    78437848
    7844   case 530:
    7845 
    7846 /* Line 1806 of yacc.c  */
    7847 #line 2037 "parser.yy"
     7849  case 533:
     7850
     7851/* Line 1806 of yacc.c  */
     7852#line 2044 "parser.yy"
    78487853    {
    78497854                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78537858    break;
    78547859
    7855   case 531:
    7856 
    7857 /* Line 1806 of yacc.c  */
    7858 #line 2046 "parser.yy"
     7860  case 534:
     7861
     7862/* Line 1806 of yacc.c  */
     7863#line 2053 "parser.yy"
    78597864    {
    78607865                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78647869    break;
    78657870
    7866   case 532:
    7867 
    7868 /* Line 1806 of yacc.c  */
    7869 #line 2052 "parser.yy"
     7871  case 535:
     7872
     7873/* Line 1806 of yacc.c  */
     7874#line 2059 "parser.yy"
    78707875    {
    78717876                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78757880    break;
    78767881
    7877   case 533:
    7878 
    7879 /* Line 1806 of yacc.c  */
    7880 #line 2058 "parser.yy"
     7882  case 536:
     7883
     7884/* Line 1806 of yacc.c  */
     7885#line 2065 "parser.yy"
    78817886    {
    78827887                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78867891    break;
    78877892
    7888   case 534:
    7889 
    7890 /* Line 1806 of yacc.c  */
    7891 #line 2064 "parser.yy"
     7893  case 537:
     7894
     7895/* Line 1806 of yacc.c  */
     7896#line 2071 "parser.yy"
    78927897    {
    78937898                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78977902    break;
    78987903
    7899   case 535:
    7900 
    7901 /* Line 1806 of yacc.c  */
    7902 #line 2070 "parser.yy"
     7904  case 538:
     7905
     7906/* Line 1806 of yacc.c  */
     7907#line 2077 "parser.yy"
    79037908    {
    79047909                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79087913    break;
    79097914
    7910   case 536:
    7911 
    7912 /* Line 1806 of yacc.c  */
    7913 #line 2078 "parser.yy"
     7915  case 539:
     7916
     7917/* Line 1806 of yacc.c  */
     7918#line 2085 "parser.yy"
    79147919    {
    79157920                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79197924    break;
    79207925
    7921   case 537:
    7922 
    7923 /* Line 1806 of yacc.c  */
    7924 #line 2084 "parser.yy"
     7926  case 540:
     7927
     7928/* Line 1806 of yacc.c  */
     7929#line 2091 "parser.yy"
    79257930    {
    79267931                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79307935    break;
    79317936
    7932   case 538:
    7933 
    7934 /* Line 1806 of yacc.c  */
    7935 #line 2092 "parser.yy"
     7937  case 541:
     7938
     7939/* Line 1806 of yacc.c  */
     7940#line 2099 "parser.yy"
    79367941    {
    79377942                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79417946    break;
    79427947
    7943   case 539:
    7944 
    7945 /* Line 1806 of yacc.c  */
    7946 #line 2098 "parser.yy"
     7948  case 542:
     7949
     7950/* Line 1806 of yacc.c  */
     7951#line 2105 "parser.yy"
    79477952    {
    79487953                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79527957    break;
    79537958
    7954   case 543:
    7955 
    7956 /* Line 1806 of yacc.c  */
    7957 #line 2113 "parser.yy"
     7959  case 546:
     7960
     7961/* Line 1806 of yacc.c  */
     7962#line 2120 "parser.yy"
    79587963    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79597964    break;
    79607965
    7961   case 545:
    7962 
    7963 /* Line 1806 of yacc.c  */
    7964 #line 2118 "parser.yy"
     7966  case 548:
     7967
     7968/* Line 1806 of yacc.c  */
     7969#line 2125 "parser.yy"
    79657970    { delete (yyvsp[(3) - (5)].str); }
    79667971    break;
    79677972
    7968   case 546:
    7969 
    7970 /* Line 1806 of yacc.c  */
    7971 #line 2123 "parser.yy"
     7973  case 549:
     7974
     7975/* Line 1806 of yacc.c  */
     7976#line 2130 "parser.yy"
    79727977    { (yyval.decl) = 0; }
    79737978    break;
    79747979
    7975   case 549:
    7976 
    7977 /* Line 1806 of yacc.c  */
    7978 #line 2130 "parser.yy"
     7980  case 552:
     7981
     7982/* Line 1806 of yacc.c  */
     7983#line 2137 "parser.yy"
    79797984    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79807985    break;
    79817986
    7982   case 550:
    7983 
    7984 /* Line 1806 of yacc.c  */
    7985 #line 2136 "parser.yy"
     7987  case 553:
     7988
     7989/* Line 1806 of yacc.c  */
     7990#line 2143 "parser.yy"
    79867991    { (yyval.decl) = 0; }
    79877992    break;
    79887993
    7989   case 555:
    7990 
    7991 /* Line 1806 of yacc.c  */
    7992 #line 2147 "parser.yy"
     7994  case 558:
     7995
     7996/* Line 1806 of yacc.c  */
     7997#line 2154 "parser.yy"
    79937998    { delete (yyvsp[(3) - (4)].en); }
    79947999    break;
    79958000
    7996   case 556:
    7997 
    7998 /* Line 1806 of yacc.c  */
    7999 #line 2151 "parser.yy"
     8001  case 559:
     8002
     8003/* Line 1806 of yacc.c  */
     8004#line 2158 "parser.yy"
    80008005    { delete (yyvsp[(1) - (1)].tok); }
    80018006    break;
    80028007
    8003   case 557:
    8004 
    8005 /* Line 1806 of yacc.c  */
    8006 #line 2152 "parser.yy"
     8008  case 560:
     8009
     8010/* Line 1806 of yacc.c  */
     8011#line 2159 "parser.yy"
    80078012    { delete (yyvsp[(1) - (1)].decl); }
    80088013    break;
    80098014
    8010   case 558:
    8011 
    8012 /* Line 1806 of yacc.c  */
    8013 #line 2153 "parser.yy"
     8015  case 561:
     8016
     8017/* Line 1806 of yacc.c  */
     8018#line 2160 "parser.yy"
    80148019    { delete (yyvsp[(1) - (1)].decl); }
    80158020    break;
    80168021
    8017   case 559:
    8018 
    8019 /* Line 1806 of yacc.c  */
    8020 #line 2154 "parser.yy"
     8022  case 562:
     8023
     8024/* Line 1806 of yacc.c  */
     8025#line 2161 "parser.yy"
    80218026    { delete (yyvsp[(1) - (1)].decl); }
    80228027    break;
    80238028
    8024   case 560:
    8025 
    8026 /* Line 1806 of yacc.c  */
    8027 #line 2189 "parser.yy"
     8029  case 563:
     8030
     8031/* Line 1806 of yacc.c  */
     8032#line 2196 "parser.yy"
    80288033    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80298034    break;
    80308035
    8031   case 562:
    8032 
    8033 /* Line 1806 of yacc.c  */
    8034 #line 2192 "parser.yy"
     8036  case 565:
     8037
     8038/* Line 1806 of yacc.c  */
     8039#line 2199 "parser.yy"
    80358040    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80368041    break;
    80378042
    8038   case 563:
    8039 
    8040 /* Line 1806 of yacc.c  */
    8041 #line 2194 "parser.yy"
     8043  case 566:
     8044
     8045/* Line 1806 of yacc.c  */
     8046#line 2201 "parser.yy"
    80428047    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80438048    break;
    80448049
    8045   case 564:
    8046 
    8047 /* Line 1806 of yacc.c  */
    8048 #line 2199 "parser.yy"
     8050  case 567:
     8051
     8052/* Line 1806 of yacc.c  */
     8053#line 2206 "parser.yy"
    80498054    {
    80508055                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80538058    break;
    80548059
    8055   case 565:
    8056 
    8057 /* Line 1806 of yacc.c  */
    8058 #line 2204 "parser.yy"
     8060  case 568:
     8061
     8062/* Line 1806 of yacc.c  */
     8063#line 2211 "parser.yy"
    80598064    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80608065    break;
    80618066
    8062   case 566:
    8063 
    8064 /* Line 1806 of yacc.c  */
    8065 #line 2209 "parser.yy"
     8067  case 569:
     8068
     8069/* Line 1806 of yacc.c  */
     8070#line 2216 "parser.yy"
    80668071    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80678072    break;
    80688073
    8069   case 567:
    8070 
    8071 /* Line 1806 of yacc.c  */
    8072 #line 2211 "parser.yy"
     8074  case 570:
     8075
     8076/* Line 1806 of yacc.c  */
     8077#line 2218 "parser.yy"
    80738078    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80748079    break;
    80758080
    8076   case 568:
    8077 
    8078 /* Line 1806 of yacc.c  */
    8079 #line 2213 "parser.yy"
     8081  case 571:
     8082
     8083/* Line 1806 of yacc.c  */
     8084#line 2220 "parser.yy"
    80808085    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80818086    break;
    80828087
    8083   case 569:
    8084 
    8085 /* Line 1806 of yacc.c  */
    8086 #line 2218 "parser.yy"
     8088  case 572:
     8089
     8090/* Line 1806 of yacc.c  */
     8091#line 2225 "parser.yy"
    80878092    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80888093    break;
    80898094
    8090   case 570:
    8091 
    8092 /* Line 1806 of yacc.c  */
    8093 #line 2220 "parser.yy"
     8095  case 573:
     8096
     8097/* Line 1806 of yacc.c  */
     8098#line 2227 "parser.yy"
    80948099    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80958100    break;
    80968101
    8097   case 571:
    8098 
    8099 /* Line 1806 of yacc.c  */
    8100 #line 2222 "parser.yy"
     8102  case 574:
     8103
     8104/* Line 1806 of yacc.c  */
     8105#line 2229 "parser.yy"
    81018106    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81028107    break;
    81038108
    8104   case 572:
    8105 
    8106 /* Line 1806 of yacc.c  */
    8107 #line 2224 "parser.yy"
    8108     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8109     break;
    8110 
    8111   case 573:
    8112 
    8113 /* Line 1806 of yacc.c  */
    8114 #line 2229 "parser.yy"
    8115     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8116     break;
    8117 
    8118   case 574:
     8109  case 575:
    81198110
    81208111/* Line 1806 of yacc.c  */
     
    81238114    break;
    81248115
    8125   case 575:
    8126 
    8127 /* Line 1806 of yacc.c  */
    8128 #line 2240 "parser.yy"
     8116  case 576:
     8117
     8118/* Line 1806 of yacc.c  */
     8119#line 2236 "parser.yy"
     8120    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8121    break;
     8122
     8123  case 577:
     8124
     8125/* Line 1806 of yacc.c  */
     8126#line 2238 "parser.yy"
     8127    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8128    break;
     8129
     8130  case 578:
     8131
     8132/* Line 1806 of yacc.c  */
     8133#line 2247 "parser.yy"
    81298134    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81308135    break;
    81318136
    8132   case 577:
    8133 
    8134 /* Line 1806 of yacc.c  */
    8135 #line 2243 "parser.yy"
     8137  case 580:
     8138
     8139/* Line 1806 of yacc.c  */
     8140#line 2250 "parser.yy"
    81368141    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81378142    break;
    81388143
    8139   case 578:
    8140 
    8141 /* Line 1806 of yacc.c  */
    8142 #line 2248 "parser.yy"
     8144  case 581:
     8145
     8146/* Line 1806 of yacc.c  */
     8147#line 2255 "parser.yy"
    81438148    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81448149    break;
    81458150
    8146   case 579:
    8147 
    8148 /* Line 1806 of yacc.c  */
    8149 #line 2250 "parser.yy"
     8151  case 582:
     8152
     8153/* Line 1806 of yacc.c  */
     8154#line 2257 "parser.yy"
    81508155    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81518156    break;
    81528157
    8153   case 580:
    8154 
    8155 /* Line 1806 of yacc.c  */
    8156 #line 2252 "parser.yy"
     8158  case 583:
     8159
     8160/* Line 1806 of yacc.c  */
     8161#line 2259 "parser.yy"
    81578162    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81588163    break;
    81598164
    8160   case 581:
    8161 
    8162 /* Line 1806 of yacc.c  */
    8163 #line 2257 "parser.yy"
     8165  case 584:
     8166
     8167/* Line 1806 of yacc.c  */
     8168#line 2264 "parser.yy"
    81648169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81658170    break;
    81668171
    8167   case 582:
    8168 
    8169 /* Line 1806 of yacc.c  */
    8170 #line 2259 "parser.yy"
     8172  case 585:
     8173
     8174/* Line 1806 of yacc.c  */
     8175#line 2266 "parser.yy"
    81718176    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81728177    break;
    81738178
    8174   case 583:
    8175 
    8176 /* Line 1806 of yacc.c  */
    8177 #line 2261 "parser.yy"
     8179  case 586:
     8180
     8181/* Line 1806 of yacc.c  */
     8182#line 2268 "parser.yy"
    81788183    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81798184    break;
    81808185
    8181   case 584:
    8182 
    8183 /* Line 1806 of yacc.c  */
    8184 #line 2266 "parser.yy"
     8186  case 587:
     8187
     8188/* Line 1806 of yacc.c  */
     8189#line 2273 "parser.yy"
    81858190    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81868191    break;
    81878192
    8188   case 585:
    8189 
    8190 /* Line 1806 of yacc.c  */
    8191 #line 2268 "parser.yy"
     8193  case 588:
     8194
     8195/* Line 1806 of yacc.c  */
     8196#line 2275 "parser.yy"
    81928197    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81938198    break;
    81948199
    8195   case 586:
    8196 
    8197 /* Line 1806 of yacc.c  */
    8198 #line 2270 "parser.yy"
     8200  case 589:
     8201
     8202/* Line 1806 of yacc.c  */
     8203#line 2277 "parser.yy"
    81998204    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82008205    break;
    82018206
    8202   case 590:
    8203 
    8204 /* Line 1806 of yacc.c  */
    8205 #line 2285 "parser.yy"
     8207  case 593:
     8208
     8209/* Line 1806 of yacc.c  */
     8210#line 2292 "parser.yy"
    82068211    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    82078212    break;
    82088213
    8209   case 591:
    8210 
    8211 /* Line 1806 of yacc.c  */
    8212 #line 2287 "parser.yy"
     8214  case 594:
     8215
     8216/* Line 1806 of yacc.c  */
     8217#line 2294 "parser.yy"
    82138218    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    82148219    break;
    82158220
    8216   case 592:
    8217 
    8218 /* Line 1806 of yacc.c  */
    8219 #line 2289 "parser.yy"
     8221  case 595:
     8222
     8223/* Line 1806 of yacc.c  */
     8224#line 2296 "parser.yy"
    82208225    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82218226    break;
    82228227
    8223   case 593:
    8224 
    8225 /* Line 1806 of yacc.c  */
    8226 #line 2294 "parser.yy"
     8228  case 596:
     8229
     8230/* Line 1806 of yacc.c  */
     8231#line 2301 "parser.yy"
    82278232    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82288233    break;
    82298234
    8230   case 594:
    8231 
    8232 /* Line 1806 of yacc.c  */
    8233 #line 2296 "parser.yy"
     8235  case 597:
     8236
     8237/* Line 1806 of yacc.c  */
     8238#line 2303 "parser.yy"
    82348239    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82358240    break;
    82368241
    8237   case 595:
    8238 
    8239 /* Line 1806 of yacc.c  */
    8240 #line 2298 "parser.yy"
     8242  case 598:
     8243
     8244/* Line 1806 of yacc.c  */
     8245#line 2305 "parser.yy"
    82418246    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82428247    break;
    82438248
    8244   case 596:
    8245 
    8246 /* Line 1806 of yacc.c  */
    8247 #line 2303 "parser.yy"
     8249  case 599:
     8250
     8251/* Line 1806 of yacc.c  */
     8252#line 2310 "parser.yy"
    82488253    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82498254    break;
    82508255
    8251   case 597:
    8252 
    8253 /* Line 1806 of yacc.c  */
    8254 #line 2305 "parser.yy"
     8256  case 600:
     8257
     8258/* Line 1806 of yacc.c  */
     8259#line 2312 "parser.yy"
    82558260    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82568261    break;
    82578262
    8258   case 598:
    8259 
    8260 /* Line 1806 of yacc.c  */
    8261 #line 2307 "parser.yy"
     8263  case 601:
     8264
     8265/* Line 1806 of yacc.c  */
     8266#line 2314 "parser.yy"
    82628267    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82638268    break;
    82648269
    8265   case 599:
    8266 
    8267 /* Line 1806 of yacc.c  */
    8268 #line 2322 "parser.yy"
     8270  case 602:
     8271
     8272/* Line 1806 of yacc.c  */
     8273#line 2329 "parser.yy"
    82698274    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82708275    break;
    82718276
    8272   case 601:
    8273 
    8274 /* Line 1806 of yacc.c  */
    8275 #line 2325 "parser.yy"
     8277  case 604:
     8278
     8279/* Line 1806 of yacc.c  */
     8280#line 2332 "parser.yy"
    82768281    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82778282    break;
    82788283
    8279   case 602:
    8280 
    8281 /* Line 1806 of yacc.c  */
    8282 #line 2327 "parser.yy"
     8284  case 605:
     8285
     8286/* Line 1806 of yacc.c  */
     8287#line 2334 "parser.yy"
    82838288    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82848289    break;
    82858290
    8286   case 604:
    8287 
    8288 /* Line 1806 of yacc.c  */
    8289 #line 2333 "parser.yy"
     8291  case 607:
     8292
     8293/* Line 1806 of yacc.c  */
     8294#line 2340 "parser.yy"
    82908295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82918296    break;
    82928297
    8293   case 605:
    8294 
    8295 /* Line 1806 of yacc.c  */
    8296 #line 2338 "parser.yy"
     8298  case 608:
     8299
     8300/* Line 1806 of yacc.c  */
     8301#line 2345 "parser.yy"
    82978302    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82988303    break;
    82998304
    8300   case 606:
    8301 
    8302 /* Line 1806 of yacc.c  */
    8303 #line 2340 "parser.yy"
     8305  case 609:
     8306
     8307/* Line 1806 of yacc.c  */
     8308#line 2347 "parser.yy"
    83048309    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83058310    break;
    83068311
    8307   case 607:
    8308 
    8309 /* Line 1806 of yacc.c  */
    8310 #line 2342 "parser.yy"
     8312  case 610:
     8313
     8314/* Line 1806 of yacc.c  */
     8315#line 2349 "parser.yy"
    83118316    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83128317    break;
    83138318
    8314   case 608:
    8315 
    8316 /* Line 1806 of yacc.c  */
    8317 #line 2347 "parser.yy"
     8319  case 611:
     8320
     8321/* Line 1806 of yacc.c  */
     8322#line 2354 "parser.yy"
    83188323    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83198324    break;
    83208325
    8321   case 609:
    8322 
    8323 /* Line 1806 of yacc.c  */
    8324 #line 2349 "parser.yy"
     8326  case 612:
     8327
     8328/* Line 1806 of yacc.c  */
     8329#line 2356 "parser.yy"
    83258330    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83268331    break;
    83278332
    8328   case 610:
    8329 
    8330 /* Line 1806 of yacc.c  */
    8331 #line 2351 "parser.yy"
     8333  case 613:
     8334
     8335/* Line 1806 of yacc.c  */
     8336#line 2358 "parser.yy"
    83328337    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83338338    break;
    83348339
    8335   case 611:
    8336 
    8337 /* Line 1806 of yacc.c  */
    8338 #line 2353 "parser.yy"
     8340  case 614:
     8341
     8342/* Line 1806 of yacc.c  */
     8343#line 2360 "parser.yy"
    83398344    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83408345    break;
    83418346
    8342   case 612:
    8343 
    8344 /* Line 1806 of yacc.c  */
    8345 #line 2358 "parser.yy"
     8347  case 615:
     8348
     8349/* Line 1806 of yacc.c  */
     8350#line 2365 "parser.yy"
    83468351    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83478352    break;
    83488353
    8349   case 613:
    8350 
    8351 /* Line 1806 of yacc.c  */
    8352 #line 2360 "parser.yy"
     8354  case 616:
     8355
     8356/* Line 1806 of yacc.c  */
     8357#line 2367 "parser.yy"
    83538358    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83548359    break;
    83558360
    8356   case 614:
    8357 
    8358 /* Line 1806 of yacc.c  */
    8359 #line 2362 "parser.yy"
     8361  case 617:
     8362
     8363/* Line 1806 of yacc.c  */
     8364#line 2369 "parser.yy"
    83608365    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83618366    break;
    83628367
    8363   case 615:
    8364 
    8365 /* Line 1806 of yacc.c  */
    8366 #line 2372 "parser.yy"
     8368  case 618:
     8369
     8370/* Line 1806 of yacc.c  */
     8371#line 2379 "parser.yy"
    83678372    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83688373    break;
    83698374
    8370   case 617:
    8371 
    8372 /* Line 1806 of yacc.c  */
    8373 #line 2375 "parser.yy"
     8375  case 620:
     8376
     8377/* Line 1806 of yacc.c  */
     8378#line 2382 "parser.yy"
    83748379    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83758380    break;
    83768381
    8377   case 618:
    8378 
    8379 /* Line 1806 of yacc.c  */
    8380 #line 2377 "parser.yy"
     8382  case 621:
     8383
     8384/* Line 1806 of yacc.c  */
     8385#line 2384 "parser.yy"
    83818386    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83828387    break;
    83838388
    8384   case 619:
    8385 
    8386 /* Line 1806 of yacc.c  */
    8387 #line 2382 "parser.yy"
     8389  case 622:
     8390
     8391/* Line 1806 of yacc.c  */
     8392#line 2389 "parser.yy"
    83888393    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83898394    break;
    83908395
    8391   case 620:
    8392 
    8393 /* Line 1806 of yacc.c  */
    8394 #line 2384 "parser.yy"
     8396  case 623:
     8397
     8398/* Line 1806 of yacc.c  */
     8399#line 2391 "parser.yy"
    83958400    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83968401    break;
    83978402
    8398   case 621:
    8399 
    8400 /* Line 1806 of yacc.c  */
    8401 #line 2386 "parser.yy"
     8403  case 624:
     8404
     8405/* Line 1806 of yacc.c  */
     8406#line 2393 "parser.yy"
    84028407    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84038408    break;
    84048409
    8405   case 622:
    8406 
    8407 /* Line 1806 of yacc.c  */
    8408 #line 2391 "parser.yy"
     8410  case 625:
     8411
     8412/* Line 1806 of yacc.c  */
     8413#line 2398 "parser.yy"
    84098414    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84108415    break;
    84118416
    8412   case 623:
    8413 
    8414 /* Line 1806 of yacc.c  */
    8415 #line 2393 "parser.yy"
     8417  case 626:
     8418
     8419/* Line 1806 of yacc.c  */
     8420#line 2400 "parser.yy"
    84168421    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84178422    break;
    84188423
    8419   case 624:
    8420 
    8421 /* Line 1806 of yacc.c  */
    8422 #line 2395 "parser.yy"
     8424  case 627:
     8425
     8426/* Line 1806 of yacc.c  */
     8427#line 2402 "parser.yy"
    84238428    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84248429    break;
    84258430
    8426   case 625:
    8427 
    8428 /* Line 1806 of yacc.c  */
    8429 #line 2397 "parser.yy"
     8431  case 628:
     8432
     8433/* Line 1806 of yacc.c  */
     8434#line 2404 "parser.yy"
    84308435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84318436    break;
    84328437
    8433   case 626:
    8434 
    8435 /* Line 1806 of yacc.c  */
    8436 #line 2402 "parser.yy"
     8438  case 629:
     8439
     8440/* Line 1806 of yacc.c  */
     8441#line 2409 "parser.yy"
    84378442    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84388443    break;
    84398444
    8440   case 627:
    8441 
    8442 /* Line 1806 of yacc.c  */
    8443 #line 2404 "parser.yy"
     8445  case 630:
     8446
     8447/* Line 1806 of yacc.c  */
     8448#line 2411 "parser.yy"
    84448449    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84458450    break;
    84468451
    8447   case 628:
    8448 
    8449 /* Line 1806 of yacc.c  */
    8450 #line 2406 "parser.yy"
     8452  case 631:
     8453
     8454/* Line 1806 of yacc.c  */
     8455#line 2413 "parser.yy"
    84518456    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84528457    break;
    84538458
    8454   case 629:
    8455 
    8456 /* Line 1806 of yacc.c  */
    8457 #line 2437 "parser.yy"
     8459  case 632:
     8460
     8461/* Line 1806 of yacc.c  */
     8462#line 2444 "parser.yy"
    84588463    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84598464    break;
    84608465
    8461   case 631:
    8462 
    8463 /* Line 1806 of yacc.c  */
    8464 #line 2440 "parser.yy"
     8466  case 634:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2447 "parser.yy"
    84658470    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84668471    break;
    84678472
    8468   case 632:
    8469 
    8470 /* Line 1806 of yacc.c  */
    8471 #line 2442 "parser.yy"
     8473  case 635:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2449 "parser.yy"
    84728477    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84738478    break;
    84748479
    8475   case 633:
    8476 
    8477 /* Line 1806 of yacc.c  */
    8478 #line 2447 "parser.yy"
     8480  case 636:
     8481
     8482/* Line 1806 of yacc.c  */
     8483#line 2454 "parser.yy"
    84798484    {
    84808485                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84838488    break;
    84848489
    8485   case 634:
    8486 
    8487 /* Line 1806 of yacc.c  */
    8488 #line 2452 "parser.yy"
     8490  case 637:
     8491
     8492/* Line 1806 of yacc.c  */
     8493#line 2459 "parser.yy"
    84898494    {
    84908495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84938498    break;
    84948499
    8495   case 635:
    8496 
    8497 /* Line 1806 of yacc.c  */
    8498 #line 2460 "parser.yy"
     8500  case 638:
     8501
     8502/* Line 1806 of yacc.c  */
     8503#line 2467 "parser.yy"
    84998504    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85008505    break;
    85018506
    8502   case 636:
    8503 
    8504 /* Line 1806 of yacc.c  */
    8505 #line 2462 "parser.yy"
     8507  case 639:
     8508
     8509/* Line 1806 of yacc.c  */
     8510#line 2469 "parser.yy"
    85068511    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85078512    break;
    85088513
    8509   case 637:
    8510 
    8511 /* Line 1806 of yacc.c  */
    8512 #line 2464 "parser.yy"
     8514  case 640:
     8515
     8516/* Line 1806 of yacc.c  */
     8517#line 2471 "parser.yy"
    85138518    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85148519    break;
    85158520
    8516   case 638:
    8517 
    8518 /* Line 1806 of yacc.c  */
    8519 #line 2469 "parser.yy"
     8521  case 641:
     8522
     8523/* Line 1806 of yacc.c  */
     8524#line 2476 "parser.yy"
    85208525    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85218526    break;
    85228527
    8523   case 639:
    8524 
    8525 /* Line 1806 of yacc.c  */
    8526 #line 2471 "parser.yy"
     8528  case 642:
     8529
     8530/* Line 1806 of yacc.c  */
     8531#line 2478 "parser.yy"
    85278532    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85288533    break;
    85298534
    8530   case 640:
    8531 
    8532 /* Line 1806 of yacc.c  */
    8533 #line 2476 "parser.yy"
     8535  case 643:
     8536
     8537/* Line 1806 of yacc.c  */
     8538#line 2483 "parser.yy"
    85348539    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85358540    break;
    85368541
    8537   case 641:
    8538 
    8539 /* Line 1806 of yacc.c  */
    8540 #line 2478 "parser.yy"
     8542  case 644:
     8543
     8544/* Line 1806 of yacc.c  */
     8545#line 2485 "parser.yy"
    85418546    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85428547    break;
    85438548
    8544   case 643:
    8545 
    8546 /* Line 1806 of yacc.c  */
    8547 #line 2493 "parser.yy"
     8549  case 646:
     8550
     8551/* Line 1806 of yacc.c  */
     8552#line 2500 "parser.yy"
    85488553    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85498554    break;
    85508555
    8551   case 644:
    8552 
    8553 /* Line 1806 of yacc.c  */
    8554 #line 2495 "parser.yy"
     8556  case 647:
     8557
     8558/* Line 1806 of yacc.c  */
     8559#line 2502 "parser.yy"
    85558560    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85568561    break;
    85578562
    8558   case 645:
    8559 
    8560 /* Line 1806 of yacc.c  */
    8561 #line 2500 "parser.yy"
     8563  case 648:
     8564
     8565/* Line 1806 of yacc.c  */
     8566#line 2507 "parser.yy"
    85628567    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85638568    break;
    85648569
    8565   case 646:
    8566 
    8567 /* Line 1806 of yacc.c  */
    8568 #line 2502 "parser.yy"
     8570  case 649:
     8571
     8572/* Line 1806 of yacc.c  */
     8573#line 2509 "parser.yy"
    85698574    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85708575    break;
    85718576
    8572   case 647:
    8573 
    8574 /* Line 1806 of yacc.c  */
    8575 #line 2504 "parser.yy"
     8577  case 650:
     8578
     8579/* Line 1806 of yacc.c  */
     8580#line 2511 "parser.yy"
    85768581    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85778582    break;
    85788583
    8579   case 648:
    8580 
    8581 /* Line 1806 of yacc.c  */
    8582 #line 2506 "parser.yy"
     8584  case 651:
     8585
     8586/* Line 1806 of yacc.c  */
     8587#line 2513 "parser.yy"
    85838588    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85848589    break;
    85858590
    8586   case 649:
    8587 
    8588 /* Line 1806 of yacc.c  */
    8589 #line 2508 "parser.yy"
     8591  case 652:
     8592
     8593/* Line 1806 of yacc.c  */
     8594#line 2515 "parser.yy"
    85908595    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85918596    break;
    85928597
    8593   case 651:
    8594 
    8595 /* Line 1806 of yacc.c  */
    8596 #line 2514 "parser.yy"
     8598  case 654:
     8599
     8600/* Line 1806 of yacc.c  */
     8601#line 2521 "parser.yy"
    85978602    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85988603    break;
    85998604
    8600   case 652:
    8601 
    8602 /* Line 1806 of yacc.c  */
    8603 #line 2516 "parser.yy"
     8605  case 655:
     8606
     8607/* Line 1806 of yacc.c  */
     8608#line 2523 "parser.yy"
    86048609    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86058610    break;
    86068611
    8607   case 653:
    8608 
    8609 /* Line 1806 of yacc.c  */
    8610 #line 2518 "parser.yy"
     8612  case 656:
     8613
     8614/* Line 1806 of yacc.c  */
     8615#line 2525 "parser.yy"
    86118616    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86128617    break;
    86138618
    8614   case 654:
    8615 
    8616 /* Line 1806 of yacc.c  */
    8617 #line 2523 "parser.yy"
     8619  case 657:
     8620
     8621/* Line 1806 of yacc.c  */
     8622#line 2530 "parser.yy"
    86188623    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    86198624    break;
    86208625
    8621   case 655:
    8622 
    8623 /* Line 1806 of yacc.c  */
    8624 #line 2525 "parser.yy"
     8626  case 658:
     8627
     8628/* Line 1806 of yacc.c  */
     8629#line 2532 "parser.yy"
    86258630    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86268631    break;
    86278632
    8628   case 656:
    8629 
    8630 /* Line 1806 of yacc.c  */
    8631 #line 2527 "parser.yy"
     8633  case 659:
     8634
     8635/* Line 1806 of yacc.c  */
     8636#line 2534 "parser.yy"
    86328637    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86338638    break;
    86348639
    8635   case 657:
    8636 
    8637 /* Line 1806 of yacc.c  */
    8638 #line 2533 "parser.yy"
     8640  case 660:
     8641
     8642/* Line 1806 of yacc.c  */
     8643#line 2540 "parser.yy"
    86398644    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86408645    break;
    86418646
    8642   case 658:
    8643 
    8644 /* Line 1806 of yacc.c  */
    8645 #line 2535 "parser.yy"
     8647  case 661:
     8648
     8649/* Line 1806 of yacc.c  */
     8650#line 2542 "parser.yy"
    86468651    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86478652    break;
    86488653
    8649   case 660:
    8650 
    8651 /* Line 1806 of yacc.c  */
    8652 #line 2541 "parser.yy"
     8654  case 663:
     8655
     8656/* Line 1806 of yacc.c  */
     8657#line 2548 "parser.yy"
    86538658    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86548659    break;
    86558660
    8656   case 661:
    8657 
    8658 /* Line 1806 of yacc.c  */
    8659 #line 2543 "parser.yy"
     8661  case 664:
     8662
     8663/* Line 1806 of yacc.c  */
     8664#line 2550 "parser.yy"
    86608665    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86618666    break;
    86628667
    8663   case 662:
    8664 
    8665 /* Line 1806 of yacc.c  */
    8666 #line 2545 "parser.yy"
     8668  case 665:
     8669
     8670/* Line 1806 of yacc.c  */
     8671#line 2552 "parser.yy"
    86678672    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86688673    break;
    86698674
    8670   case 663:
    8671 
    8672 /* Line 1806 of yacc.c  */
    8673 #line 2547 "parser.yy"
     8675  case 666:
     8676
     8677/* Line 1806 of yacc.c  */
     8678#line 2554 "parser.yy"
    86748679    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86758680    break;
    86768681
    8677   case 665:
    8678 
    8679 /* Line 1806 of yacc.c  */
    8680 #line 2562 "parser.yy"
     8682  case 668:
     8683
     8684/* Line 1806 of yacc.c  */
     8685#line 2569 "parser.yy"
    86818686    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86828687    break;
    86838688
    8684   case 666:
    8685 
    8686 /* Line 1806 of yacc.c  */
    8687 #line 2564 "parser.yy"
     8689  case 669:
     8690
     8691/* Line 1806 of yacc.c  */
     8692#line 2571 "parser.yy"
    86888693    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86898694    break;
    86908695
    8691   case 667:
    8692 
    8693 /* Line 1806 of yacc.c  */
    8694 #line 2569 "parser.yy"
     8696  case 670:
     8697
     8698/* Line 1806 of yacc.c  */
     8699#line 2576 "parser.yy"
    86958700    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86968701    break;
    86978702
    8698   case 668:
    8699 
    8700 /* Line 1806 of yacc.c  */
    8701 #line 2571 "parser.yy"
     8703  case 671:
     8704
     8705/* Line 1806 of yacc.c  */
     8706#line 2578 "parser.yy"
    87028707    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87038708    break;
    87048709
    8705   case 669:
    8706 
    8707 /* Line 1806 of yacc.c  */
    8708 #line 2573 "parser.yy"
     8710  case 672:
     8711
     8712/* Line 1806 of yacc.c  */
     8713#line 2580 "parser.yy"
    87098714    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87108715    break;
    87118716
    8712   case 670:
    8713 
    8714 /* Line 1806 of yacc.c  */
    8715 #line 2575 "parser.yy"
     8717  case 673:
     8718
     8719/* Line 1806 of yacc.c  */
     8720#line 2582 "parser.yy"
    87168721    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87178722    break;
    87188723
    8719   case 671:
    8720 
    8721 /* Line 1806 of yacc.c  */
    8722 #line 2577 "parser.yy"
     8724  case 674:
     8725
     8726/* Line 1806 of yacc.c  */
     8727#line 2584 "parser.yy"
    87238728    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87248729    break;
    87258730
    8726   case 673:
    8727 
    8728 /* Line 1806 of yacc.c  */
    8729 #line 2583 "parser.yy"
     8731  case 676:
     8732
     8733/* Line 1806 of yacc.c  */
     8734#line 2590 "parser.yy"
    87308735    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87318736    break;
    87328737
    8733   case 674:
    8734 
    8735 /* Line 1806 of yacc.c  */
    8736 #line 2585 "parser.yy"
     8738  case 677:
     8739
     8740/* Line 1806 of yacc.c  */
     8741#line 2592 "parser.yy"
    87378742    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87388743    break;
    87398744
    8740   case 675:
    8741 
    8742 /* Line 1806 of yacc.c  */
    8743 #line 2587 "parser.yy"
     8745  case 678:
     8746
     8747/* Line 1806 of yacc.c  */
     8748#line 2594 "parser.yy"
    87448749    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87458750    break;
    87468751
    8747   case 676:
    8748 
    8749 /* Line 1806 of yacc.c  */
    8750 #line 2592 "parser.yy"
     8752  case 679:
     8753
     8754/* Line 1806 of yacc.c  */
     8755#line 2599 "parser.yy"
    87518756    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    87528757    break;
    87538758
    8754   case 677:
    8755 
    8756 /* Line 1806 of yacc.c  */
    8757 #line 2594 "parser.yy"
     8759  case 680:
     8760
     8761/* Line 1806 of yacc.c  */
     8762#line 2601 "parser.yy"
    87588763    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87598764    break;
    87608765
    8761   case 678:
    8762 
    8763 /* Line 1806 of yacc.c  */
    8764 #line 2596 "parser.yy"
     8766  case 681:
     8767
     8768/* Line 1806 of yacc.c  */
     8769#line 2603 "parser.yy"
    87658770    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87668771    break;
    87678772
    8768   case 680:
    8769 
    8770 /* Line 1806 of yacc.c  */
    8771 #line 2603 "parser.yy"
     8773  case 683:
     8774
     8775/* Line 1806 of yacc.c  */
     8776#line 2610 "parser.yy"
    87728777    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87738778    break;
    87748779
    8775   case 682:
    8776 
    8777 /* Line 1806 of yacc.c  */
    8778 #line 2614 "parser.yy"
     8780  case 685:
     8781
     8782/* Line 1806 of yacc.c  */
     8783#line 2621 "parser.yy"
    87798784    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87808785    break;
    87818786
    8782   case 683:
    8783 
    8784 /* Line 1806 of yacc.c  */
    8785 #line 2617 "parser.yy"
     8787  case 686:
     8788
     8789/* Line 1806 of yacc.c  */
     8790#line 2624 "parser.yy"
    87868791    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87878792    break;
    87888793
    8789   case 684:
    8790 
    8791 /* Line 1806 of yacc.c  */
    8792 #line 2619 "parser.yy"
     8794  case 687:
     8795
     8796/* Line 1806 of yacc.c  */
     8797#line 2626 "parser.yy"
    87938798    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87948799    break;
    87958800
    8796   case 685:
    8797 
    8798 /* Line 1806 of yacc.c  */
    8799 #line 2622 "parser.yy"
     8801  case 688:
     8802
     8803/* Line 1806 of yacc.c  */
     8804#line 2629 "parser.yy"
    88008805    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88018806    break;
    88028807
    8803   case 686:
    8804 
    8805 /* Line 1806 of yacc.c  */
    8806 #line 2624 "parser.yy"
     8808  case 689:
     8809
     8810/* Line 1806 of yacc.c  */
     8811#line 2631 "parser.yy"
    88078812    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    88088813    break;
    88098814
    8810   case 687:
    8811 
    8812 /* Line 1806 of yacc.c  */
    8813 #line 2626 "parser.yy"
     8815  case 690:
     8816
     8817/* Line 1806 of yacc.c  */
     8818#line 2633 "parser.yy"
    88148819    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88158820    break;
    88168821
    8817   case 689:
    8818 
    8819 /* Line 1806 of yacc.c  */
    8820 #line 2640 "parser.yy"
     8822  case 692:
     8823
     8824/* Line 1806 of yacc.c  */
     8825#line 2647 "parser.yy"
    88218826    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88228827    break;
    88238828
    8824   case 690:
    8825 
    8826 /* Line 1806 of yacc.c  */
    8827 #line 2642 "parser.yy"
     8829  case 693:
     8830
     8831/* Line 1806 of yacc.c  */
     8832#line 2649 "parser.yy"
    88288833    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88298834    break;
    88308835
    8831   case 691:
    8832 
    8833 /* Line 1806 of yacc.c  */
    8834 #line 2647 "parser.yy"
     8836  case 694:
     8837
     8838/* Line 1806 of yacc.c  */
     8839#line 2654 "parser.yy"
    88358840    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88368841    break;
    88378842
    8838   case 692:
    8839 
    8840 /* Line 1806 of yacc.c  */
    8841 #line 2649 "parser.yy"
     8843  case 695:
     8844
     8845/* Line 1806 of yacc.c  */
     8846#line 2656 "parser.yy"
    88428847    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88438848    break;
    88448849
    8845   case 693:
    8846 
    8847 /* Line 1806 of yacc.c  */
    8848 #line 2651 "parser.yy"
     8850  case 696:
     8851
     8852/* Line 1806 of yacc.c  */
     8853#line 2658 "parser.yy"
    88498854    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88508855    break;
    88518856
    8852   case 694:
    8853 
    8854 /* Line 1806 of yacc.c  */
    8855 #line 2653 "parser.yy"
     8857  case 697:
     8858
     8859/* Line 1806 of yacc.c  */
     8860#line 2660 "parser.yy"
    88568861    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88578862    break;
    88588863
    8859   case 695:
    8860 
    8861 /* Line 1806 of yacc.c  */
    8862 #line 2655 "parser.yy"
     8864  case 698:
     8865
     8866/* Line 1806 of yacc.c  */
     8867#line 2662 "parser.yy"
    88638868    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88648869    break;
    88658870
    8866   case 697:
    8867 
    8868 /* Line 1806 of yacc.c  */
    8869 #line 2661 "parser.yy"
     8871  case 700:
     8872
     8873/* Line 1806 of yacc.c  */
     8874#line 2668 "parser.yy"
    88708875    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88718876    break;
    88728877
    8873   case 698:
    8874 
    8875 /* Line 1806 of yacc.c  */
    8876 #line 2663 "parser.yy"
     8878  case 701:
     8879
     8880/* Line 1806 of yacc.c  */
     8881#line 2670 "parser.yy"
    88778882    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88788883    break;
    88798884
    8880   case 699:
    8881 
    8882 /* Line 1806 of yacc.c  */
    8883 #line 2665 "parser.yy"
    8884     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8885     break;
    8886 
    8887   case 700:
    8888 
    8889 /* Line 1806 of yacc.c  */
    8890 #line 2670 "parser.yy"
    8891     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8892     break;
    8893 
    8894   case 701:
     8885  case 702:
    88958886
    88968887/* Line 1806 of yacc.c  */
     
    88998890    break;
    89008891
     8892  case 703:
     8893
     8894/* Line 1806 of yacc.c  */
     8895#line 2677 "parser.yy"
     8896    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8897    break;
     8898
    89018899  case 704:
    89028900
    89038901/* Line 1806 of yacc.c  */
    8904 #line 2682 "parser.yy"
     8902#line 2679 "parser.yy"
     8903    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8904    break;
     8905
     8906  case 707:
     8907
     8908/* Line 1806 of yacc.c  */
     8909#line 2689 "parser.yy"
    89058910    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89068911    break;
    89078912
    8908   case 707:
    8909 
    8910 /* Line 1806 of yacc.c  */
    8911 #line 2692 "parser.yy"
     8913  case 710:
     8914
     8915/* Line 1806 of yacc.c  */
     8916#line 2699 "parser.yy"
    89128917    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89138918    break;
    89148919
    8915   case 708:
    8916 
    8917 /* Line 1806 of yacc.c  */
    8918 #line 2694 "parser.yy"
     8920  case 711:
     8921
     8922/* Line 1806 of yacc.c  */
     8923#line 2701 "parser.yy"
    89198924    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89208925    break;
    89218926
    8922   case 709:
    8923 
    8924 /* Line 1806 of yacc.c  */
    8925 #line 2696 "parser.yy"
     8927  case 712:
     8928
     8929/* Line 1806 of yacc.c  */
     8930#line 2703 "parser.yy"
    89268931    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89278932    break;
    89288933
    8929   case 710:
    8930 
    8931 /* Line 1806 of yacc.c  */
    8932 #line 2698 "parser.yy"
     8934  case 713:
     8935
     8936/* Line 1806 of yacc.c  */
     8937#line 2705 "parser.yy"
    89338938    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89348939    break;
    89358940
    8936   case 711:
    8937 
    8938 /* Line 1806 of yacc.c  */
    8939 #line 2700 "parser.yy"
     8941  case 714:
     8942
     8943/* Line 1806 of yacc.c  */
     8944#line 2707 "parser.yy"
    89408945    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89418946    break;
    89428947
    8943   case 712:
    8944 
    8945 /* Line 1806 of yacc.c  */
    8946 #line 2702 "parser.yy"
     8948  case 715:
     8949
     8950/* Line 1806 of yacc.c  */
     8951#line 2709 "parser.yy"
    89478952    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89488953    break;
    89498954
    8950   case 713:
    8951 
    8952 /* Line 1806 of yacc.c  */
    8953 #line 2709 "parser.yy"
     8955  case 716:
     8956
     8957/* Line 1806 of yacc.c  */
     8958#line 2716 "parser.yy"
    89548959    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89558960    break;
    89568961
    8957   case 714:
    8958 
    8959 /* Line 1806 of yacc.c  */
    8960 #line 2711 "parser.yy"
     8962  case 717:
     8963
     8964/* Line 1806 of yacc.c  */
     8965#line 2718 "parser.yy"
    89618966    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89628967    break;
    89638968
    8964   case 715:
    8965 
    8966 /* Line 1806 of yacc.c  */
    8967 #line 2713 "parser.yy"
     8969  case 718:
     8970
     8971/* Line 1806 of yacc.c  */
     8972#line 2720 "parser.yy"
    89688973    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89698974    break;
    89708975
    8971   case 716:
    8972 
    8973 /* Line 1806 of yacc.c  */
    8974 #line 2715 "parser.yy"
     8976  case 719:
     8977
     8978/* Line 1806 of yacc.c  */
     8979#line 2722 "parser.yy"
    89758980    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89768981    break;
    89778982
    8978   case 717:
    8979 
    8980 /* Line 1806 of yacc.c  */
    8981 #line 2717 "parser.yy"
     8983  case 720:
     8984
     8985/* Line 1806 of yacc.c  */
     8986#line 2724 "parser.yy"
    89828987    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89838988    break;
    89848989
    8985   case 718:
    8986 
    8987 /* Line 1806 of yacc.c  */
    8988 #line 2719 "parser.yy"
     8990  case 721:
     8991
     8992/* Line 1806 of yacc.c  */
     8993#line 2726 "parser.yy"
    89898994    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89908995    break;
    89918996
    8992   case 719:
    8993 
    8994 /* Line 1806 of yacc.c  */
    8995 #line 2721 "parser.yy"
     8997  case 722:
     8998
     8999/* Line 1806 of yacc.c  */
     9000#line 2728 "parser.yy"
    89969001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89979002    break;
    89989003
    8999   case 720:
    9000 
    9001 /* Line 1806 of yacc.c  */
    9002 #line 2723 "parser.yy"
     9004  case 723:
     9005
     9006/* Line 1806 of yacc.c  */
     9007#line 2730 "parser.yy"
    90039008    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90049009    break;
    90059010
    9006   case 721:
    9007 
    9008 /* Line 1806 of yacc.c  */
    9009 #line 2725 "parser.yy"
     9011  case 724:
     9012
     9013/* Line 1806 of yacc.c  */
     9014#line 2732 "parser.yy"
    90109015    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90119016    break;
    90129017
    9013   case 722:
    9014 
    9015 /* Line 1806 of yacc.c  */
    9016 #line 2727 "parser.yy"
     9018  case 725:
     9019
     9020/* Line 1806 of yacc.c  */
     9021#line 2734 "parser.yy"
    90179022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90189023    break;
    90199024
    9020   case 723:
    9021 
    9022 /* Line 1806 of yacc.c  */
    9023 #line 2732 "parser.yy"
     9025  case 726:
     9026
     9027/* Line 1806 of yacc.c  */
     9028#line 2739 "parser.yy"
    90249029    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90259030    break;
    90269031
    9027   case 724:
    9028 
    9029 /* Line 1806 of yacc.c  */
    9030 #line 2734 "parser.yy"
     9032  case 727:
     9033
     9034/* Line 1806 of yacc.c  */
     9035#line 2741 "parser.yy"
    90319036    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90329037    break;
    90339038
    9034   case 725:
    9035 
    9036 /* Line 1806 of yacc.c  */
    9037 #line 2739 "parser.yy"
     9039  case 728:
     9040
     9041/* Line 1806 of yacc.c  */
     9042#line 2746 "parser.yy"
    90389043    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90399044    break;
    90409045
    9041   case 726:
    9042 
    9043 /* Line 1806 of yacc.c  */
    9044 #line 2741 "parser.yy"
     9046  case 729:
     9047
     9048/* Line 1806 of yacc.c  */
     9049#line 2748 "parser.yy"
    90459050    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90469051    break;
    90479052
    9048   case 728:
    9049 
    9050 /* Line 1806 of yacc.c  */
    9051 #line 2768 "parser.yy"
     9053  case 731:
     9054
     9055/* Line 1806 of yacc.c  */
     9056#line 2775 "parser.yy"
    90529057    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90539058    break;
    90549059
    9055   case 732:
    9056 
    9057 /* Line 1806 of yacc.c  */
    9058 #line 2779 "parser.yy"
     9060  case 735:
     9061
     9062/* Line 1806 of yacc.c  */
     9063#line 2786 "parser.yy"
    90599064    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90609065    break;
    90619066
    9062   case 733:
    9063 
    9064 /* Line 1806 of yacc.c  */
    9065 #line 2781 "parser.yy"
     9067  case 736:
     9068
     9069/* Line 1806 of yacc.c  */
     9070#line 2788 "parser.yy"
    90669071    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90679072    break;
    90689073
    9069   case 734:
    9070 
    9071 /* Line 1806 of yacc.c  */
    9072 #line 2783 "parser.yy"
     9074  case 737:
     9075
     9076/* Line 1806 of yacc.c  */
     9077#line 2790 "parser.yy"
    90739078    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90749079    break;
    90759080
    9076   case 735:
    9077 
    9078 /* Line 1806 of yacc.c  */
    9079 #line 2785 "parser.yy"
     9081  case 738:
     9082
     9083/* Line 1806 of yacc.c  */
     9084#line 2792 "parser.yy"
    90809085    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90819086    break;
    90829087
    9083   case 736:
    9084 
    9085 /* Line 1806 of yacc.c  */
    9086 #line 2787 "parser.yy"
     9088  case 739:
     9089
     9090/* Line 1806 of yacc.c  */
     9091#line 2794 "parser.yy"
    90879092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90889093    break;
    90899094
    9090   case 737:
    9091 
    9092 /* Line 1806 of yacc.c  */
    9093 #line 2789 "parser.yy"
     9095  case 740:
     9096
     9097/* Line 1806 of yacc.c  */
     9098#line 2796 "parser.yy"
    90949099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90959100    break;
    90969101
    9097   case 738:
    9098 
    9099 /* Line 1806 of yacc.c  */
    9100 #line 2796 "parser.yy"
     9102  case 741:
     9103
     9104/* Line 1806 of yacc.c  */
     9105#line 2803 "parser.yy"
    91019106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91029107    break;
    91039108
    9104   case 739:
    9105 
    9106 /* Line 1806 of yacc.c  */
    9107 #line 2798 "parser.yy"
     9109  case 742:
     9110
     9111/* Line 1806 of yacc.c  */
     9112#line 2805 "parser.yy"
    91089113    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91099114    break;
    91109115
    9111   case 740:
    9112 
    9113 /* Line 1806 of yacc.c  */
    9114 #line 2800 "parser.yy"
     9116  case 743:
     9117
     9118/* Line 1806 of yacc.c  */
     9119#line 2807 "parser.yy"
    91159120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91169121    break;
    91179122
    9118   case 741:
    9119 
    9120 /* Line 1806 of yacc.c  */
    9121 #line 2802 "parser.yy"
     9123  case 744:
     9124
     9125/* Line 1806 of yacc.c  */
     9126#line 2809 "parser.yy"
    91229127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91239128    break;
    91249129
    9125   case 742:
    9126 
    9127 /* Line 1806 of yacc.c  */
    9128 #line 2804 "parser.yy"
     9130  case 745:
     9131
     9132/* Line 1806 of yacc.c  */
     9133#line 2811 "parser.yy"
    91299134    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91309135    break;
    91319136
    9132   case 743:
    9133 
    9134 /* Line 1806 of yacc.c  */
    9135 #line 2806 "parser.yy"
     9137  case 746:
     9138
     9139/* Line 1806 of yacc.c  */
     9140#line 2813 "parser.yy"
    91369141    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91379142    break;
    91389143
    9139   case 744:
    9140 
    9141 /* Line 1806 of yacc.c  */
    9142 #line 2811 "parser.yy"
     9144  case 747:
     9145
     9146/* Line 1806 of yacc.c  */
     9147#line 2818 "parser.yy"
    91439148    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91449149    break;
    91459150
    9146   case 745:
    9147 
    9148 /* Line 1806 of yacc.c  */
    9149 #line 2816 "parser.yy"
     9151  case 748:
     9152
     9153/* Line 1806 of yacc.c  */
     9154#line 2823 "parser.yy"
    91509155    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    91519156    break;
    91529157
    9153   case 746:
    9154 
    9155 /* Line 1806 of yacc.c  */
    9156 #line 2818 "parser.yy"
     9158  case 749:
     9159
     9160/* Line 1806 of yacc.c  */
     9161#line 2825 "parser.yy"
    91579162    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91589163    break;
    91599164
    9160   case 747:
    9161 
    9162 /* Line 1806 of yacc.c  */
    9163 #line 2820 "parser.yy"
     9165  case 750:
     9166
     9167/* Line 1806 of yacc.c  */
     9168#line 2827 "parser.yy"
    91649169    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91659170    break;
    91669171
    9167   case 750:
    9168 
    9169 /* Line 1806 of yacc.c  */
    9170 #line 2844 "parser.yy"
     9172  case 753:
     9173
     9174/* Line 1806 of yacc.c  */
     9175#line 2851 "parser.yy"
    91719176    { (yyval.en) = 0; }
    91729177    break;
    91739178
    9174   case 751:
    9175 
    9176 /* Line 1806 of yacc.c  */
    9177 #line 2846 "parser.yy"
     9179  case 754:
     9180
     9181/* Line 1806 of yacc.c  */
     9182#line 2853 "parser.yy"
    91789183    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91799184    break;
     
    91829187
    91839188/* Line 1806 of yacc.c  */
    9184 #line 9185 "Parser/parser.cc"
     9189#line 9190 "Parser/parser.cc"
    91859190      default: break;
    91869191    }
     
    94139418
    94149419/* Line 2067 of yacc.c  */
    9415 #line 2849 "parser.yy"
     9420#line 2856 "parser.yy"
    94169421
    94179422// ----end of grammar----
  • src/Parser/parser.yy

    r4b1fd2c rfaddbd8  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Sep 24 12:16:53 2016
    13 // Update Count     : 1992
     12// Last Modified On : Wed Oct  5 14:10:46 2016
     13// Update Count     : 2002
    1414//
    1515
     
    196196%type<decl> field_declaration field_declaration_list field_declarator field_declaring_list
    197197%type<en> field field_list
     198%type<tok> field_name
    198199
    199200%type<decl> external_function_definition function_definition function_array function_declarator function_no_ptr function_ptr
     
    378379                { $$ = new ExpressionNode( build_fieldSel( $1, build_varref( $3 ) ) ); }
    379380        | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector
     381        | postfix_expression '.' INTEGERconstant
    380382        | postfix_expression ARROW no_attr_identifier
    381383                { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); }
     
    413415
    414416field:                                                                                                  // CFA, tuple field selector
    415         no_attr_identifier
    416                 { $$ = new ExpressionNode( build_varref( $1 ) ); }
     417        field_name
    417418                // ambiguity with .0 so space required after field-selection, e.g.
    418419                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    419         | no_attr_identifier '.' field
     420                { $$ = new ExpressionNode( build_varref( $1 ) ); }
     421        | field_name '.' field
    420422                { $$ = new ExpressionNode( build_fieldSel( $3, build_varref( $1 ) ) ); }
    421         | no_attr_identifier '.' '[' push field_list pop ']'
     423        | field_name '.' '[' push field_list pop ']'
    422424                { $$ = new ExpressionNode( build_fieldSel( $5, build_varref( $1 ) ) ); }
    423         | no_attr_identifier ARROW field
     425        | field_name ARROW field
    424426                { $$ = new ExpressionNode( build_pfieldSel( $3, build_varref( $1 ) ) ); }
    425         | no_attr_identifier ARROW '[' push field_list pop ']'
     427        | field_name ARROW '[' push field_list pop ']'
    426428                { $$ = new ExpressionNode( build_pfieldSel( $5, build_varref( $1 ) ) ); }
     429        ;
     430
     431field_name:
     432        no_attr_identifier
     433        | INTEGERconstant
    427434        ;
    428435
     
    20052012                {
    20062013                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    2007                         linkage = LinkageSpec::fromString( *$2 );
     2014                        linkage = LinkageSpec::linkageCheck( $2 );
    20082015                }
    20092016          '{' external_definition_list_opt '}'                          // C++-style linkage specifier
  • src/SynTree/FunctionDecl.cc

    r4b1fd2c rfaddbd8  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:50:14 2016
    13 // Update Count     : 20
     12// Last Modified On : Sat Oct  1 23:06:32 2016
     13// Update Count     : 21
    1414//
    1515
     
    6060        } // if
    6161        if ( get_linkage() != LinkageSpec::Cforall ) {
    62                 os << LinkageSpec::toString( get_linkage() ) << " ";
     62                os << LinkageSpec::linkageName( get_linkage() ) << " ";
    6363        } // if
    6464        if ( get_isInline() ) {
  • src/SynTree/ObjectDecl.cc

    r4b1fd2c rfaddbd8  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:50:33 2016
    13 // Update Count     : 31
     12// Last Modified On : Sat Oct  1 23:05:56 2016
     13// Update Count     : 32
    1414//
    1515
     
    4444
    4545        if ( get_linkage() != LinkageSpec::Cforall ) {
    46                 os << LinkageSpec::toString( get_linkage() ) << " ";
     46                os << LinkageSpec::linkageName( get_linkage() ) << " ";
    4747        } // if
    4848
Note: See TracChangeset for help on using the changeset viewer.