Changeset ab57786


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

more refactoring of parser code

Location:
src/Parser
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    r80722d0 rab57786  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Aug 16 00:09:20 2016
    13 // Update Count     : 495
     12// Last Modified On : Sun Aug 21 09:43:31 2016
     13// Update Count     : 501
    1414//
    1515
     
    120120        } // if
    121121
    122         return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ) );
     122        Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ) );
     123        delete &str;                                                                            // created by lex
     124        return ret;
    123125} // build_constantInteger
    124126
     
    150152        } // if
    151153
    152         return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ) );
     154        Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ) );
     155        delete &str;                                                                            // created by lex
     156        return ret;
    153157} // build_constantFloat
    154158
    155159Expression *build_constantChar( const std::string & str ) {
    156         return new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) );
     160        Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) );
     161        delete &str;                                                                            // created by lex
     162        return ret;
    157163} // build_constantChar
    158164
     
    163169                                                                                        toString( str.size()+1-2 ) ) ),  // +1 for '\0' and -2 for '"'
    164170                                                                   false, false );
    165         return new ConstantExpr( Constant( at, str ) );
     171        ConstantExpr * ret = new ConstantExpr( Constant( at, str ) );
     172        delete &str;                                                                            // created by lex
     173        return ret;
    166174} // build_constantStr
    167175
  • src/Parser/LinkageSpec.cc

    r80722d0 rab57786  
    1010// Created On       : Sat May 16 13:22:09 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:47:14 2016
    13 // Update Count     : 12
     12// Last Modified On : Sun Aug 21 12:32:53 2016
     13// Update Count     : 17
    1414//
    1515
     
    2020#include "Common/SemanticError.h"
    2121
    22 LinkageSpec::Spec LinkageSpec::fromString( const std::string &stringSpec ) {
    23         if ( stringSpec == "\"Cforall\"" ) {
     22LinkageSpec::Spec LinkageSpec::fromString( const std::string &spec ) {
     23        if ( spec == "\"Cforall\"" ) {
    2424                return Cforall;
    25         } else if ( stringSpec == "\"C\"" ) {
     25        } else if ( spec == "\"C\"" ) {
    2626                return C;
    2727        } else {
    28                 throw SemanticError( "Invalid linkage specifier " + stringSpec );
    29         }
     28                throw SemanticError( "Invalid linkage specifier " + spec );
     29        } // if
     30        delete &spec;                                                                           // allocated by lexer
    3031}
    3132
     
    3738}
    3839
    39 bool LinkageSpec::isDecoratable( Spec t ) {
     40bool LinkageSpec::isDecoratable( Spec spec ) {
    4041        static bool decoratable[LinkageSpec::NoOfSpecs] = {
    4142                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    4243                        true,           true,           false,  true,           false,
    4344        };
    44         return decoratable[t];
     45        return decoratable[spec];
    4546}
    4647
    47 bool LinkageSpec::isGeneratable( Spec t ) {
     48bool LinkageSpec::isGeneratable( Spec spec ) {
    4849        static bool generatable[LinkageSpec::NoOfSpecs] = {
    4950                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    5051                        true,           true,           true,   true,           false,
    5152        };
    52         return generatable[t];
     53        return generatable[spec];
    5354}
    5455
    55 bool LinkageSpec::isOverloadable( Spec t ) {
    56         return isDecoratable( t );
    57 }
    58 
    59 
    60 bool LinkageSpec::isOverridable( Spec t ) {
     56bool LinkageSpec::isOverridable( Spec spec ) {
    6157        static bool overridable[LinkageSpec::NoOfSpecs] = {
    6258                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    6359                        true,           false,          false,  true,           false,
    6460        };
    65         return overridable[t];
     61        return overridable[spec];
    6662}
    6763
    68 bool LinkageSpec::isBuiltin( Spec t ) {
     64bool LinkageSpec::isBuiltin( Spec spec ) {
    6965        static bool builtin[LinkageSpec::NoOfSpecs] = {
    7066                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    7167                        true,           false,          false,  false,          true,
    7268        };
    73         return builtin[t];
     69        return builtin[spec];
    7470}
    7571
  • src/Parser/LinkageSpec.h

    r80722d0 rab57786  
    1010// Created On       : Sat May 16 13:24:28 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:47:16 2016
    13 // Update Count     : 7
     12// Last Modified On : Sat Aug 20 19:22:23 2016
     13// Update Count     : 8
    1414//
    1515
     
    3434        static bool isDecoratable( Spec );
    3535        static bool isGeneratable( Spec );
    36         static bool isOverloadable( Spec );
    3736        static bool isOverridable( Spec );
    3837        static bool isBuiltin( Spec );
  • src/Parser/ParseNode.h

    r80722d0 rab57786  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:48:37 2016
    13 // Update Count     : 542
     12// Last Modified On : Sun Aug 21 11:53:59 2016
     13// Update Count     : 546
    1414//
    1515
     
    352352Statement *build_while( ExpressionNode *ctl, StatementNode *stmt, bool kind = false );
    353353Statement *build_for( ForCtl *forctl, StatementNode *stmt );
    354 Statement *build_branch( std::string identifier, BranchStmt::Type kind );
     354Statement *build_branch( BranchStmt::Type kind );
     355Statement *build_branch( std::string *identifier, BranchStmt::Type kind );
    355356Statement *build_computedgoto( ExpressionNode *ctl );
    356357Statement *build_return( ExpressionNode *ctl );
  • src/Parser/StatementNode.cc

    r80722d0 rab57786  
    1010// Created On       : Sat May 16 14:59:41 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug 15 20:47:11 2016
    13 // Update Count     : 322
     12// Last Modified On : Sun Aug 21 11:59:37 2016
     13// Update Count     : 325
    1414//
    1515
     
    138138}
    139139
    140 Statement *build_branch( std::string identifier, BranchStmt::Type kind ) {
    141         return new BranchStmt( noLabels, identifier, kind );
     140Statement *build_branch( BranchStmt::Type kind ) {
     141        Statement * ret = new BranchStmt( noLabels, "", kind );
     142        return ret;
     143}
     144Statement *build_branch( std::string *identifier, BranchStmt::Type kind ) {
     145        Statement * ret = new BranchStmt( noLabels, *identifier, kind );
     146        delete identifier;                                                                      // allocated by lexer
     147        return ret;
    142148}
    143149Statement *build_computedgoto( ExpressionNode *ctl ) {
  • src/Parser/lex.h

    r80722d0 rab57786  
    1010// Created On       : Sat Sep 22 08:58:10 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Mar 21 18:18:06 2016
    13 // Update Count     : 346
     12// Last Modified On : Sun Aug 21 11:28:47 2016
     13// Update Count     : 347
    1414//
    1515
     
    3333    char *file;
    3434    int line;
    35 };
     35}; // Location
    3636
    37 class Token {
    38   public:
     37struct Token {
    3938    std::string *str;                                                                   // must be pointer as used in union
    4039    Location loc;
    4140
    4241    operator std::string *() { return str; }
    43 };
     42}; // Token
    4443
    4544#endif // PARSER_LEX_H
  • src/Parser/parser.cc

    r80722d0 rab57786  
    1 /* A Bison parser, made by GNU Bison 3.0.2.  */
     1/* A Bison parser, made by GNU Bison 2.5.  */
    22
    33/* Bison implementation for Yacc-like parsers in C
    4 
    5    Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
    6 
     4   
     5      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
     6   
    77   This program is free software: you can redistribute it and/or modify
    88   it under the terms of the GNU General Public License as published by
    99   the Free Software Foundation, either version 3 of the License, or
    1010   (at your option) any later version.
    11 
     11   
    1212   This program is distributed in the hope that it will be useful,
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1515   GNU General Public License for more details.
    16 
     16   
    1717   You should have received a copy of the GNU General Public License
    1818   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     
    2727   Bison output files to be licensed under the GNU General Public
    2828   License without this special exception.
    29 
     29   
    3030   This special exception was added by the Free Software Foundation in
    3131   version 2.2 of Bison.  */
     
    4545
    4646/* Bison version.  */
    47 #define YYBISON_VERSION "3.0.2"
     47#define YYBISON_VERSION "2.5"
    4848
    4949/* Skeleton name.  */
     
    5959#define YYPULL 1
    6060
     61/* Using locations.  */
     62#define YYLSP_NEEDED 0
    6163
    6264
    6365
    6466/* Copy the first part of user declarations.  */
    65 #line 42 "parser.yy" /* yacc.c:339  */
     67
     68/* Line 268 of yacc.c  */
     69#line 42 "parser.yy"
    6670
    6771#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    7983#include "LinkageSpec.h"
    8084
     85union DeclQualifiers {
     86        unsigned int value;                                                                     // assume 32-bits
     87        struct {
     88                bool Extern : 1;
     89                bool Static : 1;
     90                bool Auto : 1;
     91                bool Register : 1;
     92                bool Inline : 1;
     93                bool Fortran : 1;
     94                bool Noreturn : 1;
     95                bool Threadlocal : 1;
     96                bool Extension : 1;
     97                bool Lvalue : 1;
     98                bool Const : 1;
     99                bool Volatile : 1;
     100                bool Restrict : 1;
     101                bool Atomic : 1;
     102        } qual;
     103}; // DeclQualifiers
     104DeclQualifiers declQualifiers = { 0 };
     105
     106union DeclType {
     107        unsigned int value;                                                                     // assume 32-bits
     108        struct {
     109                bool Char : 1;
     110                bool Bool : 1;
     111                bool Short : 1;
     112                bool Int : 1;
     113                bool Float : 1;
     114                bool Double : 1;
     115                bool Long : 1;
     116                bool Signed : 1;
     117                bool Unsigned : 1;
     118                bool Void : 1;
     119                bool Complex : 1;
     120                bool Imaginary : 1;
     121                bool Valist : 1;
     122        } type;
     123}; // DeclType
     124DeclType declTypes = { 0 };
     125
    81126extern DeclarationNode * parseTree;
    82127extern LinkageSpec::Spec linkage;
     
    85130std::stack< LinkageSpec::Spec > linkageStack;
    86131
    87 void appendStr( std::string &to, std::string *from ) {
     132void appendStr( std::string *to, std::string *from ) {
    88133        // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
    89         to.insert( to.length() - 1, from->substr( 1, from->length() - 2 ) );
     134        to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) );
    90135} // appendStr
    91136
    92 #line 93 "Parser/parser.cc" /* yacc.c:339  */
    93 
    94 # ifndef YY_NULLPTR
    95 #  if defined __cplusplus && 201103L <= __cplusplus
    96 #   define YY_NULLPTR nullptr
    97 #  else
    98 #   define YY_NULLPTR 0
    99 #  endif
    100 # endif
     137
     138/* Line 268 of yacc.c  */
     139#line 140 "Parser/parser.cc"
     140
     141/* Enabling traces.  */
     142#ifndef YYDEBUG
     143# define YYDEBUG 1
     144#endif
    101145
    102146/* Enabling verbose error messages.  */
     
    108152#endif
    109153
    110 /* In a future release of Bison, this section will be replaced
    111    by #include "y.tab.h".  */
    112 #ifndef YY_YY_Y_TAB_H_INCLUDED
    113 # define YY_YY_Y_TAB_H_INCLUDED
    114 /* Debug traces.  */
    115 #ifndef YYDEBUG
    116 # define YYDEBUG 1
     154/* Enabling the token table.  */
     155#ifndef YYTOKEN_TABLE
     156# define YYTOKEN_TABLE 0
    117157#endif
    118 #if YYDEBUG
    119 extern int yydebug;
    120 #endif
    121 
    122 /* Token type.  */
     158
     159
     160/* Tokens.  */
    123161#ifndef YYTOKENTYPE
    124162# define YYTOKENTYPE
    125   enum yytokentype
    126   {
    127     TYPEDEF = 258,
    128     AUTO = 259,
    129     EXTERN = 260,
    130     REGISTER = 261,
    131     STATIC = 262,
    132     INLINE = 263,
    133     FORTRAN = 264,
    134     CONST = 265,
    135     VOLATILE = 266,
    136     RESTRICT = 267,
    137     FORALL = 268,
    138     LVALUE = 269,
    139     VOID = 270,
    140     CHAR = 271,
    141     SHORT = 272,
    142     INT = 273,
    143     LONG = 274,
    144     FLOAT = 275,
    145     DOUBLE = 276,
    146     SIGNED = 277,
    147     UNSIGNED = 278,
    148     VALIST = 279,
    149     BOOL = 280,
    150     COMPLEX = 281,
    151     IMAGINARY = 282,
    152     TYPEOF = 283,
    153     LABEL = 284,
    154     ENUM = 285,
    155     STRUCT = 286,
    156     UNION = 287,
    157     OTYPE = 288,
    158     FTYPE = 289,
    159     DTYPE = 290,
    160     TRAIT = 291,
    161     SIZEOF = 292,
    162     OFFSETOF = 293,
    163     ATTRIBUTE = 294,
    164     EXTENSION = 295,
    165     IF = 296,
    166     ELSE = 297,
    167     SWITCH = 298,
    168     CASE = 299,
    169     DEFAULT = 300,
    170     DO = 301,
    171     WHILE = 302,
    172     FOR = 303,
    173     BREAK = 304,
    174     CONTINUE = 305,
    175     GOTO = 306,
    176     RETURN = 307,
    177     CHOOSE = 308,
    178     DISABLE = 309,
    179     ENABLE = 310,
    180     FALLTHRU = 311,
    181     TRY = 312,
    182     CATCH = 313,
    183     CATCHRESUME = 314,
    184     FINALLY = 315,
    185     THROW = 316,
    186     THROWRESUME = 317,
    187     AT = 318,
    188     ASM = 319,
    189     ALIGNAS = 320,
    190     ALIGNOF = 321,
    191     ATOMIC = 322,
    192     GENERIC = 323,
    193     NORETURN = 324,
    194     STATICASSERT = 325,
    195     THREADLOCAL = 326,
    196     IDENTIFIER = 327,
    197     QUOTED_IDENTIFIER = 328,
    198     TYPEDEFname = 329,
    199     TYPEGENname = 330,
    200     ATTR_IDENTIFIER = 331,
    201     ATTR_TYPEDEFname = 332,
    202     ATTR_TYPEGENname = 333,
    203     INTEGERconstant = 334,
    204     FLOATINGconstant = 335,
    205     CHARACTERconstant = 336,
    206     STRINGliteral = 337,
    207     ZERO = 338,
    208     ONE = 339,
    209     ARROW = 340,
    210     ICR = 341,
    211     DECR = 342,
    212     LS = 343,
    213     RS = 344,
    214     LE = 345,
    215     GE = 346,
    216     EQ = 347,
    217     NE = 348,
    218     ANDAND = 349,
    219     OROR = 350,
    220     ELLIPSIS = 351,
    221     MULTassign = 352,
    222     DIVassign = 353,
    223     MODassign = 354,
    224     PLUSassign = 355,
    225     MINUSassign = 356,
    226     LSassign = 357,
    227     RSassign = 358,
    228     ANDassign = 359,
    229     ERassign = 360,
    230     ORassign = 361,
    231     ATassign = 362,
    232     THEN = 363
    233   };
     163   /* Put the tokens into the symbol table, so that GDB and other debuggers
     164      know about them.  */
     165   enum yytokentype {
     166     TYPEDEF = 258,
     167     AUTO = 259,
     168     EXTERN = 260,
     169     REGISTER = 261,
     170     STATIC = 262,
     171     INLINE = 263,
     172     FORTRAN = 264,
     173     CONST = 265,
     174     VOLATILE = 266,
     175     RESTRICT = 267,
     176     FORALL = 268,
     177     LVALUE = 269,
     178     VOID = 270,
     179     CHAR = 271,
     180     SHORT = 272,
     181     INT = 273,
     182     LONG = 274,
     183     FLOAT = 275,
     184     DOUBLE = 276,
     185     SIGNED = 277,
     186     UNSIGNED = 278,
     187     VALIST = 279,
     188     BOOL = 280,
     189     COMPLEX = 281,
     190     IMAGINARY = 282,
     191     TYPEOF = 283,
     192     LABEL = 284,
     193     ENUM = 285,
     194     STRUCT = 286,
     195     UNION = 287,
     196     OTYPE = 288,
     197     FTYPE = 289,
     198     DTYPE = 290,
     199     TRAIT = 291,
     200     SIZEOF = 292,
     201     OFFSETOF = 293,
     202     ATTRIBUTE = 294,
     203     EXTENSION = 295,
     204     IF = 296,
     205     ELSE = 297,
     206     SWITCH = 298,
     207     CASE = 299,
     208     DEFAULT = 300,
     209     DO = 301,
     210     WHILE = 302,
     211     FOR = 303,
     212     BREAK = 304,
     213     CONTINUE = 305,
     214     GOTO = 306,
     215     RETURN = 307,
     216     CHOOSE = 308,
     217     DISABLE = 309,
     218     ENABLE = 310,
     219     FALLTHRU = 311,
     220     TRY = 312,
     221     CATCH = 313,
     222     CATCHRESUME = 314,
     223     FINALLY = 315,
     224     THROW = 316,
     225     THROWRESUME = 317,
     226     AT = 318,
     227     ASM = 319,
     228     ALIGNAS = 320,
     229     ALIGNOF = 321,
     230     ATOMIC = 322,
     231     GENERIC = 323,
     232     NORETURN = 324,
     233     STATICASSERT = 325,
     234     THREADLOCAL = 326,
     235     IDENTIFIER = 327,
     236     QUOTED_IDENTIFIER = 328,
     237     TYPEDEFname = 329,
     238     TYPEGENname = 330,
     239     ATTR_IDENTIFIER = 331,
     240     ATTR_TYPEDEFname = 332,
     241     ATTR_TYPEGENname = 333,
     242     INTEGERconstant = 334,
     243     FLOATINGconstant = 335,
     244     CHARACTERconstant = 336,
     245     STRINGliteral = 337,
     246     ZERO = 338,
     247     ONE = 339,
     248     ARROW = 340,
     249     ICR = 341,
     250     DECR = 342,
     251     LS = 343,
     252     RS = 344,
     253     LE = 345,
     254     GE = 346,
     255     EQ = 347,
     256     NE = 348,
     257     ANDAND = 349,
     258     OROR = 350,
     259     ELLIPSIS = 351,
     260     MULTassign = 352,
     261     DIVassign = 353,
     262     MODassign = 354,
     263     PLUSassign = 355,
     264     MINUSassign = 356,
     265     LSassign = 357,
     266     RSassign = 358,
     267     ANDassign = 359,
     268     ERassign = 360,
     269     ORassign = 361,
     270     ATassign = 362,
     271     THEN = 363
     272   };
    234273#endif
    235274/* Tokens.  */
     
    341380#define THEN 363
    342381
    343 /* Value type.  */
     382
     383
     384
    344385#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    345 typedef union YYSTYPE YYSTYPE;
    346 union YYSTYPE
     386typedef union YYSTYPE
    347387{
    348 #line 115 "parser.yy" /* yacc.c:355  */
     388
     389/* Line 293 of yacc.c  */
     390#line 156 "parser.yy"
    349391
    350392        Token tok;
     
    360402        InitializerNode *in;
    361403        OperKinds op;
     404        std::string *str;
    362405        bool flag;
    363406
    364 #line 365 "Parser/parser.cc" /* yacc.c:355  */
    365 };
     407
     408
     409/* Line 293 of yacc.c  */
     410#line 411 "Parser/parser.cc"
     411} YYSTYPE;
    366412# define YYSTYPE_IS_TRIVIAL 1
     413# define yystype YYSTYPE /* obsolescent; will be withdrawn */
    367414# define YYSTYPE_IS_DECLARED 1
    368415#endif
    369416
    370417
    371 extern YYSTYPE yylval;
    372 
    373 int yyparse (void);
    374 
    375 #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
    376 
    377418/* Copy the second part of user declarations.  */
    378419
    379 #line 380 "Parser/parser.cc" /* yacc.c:358  */
     420
     421/* Line 343 of yacc.c  */
     422#line 423 "Parser/parser.cc"
    380423
    381424#ifdef short
     
    391434#ifdef YYTYPE_INT8
    392435typedef YYTYPE_INT8 yytype_int8;
     436#elif (defined __STDC__ || defined __C99__FUNC__ \
     437     || defined __cplusplus || defined _MSC_VER)
     438typedef signed char yytype_int8;
    393439#else
    394 typedef signed char yytype_int8;
     440typedef short int yytype_int8;
    395441#endif
    396442
     
    412458# elif defined size_t
    413459#  define YYSIZE_T size_t
    414 # elif ! defined YYSIZE_T
     460# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     461     || defined __cplusplus || defined _MSC_VER)
    415462#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    416463#  define YYSIZE_T size_t
     
    426473#  if ENABLE_NLS
    427474#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    428 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
     475#   define YY_(msgid) dgettext ("bison-runtime", msgid)
    429476#  endif
    430477# endif
    431478# ifndef YY_
    432 #  define YY_(Msgid) Msgid
     479#  define YY_(msgid) msgid
    433480# endif
    434481#endif
    435482
    436 #ifndef YY_ATTRIBUTE
    437 # if (defined __GNUC__                                               \
    438       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
    439      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
    440 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
    441 # else
    442 #  define YY_ATTRIBUTE(Spec) /* empty */
    443 # endif
    444 #endif
    445 
    446 #ifndef YY_ATTRIBUTE_PURE
    447 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
    448 #endif
    449 
    450 #ifndef YY_ATTRIBUTE_UNUSED
    451 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
    452 #endif
    453 
    454 #if !defined _Noreturn \
    455      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
    456 # if defined _MSC_VER && 1200 <= _MSC_VER
    457 #  define _Noreturn __declspec (noreturn)
    458 # else
    459 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
    460 # endif
    461 #endif
    462 
    463483/* Suppress unused-variable warnings by "using" E.  */
    464484#if ! defined lint || defined __GNUC__
    465 # define YYUSE(E) ((void) (E))
     485# define YYUSE(e) ((void) (e))
    466486#else
    467 # define YYUSE(E) /* empty */
     487# define YYUSE(e) /* empty */
    468488#endif
    469489
    470 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
    471 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
    472 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
    473     _Pragma ("GCC diagnostic push") \
    474     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
    475     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
    476 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
    477     _Pragma ("GCC diagnostic pop")
     490/* Identity function, used to suppress warnings about constant conditions.  */
     491#ifndef lint
     492# define YYID(n) (n)
    478493#else
    479 # define YY_INITIAL_VALUE(Value) Value
     494#if (defined __STDC__ || defined __C99__FUNC__ \
     495     || defined __cplusplus || defined _MSC_VER)
     496static int
     497YYID (int yyi)
     498#else
     499static int
     500YYID (yyi)
     501    int yyi;
    480502#endif
    481 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    482 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    483 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
     503{
     504  return yyi;
     505}
    484506#endif
    485 #ifndef YY_INITIAL_VALUE
    486 # define YY_INITIAL_VALUE(Value) /* Nothing. */
    487 #endif
    488 
    489507
    490508#if ! defined yyoverflow || YYERROR_VERBOSE
     
    505523#   else
    506524#    define YYSTACK_ALLOC alloca
    507 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
     525#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     526     || defined __cplusplus || defined _MSC_VER)
    508527#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    509       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    510528#     ifndef EXIT_SUCCESS
    511529#      define EXIT_SUCCESS 0
     
    517535
    518536# ifdef YYSTACK_ALLOC
    519    /* Pacify GCC's 'empty if-body' warning.  */
    520 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
     537   /* Pacify GCC's `empty if-body' warning.  */
     538#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
    521539#  ifndef YYSTACK_ALLOC_MAXIMUM
    522540    /* The OS might guarantee only one guard page at the bottom of the stack,
     
    534552#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    535553       && ! ((defined YYMALLOC || defined malloc) \
    536              && (defined YYFREE || defined free)))
     554             && (defined YYFREE || defined free)))
    537555#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    538556#   ifndef EXIT_SUCCESS
     
    542560#  ifndef YYMALLOC
    543561#   define YYMALLOC malloc
    544 #   if ! defined malloc && ! defined EXIT_SUCCESS
     562#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     563     || defined __cplusplus || defined _MSC_VER)
    545564void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    546565#   endif
     
    548567#  ifndef YYFREE
    549568#   define YYFREE free
    550 #   if ! defined free && ! defined EXIT_SUCCESS
     569#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     570     || defined __cplusplus || defined _MSC_VER)
    551571void free (void *); /* INFRINGES ON USER NAME SPACE */
    552572#   endif
     
    558578#if (! defined yyoverflow \
    559579     && (! defined __cplusplus \
    560         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     580        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    561581
    562582/* A type that is properly aligned for any stack member.  */
     
    583603   stack.  Advance YYPTR to a properly aligned location for the next
    584604   stack.  */
    585 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
    586     do                                                                  \
    587       {                                                                 \
    588         YYSIZE_T yynewbytes;                                            \
    589         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
    590         Stack = &yyptr->Stack_alloc;                                    \
    591         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    592         yyptr += yynewbytes / sizeof (*yyptr);                          \
    593       }                                                                 \
    594     while (0)
     605# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     606    do                                                                  \
     607      {                                                                 \
     608        YYSIZE_T yynewbytes;                                            \
     609        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
     610        Stack = &yyptr->Stack_alloc;                                    \
     611        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
     612        yyptr += yynewbytes / sizeof (*yyptr);                          \
     613      }                                                                 \
     614    while (YYID (0))
    595615
    596616#endif
    597617
    598618#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    599 /* Copy COUNT objects from SRC to DST.  The source and destination do
     619/* Copy COUNT objects from FROM to TO.  The source and destination do
    600620   not overlap.  */
    601621# ifndef YYCOPY
    602622#  if defined __GNUC__ && 1 < __GNUC__
    603 #   define YYCOPY(Dst, Src, Count) \
    604       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
     623#   define YYCOPY(To, From, Count) \
     624      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
    605625#  else
    606 #   define YYCOPY(Dst, Src, Count)              \
    607       do                                        \
    608         {                                       \
    609           YYSIZE_T yyi;                         \
    610           for (yyi = 0; yyi < (Count); yyi++)   \
    611             (Dst)[yyi] = (Src)[yyi];            \
    612         }                                       \
    613       while (0)
     626#   define YYCOPY(To, From, Count)              \
     627      do                                        \
     628        {                                       \
     629          YYSIZE_T yyi;                         \
     630          for (yyi = 0; yyi < (Count); yyi++)   \
     631            (To)[yyi] = (From)[yyi];            \
     632        }                                       \
     633      while (YYID (0))
    614634#  endif
    615635# endif
     
    619639#define YYFINAL  250
    620640/* YYLAST -- Last index in YYTABLE.  */
    621 #define YYLAST   10977
     641#define YYLAST   10841
    622642
    623643/* YYNTOKENS -- Number of terminals.  */
    624644#define YYNTOKENS  133
    625645/* YYNNTS -- Number of nonterminals.  */
    626 #define YYNNTS  240
     646#define YYNNTS  241
    627647/* YYNRULES -- Number of rules.  */
    628 #define YYNRULES  749
    629 /* YYNSTATES -- Number of states.  */
    630 #define YYNSTATES  1553
    631 
    632 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    633    by yylex, with out-of-bounds checking.  */
     648#define YYNRULES  750
     649/* YYNRULES -- Number of states.  */
     650#define YYNSTATES  1554
     651
     652/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    634653#define YYUNDEFTOK  2
    635654#define YYMAXUTOK   363
    636655
    637 #define YYTRANSLATE(YYX)                                                \
     656#define YYTRANSLATE(YYX)                                                \
    638657  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    639658
    640 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
    641    as returned by yylex, without out-of-bounds checking.  */
     659/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
    642660static const yytype_uint8 yytranslate[] =
    643661{
     
    682700
    683701#if YYDEBUG
    684   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
     702/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
     703   YYRHS.  */
     704static const yytype_uint16 yyprhs[] =
     705{
     706       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
     707      17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
     708      38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
     709      86,    89,    92,   100,   105,   107,   111,   112,   114,   116,
     710     120,   122,   126,   134,   138,   146,   148,   150,   152,   155,
     711     158,   161,   164,   167,   170,   175,   178,   183,   190,   192,
     712     197,   202,   204,   206,   208,   210,   212,   214,   216,   221,
     713     226,   228,   232,   236,   240,   242,   246,   250,   252,   256,
     714     260,   262,   266,   270,   274,   278,   280,   284,   288,   290,
     715     294,   296,   300,   302,   306,   308,   312,   314,   318,   320,
     716     326,   331,   337,   339,   341,   345,   348,   349,   351,   353,
     717     355,   357,   359,   361,   363,   365,   367,   369,   371,   373,
     718     376,   382,   389,   397,   399,   403,   405,   409,   410,   412,
     719     414,   416,   418,   420,   422,   424,   426,   428,   435,   440,
     720     443,   451,   453,   457,   459,   462,   464,   467,   469,   472,
     721     475,   481,   489,   495,   505,   511,   521,   523,   527,   529,
     722     531,   535,   539,   542,   544,   547,   550,   551,   553,   556,
     723     560,   561,   563,   566,   570,   574,   579,   580,   582,   584,
     724     587,   593,   601,   608,   615,   620,   624,   629,   632,   636,
     725     639,   643,   647,   651,   655,   661,   665,   669,   674,   676,
     726     682,   689,   695,   702,   712,   723,   733,   744,   747,   749,
     727     752,   755,   758,   760,   767,   776,   787,   800,   815,   816,
     728     818,   819,   821,   823,   827,   832,   840,   841,   843,   847,
     729     849,   853,   855,   857,   859,   863,   865,   867,   869,   873,
     730     874,   876,   880,   885,   887,   891,   893,   895,   899,   903,
     731     907,   911,   915,   918,   922,   929,   933,   937,   942,   944,
     732     947,   950,   954,   960,   969,   977,   985,   991,  1001,  1004,
     733    1007,  1013,  1017,  1023,  1028,  1032,  1037,  1042,  1050,  1054,
     734    1058,  1062,  1066,  1071,  1078,  1080,  1082,  1084,  1086,  1088,
     735    1090,  1092,  1094,  1095,  1097,  1099,  1102,  1104,  1106,  1108,
     736    1110,  1112,  1114,  1116,  1117,  1123,  1125,  1128,  1132,  1134,
     737    1137,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
     738    1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     739    1177,  1179,  1181,  1184,  1187,  1191,  1195,  1197,  1201,  1203,
     740    1206,  1209,  1212,  1217,  1222,  1227,  1232,  1234,  1237,  1240,
     741    1244,  1246,  1249,  1252,  1254,  1257,  1260,  1264,  1266,  1269,
     742    1272,  1274,  1276,  1281,  1284,  1285,  1292,  1300,  1303,  1306,
     743    1309,  1310,  1313,  1316,  1320,  1323,  1327,  1329,  1332,  1336,
     744    1339,  1342,  1347,  1348,  1350,  1353,  1356,  1358,  1359,  1361,
     745    1364,  1367,  1373,  1376,  1377,  1385,  1388,  1393,  1394,  1397,
     746    1398,  1400,  1402,  1404,  1410,  1416,  1422,  1424,  1430,  1436,
     747    1446,  1448,  1454,  1455,  1457,  1459,  1465,  1467,  1469,  1475,
     748    1481,  1483,  1487,  1491,  1496,  1498,  1500,  1502,  1504,  1507,
     749    1509,  1513,  1517,  1519,  1522,  1524,  1528,  1530,  1532,  1534,
     750    1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1553,  1555,
     751    1557,  1559,  1562,  1563,  1566,  1569,  1571,  1576,  1577,  1579,
     752    1582,  1586,  1591,  1594,  1597,  1599,  1602,  1605,  1611,  1617,
     753    1625,  1632,  1634,  1637,  1640,  1644,  1646,  1649,  1652,  1657,
     754    1660,  1665,  1666,  1671,  1674,  1676,  1678,  1680,  1681,  1684,
     755    1690,  1696,  1710,  1712,  1714,  1718,  1722,  1725,  1729,  1733,
     756    1736,  1741,  1743,  1750,  1760,  1761,  1773,  1775,  1779,  1783,
     757    1787,  1789,  1791,  1797,  1800,  1806,  1807,  1809,  1811,  1815,
     758    1816,  1818,  1820,  1822,  1824,  1825,  1832,  1835,  1837,  1840,
     759    1845,  1848,  1852,  1856,  1860,  1865,  1871,  1877,  1883,  1890,
     760    1892,  1894,  1896,  1900,  1901,  1907,  1908,  1910,  1912,  1915,
     761    1922,  1924,  1928,  1929,  1931,  1936,  1938,  1940,  1942,  1944,
     762    1947,  1949,  1952,  1955,  1957,  1961,  1964,  1968,  1972,  1975,
     763    1980,  1985,  1989,  1998,  2002,  2005,  2007,  2010,  2017,  2026,
     764    2030,  2033,  2037,  2041,  2046,  2051,  2055,  2057,  2059,  2061,
     765    2066,  2073,  2077,  2080,  2084,  2088,  2093,  2098,  2102,  2105,
     766    2107,  2110,  2113,  2115,  2119,  2122,  2126,  2130,  2133,  2138,
     767    2143,  2147,  2154,  2163,  2167,  2170,  2172,  2175,  2178,  2181,
     768    2185,  2189,  2192,  2197,  2202,  2206,  2213,  2222,  2226,  2229,
     769    2231,  2234,  2237,  2239,  2241,  2244,  2248,  2252,  2255,  2260,
     770    2267,  2276,  2278,  2281,  2284,  2286,  2289,  2292,  2296,  2300,
     771    2302,  2307,  2312,  2316,  2322,  2331,  2335,  2338,  2342,  2344,
     772    2350,  2356,  2363,  2370,  2372,  2375,  2378,  2380,  2383,  2386,
     773    2390,  2394,  2396,  2401,  2406,  2410,  2416,  2425,  2429,  2431,
     774    2434,  2436,  2439,  2446,  2452,  2459,  2467,  2475,  2477,  2480,
     775    2483,  2485,  2488,  2491,  2495,  2499,  2501,  2506,  2511,  2515,
     776    2524,  2528,  2530,  2532,  2535,  2537,  2539,  2542,  2546,  2549,
     777    2553,  2556,  2560,  2564,  2567,  2572,  2576,  2579,  2583,  2586,
     778    2591,  2595,  2598,  2605,  2612,  2619,  2627,  2629,  2632,  2634,
     779    2636,  2638,  2641,  2645,  2648,  2652,  2655,  2659,  2663,  2668,
     780    2671,  2675,  2680,  2683,  2689,  2695,  2702,  2709,  2710,  2712,
     781    2713
     782};
     783
     784/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
     785static const yytype_int16 yyrhs[] =
     786{
     787     302,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     788      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
     789      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
     790      -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
     791     109,   170,   110,    -1,   109,   174,   110,    -1,   143,    -1,
     792     144,   111,   134,   165,   135,   112,    -1,   144,   109,   145,
     793     110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
     794     147,   135,   112,    -1,   144,    85,   139,    -1,   144,    85,
     795     111,   134,   147,   135,   112,    -1,   144,    86,    -1,   144,
     796      87,    -1,   109,   275,   110,   114,   279,   372,   115,    -1,
     797     144,   114,   145,   115,    -1,   146,    -1,   145,   116,   146,
     798      -1,    -1,   165,    -1,   148,    -1,   147,   116,   148,    -1,
     799     139,    -1,   139,   113,   148,    -1,   139,   113,   111,   134,
     800     147,   135,   112,    -1,   139,    85,   148,    -1,   139,    85,
     801     111,   134,   147,   135,   112,    -1,   144,    -1,   136,    -1,
     802     141,    -1,    40,   152,    -1,   150,   152,    -1,   151,   152,
     803      -1,    86,   149,    -1,    87,   149,    -1,    37,   149,    -1,
     804      37,   109,   275,   110,    -1,    66,   149,    -1,    66,   109,
     805     275,   110,    -1,    38,   109,   275,   116,   139,   110,    -1,
     806      76,    -1,    76,   109,   146,   110,    -1,    76,   109,   276,
     807     110,    -1,   117,    -1,   118,    -1,   119,    -1,   120,    -1,
     808     121,    -1,   122,    -1,   149,    -1,   109,   275,   110,   152,
     809      -1,   109,   275,   110,   168,    -1,   152,    -1,   153,   117,
     810     152,    -1,   153,   123,   152,    -1,   153,   124,   152,    -1,
     811     153,    -1,   154,   119,   153,    -1,   154,   120,   153,    -1,
     812     154,    -1,   155,    88,   154,    -1,   155,    89,   154,    -1,
     813     155,    -1,   156,   125,   155,    -1,   156,   126,   155,    -1,
     814     156,    90,   155,    -1,   156,    91,   155,    -1,   156,    -1,
     815     157,    92,   156,    -1,   157,    93,   156,    -1,   157,    -1,
     816     158,   118,   157,    -1,   158,    -1,   159,   127,   158,    -1,
     817     159,    -1,   160,   128,   159,    -1,   160,    -1,   161,    94,
     818     160,    -1,   161,    -1,   162,    95,   161,    -1,   162,    -1,
     819     162,   129,   170,   130,   163,    -1,   162,   129,   130,   163,
     820      -1,   162,   129,   170,   130,   168,    -1,   163,    -1,   163,
     821      -1,   149,   167,   165,    -1,   168,   373,    -1,    -1,   165,
     822      -1,   131,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
     823      -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
     824      -1,   106,    -1,   111,   112,    -1,   111,   134,   165,   135,
     825     112,    -1,   111,   134,   116,   169,   135,   112,    -1,   111,
     826     134,   165,   116,   169,   135,   112,    -1,   166,    -1,   169,
     827     116,   166,    -1,   165,    -1,   170,   116,   165,    -1,    -1,
     828     170,    -1,   173,    -1,   174,    -1,   178,    -1,   179,    -1,
     829     191,    -1,   193,    -1,   194,    -1,   199,    -1,   127,   144,
     830     114,   145,   115,   132,    -1,    72,   130,   312,   172,    -1,
     831     114,   115,    -1,   114,   134,   134,   210,   175,   135,   115,
     832      -1,   176,    -1,   175,   134,   176,    -1,   213,    -1,    40,
     833     213,    -1,   308,    -1,   172,   135,    -1,   172,    -1,   177,
     834     172,    -1,   171,   132,    -1,    41,   109,   170,   110,   172,
     835      -1,    41,   109,   170,   110,   172,    42,   172,    -1,    43,
     836     109,   170,   110,   184,    -1,    43,   109,   170,   110,   114,
     837     134,   206,   185,   115,    -1,    53,   109,   170,   110,   184,
     838      -1,    53,   109,   170,   110,   114,   134,   206,   187,   115,
     839      -1,   164,    -1,   164,    96,   164,    -1,   310,    -1,   180,
     840      -1,   181,   116,   180,    -1,    44,   181,   130,    -1,    45,
     841     130,    -1,   182,    -1,   183,   182,    -1,   183,   172,    -1,
     842      -1,   186,    -1,   183,   177,    -1,   186,   183,   177,    -1,
     843      -1,   188,    -1,   183,   190,    -1,   183,   177,   189,    -1,
     844     188,   183,   190,    -1,   188,   183,   177,   189,    -1,    -1,
     845     190,    -1,    56,    -1,    56,   132,    -1,    47,   109,   170,
     846     110,   172,    -1,    46,   172,    47,   109,   170,   110,   132,
     847      -1,    48,   109,   134,   192,   110,   172,    -1,   171,   135,
     848     132,   171,   132,   171,    -1,   213,   171,   132,   171,    -1,
     849      51,    72,   132,    -1,    51,   117,   170,   132,    -1,    50,
     850     132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
     851      72,   132,    -1,    52,   171,   132,    -1,    61,   166,   132,
     852      -1,    62,   166,   132,    -1,    62,   166,    63,   165,   132,
     853      -1,    57,   174,   195,    -1,    57,   174,   197,    -1,    57,
     854     174,   195,   197,    -1,   196,    -1,    58,   109,    96,   110,
     855     174,    -1,   196,    58,   109,    96,   110,   174,    -1,    59,
     856     109,    96,   110,   174,    -1,   196,    59,   109,    96,   110,
     857     174,    -1,    58,   109,   134,   134,   198,   135,   110,   174,
     858     135,    -1,   196,    58,   109,   134,   134,   198,   135,   110,
     859     174,   135,    -1,    59,   109,   134,   134,   198,   135,   110,
     860     174,   135,    -1,   196,    59,   109,   134,   134,   198,   135,
     861     110,   174,   135,    -1,    60,   174,    -1,   226,    -1,   226,
     862     309,    -1,   226,   357,    -1,   366,   139,    -1,   366,    -1,
     863      64,   200,   109,   141,   110,   132,    -1,    64,   200,   109,
     864     141,   130,   201,   110,   132,    -1,    64,   200,   109,   141,
     865     130,   201,   130,   201,   110,   132,    -1,    64,   200,   109,
     866     141,   130,   201,   130,   201,   130,   204,   110,   132,    -1,
     867      64,   200,    51,   109,   141,   130,   130,   201,   130,   204,
     868     130,   205,   110,   132,    -1,    -1,    11,    -1,    -1,   202,
     869      -1,   203,    -1,   202,   116,   203,    -1,   141,   109,   164,
     870     110,    -1,   111,   164,   112,   141,   109,   164,   110,    -1,
     871      -1,   141,    -1,   204,   116,   141,    -1,   139,    -1,   205,
     872     116,   139,    -1,   135,    -1,   207,    -1,   213,    -1,   207,
     873     134,   213,    -1,   135,    -1,   209,    -1,   223,    -1,   209,
     874     134,   223,    -1,    -1,   211,    -1,    29,   212,   132,    -1,
     875     211,    29,   212,   132,    -1,   274,    -1,   212,   116,   274,
     876      -1,   214,    -1,   223,    -1,   215,   135,   132,    -1,   220,
     877     135,   132,    -1,   217,   135,   132,    -1,   293,   135,   132,
     878      -1,   296,   135,   132,    -1,   216,   277,    -1,   232,   216,
     879     277,    -1,   215,   135,   116,   134,   272,   277,    -1,   367,
     880     272,   311,    -1,   370,   272,   311,    -1,   228,   370,   272,
     881     311,    -1,   218,    -1,   228,   218,    -1,   232,   218,    -1,
     882     232,   228,   218,    -1,   217,   135,   116,   134,   272,    -1,
     883     111,   112,   272,   109,   134,   260,   135,   110,    -1,   370,
     884     272,   109,   134,   260,   135,   110,    -1,   219,   272,   109,
     885     134,   260,   135,   110,    -1,   111,   134,   262,   135,   112,
     886      -1,   111,   134,   262,   135,   116,   134,   263,   135,   112,
     887      -1,     3,   216,    -1,     3,   218,    -1,   220,   135,   116,
     888     134,   139,    -1,     3,   226,   309,    -1,   221,   135,   116,
     889     134,   309,    -1,   228,     3,   226,   309,    -1,   226,     3,
     890     309,    -1,   226,     3,   228,   309,    -1,     3,   139,   131,
     891     165,    -1,   222,   135,   116,   134,   139,   131,   165,    -1,
     892     224,   135,   132,    -1,   221,   135,   132,    -1,   222,   135,
     893     132,    -1,   240,   135,   132,    -1,   225,   309,   311,   277,
     894      -1,   224,   116,   312,   309,   311,   277,    -1,   236,    -1,
     895     240,    -1,   242,    -1,   283,    -1,   237,    -1,   241,    -1,
     896     243,    -1,   284,    -1,    -1,   228,    -1,   229,    -1,   228,
     897     229,    -1,   230,    -1,   314,    -1,    10,    -1,    12,    -1,
     898      11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   231,
     899     286,   110,    -1,   233,    -1,   228,   233,    -1,   232,   228,
     900     233,    -1,   234,    -1,   233,   234,    -1,     5,    -1,     7,
     901      -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
     902      -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
     903      -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
     904      -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   237,
     905      -1,   232,   237,    -1,   236,   234,    -1,   236,   234,   228,
     906      -1,   236,   234,   237,    -1,   238,    -1,   227,   239,   227,
     907      -1,   235,    -1,   228,   235,    -1,   238,   229,    -1,   238,
     908     235,    -1,    28,   109,   276,   110,    -1,    28,   109,   170,
     909     110,    -1,    78,   109,   276,   110,    -1,    78,   109,   170,
     910     110,    -1,   241,    -1,   232,   241,    -1,   240,   234,    -1,
     911     240,   234,   228,    -1,   244,    -1,   228,   244,    -1,   241,
     912     229,    -1,   243,    -1,   232,   243,    -1,   242,   234,    -1,
     913     242,   234,   228,    -1,    74,    -1,   228,    74,    -1,   243,
     914     229,    -1,   245,    -1,   256,    -1,   247,   114,   248,   115,
     915      -1,   247,   274,    -1,    -1,   247,   274,   246,   114,   248,
     916     115,    -1,   247,   109,   292,   110,   114,   248,   115,    -1,
     917     247,   285,    -1,    31,   312,    -1,    32,   312,    -1,    -1,
     918     248,   249,    -1,   250,   132,    -1,    40,   250,   132,    -1,
     919     251,   132,    -1,    40,   251,   132,    -1,   366,    -1,   366,
     920     274,    -1,   250,   116,   274,    -1,   250,   116,    -1,   226,
     921     252,    -1,   251,   116,   312,   252,    -1,    -1,   254,    -1,
     922     318,   253,    -1,   331,   253,    -1,   357,    -1,    -1,   254,
     923      -1,   130,   164,    -1,    30,   312,    -1,   255,   114,   258,
     924     372,   115,    -1,   255,   274,    -1,    -1,   255,   274,   257,
     925     114,   258,   372,   115,    -1,   274,   259,    -1,   258,   116,
     926     274,   259,    -1,    -1,   131,   164,    -1,    -1,   261,    -1,
     927     263,    -1,   262,    -1,   262,   135,   116,   134,   263,    -1,
     928     263,   135,   116,   134,    96,    -1,   262,   135,   116,   134,
     929      96,    -1,   267,    -1,   263,   135,   116,   134,   267,    -1,
     930     262,   135,   116,   134,   267,    -1,   262,   135,   116,   134,
     931     263,   135,   116,   134,   267,    -1,   268,    -1,   263,   135,
     932     116,   134,   268,    -1,    -1,   265,    -1,   266,    -1,   266,
     933     135,   116,   134,    96,    -1,   270,    -1,   269,    -1,   266,
     934     135,   116,   134,   270,    -1,   266,   135,   116,   134,   269,
     935      -1,   269,    -1,   362,   272,   373,    -1,   370,   272,   373,
     936      -1,   228,   370,   272,   373,    -1,   218,    -1,   270,    -1,
     937     362,    -1,   370,    -1,   228,   370,    -1,   371,    -1,   225,
     938     336,   373,    -1,   225,   340,   373,    -1,   225,    -1,   225,
     939     351,    -1,   139,    -1,   271,   116,   139,    -1,   137,    -1,
     940      74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
     941     139,    -1,    74,    -1,    75,    -1,   366,    -1,   226,    -1,
     942     226,   357,    -1,   366,    -1,   371,    -1,   226,    -1,   226,
     943     345,    -1,    -1,   131,   278,    -1,   107,   278,    -1,   165,
     944      -1,   114,   279,   372,   115,    -1,    -1,   278,    -1,   280,
     945     278,    -1,   279,   116,   278,    -1,   279,   116,   280,   278,
     946      -1,   281,   130,    -1,   274,   130,    -1,   282,    -1,   281,
     947     282,    -1,   113,   274,    -1,   111,   134,   165,   135,   112,
     948      -1,   111,   134,   310,   135,   112,    -1,   111,   134,   164,
     949      96,   164,   135,   112,    -1,   113,   111,   134,   147,   135,
     950     112,    -1,   284,    -1,   232,   284,    -1,   283,   234,    -1,
     951     283,   234,   228,    -1,   285,    -1,   228,   285,    -1,   284,
     952     229,    -1,    75,   109,   292,   110,    -1,   287,   373,    -1,
     953     286,   116,   287,   373,    -1,    -1,   289,   274,   288,   290,
     954      -1,   226,   336,    -1,    33,    -1,    35,    -1,    34,    -1,
     955      -1,   290,   291,    -1,   128,   274,   109,   292,   110,    -1,
     956     128,   114,   134,   298,   115,    -1,   128,   109,   134,   286,
     957     135,   110,   114,   134,   298,   115,   109,   292,   110,    -1,
     958     276,    -1,   165,    -1,   292,   116,   276,    -1,   292,   116,
     959     165,    -1,    33,   294,    -1,   233,    33,   294,    -1,   293,
     960     116,   294,    -1,   295,   290,    -1,   295,   290,   131,   276,
     961      -1,   274,    -1,   273,   109,   134,   286,   135,   110,    -1,
     962      36,   274,   109,   134,   286,   135,   110,   114,   115,    -1,
     963      -1,    36,   274,   109,   134,   286,   135,   110,   114,   297,
     964     298,   115,    -1,   299,    -1,   298,   134,   299,    -1,   300,
     965     135,   132,    -1,   301,   135,   132,    -1,   216,    -1,   218,
     966      -1,   300,   135,   116,   134,   272,    -1,   226,   309,    -1,
     967     301,   135,   116,   134,   309,    -1,    -1,   303,    -1,   305,
     968      -1,   303,   134,   305,    -1,    -1,   303,    -1,   213,    -1,
     969     307,    -1,   199,    -1,    -1,     5,    82,   306,   114,   304,
     970     115,    -1,    40,   305,    -1,   308,    -1,   323,   174,    -1,
     971     327,   134,   208,   174,    -1,   217,   174,    -1,   225,   323,
     972     174,    -1,   228,   323,   174,    -1,   232,   323,   174,    -1,
     973     232,   228,   323,   174,    -1,   225,   327,   134,   208,   174,
     974      -1,   228,   327,   134,   208,   174,    -1,   232,   327,   134,
     975     208,   174,    -1,   232,   228,   327,   134,   208,   174,    -1,
     976     318,    -1,   331,    -1,   323,    -1,   164,   122,   164,    -1,
     977      -1,    64,   109,   141,   110,   312,    -1,    -1,   313,    -1,
     978     314,    -1,   313,   314,    -1,    39,   109,   109,   315,   110,
     979     110,    -1,   316,    -1,   315,   116,   316,    -1,    -1,   317,
     980      -1,   317,   109,   171,   110,    -1,   272,    -1,   234,    -1,
     981     235,    -1,   229,    -1,   319,   312,    -1,   320,    -1,   321,
     982     312,    -1,   322,   312,    -1,   137,    -1,   109,   319,   110,
     983      -1,   150,   318,    -1,   150,   228,   318,    -1,   109,   320,
     984     110,    -1,   319,   349,    -1,   109,   320,   110,   349,    -1,
     985     109,   321,   110,   350,    -1,   109,   321,   110,    -1,   109,
     986     320,   110,   109,   134,   264,   135,   110,    -1,   109,   322,
     987     110,    -1,   324,   312,    -1,   325,    -1,   326,   312,    -1,
     988     319,   109,   134,   264,   135,   110,    -1,   109,   325,   110,
     989     109,   134,   264,   135,   110,    -1,   109,   324,   110,    -1,
     990     150,   323,    -1,   150,   228,   323,    -1,   109,   325,   110,
     991      -1,   109,   325,   110,   349,    -1,   109,   326,   110,   350,
     992      -1,   109,   326,   110,    -1,   328,    -1,   329,    -1,   330,
     993      -1,   319,   109,   271,   110,    -1,   109,   329,   110,   109,
     994     271,   110,    -1,   109,   328,   110,    -1,   150,   327,    -1,
     995     150,   228,   327,    -1,   109,   329,   110,    -1,   109,   329,
     996     110,   349,    -1,   109,   330,   110,   350,    -1,   109,   330,
     997     110,    -1,   332,   312,    -1,   333,    -1,   334,   312,    -1,
     998     335,   312,    -1,   341,    -1,   109,   332,   110,    -1,   150,
     999     331,    -1,   150,   228,   331,    -1,   109,   333,   110,    -1,
     1000     332,   349,    -1,   109,   333,   110,   349,    -1,   109,   334,
     1001     110,   350,    -1,   109,   334,   110,    -1,   332,   109,   134,
     1002     264,   135,   110,    -1,   109,   333,   110,   109,   134,   264,
     1003     135,   110,    -1,   109,   335,   110,    -1,   319,   312,    -1,
     1004     337,    -1,   338,   312,    -1,   339,   312,    -1,   150,   336,
     1005      -1,   150,   228,   336,    -1,   109,   337,   110,    -1,   319,
     1006     355,    -1,   109,   337,   110,   349,    -1,   109,   338,   110,
     1007     350,    -1,   109,   338,   110,    -1,   319,   109,   134,   264,
     1008     135,   110,    -1,   109,   337,   110,   109,   134,   264,   135,
     1009     110,    -1,   109,   339,   110,    -1,   341,   312,    -1,   342,
     1010      -1,   343,   312,    -1,   344,   312,    -1,    74,    -1,    75,
     1011      -1,   150,   340,    -1,   150,   228,   340,    -1,   109,   342,
     1012     110,    -1,   341,   355,    -1,   109,   342,   110,   355,    -1,
     1013     341,   109,   134,   264,   135,   110,    -1,   109,   342,   110,
     1014     109,   134,   264,   135,   110,    -1,   346,    -1,   347,   312,
     1015      -1,   348,   312,    -1,   150,    -1,   150,   228,    -1,   150,
     1016     345,    -1,   150,   228,   345,    -1,   109,   346,   110,    -1,
     1017     349,    -1,   109,   346,   110,   349,    -1,   109,   347,   110,
     1018     350,    -1,   109,   347,   110,    -1,   109,   134,   264,   135,
     1019     110,    -1,   109,   346,   110,   109,   134,   264,   135,   110,
     1020      -1,   109,   348,   110,    -1,   111,   112,    -1,   111,   112,
     1021     350,    -1,   350,    -1,   111,   134,   165,   135,   112,    -1,
     1022     111,   134,   117,   135,   112,    -1,   350,   111,   134,   165,
     1023     135,   112,    -1,   350,   111,   134,   117,   135,   112,    -1,
     1024     352,    -1,   353,   312,    -1,   354,   312,    -1,   150,    -1,
     1025     150,   228,    -1,   150,   351,    -1,   150,   228,   351,    -1,
     1026     109,   352,   110,    -1,   355,    -1,   109,   352,   110,   355,
     1027      -1,   109,   353,   110,   350,    -1,   109,   353,   110,    -1,
     1028     109,   134,   264,   135,   110,    -1,   109,   352,   110,   109,
     1029     134,   264,   135,   110,    -1,   109,   354,   110,    -1,   356,
     1030      -1,   356,   350,    -1,   350,    -1,   111,   112,    -1,   111,
     1031     134,   228,   117,   135,   112,    -1,   111,   134,   228,   135,
     1032     112,    -1,   111,   134,   228,   165,   135,   112,    -1,   111,
     1033     134,     7,   227,   165,   135,   112,    -1,   111,   134,   228,
     1034       7,   165,   135,   112,    -1,   358,    -1,   359,   312,    -1,
     1035     360,   312,    -1,   150,    -1,   150,   228,    -1,   150,   357,
     1036      -1,   150,   228,   357,    -1,   109,   358,   110,    -1,   349,
     1037      -1,   109,   358,   110,   349,    -1,   109,   359,   110,   350,
     1038      -1,   109,   359,   110,    -1,   109,   358,   110,   109,   134,
     1039     264,   135,   110,    -1,   109,   360,   110,    -1,   362,    -1,
     1040     370,    -1,   228,   370,    -1,   363,    -1,   364,    -1,   150,
     1041     226,    -1,   228,   150,   226,    -1,   150,   371,    -1,   228,
     1042     150,   371,    -1,   150,   361,    -1,   228,   150,   361,    -1,
     1043     111,   112,   226,    -1,   365,   226,    -1,   111,   112,   350,
     1044     226,    -1,   365,   350,   226,    -1,   350,   226,    -1,   111,
     1045     112,   363,    -1,   365,   363,    -1,   111,   112,   350,   363,
     1046      -1,   365,   350,   363,    -1,   350,   363,    -1,   111,   134,
     1047     228,   117,   135,   112,    -1,   111,   134,   228,   165,   135,
     1048     112,    -1,   111,   134,   232,   165,   135,   112,    -1,   111,
     1049     134,   232,   228,   165,   135,   112,    -1,   370,    -1,   228,
     1050     370,    -1,   367,    -1,   368,    -1,   369,    -1,   150,   226,
     1051      -1,   228,   150,   226,    -1,   150,   371,    -1,   228,   150,
     1052     371,    -1,   150,   366,    -1,   228,   150,   366,    -1,   111,
     1053     112,   226,    -1,   111,   112,   350,   226,    -1,   350,   226,
     1054      -1,   111,   112,   368,    -1,   111,   112,   350,   368,    -1,
     1055     350,   368,    -1,   111,   134,   263,   135,   112,    -1,   111,
     1056     112,   109,   260,   110,    -1,   370,   109,   134,   260,   135,
     1057     110,    -1,   219,   109,   134,   260,   135,   110,    -1,    -1,
     1058     116,    -1,    -1,   131,   165,    -1
     1059};
     1060
     1061/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    6851062static const yytype_uint16 yyrline[] =
    6861063{
    687        0,   298,   298,   304,   313,   314,   315,   319,   320,   321,
    688      325,   326,   330,   331,   335,   336,   340,   341,   352,   354,
    689      356,   358,   363,   364,   370,   374,   376,   377,   379,   380,
    690      382,   384,   386,   395,   396,   402,   403,   407,   408,   412,
    691      416,   418,   420,   422,   427,   430,   432,   434,   439,   452,
    692      454,   456,   458,   460,   462,   464,   466,   468,   470,   472,
    693      479,   480,   486,   487,   488,   489,   493,   494,   496,   501,
    694      502,   504,   506,   511,   512,   514,   519,   520,   522,   527,
    695      528,   530,   532,   534,   539,   540,   542,   547,   548,   553,
    696      554,   559,   560,   565,   566,   571,   572,   577,   578,   581,
    697      583,   588,   593,   594,   596,   602,   603,   607,   608,   609,
    698      610,   611,   612,   613,   614,   615,   616,   617,   623,   625,
    699      627,   629,   634,   635,   640,   641,   647,   648,   654,   655,
    700      656,   657,   658,   659,   660,   661,   662,   672,   679,   681,
    701      691,   692,   697,   699,   705,   707,   711,   712,   717,   722,
    702      725,   727,   729,   739,   741,   752,   753,   755,   759,   761,
    703      765,   766,   771,   772,   776,   781,   782,   786,   788,   794,
    704      795,   799,   801,   803,   805,   811,   812,   816,   818,   823,
    705      825,   827,   832,   834,   839,   841,   845,   848,   852,   855,
    706      859,   861,   863,   865,   870,   872,   874,   879,   881,   883,
    707      885,   887,   892,   894,   896,   898,   903,   915,   916,   921,
    708      923,   928,   932,   934,   936,   938,   940,   946,   947,   953,
    709      954,   958,   959,   964,   966,   972,   973,   975,   980,   982,
    710      989,   991,   995,   996,  1001,  1003,  1007,  1008,  1012,  1014,
    711     1018,  1019,  1023,  1024,  1028,  1029,  1044,  1045,  1046,  1047,
    712     1048,  1052,  1057,  1064,  1074,  1079,  1084,  1092,  1097,  1102,
    713     1107,  1112,  1120,  1142,  1147,  1154,  1156,  1163,  1168,  1173,
    714     1184,  1189,  1194,  1199,  1204,  1213,  1218,  1226,  1227,  1228,
    715     1229,  1235,  1240,  1248,  1249,  1250,  1251,  1255,  1256,  1257,
    716     1258,  1263,  1264,  1273,  1274,  1279,  1280,  1285,  1287,  1289,
    717     1291,  1293,  1296,  1295,  1307,  1308,  1310,  1320,  1321,  1326,
    718     1328,  1330,  1332,  1334,  1336,  1338,  1340,  1345,  1347,  1349,
    719     1351,  1353,  1355,  1357,  1359,  1361,  1363,  1365,  1367,  1369,
    720     1375,  1376,  1378,  1380,  1382,  1387,  1388,  1394,  1395,  1397,
    721     1399,  1404,  1406,  1408,  1410,  1415,  1416,  1418,  1420,  1425,
    722     1426,  1428,  1433,  1434,  1436,  1438,  1443,  1445,  1447,  1452,
    723     1453,  1457,  1459,  1465,  1464,  1468,  1470,  1475,  1477,  1483,
    724     1484,  1489,  1490,  1492,  1493,  1502,  1503,  1505,  1507,  1512,
    725     1514,  1520,  1521,  1523,  1526,  1529,  1534,  1535,  1540,  1545,
    726     1549,  1551,  1557,  1556,  1563,  1565,  1571,  1572,  1580,  1581,
    727     1585,  1586,  1587,  1589,  1591,  1598,  1599,  1601,  1603,  1608,
    728     1609,  1615,  1616,  1620,  1621,  1626,  1627,  1628,  1630,  1638,
    729     1639,  1641,  1644,  1646,  1650,  1651,  1652,  1654,  1656,  1660,
    730     1665,  1673,  1674,  1683,  1685,  1690,  1691,  1692,  1696,  1697,
    731     1698,  1702,  1703,  1704,  1708,  1709,  1710,  1715,  1716,  1717,
    732     1718,  1724,  1725,  1727,  1732,  1733,  1738,  1739,  1740,  1741,
    733     1742,  1757,  1758,  1763,  1764,  1770,  1772,  1775,  1777,  1779,
    734     1802,  1803,  1805,  1807,  1812,  1813,  1815,  1820,  1825,  1826,
    735     1832,  1831,  1835,  1839,  1841,  1843,  1849,  1850,  1855,  1860,
    736     1862,  1867,  1869,  1870,  1872,  1877,  1879,  1881,  1886,  1888,
    737     1893,  1898,  1906,  1912,  1911,  1925,  1926,  1931,  1932,  1936,
    738     1941,  1946,  1954,  1959,  1970,  1971,  1976,  1977,  1983,  1984,
    739     1988,  1989,  1990,  1993,  1992,  2003,  2012,  2018,  2024,  2033,
    740     2039,  2045,  2051,  2057,  2065,  2071,  2079,  2085,  2094,  2095,
    741     2096,  2100,  2104,  2106,  2111,  2112,  2116,  2117,  2122,  2128,
    742     2129,  2132,  2134,  2135,  2139,  2140,  2141,  2142,  2176,  2178,
    743     2179,  2181,  2186,  2191,  2196,  2198,  2200,  2205,  2207,  2209,
    744     2211,  2216,  2218,  2227,  2229,  2230,  2235,  2237,  2239,  2244,
    745     2246,  2248,  2253,  2255,  2257,  2266,  2267,  2268,  2272,  2274,
    746     2276,  2281,  2283,  2285,  2290,  2292,  2294,  2309,  2311,  2312,
    747     2314,  2319,  2320,  2325,  2327,  2329,  2334,  2336,  2338,  2340,
    748     2345,  2347,  2349,  2359,  2361,  2362,  2364,  2369,  2371,  2373,
    749     2378,  2380,  2382,  2384,  2389,  2391,  2393,  2424,  2426,  2427,
    750     2429,  2434,  2439,  2447,  2449,  2451,  2456,  2458,  2463,  2465,
    751     2479,  2480,  2482,  2487,  2489,  2491,  2493,  2495,  2500,  2501,
    752     2503,  2505,  2510,  2512,  2514,  2520,  2522,  2524,  2528,  2530,
    753     2532,  2534,  2548,  2549,  2551,  2556,  2558,  2560,  2562,  2564,
    754     2569,  2570,  2572,  2574,  2579,  2581,  2583,  2589,  2590,  2592,
    755     2601,  2604,  2606,  2609,  2611,  2613,  2626,  2627,  2629,  2634,
    756     2636,  2638,  2640,  2642,  2647,  2648,  2650,  2652,  2657,  2659,
    757     2667,  2668,  2669,  2674,  2675,  2679,  2681,  2683,  2685,  2687,
    758     2689,  2696,  2698,  2700,  2702,  2704,  2706,  2708,  2710,  2712,
    759     2714,  2719,  2721,  2723,  2728,  2754,  2755,  2757,  2761,  2762,
    760     2766,  2768,  2770,  2772,  2774,  2776,  2783,  2785,  2787,  2789,
    761     2791,  2793,  2798,  2803,  2805,  2807,  2825,  2827,  2832,  2833
     1064       0,   341,   341,   345,   352,   353,   354,   358,   359,   360,
     1065     364,   365,   369,   370,   374,   375,   379,   383,   384,   395,
     1066     397,   399,   401,   406,   407,   413,   417,   419,   420,   422,
     1067     423,   425,   427,   429,   438,   439,   445,   446,   450,   451,
     1068     455,   459,   461,   463,   465,   470,   473,   475,   477,   482,
     1069     495,   497,   499,   501,   503,   505,   507,   509,   511,   513,
     1070     515,   522,   523,   529,   530,   531,   532,   536,   537,   539,
     1071     544,   545,   547,   549,   554,   555,   557,   562,   563,   565,
     1072     570,   571,   573,   575,   577,   582,   583,   585,   590,   591,
     1073     596,   597,   602,   603,   608,   609,   614,   615,   620,   621,
     1074     624,   626,   631,   636,   637,   639,   645,   646,   650,   651,
     1075     652,   653,   654,   655,   656,   657,   658,   659,   660,   666,
     1076     668,   670,   672,   677,   678,   683,   684,   690,   691,   697,
     1077     698,   699,   700,   701,   702,   703,   704,   705,   715,   722,
     1078     724,   734,   735,   740,   742,   748,   750,   754,   755,   760,
     1079     765,   768,   770,   772,   782,   784,   795,   796,   798,   802,
     1080     804,   808,   809,   814,   815,   819,   824,   825,   829,   831,
     1081     837,   838,   842,   844,   846,   848,   854,   855,   859,   861,
     1082     866,   868,   870,   875,   877,   882,   884,   888,   891,   895,
     1083     898,   902,   904,   906,   908,   913,   915,   917,   922,   924,
     1084     926,   928,   930,   935,   937,   939,   941,   946,   958,   959,
     1085     964,   966,   971,   975,   977,   979,   981,   983,   989,   990,
     1086     996,   997,  1001,  1002,  1007,  1009,  1015,  1016,  1018,  1023,
     1087    1028,  1038,  1040,  1044,  1045,  1050,  1052,  1056,  1057,  1061,
     1088    1063,  1067,  1068,  1072,  1073,  1077,  1078,  1093,  1094,  1095,
     1089    1096,  1097,  1101,  1106,  1113,  1123,  1128,  1133,  1141,  1146,
     1090    1151,  1156,  1161,  1169,  1191,  1196,  1203,  1205,  1212,  1217,
     1091    1222,  1233,  1238,  1243,  1248,  1253,  1262,  1267,  1275,  1276,
     1092    1277,  1278,  1284,  1289,  1297,  1298,  1299,  1300,  1304,  1305,
     1093    1306,  1307,  1312,  1313,  1322,  1323,  1328,  1329,  1334,  1336,
     1094    1338,  1340,  1342,  1345,  1344,  1356,  1357,  1359,  1369,  1370,
     1095    1375,  1377,  1379,  1381,  1383,  1385,  1387,  1389,  1394,  1396,
     1096    1398,  1400,  1402,  1404,  1406,  1408,  1410,  1412,  1414,  1416,
     1097    1418,  1424,  1425,  1427,  1429,  1431,  1436,  1437,  1443,  1444,
     1098    1446,  1448,  1453,  1455,  1457,  1459,  1464,  1465,  1467,  1469,
     1099    1474,  1475,  1477,  1482,  1483,  1485,  1487,  1492,  1494,  1496,
     1100    1501,  1502,  1506,  1508,  1514,  1513,  1517,  1519,  1524,  1526,
     1101    1532,  1533,  1538,  1539,  1541,  1542,  1551,  1552,  1554,  1556,
     1102    1561,  1563,  1569,  1570,  1572,  1575,  1578,  1583,  1584,  1589,
     1103    1594,  1598,  1600,  1606,  1605,  1612,  1614,  1620,  1621,  1629,
     1104    1630,  1634,  1635,  1636,  1638,  1640,  1647,  1648,  1650,  1652,
     1105    1657,  1658,  1664,  1665,  1669,  1670,  1675,  1676,  1677,  1679,
     1106    1687,  1688,  1690,  1693,  1695,  1699,  1700,  1701,  1703,  1705,
     1107    1709,  1714,  1722,  1723,  1732,  1734,  1739,  1740,  1741,  1745,
     1108    1746,  1747,  1751,  1752,  1753,  1757,  1758,  1759,  1764,  1765,
     1109    1766,  1767,  1773,  1774,  1776,  1781,  1782,  1787,  1788,  1789,
     1110    1790,  1791,  1806,  1807,  1812,  1813,  1819,  1821,  1824,  1826,
     1111    1828,  1851,  1852,  1854,  1856,  1861,  1862,  1864,  1869,  1874,
     1112    1875,  1881,  1880,  1884,  1888,  1890,  1892,  1898,  1899,  1904,
     1113    1909,  1911,  1916,  1918,  1919,  1921,  1926,  1928,  1930,  1935,
     1114    1937,  1942,  1947,  1955,  1961,  1960,  1974,  1975,  1980,  1981,
     1115    1985,  1990,  1995,  2003,  2008,  2019,  2020,  2025,  2026,  2032,
     1116    2033,  2037,  2038,  2039,  2042,  2041,  2052,  2061,  2067,  2073,
     1117    2082,  2088,  2094,  2100,  2106,  2114,  2120,  2128,  2134,  2143,
     1118    2144,  2145,  2149,  2153,  2155,  2160,  2161,  2165,  2166,  2171,
     1119    2177,  2178,  2181,  2183,  2184,  2188,  2189,  2190,  2191,  2225,
     1120    2227,  2228,  2230,  2235,  2240,  2245,  2247,  2249,  2254,  2256,
     1121    2258,  2260,  2265,  2267,  2276,  2278,  2279,  2284,  2286,  2288,
     1122    2293,  2295,  2297,  2302,  2304,  2306,  2315,  2316,  2317,  2321,
     1123    2323,  2325,  2330,  2332,  2334,  2339,  2341,  2343,  2358,  2360,
     1124    2361,  2363,  2368,  2369,  2374,  2376,  2378,  2383,  2385,  2387,
     1125    2389,  2394,  2396,  2398,  2408,  2410,  2411,  2413,  2418,  2420,
     1126    2422,  2427,  2429,  2431,  2433,  2438,  2440,  2442,  2473,  2475,
     1127    2476,  2478,  2483,  2488,  2496,  2498,  2500,  2505,  2507,  2512,
     1128    2514,  2528,  2529,  2531,  2536,  2538,  2540,  2542,  2544,  2549,
     1129    2550,  2552,  2554,  2559,  2561,  2563,  2569,  2571,  2573,  2577,
     1130    2579,  2581,  2583,  2597,  2598,  2600,  2605,  2607,  2609,  2611,
     1131    2613,  2618,  2619,  2621,  2623,  2628,  2630,  2632,  2638,  2639,
     1132    2641,  2650,  2653,  2655,  2658,  2660,  2662,  2675,  2676,  2678,
     1133    2683,  2685,  2687,  2689,  2691,  2696,  2697,  2699,  2701,  2706,
     1134    2708,  2716,  2717,  2718,  2723,  2724,  2728,  2730,  2732,  2734,
     1135    2736,  2738,  2745,  2747,  2749,  2751,  2753,  2755,  2757,  2759,
     1136    2761,  2763,  2768,  2770,  2772,  2777,  2803,  2804,  2806,  2810,
     1137    2811,  2815,  2817,  2819,  2821,  2823,  2825,  2832,  2834,  2836,
     1138    2838,  2840,  2842,  2847,  2852,  2854,  2856,  2874,  2876,  2881,
     1139    2882
    7621140};
    7631141#endif
    7641142
    765 #if YYDEBUG || YYERROR_VERBOSE || 0
     1143#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    7661144/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    7671145   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     
    7891167  "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
    7901168  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
    791   "string_literal_list", "primary_expression", "postfix_expression",
    792   "argument_expression_list", "argument_expression", "field_list", "field",
    793   "unary_expression", "ptrref_operator", "unary_operator",
    794   "cast_expression", "multiplicative_expression", "additive_expression",
    795   "shift_expression", "relational_expression", "equality_expression",
    796   "AND_expression", "exclusive_OR_expression", "inclusive_OR_expression",
    797   "logical_AND_expression", "logical_OR_expression",
    798   "conditional_expression", "constant_expression", "assignment_expression",
    799   "assignment_expression_opt", "assignment_operator", "tuple",
    800   "tuple_expression_list", "comma_expression", "comma_expression_opt",
    801   "statement", "labeled_statement", "compound_statement",
    802   "block_item_list", "block_item", "statement_list",
    803   "expression_statement", "selection_statement", "case_value",
    804   "case_value_list", "case_label", "case_label_list", "case_clause",
    805   "switch_clause_list_opt", "switch_clause_list", "choose_clause_list_opt",
    806   "choose_clause_list", "fall_through_opt", "fall_through",
    807   "iteration_statement", "for_control_expression", "jump_statement",
    808   "exception_statement", "handler_list", "handler_clause",
    809   "finally_clause", "exception_declaration", "asm_statement",
    810   "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
    811   "asm_operand", "asm_clobbers_list_opt", "label_list",
    812   "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
    813   "old_declaration_list", "local_label_declaration_opt",
    814   "local_label_declaration_list", "local_label_list", "declaration",
    815   "new_declaration", "new_variable_declaration", "new_variable_specifier",
     1169  "string_literal", "string_literal_list", "primary_expression",
     1170  "postfix_expression", "argument_expression_list", "argument_expression",
     1171  "field_list", "field", "unary_expression", "ptrref_operator",
     1172  "unary_operator", "cast_expression", "multiplicative_expression",
     1173  "additive_expression", "shift_expression", "relational_expression",
     1174  "equality_expression", "AND_expression", "exclusive_OR_expression",
     1175  "inclusive_OR_expression", "logical_AND_expression",
     1176  "logical_OR_expression", "conditional_expression", "constant_expression",
     1177  "assignment_expression", "assignment_expression_opt",
     1178  "assignment_operator", "tuple", "tuple_expression_list",
     1179  "comma_expression", "comma_expression_opt", "statement",
     1180  "labeled_statement", "compound_statement", "block_item_list",
     1181  "block_item", "statement_list", "expression_statement",
     1182  "selection_statement", "case_value", "case_value_list", "case_label",
     1183  "case_label_list", "case_clause", "switch_clause_list_opt",
     1184  "switch_clause_list", "choose_clause_list_opt", "choose_clause_list",
     1185  "fall_through_opt", "fall_through", "iteration_statement",
     1186  "for_control_expression", "jump_statement", "exception_statement",
     1187  "handler_list", "handler_clause", "finally_clause",
     1188  "exception_declaration", "asm_statement", "asm_volatile_opt",
     1189  "asm_operands_opt", "asm_operands_list", "asm_operand",
     1190  "asm_clobbers_list_opt", "label_list", "declaration_list_opt",
     1191  "declaration_list", "old_declaration_list_opt", "old_declaration_list",
     1192  "local_label_declaration_opt", "local_label_declaration_list",
     1193  "local_label_list", "declaration", "new_declaration",
     1194  "new_variable_declaration", "new_variable_specifier",
    8161195  "new_function_declaration", "new_function_specifier",
    8171196  "new_function_return", "new_typedef_declaration", "typedef_declaration",
     
    8711250  "new_abstract_declarator_no_tuple", "new_abstract_ptr",
    8721251  "new_abstract_array", "new_abstract_tuple", "new_abstract_function",
    873   "comma_opt", "assignment_opt", YY_NULLPTR
     1252  "comma_opt", "assignment_opt", 0
    8741253};
    8751254#endif
    8761255
    8771256# ifdef YYPRINT
    878 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
    879    (internal) symbol number NUM (which must be that of a token).  */
     1257/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
     1258   token YYLEX-NUM.  */
    8801259static const yytype_uint16 yytoknum[] =
    8811260{
     
    8971276# endif
    8981277
    899 #define YYPACT_NINF -1317
    900 
    901 #define yypact_value_is_default(Yystate) \
    902   (!!((Yystate) == (-1317)))
    903 
    904 #define YYTABLE_NINF -520
    905 
    906 #define yytable_value_is_error(Yytable_value) \
    907   0
    908 
    909   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    910      STATE-NUM.  */
     1278/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
     1279static const yytype_uint16 yyr1[] =
     1280{
     1281       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     1282     138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
     1283     143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
     1284     144,   144,   144,   144,   145,   145,   146,   146,   147,   147,
     1285     148,   148,   148,   148,   148,   149,   149,   149,   149,   149,
     1286     149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
     1287     149,   150,   150,   151,   151,   151,   151,   152,   152,   152,
     1288     153,   153,   153,   153,   154,   154,   154,   155,   155,   155,
     1289     156,   156,   156,   156,   156,   157,   157,   157,   158,   158,
     1290     159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
     1291     163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
     1292     167,   167,   167,   167,   167,   167,   167,   167,   167,   168,
     1293     168,   168,   168,   169,   169,   170,   170,   171,   171,   172,
     1294     172,   172,   172,   172,   172,   172,   172,   172,   173,   174,
     1295     174,   175,   175,   176,   176,   176,   176,   177,   177,   178,
     1296     179,   179,   179,   179,   179,   179,   180,   180,   180,   181,
     1297     181,   182,   182,   183,   183,   184,   185,   185,   186,   186,
     1298     187,   187,   188,   188,   188,   188,   189,   189,   190,   190,
     1299     191,   191,   191,   192,   192,   193,   193,   193,   193,   193,
     1300     193,   193,   193,   193,   193,   194,   194,   194,   195,   195,
     1301     195,   195,   195,   196,   196,   196,   196,   197,   198,   198,
     1302     198,   198,   198,   199,   199,   199,   199,   199,   200,   200,
     1303     201,   201,   202,   202,   203,   203,   204,   204,   204,   205,
     1304     205,   206,   206,   207,   207,   208,   208,   209,   209,   210,
     1305     210,   211,   211,   212,   212,   213,   213,   214,   214,   214,
     1306     214,   214,   215,   215,   215,   216,   216,   216,   217,   217,
     1307     217,   217,   217,   218,   218,   218,   219,   219,   220,   220,
     1308     220,   221,   221,   221,   221,   221,   222,   222,   223,   223,
     1309     223,   223,   224,   224,   225,   225,   225,   225,   226,   226,
     1310     226,   226,   227,   227,   228,   228,   229,   229,   230,   230,
     1311     230,   230,   230,   231,   230,   232,   232,   232,   233,   233,
     1312     234,   234,   234,   234,   234,   234,   234,   234,   235,   235,
     1313     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
     1314     235,   236,   236,   236,   236,   236,   237,   237,   238,   238,
     1315     238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
     1316     241,   241,   241,   242,   242,   242,   242,   243,   243,   243,
     1317     244,   244,   245,   245,   246,   245,   245,   245,   247,   247,
     1318     248,   248,   249,   249,   249,   249,   250,   250,   250,   250,
     1319     251,   251,   252,   252,   252,   252,   252,   253,   253,   254,
     1320     255,   256,   256,   257,   256,   258,   258,   259,   259,   260,
     1321     260,   261,   261,   261,   261,   261,   262,   262,   262,   262,
     1322     263,   263,   264,   264,   265,   265,   266,   266,   266,   266,
     1323     267,   267,   267,   267,   267,   268,   268,   268,   268,   268,
     1324     269,   269,   270,   270,   271,   271,   272,   272,   272,   273,
     1325     273,   273,   274,   274,   274,   275,   275,   275,   276,   276,
     1326     276,   276,   277,   277,   277,   278,   278,   279,   279,   279,
     1327     279,   279,   280,   280,   281,   281,   282,   282,   282,   282,
     1328     282,   283,   283,   283,   283,   284,   284,   284,   285,   286,
     1329     286,   288,   287,   287,   289,   289,   289,   290,   290,   291,
     1330     291,   291,   292,   292,   292,   292,   293,   293,   293,   294,
     1331     294,   295,   295,   296,   297,   296,   298,   298,   299,   299,
     1332     300,   300,   300,   301,   301,   302,   302,   303,   303,   304,
     1333     304,   305,   305,   305,   306,   305,   305,   307,   307,   307,
     1334     308,   308,   308,   308,   308,   308,   308,   308,   308,   309,
     1335     309,   309,   310,   311,   311,   312,   312,   313,   313,   314,
     1336     315,   315,   316,   316,   316,   317,   317,   317,   317,   318,
     1337     318,   318,   318,   319,   319,   320,   320,   320,   321,   321,
     1338     321,   321,   322,   322,   323,   323,   323,   324,   324,   324,
     1339     325,   325,   325,   326,   326,   326,   327,   327,   327,   328,
     1340     328,   328,   329,   329,   329,   330,   330,   330,   331,   331,
     1341     331,   331,   332,   332,   333,   333,   333,   334,   334,   334,
     1342     334,   335,   335,   335,   336,   336,   336,   336,   337,   337,
     1343     337,   338,   338,   338,   338,   339,   339,   339,   340,   340,
     1344     340,   340,   341,   341,   342,   342,   342,   343,   343,   344,
     1345     344,   345,   345,   345,   346,   346,   346,   346,   346,   347,
     1346     347,   347,   347,   348,   348,   348,   349,   349,   349,   350,
     1347     350,   350,   350,   351,   351,   351,   352,   352,   352,   352,
     1348     352,   353,   353,   353,   353,   354,   354,   354,   355,   355,
     1349     355,   356,   356,   356,   356,   356,   356,   357,   357,   357,
     1350     358,   358,   358,   358,   358,   359,   359,   359,   359,   360,
     1351     360,   361,   361,   361,   362,   362,   363,   363,   363,   363,
     1352     363,   363,   364,   364,   364,   364,   364,   364,   364,   364,
     1353     364,   364,   365,   365,   365,   365,   366,   366,   366,   367,
     1354     367,   368,   368,   368,   368,   368,   368,   369,   369,   369,
     1355     369,   369,   369,   370,   371,   371,   371,   372,   372,   373,
     1356     373
     1357};
     1358
     1359/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
     1360static const yytype_uint8 yyr2[] =
     1361{
     1362       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
     1363       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1364       1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
     1365       2,     2,     7,     4,     1,     3,     0,     1,     1,     3,
     1366       1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
     1367       2,     2,     2,     2,     4,     2,     4,     6,     1,     4,
     1368       4,     1,     1,     1,     1,     1,     1,     1,     4,     4,
     1369       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
     1370       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
     1371       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
     1372       4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
     1373       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
     1374       5,     6,     7,     1,     3,     1,     3,     0,     1,     1,
     1375       1,     1,     1,     1,     1,     1,     1,     6,     4,     2,
     1376       7,     1,     3,     1,     2,     1,     2,     1,     2,     2,
     1377       5,     7,     5,     9,     5,     9,     1,     3,     1,     1,
     1378       3,     3,     2,     1,     2,     2,     0,     1,     2,     3,
     1379       0,     1,     2,     3,     3,     4,     0,     1,     1,     2,
     1380       5,     7,     6,     6,     4,     3,     4,     2,     3,     2,
     1381       3,     3,     3,     3,     5,     3,     3,     4,     1,     5,
     1382       6,     5,     6,     9,    10,     9,    10,     2,     1,     2,
     1383       2,     2,     1,     6,     8,    10,    12,    14,     0,     1,
     1384       0,     1,     1,     3,     4,     7,     0,     1,     3,     1,
     1385       3,     1,     1,     1,     3,     1,     1,     1,     3,     0,
     1386       1,     3,     4,     1,     3,     1,     1,     3,     3,     3,
     1387       3,     3,     2,     3,     6,     3,     3,     4,     1,     2,
     1388       2,     3,     5,     8,     7,     7,     5,     9,     2,     2,
     1389       5,     3,     5,     4,     3,     4,     4,     7,     3,     3,
     1390       3,     3,     4,     6,     1,     1,     1,     1,     1,     1,
     1391       1,     1,     0,     1,     1,     2,     1,     1,     1,     1,
     1392       1,     1,     1,     0,     5,     1,     2,     3,     1,     2,
     1393       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1394       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1395       1,     1,     2,     2,     3,     3,     1,     3,     1,     2,
     1396       2,     2,     4,     4,     4,     4,     1,     2,     2,     3,
     1397       1,     2,     2,     1,     2,     2,     3,     1,     2,     2,
     1398       1,     1,     4,     2,     0,     6,     7,     2,     2,     2,
     1399       0,     2,     2,     3,     2,     3,     1,     2,     3,     2,
     1400       2,     4,     0,     1,     2,     2,     1,     0,     1,     2,
     1401       2,     5,     2,     0,     7,     2,     4,     0,     2,     0,
     1402       1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
     1403       1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
     1404       1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
     1405       3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
     1406       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1407       1,     2,     0,     2,     2,     1,     4,     0,     1,     2,
     1408       3,     4,     2,     2,     1,     2,     2,     5,     5,     7,
     1409       6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
     1410       4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
     1411       5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
     1412       4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
     1413       1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
     1414       1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
     1415       2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
     1416       1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
     1417       1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
     1418       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
     1419       4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
     1420       2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
     1421       6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
     1422       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
     1423       3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
     1424       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1425       2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
     1426       8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1427       4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
     1428       5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
     1429       3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
     1430       1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
     1431       1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
     1432       3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
     1433       2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
     1434       3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
     1435       1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
     1436       3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
     1437       2
     1438};
     1439
     1440/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
     1441   Performed when YYTABLE doesn't specify something else to do.  Zero
     1442   means the default is an error.  */
     1443static const yytype_uint16 yydefact[] =
     1444{
     1445     292,   292,   312,   310,   313,   311,   314,   315,   298,   300,
     1446     299,     0,   301,   326,   318,   323,   321,   322,   320,   319,
     1447     324,   325,   330,   327,   328,   329,   545,   545,   545,     0,
     1448       0,     0,   292,   218,   302,   316,   317,     7,   357,     0,
     1449       8,    14,    15,     0,     2,    61,    62,   563,     9,   292,
     1450     523,   521,   245,     3,   452,     3,   258,     0,     3,     3,
     1451       3,   246,     3,     0,     0,     0,   293,   294,   296,   292,
     1452     305,   308,   338,   284,   331,   336,   285,   346,   286,   353,
     1453     350,   360,     0,     0,   361,   287,   471,   475,     3,     3,
     1454       0,     2,   517,   522,   527,   297,     0,     0,   545,   575,
     1455     545,     2,   586,   587,   588,   292,     0,   729,   730,     0,
     1456      12,     0,    13,   292,   268,   269,     0,   293,   288,   289,
     1457     290,   291,   524,   303,   390,   546,   547,   368,   369,    12,
     1458     443,   444,    11,   439,   442,     0,   501,   496,   487,   443,
     1459     444,     0,     0,   526,   219,     0,   292,     0,     0,     0,
     1460       0,     0,     0,     0,     0,   292,   292,     2,     0,   731,
     1461     293,   580,   592,   735,   728,   726,   733,     0,     0,     0,
     1462     252,     2,     0,   530,   437,   438,   436,     0,     0,     0,
     1463       0,   545,     0,   632,   633,     0,     0,   543,   539,   545,
     1464     560,   545,   545,   541,     2,   540,   545,   599,   545,   545,
     1465     602,     0,     0,     0,   292,   292,   310,   358,     2,   292,
     1466     259,   295,   306,   339,   351,   476,     0,     2,     0,   452,
     1467     260,   293,   332,   347,   354,   472,     0,     2,     0,   309,
     1468     333,   340,   341,     0,   348,   352,   355,   359,   444,   292,
     1469     370,   363,   367,     0,   392,   473,   477,     0,     0,     0,
     1470       1,   292,     2,   528,   574,   576,   292,     2,   739,   293,
     1471     742,   543,   543,     0,   293,     0,     0,   271,   545,   541,
     1472       2,   292,     0,     0,   292,   548,     2,   499,     2,   552,
     1473       0,     0,     0,     0,     0,     0,    19,    58,     4,     5,
     1474       6,    17,     0,     0,   292,     2,    63,    64,    65,    66,
     1475      46,    20,    47,    16,    23,    45,    67,   292,     0,    70,
     1476      74,    77,    80,    85,    88,    90,    92,    94,    96,    98,
     1477     103,   493,   749,   450,   492,     0,   448,   449,     0,   564,
     1478     579,   582,   585,   591,   594,   597,   357,     0,     2,   737,
     1479       0,   292,   740,     2,    61,   292,     3,   424,     0,   432,
     1480     293,   292,   305,   331,   285,   346,   353,     3,     3,   406,
     1481     410,   420,   425,   471,   292,   426,   704,   705,   292,   427,
     1482     429,   292,     2,   581,   593,   727,     2,     2,   247,     2,
     1483     457,     0,   455,   454,   453,   139,     2,     2,   249,     2,
     1484       2,   248,     2,   279,     2,   280,     0,   278,     0,     0,
     1485       0,     0,     0,     0,     0,     0,     0,   565,   604,     0,
     1486     452,     2,   559,   568,   658,   561,   562,   531,   292,     2,
     1487     598,   607,   600,   601,     0,   274,   292,   292,   337,   293,
     1488       0,   293,     0,   292,   732,   736,   734,   532,   292,   543,
     1489     253,   261,   307,     0,     2,   533,   292,   497,   334,   335,
     1490     281,   349,   356,     0,   292,     0,   747,   397,     0,   474,
     1491     498,   250,   251,   518,   292,   434,     0,   292,   235,     0,
     1492       2,   237,     0,   293,     0,   255,     2,   256,   276,     0,
     1493       0,     2,   292,   543,   292,   484,   486,   485,     0,     0,
     1494     749,     0,   292,     0,   292,   488,   292,   558,   556,   557,
     1495     555,     0,   550,   553,     0,     0,   292,    53,   292,    67,
     1496      48,   292,    55,   292,   292,    51,    52,     2,   125,     0,
     1497       0,   446,     0,   445,   726,   119,   292,    18,     0,    30,
     1498      31,    36,     2,     0,    36,   109,   110,   111,   112,   113,
     1499     114,   115,   116,   117,   118,   108,     0,    49,    50,     0,
     1500       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1501       0,     0,     0,     0,     0,     0,     0,     0,     0,   105,
     1502       2,   644,   451,   641,   545,   545,   649,   478,   292,     2,
     1503     583,   584,     0,   595,   596,     0,     2,   738,   741,   119,
     1504     292,     0,     2,   706,   293,   710,   701,   702,   708,     0,
     1505       2,     2,   666,   545,   749,   615,   545,   545,   749,   545,
     1506     629,   545,   545,   680,   433,   663,   545,   545,   671,   678,
     1507     292,   428,   293,     0,     0,   292,   716,   293,   721,   749,
     1508     713,   292,   718,   749,   292,   292,   292,     0,   119,     0,
     1509      19,     2,     0,    20,     0,   458,   747,     0,     0,   464,
     1510     239,     0,   292,     0,     0,     0,   543,   567,   571,   573,
     1511     603,   606,   610,   613,   566,   605,     0,   282,   656,     0,
     1512     292,   275,     0,     0,     0,     0,   273,     2,     0,   257,
     1513     534,   292,     0,     0,   292,     2,   362,   382,   371,     0,
     1514       0,   376,   370,   748,     0,     0,   395,     0,   293,     3,
     1515     413,     3,   417,   416,   589,     0,   529,   292,    61,     3,
     1516     292,   432,   293,     3,   426,   427,     2,     0,     0,     0,
     1517     483,   304,   292,   479,   481,     3,     2,     2,     0,   500,
     1518       3,     0,   552,   127,     0,     0,   220,     0,     0,     0,
     1519       0,    37,     0,     0,   119,   292,    21,     0,    22,     0,
     1520     690,   695,   447,   687,   545,   545,     0,   106,     3,     2,
     1521      28,     0,    34,     0,     2,    26,     0,   104,    71,    72,
     1522      73,    75,    76,    78,    79,    83,    84,    81,    82,    86,
     1523      87,    89,    91,    93,    95,    97,     0,     0,   750,   292,
     1524       0,     0,     0,   645,   646,   642,   643,   495,   494,   292,
     1525       0,   292,   712,   292,   717,   293,   292,   660,   292,   292,
     1526     703,   659,     2,   292,     0,     0,     0,     0,     0,     0,
     1527       0,     0,   681,     0,   667,   618,   634,   668,     2,   614,
     1528     621,   430,   616,   617,   431,     2,   628,   637,   630,   631,
     1529     664,   665,   679,   707,   711,   709,   749,   266,     2,   743,
     1530       2,   421,   715,   720,   422,     0,   400,     3,     3,     3,
     1531       3,   452,     3,     0,     2,   466,   463,   748,     0,   459,
     1532       2,   462,   465,     0,   292,   240,   262,     3,   270,   272,
     1533       0,   452,     2,   569,   570,     2,   608,   609,     0,   657,
     1534     535,     3,   343,   342,   345,   344,   292,   536,     0,   537,
     1535     370,     0,     0,   292,   292,     0,     0,   690,   380,   383,
     1536     387,   545,   387,   386,   379,   372,   545,   374,   377,   292,
     1537     397,   391,   102,   398,   747,     0,     0,   435,   238,     0,
     1538       0,     3,     2,   666,   428,     0,   525,     0,   749,   487,
     1539       0,   292,   292,   292,     0,   549,   551,   128,     0,     0,
     1540     213,     0,     0,     0,   221,   222,    54,     0,    56,    59,
     1541      60,     0,     2,   126,     0,     0,     0,   691,   692,   688,
     1542     689,   457,    68,    69,   107,   123,     3,   106,     0,     0,
     1543      25,    36,     3,     0,    33,   100,     0,     3,   648,   652,
     1544     655,   647,     3,   590,     3,   714,   719,     2,    61,   292,
     1545       3,     3,   293,     0,     3,   620,   624,   627,   636,   670,
     1546     674,   677,   292,     3,   619,   635,   669,   292,   292,   423,
     1547     292,   292,   744,     0,     0,     0,     0,   254,     0,   102,
     1548       0,     3,     3,     0,   460,     0,   456,     0,     0,   243,
     1549     292,     0,     0,   127,     0,     0,     0,     0,     0,   127,
     1550       0,     0,   106,   106,    19,     2,     0,     0,     3,   129,
     1551     130,     2,   141,   131,   132,   133,   134,   135,   136,   143,
     1552     145,     0,     0,     0,   283,   292,   292,   545,     0,   538,
     1553     292,   373,   375,     0,   389,   691,   384,   388,   385,   378,
     1554     382,   365,   396,     0,   577,     2,   662,   661,     0,   667,
     1555       2,   480,   482,   502,     3,   510,   511,     0,     2,   506,
     1556       3,     3,     0,     0,   554,   220,     0,     0,     0,   220,
     1557       0,     0,   119,   694,   698,   700,   693,   747,   106,     0,
     1558       3,   659,    40,     3,    38,    35,     0,     3,    99,   101,
     1559       0,     2,   650,   651,     0,     0,   292,     0,     0,     0,
     1560       3,   636,     0,     2,   622,   623,     2,   638,     2,   672,
     1561     673,     0,     0,    61,     0,     3,     3,     3,     3,   408,
     1562     407,   411,     2,     2,   746,   745,   120,     0,     0,     0,
     1563       0,     3,   461,     3,     0,   241,   144,     3,   293,   292,
     1564       0,     0,     0,     0,     2,     0,   189,     0,   187,     0,
     1565       0,     0,     0,     0,     0,     0,   545,   119,     0,   149,
     1566     146,   292,     0,     0,   265,   277,     3,     3,   544,   611,
     1567     366,   381,   394,   292,   264,   292,     0,   513,   490,   292,
     1568       0,     0,   489,   504,     0,     0,     0,   214,     0,   223,
     1569      57,     2,   696,   697,     0,   124,   121,     0,     0,     0,
     1570       0,     0,    24,     0,   653,   292,   578,   263,   722,   723,
     1571     724,     0,   675,   292,   292,   292,     3,     3,     0,   683,
     1572       0,     0,     0,     0,   292,   292,     3,   542,   120,   468,
     1573       0,     0,   244,   293,     0,     0,     0,     0,   292,   190,
     1574     188,   185,     0,   191,     0,     0,     0,     0,   195,   198,
     1575     196,   192,     0,   193,   127,    36,   142,   140,   242,     0,
     1576       0,   415,   419,   418,     0,   507,     2,   508,     2,   509,
     1577     503,   292,   226,     0,   224,     0,   226,   292,    32,   122,
     1578       2,    43,     2,    41,    39,    29,    27,     3,   725,     3,
     1579       3,     3,     0,     0,   682,   684,   625,   639,   267,     2,
     1580     405,     3,   404,     0,   470,   467,   127,     0,     0,   127,
     1581       3,     0,   127,   186,     0,     2,     2,   207,   197,     0,
     1582       0,     0,   138,     0,   572,   612,     2,     0,     0,     2,
     1583     227,     0,     0,   215,     0,     3,     0,     0,     0,     0,
     1584       0,     0,   685,   686,   292,     0,   469,   150,     0,     0,
     1585       2,   163,   127,   152,     0,   180,     0,   127,     0,     2,
     1586     154,     0,     2,     0,     2,     2,     2,   194,    33,   292,
     1587     512,   514,   505,     0,     0,     0,     0,     0,     3,     3,
     1588     654,   626,   640,   676,   409,   127,   156,   159,     0,   158,
     1589     162,     3,   165,   164,     0,   127,   182,   127,     3,     0,
     1590     292,     0,   292,     0,     2,     0,     2,   137,     2,   228,
     1591     229,     0,   225,   216,   699,     0,     0,   151,     0,     0,
     1592     161,   231,   166,     2,   233,   181,     0,   184,   170,   199,
     1593       3,   208,   212,   201,     3,     0,   292,     0,   292,     0,
     1594       0,     0,    44,    42,   157,   160,   127,     0,   167,   292,
     1595     127,   127,     0,   171,     0,     0,   690,   209,   210,   211,
     1596       0,   200,     3,   202,     3,   292,   217,   230,   147,   168,
     1597     153,   127,   234,   183,   178,   176,   172,   155,   127,     0,
     1598     691,     0,     0,     0,     0,   148,   169,   179,   173,   177,
     1599     176,   174,     3,     3,     0,     0,   491,   175,   203,   205,
     1600       3,     3,   204,   206
     1601};
     1602
     1603/* YYDEFGOTO[NTERM-NUM].  */
     1604static const yytype_int16 yydefgoto[] =
     1605{
     1606      -1,   813,   468,   300,    47,   133,   134,   301,   302,   303,
     1607     304,   305,   761,   762,  1133,  1134,   306,   381,   308,   309,
     1608     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
     1609     320,  1030,   518,   975,   546,   322,   976,   947,  1057,  1518,
     1610    1059,  1060,  1061,  1062,  1519,  1063,  1064,  1437,  1438,  1401,
     1611    1402,  1403,  1497,  1498,  1502,  1503,  1538,  1539,  1065,  1361,
     1612    1066,  1067,  1298,  1299,  1300,  1480,  1068,   145,   953,   954,
     1613     955,  1381,  1461,  1472,  1473,   469,   470,   874,   875,  1038,
     1614      51,    52,    53,    54,    55,   347,   158,    58,    59,    60,
     1615      61,    62,   349,    64,    65,   264,    67,    68,   274,   351,
     1616     352,    71,    72,    73,   118,    75,   204,   354,   119,    78,
     1617     120,    80,    81,   455,    82,   454,   688,   689,   690,   908,
     1618    1086,   909,    83,    84,   458,   456,   696,   855,   856,   857,
     1619     858,   699,   700,   701,   359,   360,   361,   362,   466,   340,
     1620     135,   136,   522,   324,   170,   645,   646,   647,   648,   649,
     1621      85,   121,    87,   489,   490,   939,   491,   277,   495,   325,
     1622      88,   137,   138,    89,  1321,  1108,  1109,  1110,  1111,    90,
     1623      91,   717,    92,   273,    93,    94,   187,  1032,   679,   412,
     1624     125,    95,   501,   502,   503,   188,   268,   190,   191,   192,
     1625     269,    98,    99,   100,   101,   102,   103,   104,   195,   196,
     1626     197,   198,   199,   825,   605,   606,   607,   608,   200,   610,
     1627     611,   612,   572,   573,   574,   575,   751,   105,   614,   615,
     1628     616,   617,   618,   619,   968,   753,   754,   755,   595,   365,
     1629     366,   367,   368,   326,   164,   107,   108,   109,   370,   694,
     1630     569
     1631};
     1632
     1633/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     1634   STATE-NUM.  */
     1635#define YYPACT_NINF -1390
    9111636static const yytype_int16 yypact[] =
    9121637{
    913     7252,  8635, -1317,    -3, -1317, -1317, -1317, -1317, -1317, -1317,
    914    -1317,    23, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    915    -1317, -1317, -1317, -1317, -1317, -1317,    81,    81,    81,  1277,
    916      970,   104,  7368,   277, -1317, -1317, -1317, -1317, -1317,   201,
    917    -1317, -1317, -1317,  1047,   187, -1317, -1317, -1317, -1317,  5370,
    918    -1317, -1317, -1317, -1317,    35,    48, -1317,  1328, -1317, -1317,
    919    -1317, -1317,   235,  1663,   343,    98,  7484, -1317, -1317,  6174,
    920     1066, -1317, -1317,   536,   376,  5540,   978,  1631,   536,  1775,
    921    -1317, -1317,   477,   683, -1317,   536,  1892, -1317,   295, -1317,
    922      422,   489, -1317, -1317, -1317, -1317,   346,    48,    81, -1317,
    923       81, -1317, -1317, -1317, -1317,  9392,  1328, -1317, -1317,  1328,
    924    -1317,   321, -1317,  9431, -1317, -1317,  2250,  9501, -1317,   668,
    925      668,   668, -1317, -1317, -1317,    81, -1317, -1317, -1317,   373,
    926      399,   410, -1317, -1317, -1317,   420, -1317, -1317, -1317, -1317,
    927    -1317,   428,   450, -1317, -1317,    59,  8604,  2904,   144,   440,
    928      493,   498,   531,   544,   560,  8522,  6772,   510,   580, -1317,
    929     9114, -1317, -1317, -1317, -1317,   584, -1317,   153,  4280,  4280,
    930    -1317,   570,   283, -1317, -1317, -1317, -1317,   596,   288,   303,
    931      332,    81,   583, -1317, -1317,  1663,  2232,   648, -1317,    73,
    932    -1317,    81,    81,    48, -1317, -1317,    80, -1317,    81,    81,
    933    -1317,  3694,   599,   613,   668,  6565, -1317, -1317,   661,  5370,
    934    -1317, -1317,   536, -1317, -1317, -1317,    48, -1317,  1328,    35,
    935    -1317,  7675, -1317,   668,   668,   668,    48, -1317,  1277, -1317,
    936     5446, -1317, -1317,   620,   668, -1317,   668, -1317,   201,  8604,
    937    -1317,   673, -1317,   970,   692,   668, -1317,  1277,   697,   707,
    938    -1317,  7368,   576, -1317, -1317, -1317,  4822, -1317, -1317,  9720,
    939    -1317,   648,   165, 10347,  9501,  2250,  3694, -1317,   109, -1317,
    940    -1317,  9431,  1328,   743,  7515, -1317, -1317,   306, -1317, 10675,
    941      770,   800,  2676,   801, 10480, 10499, -1317,   813, -1317, -1317,
    942    -1317, -1317, 10556, 10556,  8378,   795, -1317, -1317, -1317, -1317,
    943    -1317, -1317,   842, -1317,   685,  1919,  8717, 10480, -1317,   652,
    944      325,   507,   317,   581,   826,   820,   823,   861,   111, -1317,
    945    -1317,   827,   703, -1317,   452, -1317, -1317,  2904, -1317, -1317,
    946      278,   856, -1317,   636,   856,   866,   201, -1317, -1317,   872,
    947     9392, -1317,   876,   887,  8830, -1317, -1317,  1020,  2049,  8093,
    948     6565,   536, -1317,   536,   668,   668, -1317, -1317, -1317, -1317,
    949    -1317, -1317,   668,  9392,  1328, -1317, -1317,  9540,  1233, -1317,
    950     7824, -1317, -1317, -1317, -1317, -1317, -1317, -1317,   891,  4627,
    951    10480, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    952    -1317, -1317, -1317, -1317, -1317,  2250, -1317,   552,   901,   904,
    953      912,   862,   920,   922,   924,  2232, -1317, -1317,   932,    35,
    954      936, -1317, -1317,   939, -1317, -1317, -1317,  4822, -1317, -1317,
    955    -1317, -1317, -1317,  3694, -1317,  8604,  8604, -1317,   668,  2250,
    956     6684,  1328,  8166, -1317, -1317, -1317, -1317,  4822,   165, -1317,
    957    -1317,   536,    48, -1317, -1317,  4822, -1317,  6449, -1317, -1317,
    958      668,   668,   484,  8011,   938,   941,   931,   952,   668, -1317,
    959    -1317, -1317, -1317,  9797, -1317,   578,  6327, -1317,    48,   955,
    960    -1317,  2250, 10757, 10404, -1317, -1317, -1317, -1317,   881,  3694,
    961    -1317,  8239,   648,  3545, -1317, -1317, -1317,  1641,   586,   827,
    962      970,  7515,   592,  9431, -1317,  7515, -1317, -1317, -1317, -1317,
    963      603, -1317,   967,   800,   215,  8378, -1317,  9570, -1317, -1317,
    964     8378, -1317,  8491,  8378, -1317, -1317,   966, -1317,   617,   973,
    965      839,   983, -1317, -1317,  9253,  6415, -1317,   247, -1317, -1317,
    966    10347, -1317,   330, 10347, -1317, -1317, -1317, -1317, -1317, -1317,
    967    -1317, -1317, -1317, -1317, -1317, 10347, -1317, -1317, 10480, 10480,
    968    10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480,
    969    10480, 10480, 10480, 10480, 10480, 10480,  4526, 10347, -1317,   703,
    970      751, -1317, -1317,    81,    81, -1317, -1317,  8604, -1317, -1317,
    971      939,   576, -1317,   939, 10423, -1317, -1317, -1317,  8975,  6415,
    972      968,   976, -1317,  9501, -1317, -1317,   584, -1317,   990,   769,
    973      999,  3014,   124,   827, -1317,    81,    81,   827,   125, -1317,
    974       81,    81,   939, -1317, -1317,    81,    81, -1317,   856,  9652,
    975     1328, 10902,   151,   358,  9652, -1317,  9720, -1317,   827, -1317,
    976     9392, -1317,   147,  7790,  7790,  7790,  1328, -1317,  5708,   982,
    977      891,  1167,   995,   996, -1317,  1011,  4280,   230, -1317,  1103,
    978     1328,  7790,   576,  2250,   576,   648,   671,   856, -1317, -1317,
    979      694,   856, -1317, -1317, -1317,   800, -1317,   856,    48,  9797,
    980    -1317,   621,  1024,   640,  1026, -1317,  1030,    48, -1317, -1317,
    981     4822,    48,  1032,  9570,  1037, -1317,  1585, -1317,   335,   390,
    982      970, -1317,   970,  1023, 10480, -1317,   970, 10902, -1317, -1317,
    983     1034, -1317, -1317, -1317,   576, -1317, 10830,   887, -1317,  7790,
    984      859,  8093, -1317, -1317,   584,  1025,  1036,  1641,  3247, -1317,
    985    -1317,  7515, -1317, -1317,  1039, -1317, -1317,  1043, -1317,  1039,
    986     1048, 10675, 10347,    67,  1027,   133,  1053,  1061,  1068,  1069,
    987    -1317,  1072,  1074,  9362,  6534, -1317, 10347, -1317,   839,  2140,
    988    -1317, -1317, -1317,    81,    81, 10290, 10347,  1070, -1317, -1317,
    989      675, -1317, 10347, -1317, -1317,   644, -1317, -1317, -1317, -1317,
    990      652,   652,   325,   325,   507,   507,   507,   507,   317,   317,
    991      581,   826,   820,   823,   861, 10480,   333, -1317,  9797,  1079,
    992     1080,  1081,   751, -1317, -1317, -1317, -1317, -1317,  9797,   700,
    993     7790, -1317,  9392, -1317,  6891,  8943, -1317,  7824,  6772, -1317,
    994    -1317,   769,  9797,   917,  1082,  1083,  1084,  1087,  1088,  1089,
    995     1091, -1317,  4955,  3014, -1317, -1317, -1317, -1317, -1317, -1317,
    996    -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    997    -1317,   939, -1317, -1317, -1317,   827, -1317, -1317, -1317, -1317,
    998    -1317, -1317, -1317, -1317,  1098, -1317,  1099,  1101, -1317, -1317,
    999       35,  1070,  5708, -1317, -1317, -1317,  4627,  1102, -1317, -1317,
    1000    -1317, -1317,   970,  5944,  1191, -1317, -1317, -1317, -1317,  1094,
    1001       35, -1317, -1317,   939, -1317, -1317,   939,    24,   939, -1317,
    1002    -1317, -1317, -1317, -1317, -1317,  9223, -1317,    48, -1317, -1317,
    1003      432,   441,  9540,  7010,  2348, 10480,  3377, -1317, -1317,  1092,
    1004       94,  1092, -1317,   970, -1317,    81, -1317, -1317,  8748,   931,
    1005    -1317, -1317, -1317,   941,  1116,  1111, -1317, -1317,  1118,  1119,
    1006    -1317,   859,  2430, -1317,   455, -1317,  3247,   827, -1317,  1122,
    1007     7515,  9682,  8604,  1125, -1317, -1317,  1130,  1135,  1124, -1317,
    1008    10480,   166,   222,  1132, -1317,  1138,   576,  1138, -1317, -1317,
    1009     1138,  1137, -1317,  1145,  1147,  1148,  2140, -1317, -1317, -1317,
    1010     4627, -1317, -1317, -1317, -1317,  1143, 10347,  1149,   576, -1317,
    1011    10347, -1317,   576, -1317, -1317, 10347, -1317,   721,   856, -1317,
    1012    -1317, -1317, -1317, -1317, -1317, -1317,   891,   887,  8830, -1317,
    1013    -1317,  7129,  1152, -1317,   731,   856, -1317,   745,   763,   856,
    1014    -1317,   668,  5561, -1317, -1317, -1317,  9797,  9797, -1317,  8166,
    1015     8166, -1317,  1154,  1156,  1153,  1155, -1317,  1168,   460,   196,
    1016     1070, -1317,   576, -1317,  4280, -1317, 10347,   474, -1317,  6296,
    1017     1159,  1170, 10233,  1172,  1175,   -14,     3,    11, 10347,  1179,
    1018       48, 10347, 10347,  1160,  1177,   282,  1161, -1317, -1317, -1317,
    1019     1180, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1020      970,  1184, 10347, -1317,  9797,  9797,    81,  1188, -1317,  8861,
    1021    -1317, -1317,   809, -1317,  3377, -1317, -1317, -1317, -1317,  1585,
    1022    -1317, -1317,  1185, -1317, -1317, -1317, -1317,  1193,  2430, -1317,
    1023    -1317,  1176, -1317,  1039, -1317, -1317,  2250,  1196, -1317, -1317,
    1024    -1317,   709,  1198, -1317,   133,  1202, 10480,  1186,   133,   133,
    1025     1211,  9253,   789,   856, -1317, -1317,  1011, 10347,  1214,  1143,
    1026      505,   224,  1217, -1317, -1317,  1218,  1217, -1317, -1317,  1226,
    1027    -1317, -1317,   939,  1228,  1230,  6653,  1231,  1232,  1243, -1317,
    1028    -1317,  1246, -1317, -1317,   939, -1317, -1317, -1317, -1317,   939,
    1029    10347, 10347,   887,  1245, -1317, -1317, -1317, -1317, -1317, -1317,
    1030    -1317, -1317, -1317, -1317, -1317, -1317, 10480, 10480,  1247,  1251,
    1031     1217, -1317, -1317,   970, -1317, -1317, -1317,  4468,  9682, 10347,
    1032    10347,  1311, 10347, -1317,  1234, -1317,  1237, -1317,  1239, 10347,
    1033     1241, 10347,  1049,  1244,    26,    81,  9084,   750, -1317, -1317,
    1034     5944,  1267,   481, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1035    -1317, -1317, 10053, -1317,  8239,  1274, -1317, -1317,  9682,   482,
    1036      512, -1317,  1272,  1259,   800,  1280, -1317,   245, -1317, -1317,
    1037    -1317, -1317,   939,  1279, -1317, -1317,  1287,   385,   444,   576,
    1038     1293, -1317,  1294, -1317,  9797, -1317, -1317, -1317, -1317, -1317,
    1039     1295, -1317,  9797,  9797,  9797, -1317, -1317,  1297, -1317,  1298,
    1040     1282,  1305,   511,  7863,  7978, -1317, -1317,   348, -1317,  1304,
    1041     1310, -1317,  8312,   712,   734,  1308,   739,  6143, -1317, -1317,
    1042    -1317,   515, -1317,   765,  1318,  1320,    48,  1371,   879, -1317,
    1043    -1317, 10347, -1317, 10233, 10347, -1317, -1317, -1317,  1322,  1329,
    1044    -1317, -1317, -1317,  1324, -1317, -1317, -1317, -1317, -1317, -1317,
    1045     9682,   800,   265, -1317,  1309,   800,  9797, -1317, -1317, -1317,
    1046    -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1047    -1317,  1330,  1331, -1317, -1317, -1317, -1317, -1317, -1317, -1317,
    1048     1334, -1317,  1333, -1317, -1317, 10233,   143, 10347, 10233, -1317,
    1049     1338, 10347, -1317,   259,  1354,  1356, -1317, -1317,  1346,  1347,
    1050     1326, -1317,   880, -1317, -1317, -1317,  1328,  2250,  1345,   842,
    1051      364, 10480, -1317,   774, -1317,   576,   576,  1352,  1355,  1357,
    1052     1360, -1317, -1317,  8166,  1358, -1317,  1436, 10480,  1349, -1317,
    1053    -1317, 10145, -1317,   783, -1317,  1350, 10233,  1359, -1317, -1317,
    1054     1378, -1317,  1379, -1317,  1394,  1396, -1317,  1361,  9682, -1317,
    1055    -1317, -1317,   800,   576,  1386,  1367,  1392,  1217,  1217, -1317,
    1056    -1317, -1317, -1317, -1317, 10233,   275, -1317,   384, -1317, -1317,
    1057     7600, -1317, -1317,  1375, 10347, -1317, 10347,  7600,    48,  9570,
    1058       48,  9570,  1393, -1317,  1398, -1317, -1317,  1395,   842, -1317,
    1059      798, -1317, -1317, -1317,  1399,  1401, -1317, 10480, 10480, -1317,
    1060    -1317,   964,   167, -1317, -1317,  1388, -1317,   964, -1317, -1317,
    1061     2461,   576, -1317, -1317,    48,  9570,    48,  9570,  1409,  1390,
    1062      576, -1317, -1317, -1317, -1317, 10145,  1410,   964,  5861, 10347,
    1063    10057,  1412,   964,  1414,  2461,  3613, -1317, -1317, -1317,  1420,
    1064    -1317, -1317, -1317, -1317,  8604, -1317, -1317, -1317,  9924, -1317,
    1065    10145, -1317, -1317,  1402,  9836, -1317, -1317, 10057,    48,  3613,
    1066       48,  1421,  1429,   817, -1317,  9924, -1317, -1317, -1317,  9836,
    1067    -1317, -1317, -1317,    48,    48, -1317, -1317, -1317, -1317, -1317,
    1068    -1317, -1317, -1317
     1638    7429,  6461, -1390,    -8, -1390, -1390, -1390, -1390, -1390, -1390,
     1639   -1390,   -23, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1640   -1390, -1390, -1390, -1390, -1390, -1390,    91,    91,    91,  1566,
     1641     744,    60,  7661,   126, -1390, -1390, -1390, -1390, -1390,   146,
     1642   -1390, -1390, -1390,   775,   200, -1390, -1390, -1390, -1390,  5932,
     1643   -1390, -1390, -1390, -1390,   110,   203, -1390,  1684, -1390, -1390,
     1644   -1390, -1390,   214,  2010,   360,   114,  7777, -1390, -1390,  9536,
     1645    1247, -1390, -1390,  1362,   444,  2238,   717,   552,  1362,  1870,
     1646   -1390, -1390,   837,   759, -1390,  1362,  1917, -1390,   226, -1390,
     1647     415,   453, -1390, -1390, -1390, -1390,   349,   203,    91, -1390,
     1648      91, -1390, -1390, -1390, -1390,  2963,  1684, -1390, -1390,  1684,
     1649   -1390,   342, -1390,  8264, -1390, -1390,  2329,  9075, -1390,  1671,
     1650    1671,  1671, -1390, -1390, -1390,    91, -1390, -1390, -1390,   422,
     1651     442,   463, -1390, -1390, -1390,   475, -1390, -1390, -1390, -1390,
     1652   -1390,   487,   492, -1390, -1390,    41,  9044,  2498,   571,   409,
     1653     496,   499,   523,   533,   543,  5546,  6949,   548,   579, -1390,
     1654    9574, -1390, -1390, -1390, -1390,   586, -1390,   116,  4885,  4885,
     1655   -1390,   602,   204, -1390, -1390, -1390, -1390,   626,   243,   344,
     1656     351,    91,   531, -1390, -1390,  2010,  3286,   695, -1390,    42,
     1657   -1390,    91,    91,   203, -1390, -1390,    65, -1390,    91,    91,
     1658   -1390,  3459,   673,   690,  1671,  6742, -1390, -1390,   702,  5932,
     1659   -1390, -1390,  1362, -1390, -1390, -1390,   203, -1390,  1684,   110,
     1660   -1390,  8115, -1390,  1671,  1671,  1671,   203, -1390,  1566, -1390,
     1661    4853, -1390, -1390,   703,  1671, -1390,  1671, -1390,   146,  9044,
     1662   -1390,   726, -1390,   744,   749,  1671, -1390,  1566,   724,   743,
     1663   -1390,  7661,   590, -1390, -1390, -1390,  9503, -1390, -1390,  5769,
     1664   -1390,   695,   158, 10287,  9075,  2329,  3459, -1390,    80, -1390,
     1665   -1390,  8264,  1684,   765,  7808, -1390, -1390,   362, -1390, 10539,
     1666     797,   846,  3526,   825,  3896,  4720, -1390,   843, -1390, -1390,
     1667   -1390, -1390, 10420, 10420,  8818,   845, -1390, -1390, -1390, -1390,
     1668   -1390, -1390, -1390,   883, -1390,  1119,  1947,  9157,  3896, -1390,
     1669     619,   651,   614,   309,   714,   823,   850,   853,   891,   100,
     1670   -1390, -1390,   866,   558, -1390,   120, -1390, -1390,  2498, -1390,
     1671   -1390,   443,   892, -1390,   450,   892,   895,   146, -1390, -1390,
     1672     900,  2963, -1390,   898,   901,  9270, -1390, -1390,  1091,  1646,
     1673    8533,  6742,  1362, -1390,  1362,  1671,  1671, -1390, -1390, -1390,
     1674   -1390, -1390, -1390,  1671,  2963,  1684, -1390, -1390,  9188,  1515,
     1675   -1390,  4463, -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,
     1676    6164,  3896, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1677   -1390, -1390, -1390, -1390, -1390, -1390,  2329, -1390,   814,   908,
     1678     913,   916,   859,   918,   921,   922,  3286, -1390, -1390,   927,
     1679     110,   905, -1390, -1390,   926, -1390, -1390, -1390,  9503, -1390,
     1680   -1390, -1390, -1390, -1390,  3459, -1390,  9044,  9044, -1390,  1671,
     1681    2329,  6861,  1684,  8606, -1390, -1390, -1390, -1390,  9503,   158,
     1682   -1390, -1390,  1362,   203, -1390, -1390,  9503, -1390,  5584, -1390,
     1683   -1390,  1671,  1671,   300,  4617,   934,   933,   925,   950,  1671,
     1684   -1390, -1390, -1390, -1390,  9803, -1390,   408,  6623, -1390,   203,
     1685     965, -1390,  2329, 10621, 10344, -1390, -1390, -1390, -1390,   932,
     1686    3459, -1390,  8679,   695,  7545, -1390, -1390, -1390,   907,   412,
     1687     866,   744,  7808,   994,  8264, -1390,  7808, -1390, -1390, -1390,
     1688   -1390,   554, -1390,   953,   846,   236,  8818, -1390,  9301, -1390,
     1689   -1390,  8818, -1390,  8931,  8818, -1390, -1390,   969, -1390,   637,
     1690     972,   583,   973, -1390, -1390,  9650,  6592, -1390,   268, -1390,
     1691   -1390, 10287, -1390,   318, 10287, -1390, -1390, -1390, -1390, -1390,
     1692   -1390, -1390, -1390, -1390, -1390, -1390, 10287, -1390, -1390,  3896,
     1693    3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,
     1694    3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1390,
     1695     558,  1665, -1390, -1390,    91,    91, -1390, -1390,  9044, -1390,
     1696   -1390,   926,   590, -1390,   926, 10363, -1390, -1390, -1390,  5001,
     1697    6592,   974,   975, -1390,  9075, -1390, -1390,   586, -1390,   976,
     1698     286,   979,  1959,    99,   866, -1390,    91,    91,   866,   122,
     1699   -1390,    91,    91,   926, -1390, -1390,    91,    91, -1390,   892,
     1700    9421,  1684, 10766,   260,   339,  9421, -1390,  5769, -1390,   866,
     1701   -1390,  2963, -1390,   183,  8230,  8230,  8230,  1684, -1390, 10173,
     1702     963,   903,   538,   964,   967, -1390,   985,  4885,   427, -1390,
     1703    1073,  1684,  8230,   590,  2329,   590,   695,   727,   892, -1390,
     1704   -1390,   771,   892, -1390, -1390, -1390,   846, -1390,   892,   203,
     1705    9803, -1390,   647,   995,   650,   996, -1390,   997,   203, -1390,
     1706   -1390,  9503,   203,   998,  9301,   999, -1390,  1616, -1390,   384,
     1707     407,   744, -1390,   744,  1002,  3896, -1390,   744, 10766, -1390,
     1708   -1390,  1000, -1390, -1390, -1390,   590, -1390, 10694,   901, -1390,
     1709    8230,   596,  8533, -1390, -1390,   586,  1003,  1004,   907,  2842,
     1710   -1390, -1390,  7808, -1390, -1390,  1007, -1390, -1390,  1018, -1390,
     1711    1007,  1019, 10539, 10287,   983,  1009,    88,  1022,  1012,  1023,
     1712    1025, -1390,  1026,  1032,  9688,  6711, -1390, 10287, -1390,   583,
     1713    1835, -1390, -1390, -1390,    91,    91, 10230, 10287,  1027, -1390,
     1714   -1390,   657, -1390, 10287, -1390, -1390,   706, -1390, -1390, -1390,
     1715   -1390,   619,   619,   651,   651,   614,   614,   614,   614,   309,
     1716     309,   714,   823,   850,   853,   891,  3896,   237, -1390,  9803,
     1717    1035,  1038,  1041,  1665, -1390, -1390, -1390, -1390, -1390,  9803,
     1718     664,  8230, -1390,  2963, -1390,  7068,  9383, -1390,  4463,  6949,
     1719   -1390, -1390,   286,  9803,   944,  1045,  1046,  1048,  1049,  1050,
     1720    1052,  1054, -1390,  3725,  1959, -1390, -1390, -1390, -1390, -1390,
     1721   -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1722   -1390, -1390,   926, -1390, -1390, -1390,   866, -1390, -1390, -1390,
     1723   -1390, -1390, -1390, -1390, -1390,  1060, -1390,  1061,  1068, -1390,
     1724   -1390,   110,  1027, 10173, -1390, -1390, -1390,  6164,  1064, -1390,
     1725   -1390, -1390, -1390,   744,  6295,  1153, -1390, -1390, -1390, -1390,
     1726    1053,   110, -1390, -1390,   926, -1390, -1390,   926,  1076,   926,
     1727   -1390, -1390, -1390, -1390, -1390, -1390,  9612, -1390,   203, -1390,
     1728   -1390,   437,   460,  9188,  7187,  1990,  3896,  3131, -1390, -1390,
     1729    1063,    87,  1063, -1390,   744, -1390,    91, -1390, -1390,  8451,
     1730     925, -1390, -1390, -1390,   933,  1080,  1067, -1390, -1390,  1084,
     1731    1097, -1390,   596,  1850, -1390,   502, -1390,  2842,   866, -1390,
     1732    1088,  7808,  9721,  9044,  1100, -1390, -1390,  1096,  1104,  1085,
     1733   -1390,  3896,  1107,   250,  1102, -1390,  1105,   590,  1105, -1390,
     1734   -1390,  1105,  1108, -1390,  1111,  1112,  1114,  1835, -1390, -1390,
     1735   -1390,  6164, -1390, -1390, -1390, -1390,  1122, 10287,  1115,   590,
     1736   -1390, 10287, -1390,   590, -1390, -1390, 10287, -1390,   776,   892,
     1737   -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,   901,  9270,
     1738   -1390, -1390,  7306,  1125, -1390,   791,   892, -1390,   804,   829,
     1739     892, -1390,  1671,  4154, -1390, -1390, -1390,  9803,  9803, -1390,
     1740    8606,  8606, -1390,  1126,  1127,  1135,  1137, -1390,  1146,   615,
     1741     233,  1027, -1390,   590, -1390,  4885, -1390, 10287,   491, -1390,
     1742    6430,  1140,  1150, 10116,  1152,  1157,    46,    55,   198, 10287,
     1743    1158,   203, 10287, 10287,  1132,  1156,   335,  1138, -1390, -1390,
     1744   -1390,  1161, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1745   -1390,   744,  1172, 10287, -1390,  9803,  9803,    91,  1174, -1390,
     1746    8962, -1390, -1390,   742, -1390,  3131, -1390, -1390, -1390, -1390,
     1747    1616, -1390, -1390,  1175, -1390, -1390, -1390, -1390,  1177,  1850,
     1748   -1390, -1390,  1143, -1390,  1007, -1390, -1390,  2329,  1176, -1390,
     1749   -1390, -1390,   669,  1183, -1390,    88,  1180,  3896,  1168,    88,
     1750      88,  1192,  9650,   836,   892, -1390, -1390,   985, 10287,  1193,
     1751    1122,   467,   193,  1188, -1390, -1390,  1200,  1188, -1390, -1390,
     1752    1207, -1390, -1390,   926,  1209,  1213,  6830,  1212,  1215,  1218,
     1753   -1390, -1390,  1221, -1390, -1390,   926, -1390, -1390, -1390, -1390,
     1754     926, 10287, 10287,   901,  1225, -1390, -1390, -1390, -1390, -1390,
     1755   -1390, -1390, -1390, -1390, -1390, -1390, -1390,  3896,  3896,  1234,
     1756    1237,  1188, -1390, -1390,   744, -1390, -1390, -1390,  8042,  9721,
     1757   10287, 10287,  1305, 10287, -1390,  1226, -1390,  1231, -1390,  1240,
     1758   10287,  1241, 10287,  1001,  1242,    20,    91,  5155,  1894, -1390,
     1759   -1390,  6295,  1260,   500, -1390, -1390, -1390, -1390, -1390, -1390,
     1760   -1390, -1390, -1390,  9936, -1390,  8679,  1269, -1390, -1390,  9721,
     1761     512,   513, -1390,  1272,  1227,   846,  1278, -1390,   312, -1390,
     1762   -1390, -1390, -1390,   926,  1274, -1390, -1390,  1279,   337,   462,
     1763     590,  1280, -1390,  1281, -1390,  9803, -1390, -1390, -1390, -1390,
     1764   -1390,  1283, -1390,  9803,  9803,  9803, -1390, -1390,  1285, -1390,
     1765    1286,  1290,  1292,   640,  8303,  8418, -1390, -1390,   474, -1390,
     1766    1291,  1295, -1390,  8752,   682,   684,  1299,   686,  6096, -1390,
     1767   -1390, -1390,   534, -1390,   707,  1302,  1306,   203,  1344,   831,
     1768   -1390, -1390, 10287, -1390, 10116, 10287, -1390, -1390, -1390,  1304,
     1769    1315, -1390, -1390, -1390,  1312, -1390, -1390, -1390, -1390, -1390,
     1770   -1390,  9721,   846,  1319, -1390,  1297,   846,  9803, -1390, -1390,
     1771   -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1772   -1390, -1390,  1318,  1322, -1390, -1390, -1390, -1390, -1390, -1390,
     1773   -1390,  1334, -1390,  1333, -1390, -1390, 10116,   104, 10287, 10116,
     1774   -1390,  1336, 10287, -1390,   264,  1351,  1360, -1390, -1390,  1349,
     1775    1350,  1328, -1390,   779, -1390, -1390, -1390,  1684,  2329,  1346,
     1776   -1390,   298,  3896, -1390,   716, -1390,   590,   590,  1353,  1358,
     1777    1364,  1366, -1390, -1390,  8606,  1363, -1390,  1438,  3896,  1352,
     1778   -1390, -1390, 10028, -1390,   729, -1390,  1355, 10116,  1359, -1390,
     1779   -1390,  1373, -1390,  1374, -1390,  1389,  1394, -1390,  1365,  9721,
     1780   -1390, -1390, -1390,   846,   590,  1384,  1369,  1386,  1188,  1188,
     1781   -1390, -1390, -1390, -1390, -1390, 10116,   235, -1390,   348, -1390,
     1782   -1390,  7893, -1390, -1390,  1370, 10287, -1390, 10287,  7893,   203,
     1783    9301,   203,  9301,  1388, -1390,  1393, -1390, -1390,  1395, -1390,
     1784   -1390,   756, -1390, -1390, -1390,  1392,  1397, -1390,  3896,  3896,
     1785   -1390, -1390,   873,   135, -1390, -1390,  1382, -1390,   873, -1390,
     1786   -1390,  2111,   590, -1390, -1390,   203,  9301,   203,  9301,  1410,
     1787    1391,   590, -1390, -1390, -1390, -1390, 10028,  1405,   873,  7969,
     1788   10287,  9940,  1406,   873,  1415,  2111,  3145, -1390, -1390, -1390,
     1789    1416, -1390, -1390, -1390, -1390,  9044, -1390, -1390, -1390,  9807,
     1790   -1390, 10028, -1390, -1390,  1400,  5404, -1390, -1390,  9940,   203,
     1791    3145,   203,  1417,  1425,   760, -1390,  9807, -1390, -1390, -1390,
     1792    5404, -1390, -1390, -1390,   203,   203, -1390, -1390, -1390, -1390,
     1793   -1390, -1390, -1390, -1390
    10691794};
    10701795
    1071   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
    1072      Performed when YYTABLE does not specify something else to do.  Zero
    1073      means the default is an error.  */
    1074 static const yytype_uint16 yydefact[] =
    1075 {
    1076      291,   291,   311,   309,   312,   310,   313,   314,   297,   299,
    1077      298,     0,   300,   325,   317,   322,   320,   321,   319,   318,
    1078      323,   324,   329,   326,   327,   328,   544,   544,   544,     0,
    1079        0,     0,   291,   217,   301,   315,   316,     7,   356,     0,
    1080        8,    14,    15,     0,     2,    60,    61,   562,     9,   291,
    1081      522,   520,   244,     3,   451,     3,   257,     0,     3,     3,
    1082        3,   245,     3,     0,     0,     0,   292,   293,   295,   291,
    1083      304,   307,   337,   283,   330,   335,   284,   345,   285,   352,
    1084      349,   359,     0,     0,   360,   286,   470,   474,     3,     3,
    1085        0,     2,   516,   521,   526,   296,     0,     0,   544,   574,
    1086      544,     2,   585,   586,   587,   291,     0,   728,   729,     0,
    1087       12,     0,    13,   291,   267,   268,     0,   292,   287,   288,
    1088      289,   290,   523,   302,   389,   545,   546,   367,   368,    12,
    1089      442,   443,    11,   438,   441,     0,   500,   495,   486,   442,
    1090      443,     0,     0,   525,   218,     0,   291,     0,     0,     0,
    1091        0,     0,     0,     0,     0,   291,   291,     2,     0,   730,
    1092      292,   579,   591,   734,   727,   725,   732,     0,     0,     0,
    1093      251,     2,     0,   529,   436,   437,   435,     0,     0,     0,
    1094        0,   544,     0,   631,   632,     0,     0,   542,   538,   544,
    1095      559,   544,   544,   540,     2,   539,   544,   598,   544,   544,
    1096      601,     0,     0,     0,   291,   291,   309,   357,     2,   291,
    1097      258,   294,   305,   338,   350,   475,     0,     2,     0,   451,
    1098      259,   292,   331,   346,   353,   471,     0,     2,     0,   308,
    1099      332,   339,   340,     0,   347,   351,   354,   358,   443,   291,
    1100      369,   362,   366,     0,   391,   472,   476,     0,     0,     0,
    1101        1,   291,     2,   527,   573,   575,   291,     2,   738,   292,
    1102      741,   542,   542,     0,   292,     0,     0,   270,   544,   540,
    1103        2,   291,     0,     0,   291,   547,     2,   498,     2,   551,
    1104        0,     0,     0,     0,     0,     0,    18,    57,     4,     5,
    1105        6,    16,     0,     0,   291,     2,    62,    63,    64,    65,
    1106       45,    19,    46,    22,    44,    66,   291,     0,    69,    73,
    1107       76,    79,    84,    87,    89,    91,    93,    95,    97,   102,
    1108      492,   748,   449,   491,     0,   447,   448,     0,   563,   578,
    1109      581,   584,   590,   593,   596,   356,     0,     2,   736,     0,
    1110      291,   739,     2,    60,   291,     3,   423,     0,   431,   292,
    1111      291,   304,   330,   284,   345,   352,     3,     3,   405,   409,
    1112      419,   424,   470,   291,   425,   703,   704,   291,   426,   428,
    1113      291,     2,   580,   592,   726,     2,     2,   246,     2,   456,
    1114        0,   454,   453,   452,   138,     2,     2,   248,     2,     2,
    1115      247,     2,   278,     2,   279,     0,   277,     0,     0,     0,
    1116        0,     0,     0,     0,     0,     0,   564,   603,     0,   451,
    1117        2,   558,   567,   657,   560,   561,   530,   291,     2,   597,
    1118      606,   599,   600,     0,   273,   291,   291,   336,   292,     0,
    1119      292,     0,   291,   731,   735,   733,   531,   291,   542,   252,
    1120      260,   306,     0,     2,   532,   291,   496,   333,   334,   280,
    1121      348,   355,     0,   291,     0,   746,   396,     0,   473,   497,
    1122      249,   250,   517,   291,   433,     0,   291,   234,     0,     2,
    1123      236,     0,   292,     0,   254,     2,   255,   275,     0,     0,
    1124        2,   291,   542,   291,   483,   485,   484,     0,     0,   748,
    1125        0,   291,     0,   291,   487,   291,   557,   555,   556,   554,
    1126        0,   549,   552,     0,     0,   291,    52,   291,    66,    47,
    1127      291,    54,   291,   291,    50,    51,     2,   124,     0,     0,
    1128      445,     0,   444,   725,   118,   291,    17,     0,    29,    30,
    1129       35,     2,     0,    35,   108,   109,   110,   111,   112,   113,
    1130      114,   115,   116,   117,   107,     0,    48,    49,     0,     0,
    1131        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1132        0,     0,     0,     0,     0,     0,     0,     0,   104,     2,
    1133      643,   450,   640,   544,   544,   648,   477,   291,     2,   582,
    1134      583,     0,   594,   595,     0,     2,   737,   740,   118,   291,
    1135        0,     2,   705,   292,   709,   700,   701,   707,     0,     2,
    1136        2,   665,   544,   748,   614,   544,   544,   748,   544,   628,
    1137      544,   544,   679,   432,   662,   544,   544,   670,   677,   291,
    1138      427,   292,     0,     0,   291,   715,   292,   720,   748,   712,
    1139      291,   717,   748,   291,   291,   291,     0,   118,     0,    18,
    1140        2,     0,    19,     0,   457,   746,     0,     0,   463,   238,
    1141        0,   291,     0,     0,     0,   542,   566,   570,   572,   602,
    1142      605,   609,   612,   565,   604,     0,   281,   655,     0,   291,
    1143      274,     0,     0,     0,     0,   272,     2,     0,   256,   533,
    1144      291,     0,     0,   291,     2,   361,   381,   370,     0,     0,
    1145      375,   369,   747,     0,     0,   394,     0,   292,     3,   412,
    1146        3,   416,   415,   588,     0,   528,   291,    60,     3,   291,
    1147      431,   292,     3,   425,   426,     2,     0,     0,     0,   482,
    1148      303,   291,   478,   480,     3,     2,     2,     0,   499,     3,
    1149        0,   551,   126,     0,     0,   219,     0,     0,     0,     0,
    1150       36,     0,     0,   118,   291,    20,     0,    21,     0,   689,
    1151      694,   446,   686,   544,   544,     0,   105,     3,     2,    27,
    1152        0,    33,     0,     2,    25,     0,   103,    70,    71,    72,
    1153       74,    75,    77,    78,    82,    83,    80,    81,    85,    86,
    1154       88,    90,    92,    94,    96,     0,     0,   749,   291,     0,
    1155        0,     0,   644,   645,   641,   642,   494,   493,   291,     0,
    1156      291,   711,   291,   716,   292,   291,   659,   291,   291,   702,
    1157      658,     2,   291,     0,     0,     0,     0,     0,     0,     0,
    1158        0,   680,     0,   666,   617,   633,   667,     2,   613,   620,
    1159      429,   615,   616,   430,     2,   627,   636,   629,   630,   663,
    1160      664,   678,   706,   710,   708,   748,   265,     2,   742,     2,
    1161      420,   714,   719,   421,     0,   399,     3,     3,     3,     3,
    1162      451,     3,     0,     2,   465,   462,   747,     0,   458,     2,
    1163      461,   464,     0,   291,   239,   261,     3,   269,   271,     0,
    1164      451,     2,   568,   569,     2,   607,   608,     0,   656,   534,
    1165        3,   342,   341,   344,   343,   291,   535,     0,   536,   369,
    1166        0,     0,   291,   291,     0,     0,   689,   379,   382,   386,
    1167      544,   386,   385,   378,   371,   544,   373,   376,   291,   396,
    1168      390,   101,   397,   746,     0,     0,   434,   237,     0,     0,
    1169        3,     2,   665,   427,     0,   524,     0,   748,   486,     0,
    1170      291,   291,   291,     0,   548,   550,   127,     0,     0,   212,
    1171        0,     0,     0,   220,   221,    53,     0,    55,    58,    59,
    1172        0,     2,   125,     0,     0,     0,   690,   691,   687,   688,
    1173      456,    67,    68,   106,   122,     3,   105,     0,     0,    24,
    1174       35,     3,     0,    32,    99,     0,     3,   647,   651,   654,
    1175      646,     3,   589,     3,   713,   718,     2,    60,   291,     3,
    1176        3,   292,     0,     3,   619,   623,   626,   635,   669,   673,
    1177      676,   291,     3,   618,   634,   668,   291,   291,   422,   291,
    1178      291,   743,     0,     0,     0,     0,   253,     0,   101,     0,
    1179        3,     3,     0,   459,     0,   455,     0,     0,   242,   291,
    1180        0,     0,   126,     0,     0,     0,     0,     0,   126,     0,
    1181        0,   105,   105,    18,     2,     0,     0,     3,   128,   129,
    1182        2,   140,   130,   131,   132,   133,   134,   135,   142,   144,
    1183        0,     0,     0,   282,   291,   291,   544,     0,   537,   291,
    1184      372,   374,     0,   388,   690,   383,   387,   384,   377,   381,
    1185      364,   395,     0,   576,     2,   661,   660,     0,   666,     2,
    1186      479,   481,   501,     3,   509,   510,     0,     2,   505,     3,
    1187        3,     0,     0,   553,   219,     0,     0,     0,   219,     0,
    1188        0,   118,   693,   697,   699,   692,   746,   105,     0,     3,
    1189      658,    39,     3,    37,    34,     0,     3,    98,   100,     0,
    1190        2,   649,   650,     0,     0,   291,     0,     0,     0,     3,
    1191      635,     0,     2,   621,   622,     2,   637,     2,   671,   672,
    1192        0,     0,    60,     0,     3,     3,     3,     3,   407,   406,
    1193      410,     2,     2,   745,   744,   119,     0,     0,     0,     0,
    1194        3,   460,     3,     0,   240,   143,     3,   292,   291,     0,
    1195        0,     0,     0,     2,     0,   188,     0,   186,     0,     0,
    1196        0,     0,     0,     0,     0,   544,   118,     0,   148,   145,
    1197      291,     0,     0,   264,   276,     3,     3,   543,   610,   365,
    1198      380,   393,   291,   263,   291,     0,   512,   489,   291,     0,
    1199        0,   488,   503,     0,     0,     0,   213,     0,   222,    56,
    1200        2,   695,   696,     0,   123,   120,     0,     0,     0,     0,
    1201        0,    23,     0,   652,   291,   577,   262,   721,   722,   723,
    1202        0,   674,   291,   291,   291,     3,     3,     0,   682,     0,
    1203        0,     0,     0,   291,   291,     3,   541,   119,   467,     0,
    1204        0,   243,   292,     0,     0,     0,     0,   291,   189,   187,
    1205      184,     0,   190,     0,     0,     0,     0,   194,   197,   195,
    1206      191,     0,   192,   126,    35,   141,   139,   241,     0,     0,
    1207      414,   418,   417,     0,   506,     2,   507,     2,   508,   502,
    1208      291,   225,     0,   223,     0,   225,   291,    31,   121,     2,
    1209       42,     2,    40,    38,    28,    26,     3,   724,     3,     3,
    1210        3,     0,     0,   681,   683,   624,   638,   266,     2,   404,
    1211        3,   403,     0,   469,   466,   126,     0,     0,   126,     3,
    1212        0,   126,   185,     0,     2,     2,   206,   196,     0,     0,
    1213        0,   137,     0,   571,   611,     2,     0,     0,     2,   226,
    1214        0,     0,   214,     0,     3,     0,     0,     0,     0,     0,
    1215        0,   684,   685,   291,     0,   468,   149,     0,     0,     2,
    1216      162,   126,   151,     0,   179,     0,   126,     0,     2,   153,
    1217        0,     2,     0,     2,     2,     2,   193,    32,   291,   511,
    1218      513,   504,     0,     0,     0,     0,     0,     3,     3,   653,
    1219      625,   639,   675,   408,   126,   155,   158,     0,   157,   161,
    1220        3,   164,   163,     0,   126,   181,   126,     3,     0,   291,
    1221        0,   291,     0,     2,     0,     2,   136,     2,   227,   228,
    1222        0,   224,   215,   698,     0,     0,   150,     0,     0,   160,
    1223      230,   165,     2,   232,   180,     0,   183,   169,   198,     3,
    1224      207,   211,   200,     3,     0,   291,     0,   291,     0,     0,
    1225        0,    43,    41,   156,   159,   126,     0,   166,   291,   126,
    1226      126,     0,   170,     0,     0,   689,   208,   209,   210,     0,
    1227      199,     3,   201,     3,   291,   216,   229,   146,   167,   152,
    1228      126,   233,   182,   177,   175,   171,   154,   126,     0,   690,
    1229        0,     0,     0,     0,   147,   168,   178,   172,   176,   175,
    1230      173,     3,     3,     0,     0,   490,   174,   202,   204,     3,
    1231        3,   203,   205
    1232 };
    1233 
    1234   /* YYPGOTO[NTERM-NUM].  */
     1796/* YYPGOTO[NTERM-NUM].  */
    12351797static const yytype_int16 yypgoto[] =
    12361798{
    1237    -1317,  4344,  3244, -1317,   633, -1317,   172,   896,  -203, -1317,
    1238      487,  -518,  -482,  -910,  -211,  1511,     0, -1317,  1129,   534,
    1239      537,   615,   556,   984,   981,   988,   980,   989, -1317,     4,
    1240     -451,  4784,  -913, -1317,  -702,   571,    13,  -706,   419, -1317,
    1241      190, -1317,   345,  -964, -1317, -1317,    85, -1317, -1099, -1138,
    1242      197, -1317, -1317, -1317, -1317,    20, -1281, -1317, -1317, -1317,
    1243    -1317, -1317, -1317,   266, -1095,    50, -1317,  -472, -1317,   443,
    1244      239, -1317,   118, -1317,  -294, -1317, -1317, -1317,   496,  -829,
    1245    -1317, -1317,     8,  -952,    28,  2894, -1317, -1317, -1317,  -214,
    1246    -1317,   121,  1028,  -198,  1848,  3592, -1317, -1317,   127,   296,
    1247     1545,  1505, -1317,  1929, -1317, -1317,   137,  2139, -1317,  2574,
    1248      804, -1317, -1317, -1317,  -637, -1317,   886,   889,   490,   670,
    1249       52, -1317, -1317, -1317,   893,   666,  -510, -1317,  -116,    40,
    1250     1073, -1317, -1317,  -889,  -983,   933,  1377,  1006,   -11, -1317,
    1251     1351,   508,  -322,  -183,  -145,   623,   724, -1317,   944, -1317,
    1252     2701,   574,  -443,   875, -1317, -1317,   659, -1317,  -228, -1317,
    1253      -45, -1317, -1317, -1317, -1253,   370, -1317, -1317, -1317,  1120,
    1254    -1317,    33, -1317, -1317,  -828,  -100, -1316,  -170,  2264, -1317,
    1255     1914, -1317,   868, -1317,  -155,   129,  -181,  -180,  -175,     7,
    1256      -41,   -40,   -35,  1507,    37,    53,    57,   -29,  -172,  -163,
    1257     -158,  -150,  -293,  -500,  -490,  -485,  -542,  -284,  -525, -1317,
    1258    -1317,  -499,  1035,  1038,  1040,  1486,  4616,  -563,  -531,  -513,
    1259     -491,  -561, -1317,  -506,  -730,  -727,  -723,  -562,  -311,  -227,
    1260    -1317, -1317,   378,    19,   -93, -1317,  3633,   159,  -611,  -428
     1799   -1390,  4519,  3402, -1390,   393, -1390,   353,   929,  -255, -1390,
     1800   -1390,   477,  -524,  -492,  -901,  -176,  4763,     0, -1390,   832,
     1801     410,   433,   417,   440,   977,   978,   980,   971,   981, -1390,
     1802    -348,  -520,  3026,  -946, -1390,  -709,   563,   620,  -590,   -87,
     1803   -1390,   172, -1390,   332, -1116, -1390, -1390,    79, -1390, -1281,
     1804   -1176,   189, -1390, -1390, -1390, -1390,     9, -1389, -1390, -1390,
     1805   -1390, -1390, -1390, -1390,   256, -1199,    33, -1390,  -324, -1390,
     1806     435,   230, -1390,   109, -1390,  -343, -1390, -1390, -1390,   490,
     1807    -651, -1390, -1390,     8, -1002,    97,  1423, -1390, -1390, -1390,
     1808    -125, -1390,    23,  1201,  -202,  1925,  4332, -1390, -1390,    52,
     1809     224,   459,  1086, -1390,  1865, -1390, -1390,    25,  2362, -1390,
     1810    2640,  1529, -1390, -1390, -1390,  -612, -1390,   878,   879,   478,
     1811     658,    43, -1390, -1390, -1390,   876,   655,  -464, -1390,   -94,
     1812     -89,   948, -1390, -1390,  -942,  -971,   -24,    78,  1010,   368,
     1813   -1390,  1732,   171,  -317,  -213,  -127,   605,   710, -1390,   930,
     1814   -1390,  3077,  1178,  -438,   863, -1390, -1390,   654, -1390,  -234,
     1815   -1390,   -47, -1390, -1390, -1390, -1275,   357, -1390, -1390, -1390,
     1816    1110, -1390,    32, -1390, -1390,  -837,  -105, -1257,  -126,  2286,
     1817   -1390,  2146, -1390,   865, -1390,  -146,    59,  -177,  -171,  -166,
     1818       7,   -40,   -28,   -27,  1230,    28,    29,    57,   -63,  -154,
     1819    -151,  -150,  -141,  -329,  -513,  -511,  -507,  -589,  -320,  -515,
     1820   -1390, -1390,  -518,  1034,  1036,  1037,  1371,  5065,  -572,  -555,
     1821    -549,  -540,  -441, -1390,  -497,  -722,  -721,  -701,  -608,  -309,
     1822    -346, -1390, -1390,   185,   133,   -15, -1390,  3702,   -45,  -629,
     1823      22
    12611824};
    12621825
    1263   /* YYDEFGOTO[NTERM-NUM].  */
    1264 static const yytype_int16 yydefgoto[] =
    1265 {
    1266       -1,   812,   467,   300,    47,   133,   134,   301,   302,   303,
    1267      304,   760,   761,  1132,  1133,   305,   380,   307,   308,   309,
    1268      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
    1269     1029,   517,   974,   545,   321,   975,   946,  1056,  1517,  1058,
    1270     1059,  1060,  1061,  1518,  1062,  1063,  1436,  1437,  1400,  1401,
    1271     1402,  1496,  1497,  1501,  1502,  1537,  1538,  1064,  1360,  1065,
    1272     1066,  1297,  1298,  1299,  1479,  1067,   145,   952,   953,   954,
    1273     1380,  1460,  1471,  1472,   468,   469,   873,   874,  1037,    51,
    1274       52,    53,    54,    55,   346,   158,    58,    59,    60,    61,
    1275       62,   348,    64,    65,   264,    67,    68,   274,   350,   351,
    1276       71,    72,    73,   118,    75,   204,   353,   119,    78,   120,
    1277       80,    81,   454,    82,   453,   687,   688,   689,   907,  1085,
    1278      908,    83,    84,   457,   455,   695,   854,   855,   856,   857,
    1279      698,   699,   700,   358,   359,   360,   361,   465,   339,   135,
    1280      136,   521,   323,   170,   644,   645,   646,   647,   648,    85,
    1281      121,    87,   488,   489,   938,   490,   277,   494,   324,    88,
    1282      137,   138,    89,  1320,  1107,  1108,  1109,  1110,    90,    91,
    1283      716,    92,   273,    93,    94,   187,  1031,   678,   411,   125,
    1284       95,   500,   501,   502,   188,   268,   190,   191,   192,   269,
    1285       98,    99,   100,   101,   102,   103,   104,   195,   196,   197,
    1286      198,   199,   824,   604,   605,   606,   607,   200,   609,   610,
    1287      611,   571,   572,   573,   574,   750,   105,   613,   614,   615,
    1288      616,   617,   618,   967,   752,   753,   754,   594,   364,   365,
    1289      366,   367,   325,   164,   107,   108,   109,   369,   693,   568
    1290 };
    1291 
    1292   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
    1293      positive, shift that token.  If negative, reduce the rule whose
    1294      number is the opposite.  If YYTABLE_NINF, syntax error.  */
     1826/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
     1827   positive, shift that token.  If negative, reduce the rule which
     1828   number is the opposite.  If YYTABLE_NINF, syntax error.  */
     1829#define YYTABLE_NINF -521
    12951830static const yytype_int16 yytable[] =
    12961831{
    1297       49,   113,   149,   150,   398,   399,   427,    97,   151,   114,
    1298      400,   452,   260,   401,   751,   765,   267,   409,   963,   106,
    1299      106,   964,   402,   382,   383,   965,   947,   403,    56,   115,
    1300      739,   406,    49,   595,   867,   404,   439,  1170,   826,    97,
    1301      356,   829,   470,   147,  1068,  1069,   177,   836,   724,    49,
    1302       50,   106,   729,   972,   918,   603,   161,   843,  1194,   825,
    1303       56,   722,   341,   186,   608,   143,   209,  1378,   818,    49,
    1304      193,   793,  1136,   216,   817,  1196,   226,   219,   504,   122,
    1305      152,  1438,    50,  1198,   398,   399,   819,  1186,   106,  1301,
    1306      400,   474,   476,   401,   210,   261,   153,   220,   262,   814,
    1307      154,   424,   402,   672,   674,   113,   526,   403,   820,   815,
    1308      280,   406,    31,   113,   816,   404,   266,   271,  1195,    31,
    1309       31,    63,  1180,   668,   858,   859,   202,    69,  1199,    96,
    1310     1168,  1169,   123,    31,  1076,  1197,   627,    76,  1203,  1204,
    1311      631,   876,   168,   677,   149,   150,   306,   147,    31,   526,
    1312      151,   681,  1438,    63,   161,   113,   344,   407,  1302,    69,
    1313      209,    96,   171,    31,    31,  1457,   169,   372,   281,    76,
    1314      713,   728,   148,   111,   963,   830,   203,   964,    96,   833,
    1315      912,   965,   252,   446,   410,   186,   186,  1397,  1398,   418,
    1316      741,   410,   189,   161,   719,    96,   357,   948,    96,   930,
    1317      850,   266,   459,   470,   853,   410,   565,   438,   166,    49,
    1318     1185,  -231,  -231,   142,  1244,   291,   161,   814,   480,  1525,
    1319      410,   209,   152,   470,   149,   150,   666,   815,   442,   408,
    1320      151,   470,   816,   827,   834,   600,   600,   407,   153,   306,
    1321      566,  1170,   154,   922,   950,   173,  1540,   587,   526,   440,
    1322      663,    49,   829,   252,   328,   797,   475,  1399,    97,   271,
    1323     1015,   482,  1079,   846,   271,   266,   266,   847,   499,   376,
    1324      106,   113,   166,   161,   475,  1116,    96,   341,   567,    56,
    1325      818,  1014,  -231,  1138,   462,   377,  1002,   253,   144,    96,
    1326      993,  1170,  1176,   990,   306,   655,    70,   526,   819,   155,
    1327      733,    50,  1442,  1397,  1398,   326,   306,   518,   595,  1247,
    1328      146,   814,  1092,   595,   397,   189,   356,   608,  1177,   110,
    1329      820,   815,   570,   670,   663,   734,   816,   147,    70,   675,
    1330       41,    42,  1117,  1495,   372,  1186,   177,  1248,    96,  1500,
    1331      113,   869,  1200,   641,   344,   735,   201,   526,   601,   619,
    1332       96,   181,  1118,   628,   286,  1324,  1483,   632,   758,  1520,
    1333      870,   803,   212,   624,  1527,    41,    42,   624,   435,   826,
    1334      113,  1467,    63,  1408,  1381,  1325,   664,   471,    69,  -287,
    1335       96,  1068,  1069,   416,  1168,  1169,   897,   578,    76,   410,
    1336     1511,   513,  1513,    76,   478,   266,  1442,  1177,   326,   386,
    1337      818,  1442,   110,   852,   389,   186,   436,   555,   556,   356,
    1338     1170,   247,   372,    41,    42,   387,   444,  1018,   819,   391,
    1339      390,  1442,   250,   266,   464,   306,   306,   163,  1442,   266,
    1340      435,   341,   624,   713,   492,   392,   843,   493,   671,   673,
    1341      820,   763,   557,   558,   551,   552,  1156,  1158,   393,   746,
    1342      664,   913,   263,   113,  1083,   252,    96,   110,  1361,  -466,
    1343     1125,  -466,   887,   985,   394,   166,   470,   914,    41,    42,
    1344      848,   266,   357,   356,   849,  1427,  1428,   602,  -466,   266,
    1345     1422,   624,   -10,    49,   519,   880,   372,   718,  1186,  -515,
    1346       97,   163,   927,   113,  1423,  1186,  1329,  1103,  1134,  1115,
    1347     1468,   868,   106,   597,  1433,   306,   915,   113,  -439,  1100,
    1348      306,    56,   306,   306,  1469,  1243,   110,   441,   518,  -440,
    1349      749,   712,   916,   518,   113,   344,   518,    41,    42,   276,
    1350     1013,   909,   951,    50,   189,  1015,  1524,   278,   471,   608,
    1351        2,   206,     4,     5,     6,     7,  1186,    70,   913,   110,
    1352      329,   139,   238,   878,    76,  1331,  1535,   915,   471,   279,
    1353       41,    42,   576,  1539,  1080,   357,   471,   848,   577,   570,
    1354      570,  1099,  -102,  1081,    76,   995,  -102,   306,  1125,   786,
    1355      803,  1359,    76,   912,   326,   326,   239,   434,   624,   344,
    1356     1183,   240,   713,   619,   682,   553,   554,  1183,  1315,   601,
    1357      577,   601,   710,   330,    63,    35,  1184,    36,   331,   845,
    1358       69,  1473,    96,  1307,  1316,  -119,   602,  -119,  1473,   624,
    1359       76,  -119,   370,  1347,   624,   860,   619,  1348,  1317,   357,
    1360      624,   746,   679,   624,   624,   624,  -119,  -119,   111,   875,
    1361      215,   332,  1233,  1013,  1318,   212,  1237,  1362,   110,   434,
    1362      341,   624,   326,   266,   333,  1407,   242,   911,   705,    41,
    1363       42,   252,   328,   410,   110,  1235,   139,   140,   803,  1521,
    1364      334,   326,   522,   559,   560,    41,    42,  1026,     8,     9,
    1365       10,    11,    12,   113,   163,   384,   906,   595,   703,   371,
    1366      176,   215,   356,   375,   704,   519,   720,  1073,   921,   759,
    1367      519,   725,   721,   519,   764,   388,   726,    31,   425,   624,
    1368      932,   619,   408,   730,  1111,   396,   805,   718,   718,   731,
    1369      499,  1033,   426,   398,   399,  1275,  1276,   745,   813,   400,
    1370      602,   891,   401,   746,   215,    34,   326,   746,  1475,   176,
    1371     1476,   402,   176,   113,   344,   581,   403,   410,   749,   749,
    1372      893,   406,   449,   464,   404,   110,   746,   139,   140,   983,
    1373      980,     8,     9,    10,    11,    12,    41,    42,   212,   548,
    1374      527,   528,   529,   431,   963,   549,   550,   964,   844,    70,
    1375      881,   965,   410,   597,   712,   979,  1372,  -363,   176,   984,
    1376       31,   980,   570,  1522,   530,   215,   531,   243,   532,   533,
    1377      624,   471,   624,   884,   998,   410,  -392,   624,   344,   341,
    1378      992,   601,   569,  1160,   410,   910,   704,    76,    34,  1231,
    1379       45,    46,  1355,   601,   877,   577,   879,   471,   746,   460,
    1380     1140,   690,   410,   215,   713,   527,   528,   529,   215,   461,
    1381     1152,    37,   410,    76,  1356,    40,   813,   602,   357,  1358,
    1382      746,   176,    41,    42,  1155,   746,   600,   483,   889,   530,
    1383      569,   531,   410,   532,  1304,   710,  1028,   896,    45,    46,
    1384      214,   898,  1157,   306,   600,  1363,   926,   407,   811,   503,
    1385      600,   746,   291,   522,  1425,   522,    45,    46,   522,  1181,
    1386     1422,   522,   106,  1443,   803,   624,    48,   112,  1240,   746,
    1387      410,    56,   113,   344,   906,   176,   906,   524,  1489,   921,
    1388      507,   951,   176,   713,  1490,   951,   951,   441,   113,   328,
    1389      410,   214,   512,   215,   526,   112,   112,  1545,    48,   663,
    1390     1424,   932,   932,   577,   909,   805,   718,  1368,  1369,    48,
    1391      813,   113,   306,   712,   561,    48,  1435,   562,   748,  1104,
    1392      410,   563,   602,    48,   921,   564,    45,    46,   567,    48,
    1393      106,  1086,    48,  1086,   214,    48,   749,   337,   931,  1105,
    1394      600,   418,   659,   410,  1507,  -436,    45,    46,   112,   112,
    1395      176,   585,     2,   206,     4,     5,     6,     7,   588,  1137,
    1396      480,   328,   410,   212,    63,  1417,   980,   176,   344,    -3,
    1397       69,   176,    48,   637,   215,    48,  1226,   212,  1397,  1398,
    1398       76,   656,    48,   736,   657,   737,  1493,  1435,   738,   624,
    1399      624,   742,   658,  1125,   710,   214,   827,   328,   600,   116,
    1400      660,  1322,   661,  1082,   662,   910,  1330,  1332,  1333,   306,
    1401     1028,   665,   110,    48,   139,   140,   215,    35,   667,    36,
    1402      257,    48,   691,    41,    42,   664,    48,   692,   106,  1167,
    1403      911,   690,   694,   214,   176,   602,   696,    56,   214,  -235,
    1404        2,   206,     4,     5,     6,     7,   732,   159,   743,   113,
    1405      806,    48,    48,   747,   906,   770,   771,  1078,   807,   906,
    1406      772,   773,    37,   755,   174,   175,    40,    48,   932,   228,
    1407      212,   326,   810,    41,    42,    48,   266,  1294,  1295,  1296,
    1408       -3,   821,   -12,   341,    48,   778,   779,    48,  1379,    37,
    1409      921,   624,  1379,    40,   112,   -13,   865,   866,  1120,   371,
    1410       41,    42,   872,   258,   892,    35,   894,    36,   920,   112,
    1411     -519,   159,   895,   112,  -413,   344,   899,    48,   112,   902,
    1412     1131,   935,   942,   214,  1131,   721,    43,   844,   944,   949,
    1413      471,    48,    48,   955,    45,    46,  1188,   215,    48,    70,
    1414      774,   775,   776,   777,   322,    48,    76,   956,   957,   958,
    1415      921,   921,   959,   338,   960,   712,   976,   271,   113,   987,
    1416      988,   989,  1004,  1005,  1006,   215,   219,  1007,  1008,  1009,
    1417      215,  1010,  1283,  1284,  1131,  1286,   113,   106,  1021,  -401,
    1418      306,  -400,  1291,   910,  1293,   210,   220,  1035,   910,  1458,
    1419     1070,   176,   905,    48,   624,  1072,  1093,  1094,   113,   106,
    1420     1095,  1096,  1102,   429,   214,  1112,  1104,   433,    56,   110,
    1421     1202,   139,   140,    48,    48,  1113,   746,   106,  1119,  1121,
    1422       41,    42,   970,   176,  1114,  1122,  1105,  1123,  1124,  1127,
    1423       48,  1130,  1150,  1173,    48,  1174,   710,   322,  1189,   176,
    1424     1171,   215,  1172,   624,   624,   642,   214,  1420,   863,  1190,
    1425     1175,  1192,   271,   176,  1193,   215,  1533,   306,  1201,  1206,
    1426     1205,    48,  1057,  1208,  1213,    -3,   690,   441,  1218,   433,
    1427     1221,    48,   487,  1223,   492,    37,   106,   174,   175,    40,
    1428      440,  1227,  1232,  1350,  1234,    56,    41,    42,  1236,    48,
    1429      113,  1239,   520,   398,   399,    48,  1245,    48,  1104,   400,
    1430     1251,    63,   401,  1249,   159,    70,  1253,    69,  1255,   106,
    1431     1256,   402,   375,  1257,  1258,   710,   403,    76,  1105,   129,
    1432      406,   130,   131,   132,   404,  1259,  1261,  1268,  1285,  1277,
    1433       41,    42,   112,  1278,   176,  1419,  1288,    48,   586,  1289,
    1434     1403,  1290,   592,  1292,   663,    48,  1300,   266,   215,    48,
    1435     1506,   141,  1306,    48,  1313,   921,   112,  1319,   112,  1321,
    1436     1323,   625,  1345,   624,  1327,   629,   701,   214,   338,  1328,
    1437       37,   921,   174,   175,    40,  1334,  1335,  1337,   471,  1343,
    1438     1344,    41,    42,   509,  1188,  1346,  1353,  1357,   113,  1131,
    1439     1131,  1131,  1354,   112,    76,   214,  1104,  1364,   112,  1365,
    1440      214,  1296,  1373,   241,   244,   546,   547,   106,  1375,  1374,
    1441      113,  1382,  1391,  1392,  -402,  1395,  1105,   113,  1406,   113,
    1442     1410,   113,  1412,   322,   322,  1414,  1415,   690,  1416,   106,
    1443     1421,  1191,  1429,   149,   150,  1430,   106,  1431,    56,   151,
    1444     1432,   921,   921,   546,  1348,    56,   407,   112,  1434,  1439,
    1445     1505,   686,  1444,   212,    48,   113,  1366,   113,  1448,  1450,
    1446     1452,  1446,  1454,  1456,   116,    48,  1461,    48,   113,  1462,
    1447      664,   214,  1463,  1484,  1505,  1505,    70,  1474,  1486,   546,
    1448     1488,  1491,   161,  1492,   306,   214,    48,   106,  1514,   487,
    1449     1499,   322,  1515,   487,  1528,  1519,    56,  1526,   176,  1505,
    1450     1530,  1543,    48,   520,  1536,   520,   372,   112,   520,  1544,
    1451      322,   520,  1207,   781,   783,   780,    48,  1129,   112,    48,
    1452      112,   782,   338,  1494,   784,  1305,   162,  1131,  1131,  1546,
    1453     1409,   471,  1238,  1367,  1383,  1477,  1212,  1188,   471,   900,
    1454      194,   213,   901,   217,  1188,   215,   227,    76,   441,  1220,
    1455      232,  1087,    48,    70,    76,  1091,   112,   799,   112,   923,
    1456     1034,   871,   112,  1126,   456,  1459,   937,  1101,  1314,   945,
    1457      112,     0,   701,   715,   789,   322,     0,   790,   214,   791,
    1458        0,     0,     0,    48,    48,   229,   801,     0,   230,   471,
    1459        0,   234,   213,   236,     0,  1188,     0,    48,     0,  1057,
    1460      245,     0,     0,   478,  -288,    76,     0,     0,  1478,     0,
    1461     1482,     8,     9,    10,    11,    12,     0,   842,     0,     0,
    1462        0,     0,   592,  1508,   162,     0,     0,    37,   851,   183,
    1463      184,    40,  1516,     0,     0,   213,     0,   373,    41,    42,
    1464       31,     0,     0,   326,  1510,   412,  1512,   767,   768,   769,
    1465        0,     0,   420,     0,     0,     0,     0,     0,     0,     0,
    1466        0,     0,     0,   162,   904,     0,   410,     0,    34,     0,
    1467        0,     0,    45,    46,     0,     0,     0,    48,     0,     0,
    1468        0,   686,     0,    37,     0,   905,   162,    40,  1541,    48,
    1469     1542,   701,  1371,     0,    41,    42,   213,     0,   443,     0,
    1470      643,   701,     0,  1549,  1550,    37,    70,   183,   184,    40,
    1471        0,     0,   890,    70,     0,   701,    41,    42,     0,   487,
    1472      717,     0,     0,     0,   412,     0,     0,   229,    45,    46,
    1473        0,   215,   642,     0,   213,     0,     0,     0,   112,   213,
    1474        0,   338,   185,     0,  1396,     0,     0,  1404,  -289,     0,
    1475       45,    46,     0,     0,   498,     8,     9,    10,    11,    12,
    1476        0,    48,     0,   506,    70,   508,   511,     0,     0,     0,
    1477       48,     0,    48,   514,   515,   214,     0,     0,   575,   112,
    1478        0,     0,     0,     0,    31,     0,   579,   508,   508,   582,
    1479     1441,     0,     0,     0,   497,  1445,     0,  1481,     0,  1481,
    1480      994,     0,    48,     0,   373,   801,     0,     0,     0,   176,
    1481      702,   723,    34,   727,     0,     0,     0,     0,    66,   117,
    1482        0,     0,   112,  1466,   213,   508,   215,     0,     0,     0,
    1483        0,   986,     0,  1481,     0,  1481,   642,     0,     0,     0,
    1484        0,   991,     0,     0,   112,     0,     0,     0,   112,     0,
    1485       66,     0,     0,   412,   971,  1003,     0,   420,     0,     0,
    1486        0,   508,     0,     0,     0,  -290,   229,   160,   234,     0,
    1487        0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    1488        0,     0,   373,     0,     0,     0,     0,   221,     0,     0,
    1489        0,     0,     0,   801,     0,     0,     0,     0,   112,    74,
    1490      338,    31,     0,     0,     0,   213,     0,  1534,     0,     0,
    1491      126,   126,   126,  1534,     0,     0,   686,     0,     0,   701,
    1492      701,     0,   213,   259,  1534,     0,     0,     0,  1534,    34,
    1493        0,    74,     0,     0,   412,     0,   112,     0,   487,  1106,
    1494      322,     0,     0,     0,     0,     0,     0,   213,     0,     0,
    1495       48,     0,     0,     0,     0,    48,   229,     0,     0,     0,
    1496        0,   214,   864,     0,     0,   327,     0,     0,   222,     0,
    1497        0,     0,    48,   259,   349,     0,     0,   701,   701,   176,
    1498        0,     0,   126,     0,   126,     0,   534,   535,   536,   537,
    1499      538,   539,   540,   541,   542,   543,   842,     0,     0,     0,
    1500        0,     0,     0,     0,   405,     0,     0,     0,     0,   275,
    1501        0,   917,     0,   919,     0,     0,   702,   456,     0,   423,
    1502      544,     0,   428,   430,     0,   575,   575,   160,     0,   508,
    1503      508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
    1504      508,   508,   508,   508,   508,   508,   508,     0,   447,   112,
    1505        0,     0,   450,     0,   451,   352,   214,     0,     0,  1165,
    1506     1166,     0,     0,   458,     0,   126,     0,     0,   213,    66,
    1507        0,     0,    48,   126,   472,   126,   126,   686,     0,     0,
    1508      126,     0,   126,   126,   479,     0,     0,     0,     0,     0,
    1509        0,    37,   430,   183,   184,    40,   213,   546,     0,     0,
    1510        0,   213,    41,    42,     0,     0,     0,     0,     0,    77,
    1511        0,     0,   882,   112,   112,   112,   885,  1215,  1216,   801,
    1512        8,     9,    10,    11,    12,  1311,     0,     0,   599,   448,
    1513      600,     0,     0,     0,     0,   702,    45,    46,   509,     0,
    1514        0,    77,     0,     0,     0,   702,     0,     0,     0,    31,
    1515       74,     0,   126,     0,     0,    74,     0,   701,   259,   702,
    1516        0,     0,   593,     0,     0,   701,   701,   701,   621,     0,
    1517        0,     0,   213,     0,     0,   508,     0,    34,   223,     0,
    1518        0,   626,     0,     0,     0,   626,   213,   643,   259,     0,
    1519        0,     0,     0,  1038,     0,     0,     0,     0,     0,     0,
    1520        0,     0,     0,     0,   338,     0,   498,     0,     0,     0,
    1521        0,     0,     8,     9,    10,    11,    12,     0,     0,   748,
    1522        0,   410,     0,     0,     0,     0,  1106,    45,    46,   701,
    1523        0,     0,     0,     0,  1088,   472,   508,     0,     0,     0,
    1524        0,    31,    48,    48,     0,     0,   497,     0,   575,   222,
    1525      349,   112,   112,     0,     0,   472,     0,     0,     0,     0,
    1526      124,   127,   128,   472,     0,   354,   508,     0,     0,    34,
    1527        0,     0,     0,     0,    37,     0,   183,   184,    40,   213,
    1528        0,   697,     0,     0,   430,    41,    42,     0,     0,   112,
    1529        0,   643,    37,     0,   183,   184,    40,  1336,     0,   711,
    1530        0,    66,     0,    41,    42,  1338,  1339,  1340,     0,   430,
    1531        0,   185,     0,   430,     0,     0,    74,     0,  1106,    45,
    1532       46,     0,     0,     0,     0,     0,     0,     0,     0,   265,
    1533        0,   352,   254,     0,   255,     0,    74,    45,    46,     0,
    1534        0,     0,   259,   349,    74,     0,    48,   112,     0,     0,
    1535        0,     0,     0,     0,     0,     0,   112,     0,     0,     0,
    1536       77,     0,   352,   702,   702,    77,   412,     0,     0,  1384,
    1537       48,    48,     0,     0,     0,     0,     0,     0,     0,     0,
    1538      352,     0,    74,     0,     0,     0,   508,     0,   792,     0,
    1539       37,  1038,   183,   184,    40,    48,     0,     0,     0,     0,
    1540        0,    41,    42,     0,     0,     0,   626,   804,     0,     0,
    1541        8,     9,    10,    11,    12,   395,  1106,     0,     0,   823,
    1542        0,   702,   702,     0,   352,   414,   415,   904,     0,   410,
    1543      419,   508,   421,   422,     0,    45,    46,   593,     0,    31,
    1544        0,     0,   593,  1141,     0,     0,     0,  1480,   626,  1480,
    1545        0,   349,   349,   349,     0,     0,     0,   126,   126,   223,
    1546     1153,     0,     0,     0,     0,     0,   508,    34,     0,   349,
    1547        0,     0,     0,     0,     0,     0,   213,     0,     0,   508,
    1548        0,     0,     0,  1480,     0,  1480,   126,   697,   352,   126,
    1549      126,     0,   126,     0,   126,   126,     0,     0,   472,   126,
    1550      126,     0,     0,    37,  1281,   183,   184,    40,     0,   931,
    1551        0,   600,   322,     0,    41,    42,     0,    45,    46,     0,
    1552      508,     0,     0,     0,   472,     0,    77,   349,     0,     0,
    1553        0,     0,   352,   352,   352,     0,   936,     0,   412,   430,
    1554     1504,   354,   410,     0,    79,     0,    77,     0,    45,    46,
    1555      352,     0,     0,     0,    77,     0,     0,     0,     0,     0,
    1556        0,   259,   711,     0,     0,     0,     0,   966,   352,  1312,
    1557        0,     0,   354,     0,     0,     0,    79,     0,  1241,    74,
     1832      49,   113,   428,   149,   166,   453,   440,    97,   399,   114,
     1833     766,   267,   844,   826,   400,   150,   151,   868,   628,   401,
     1834     604,   740,   632,    63,   752,    76,   505,   964,   965,   609,
     1835     827,   402,    49,    50,   403,   404,   596,  1070,  1187,    97,
     1836     407,   383,   384,   147,   405,   819,  1379,   973,   966,    49,
     1837    1171,   820,    69,   794,   725,    63,   161,    76,   730,    96,
     1838     821,   410,   357,   186,   143,    50,   209,   358,   166,    49,
     1839     193,   152,   153,   216,   122,   669,   226,   219,  1169,  1170,
     1840     919,    31,  1137,  1302,    69,   818,   123,   815,   399,   816,
     1841     260,    96,   280,   817,   400,   678,   425,    56,   115,   401,
     1842     154,   327,   148,   682,    31,   113,  1204,  1205,    96,   673,
     1843     675,   402,  1526,   113,   403,   404,   266,   271,  1195,    31,
     1844     407,  1443,   189,   408,   405,    96,    31,  1197,    96,    56,
     1845      31,   471,  1181,   106,   106,   475,   477,   144,    31,  1541,
     1846     342,  1439,   202,   948,  1458,   149,   307,   147,  1398,  1399,
     1847     281,   252,  1303,   411,   161,   113,   345,   150,   151,   720,
     1848     209,    31,   830,   210,   436,   106,   220,   373,   837,   142,
     1849     291,   859,   860,   714,   419,   923,   411,   729,  1196,  -232,
     1850    -232,   447,  1245,   964,   965,   186,   186,  1198,   877,   481,
     1851     913,   411,   203,   161,   327,   566,   742,   667,   411,   951,
     1852     460,   266,   106,   408,   966,   815,    96,   816,   828,    49,
     1853     601,   817,  1439,   152,   153,  1443,   161,   168,  1400,    96,
     1854    1443,   209,   409,  1069,    70,   149,   436,   173,   443,   567,
     1855     577,   835,   377,   601,   163,  1015,   578,   150,   151,   307,
     1856    1443,   169,   154,   804,   398,   189,   931,  1443,   378,   734,
     1857    -232,    49,  1016,  1484,  1171,   146,    70,   819,    97,   271,
     1858     664,   798,   166,   820,   271,   266,   266,   476,    96,   253,
     1859    1199,   113,   821,   161,    63,   991,    76,  1139,  1248,   472,
     1860      96,    76,   609,   463,    50,   853,  1187,  1512,  1080,  1514,
     1861     212,   656,   476,   471,   307,  1093,  1496,  1003,   163,   815,
     1862     598,   816,  1501,    69,  1171,   817,  1249,   307,  1398,  1399,
     1863      96,   596,   155,   471,   568,  1200,   596,   171,   441,   671,
     1864     387,   471,  1521,   571,   479,   676,   588,  1528,   147,  1177,
     1865     181,  1468,  1169,  1170,   664,   373,   388,   994,   898,   357,
     1866     110,   113,   247,   665,   358,   345,   735,   922,    56,   602,
     1867     620,    41,    42,   747,   111,  1178,   342,  1178,    37,   390,
     1868    1118,   827,    40,   201,   625,   417,   736,   986,   625,    41,
     1869      42,   113,   847,   830,  1070,   391,   848,   819,  1409,   759,
     1870    1119,   327,   327,   820,   106,  1525,  1084,    96,   437,  1186,
     1871     110,   844,   821,   713,   435,   812,   266,   601,   445,   556,
     1872     557,    41,    42,    45,    46,  1536,   186,   286,   603,   110,
     1873     683,   888,  1540,   373,  1423,   250,   578,   665,    41,    42,
     1874      41,    42,  1325,  1171,   266,   177,   307,   307,  1424,   764,
     1875     266,  1116,   357,   625,   558,   559,   714,   358,   985,  1187,
     1876     702,   472,  1326,    76,   514,   442,  1187,  -288,  1330,   327,
     1877     176,   849,  1434,  -516,   113,   850,   435,   996,   252,  1201,
     1878     392,   472,   804,    76,  1469,   189,   520,   394,   327,   472,
     1879    1126,    76,   266,   263,   261,    70,   393,   262,  1470,   523,
     1880     266,   952,   625,   395,    49,  1428,  1429,   373,   719,  1135,
     1881     493,    97,   163,   494,   113,  1014,   357,  1187,  1244,   176,
     1882     914,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
     1883     342,   307,   723,   307,   307,  1029,   915,    50,   704,   330,
     1884     869,   750,   721,   916,   705,   113,   345,  1016,   722,   229,
     1885     881,   -10,   230,   327,   110,   234,    69,   236,   870,   917,
     1886     642,   910,   703,    96,   245,    41,    42,   603,   176,   879,
     1887     804,  -440,   579,   914,   411,  -289,   471,   871,   922,   582,
     1888    1069,   411,     8,     9,    10,    11,    12,  1157,  1159,  1081,
     1889     571,   571,  -441,  1332,   212,   845,   916,  -120,   307,  -120,
     1890     598,    56,   928,  -120,   276,  -467,   439,  -467,  1126,   625,
     1891     345,    31,  1082,   913,   620,   714,   278,  1236,  -120,  -120,
     1892     602,   279,   602,   922,  -467,   465,   331,  1184,  1014,   332,
     1893     110,   176,   139,   140,   849,   680,  1184,   106,  1100,    34,
     1894     625,    41,    42,  1185,   912,   625,   831,   620,  1316,  1318,
     1895     834,   625,  1308,   333,   625,   625,   625,  1362,  1138,   691,
     1896     483,   706,   806,   334,  1317,  1319,   702,   500,  1027,   864,
     1897     747,   851,   625,   335,   266,   854,   713,  1276,  1277,   814,
     1898     371,   603,   110,   397,   731,   176,  1363,   570,  1074,   411,
     1899     732,   229,   176,    41,    42,    45,    46,   737,   520,   738,
     1900     252,   329,   739,   520,   113,   743,   520,   907,   372,  1029,
     1901     596,   523,   749,   523,   411,   376,   523,   212,  1360,   523,
     1902      45,    46,   554,   555,   472,   932,    76,   601,    70,  1112,
     1903     625,   933,   620,    45,    46,   357,   177,   385,   719,   719,
     1904     358,     2,   206,     4,     5,     6,     7,  -103,   399,   342,
     1905     472,  -103,    76,   629,   400,   389,   549,   633,   498,   401,
     1906    1034,   176,   550,   551,   113,   345,   911,   746,   703,   750,
     1907     750,   402,  1348,   747,   403,   404,  1349,   892,   176,   409,
     1908     894,   407,   176,   747,   405,   702,   747,   980,   711,   922,
     1909     552,   553,  1408,   981,   993,   702,   804,   814,   603,  1232,
     1910     705,  1373,   426,   964,   965,   578,    35,  1058,    36,   702,
     1911    1474,  1234,  1356,   571,  1357,  1238,  1359,  1474,   747,   427,
     1912     747,   625,   747,   625,   966,   999,   560,   561,   625,   345,
     1913    1161,   229,   602,   234,   432,   713,   110,  1364,   139,   140,
     1914     111,   984,   981,   747,   602,   176,  1426,    41,    42,   922,
     1915     922,   110,  1423,   139,   140,   450,   882,   714,   411,  1444,
     1916    -364,   890,    41,    42,   408,   747,   442,    37,  1522,    -3,
     1917     897,    40,   329,   411,   899,  1476,   461,  1477,    41,    42,
     1918     952,   806,  1425,  -393,   952,   952,  1490,   703,  1019,   691,
     1919    1546,   814,  1491,   243,   307,   462,   578,   703,  1436,   484,
     1920     885,   760,   411,   603,    43,  1141,   765,   411,   342,  1369,
     1921    1370,   703,    45,    46,  1418,   981,   625,    63,   327,    76,
     1922    1153,   229,   411,   113,   345,   907,   504,   907,  1182,   110,
     1923    1523,   139,   238,  1156,   519,   601,   714,  1398,  1399,   113,
     1924      41,    42,   212,   252,   329,   411,    69,   711,   291,    48,
     1925     112,  1168,   933,   933,   508,   465,   212,   719,  1158,   664,
     1926     601,   562,   113,   307,   910,  1241,   239,   411,  1494,  1436,
     1927    1105,   240,   513,  1087,   845,  1087,  1192,   525,   112,   112,
     1928    1101,    48,   771,   772,  1083,   527,   911,   750,   419,   660,
     1929     411,    56,    48,   775,   776,   777,   778,   563,    48,    37,
     1930    1323,   564,   176,    40,  1508,   565,    48,   773,   774,   846,
     1931      41,    42,    48,   702,   702,    48,   603,   568,    48,   345,
     1932     779,   780,  1227,   338,  -437,   861,   878,   106,   880,   586,
     1933     589,   112,   112,    -3,   176,   638,   718,   668,   657,   876,
     1934     625,   625,   665,   658,    45,    46,   659,   912,   661,   212,
     1935     176,   662,   663,  1126,   922,    48,   666,   257,    48,  1106,
     1936     307,   481,   329,   411,   176,    48,   672,   674,   692,   693,
     1937     922,   702,   702,   828,   329,   601,   695,   713,   927,  1295,
     1938    1296,  1297,   733,   472,   697,    76,   110,  1380,   139,   140,
     1939    1079,  1380,  1331,  1333,  1334,   106,    48,    41,    42,  -236,
     1940     113,   744,   748,   756,    48,   907,   807,   808,   811,    48,
     1941     907,   822,  1189,   -12,   -13,   703,   703,   866,    70,   933,
     1942     500,   867,   873,   726,   691,   893,   895,   266,   727,   896,
     1943    -414,   903,   900,   949,    48,    48,   510,   921,  -520,   936,
     1944     922,   922,   625,   722,  1058,   176,   519,   943,   957,   945,
     1945      48,   519,   956,   958,   519,   959,   960,    56,    48,   547,
     1946     548,   950,   961,   977,   911,   988,   345,    48,   989,   911,
     1947      48,   990,   213,   703,   703,  1005,  1006,   112,  1007,  1008,
     1948    1009,   232,  1010,    37,  1011,   174,   175,    40,  1459,   711,
     1949    1022,  -402,   112,   106,    41,    42,   112,   547,  -401,  1036,
     1950      48,   112,  1071,  1095,  1073,  1351,  1077,   787,   271,   113,
     1951    1094,   498,   342,   906,    48,    48,  1096,   219,  1103,  1312,
     1952     372,    48,   116,   213,   528,   529,   530,   113,    48,  1097,
     1953    1113,   307,   747,   547,  1114,  1115,  1117,  1372,  1120,   971,
     1954    1122,  1123,  1124,  1203,  1125,   625,   442,  1131,   531,   113,
     1955     532,   702,   533,   534,    63,  1151,    76,  1105,  1128,   702,
     1956     702,   702,  1172,  1173,   215,  1174,   213,  1175,   711,  1190,
     1957     159,     2,   206,     4,     5,     6,     7,    48,  1176,  1191,
     1958     242,  1193,  1206,    69,    70,   691,  1194,  1202,  1207,  1397,
     1959    1209,   493,  1405,  1421,   625,   625,    -3,    48,    48,   162,
     1960     228,  1534,  1214,   271,  1219,   210,   220,  1224,   307,   176,
     1961    1222,  1228,  1235,   194,    48,   215,   217,  1233,    48,   227,
     1962    1237,  1313,  1240,   702,  1250,  1246,   258,   213,    56,   643,
     1963    1121,   472,  1252,    76,   159,  1442,    35,  1254,    36,  1256,
     1964    1446,   113,   106,  1257,  1258,    48,  1106,  1259,   399,  1105,
     1965    1260,  1262,  1132,   703,   400,    48,  1132,  1269,   215,   401,
     1966    1189,   703,   703,   703,   106,   213,  1278,   323,  1467,  1279,
     1967     213,   402,  1286,    48,   403,   404,   339,  1322,  1289,    48,
     1968     407,    48,   106,  1290,   405,   499,     2,   206,     4,     5,
     1969       6,     7,  1291,  1293,  1301,  1307,  1507,   162,   266,  1314,
     1970     441,   768,   769,   770,   664,    56,  1132,  1320,  1324,  1328,
     1971     374,  1329,  1335,  1336,   625,  1338,   112,  1344,  1345,   215,
     1972    1346,    48,  1347,  1354,  1297,   703,   430,  1355,  1358,    48,
     1973     434,  1365,   212,    48,  1374,  1366,   162,    48,  1106,   113,
     1974     112,   106,   112,    57,    57,  1375,  1376,  1105,  1382,  1383,
     1975    1392,    35,  1535,    36,  1393,    70,   213,   215,  1535,   162,
     1976     323,   113,   215,   408,  -403,  1396,  1407,  1411,   113,  1535,
     1977     113,   444,   113,  1535,   106,    57,  1413,   112,  1415,  1416,
     1978    1417,  1422,   112,  1430,   472,   149,    76,   665,  1431,  1367,
     1979     327,   472,   434,    76,  1432,   488,  1433,   150,   151,  1349,
     1980    1435,  1506,  1440,  1449,  1451,  1453,   113,  1445,   113,    57,
     1981    1455,  1447,    57,  1189,  1462,   521,  1464,  1457,  1485,   113,
     1982    1189,  1463,  1475,  1487,  1492,  1506,  1506,   442,   159,  1493,
     1983    1489,   112,    70,   161,  1500,   307,  1106,   213,    48,  1515,
     1984    1520,  1527,   472,  1516,    76,  1529,  1531,  1544,   215,    48,
     1985    1506,    48,  1537,  1208,   213,  1545,   784,   373,    56,   781,
     1986    1130,   782,   587,  1306,   783,    56,   593,   785,  1495,  1547,
     1987      48,  1189,   106,  1410,  1368,  1239,  1384,  1478,   374,   213,
     1988     413,  1213,   901,   902,   479,   626,    48,   421,  1221,   630,
     1989    1088,   112,   339,   924,   106,  1092,  1127,  1035,   872,   348,
     1990      48,   106,   112,    48,   112,   938,  1315,    37,   972,   174,
     1991     175,    40,   800,  1102,   716,   214,    56,   946,    41,    42,
     1992     176,  1132,  1132,  1132,   790,     0,   791,   792,     0,   215,
     1993       0,     0,     0,     0,     0,     0,    48,     0,   891,     0,
     1994     112,  1479,   112,  1483,   376,     0,   112,   323,   323,     0,
     1995       0,     0,   106,     0,   112,  1482,   374,  1482,   129,   413,
     1996     130,   131,   132,     0,    57,     0,   214,    48,    48,    41,
     1997      42,   215,     0,     0,     0,   687,     0,  1511,     0,  1513,
     1998       0,    48,     0,     0,     0,    70,     0,     0,   116,     0,
     1999       0,  1482,    70,  1482,    57,     8,     9,    10,    11,    12,
     2000     213,     8,     9,    10,    11,    12,     0,     0,    37,   214,
     2001     183,   184,    40,   488,   576,   323,     0,   488,     0,    41,
     2002      42,  1542,   580,  1543,    31,   583,     0,   521,   213,   521,
     2003      31,     0,   521,   213,   323,   521,  1550,  1551,    37,     0,
     2004     183,   184,    40,    70,     0,   905,   339,   411,     0,    41,
     2005      42,     0,    34,    45,    46,     0,     0,   987,    34,  1132,
     2006    1132,    48,     0,     0,     0,  1420,   906,   992,     0,     0,
     2007     214,     0,     0,    48,     0,   600,    37,   601,   174,   175,
     2008      40,  1004,   141,    45,    46,     0,     0,    41,    42,   413,
     2009     176,     0,   215,   421,   570,     0,   411,  1460,     0,   323,
     2010       0,     0,    45,    46,   213,     0,     0,     0,   214,     0,
     2011     802,     0,     0,   214,     0,     0,   643,     0,   213,     0,
     2012     215,     0,   112,     0,     0,   215,     0,     0,     0,     0,
     2013    1284,  1285,     0,  1287,   241,   244,     0,     0,   499,     0,
     2014    1292,   843,  1294,     0,     0,    48,   593,     0,     0,     0,
     2015       0,   547,   852,     0,    48,  1509,    48,     0,     0,     0,
     2016       0,     0,     0,   112,  1517,     8,     9,    10,    11,    12,
     2017     413,     0,     0,     0,     0,     0,   348,     0,     0,     0,
     2018       8,     9,    10,    11,    12,    74,    48,     0,     0,     0,
     2019       0,     0,   510,  -290,    31,     0,   215,     0,     0,   214,
     2020       8,     9,    10,    11,    12,   687,   112,     0,     0,    31,
     2021     215,   213,     0,     0,     0,     0,     0,    74,     0,     0,
     2022     643,     0,    34,     0,     0,     0,     0,    57,   112,    31,
     2023       0,     0,   112,     0,     0,     0,     0,    34,     0,     0,
     2024    -291,     0,     0,   488,     0,    66,   117,     8,     9,    10,
     2025      11,    12,     0,     0,   222,     0,     0,    34,     0,     0,
     2026       0,   576,   576,     0,   749,   339,   411,     0,     0,   348,
     2027       0,     0,    45,    46,     0,     0,    31,    66,     0,   932,
     2028     214,   601,   112,     0,     0,  1166,  1167,    45,    46,     8,
     2029       9,    10,    11,    12,   160,   457,     0,     0,  1404,   528,
     2030     529,   530,     0,   215,    34,     0,     0,     0,     0,     0,
     2031       0,     0,     0,     0,   221,     0,     0,     0,    31,     0,
     2032     112,     0,   214,   531,   995,   532,     0,   533,  1305,   802,
     2033       0,     0,     0,   348,    48,     0,     0,     0,     0,    48,
     2034       0,   353,     0,  1216,  1217,     0,    34,     0,   883,     0,
     2035     259,    37,   886,   183,   184,    40,    48,     0,     0,     0,
     2036       0,     0,    41,    42,   535,   536,   537,   538,   539,   540,
     2037     541,   542,   543,   544,     0,     0,     0,   348,   348,   348,
     2038       0,     0,    37,     0,   183,   184,    40,     0,   600,     0,
     2039     601,     0,   328,    41,    42,   348,    45,    46,   545,     0,
     2040     259,   350,    37,     0,   183,   184,    40,     0,   213,     0,
     2041       0,     0,     0,    41,    42,   449,     0,   802,     0,   905,
     2042       0,   411,     0,     0,   339,     0,     0,    45,    46,     0,
     2043       0,   406,   644,   112,     0,     0,    74,     0,     0,   185,
     2044     687,    74,     0,   214,     0,     0,   424,    45,    46,   429,
     2045     431,     0,     0,   348,   160,     0,    48,     0,     0,     0,
     2046       0,     0,   488,  1107,   323,     0,     0,     0,     0,     0,
     2047       0,   214,     0,     0,     0,   448,   214,     0,     0,   451,
     2048       0,   452,     0,     0,   576,     0,     0,     0,     0,     0,
     2049     459,     0,   126,   126,   126,     0,    66,   112,   112,   112,
     2050     215,   473,     0,    37,     0,   183,   184,    40,     0,     0,
     2051       0,   480,     0,     0,    41,    42,     0,     0,     0,   431,
     2052     843,     0,     0,  1337,     0,     0,     0,     0,     0,     0,
     2053       0,  1339,  1340,  1341,     0,     0,   222,     0,     0,     0,
     2054    1505,     0,   411,   724,   348,   728,     0,   214,    45,    46,
     2055       0,     0,   348,     0,     0,     0,     0,     0,     0,     0,
     2056       0,   214,     0,     0,   126,     0,   126,     0,     8,     9,
     2057      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2058      20,    21,    22,    23,    24,    25,   259,     0,     0,     0,
     2059     594,   275,     0,     0,   213,  1385,   622,    31,     0,     0,
     2060       0,   687,   413,    74,     0,     0,     0,     0,     0,   627,
     2061       0,     0,     0,   627,     0,     0,   259,    57,   353,     0,
     2062       0,     0,     0,    74,     0,    34,    48,    48,     0,     0,
     2063       0,    74,   124,   127,   128,   112,   112,     0,     0,     0,
     2064       0,     0,     0,   802,     0,     0,     0,   126,     0,   353,
     2065       0,     0,     0,     0,   214,   126,     0,   126,   126,     0,
     2066       0,     0,   126,   473,   126,   126,     0,   353,     0,    74,
     2067       0,     0,     0,   112,     0,     0,     0,     0,   350,  1142,
     2068       0,     0,    77,   473,     0,    57,   215,     0,     0,   213,
     2069       0,   473,     0,     0,   865,     0,  1154,     0,     0,     0,
     2070       0,     0,     0,     0,   254,     0,   255,     0,     0,   698,
     2071       0,   353,   431,     0,    77,     0,     0,     0,     0,     0,
     2072       0,    37,     0,   183,   184,    40,     0,   712,   339,    66,
     2073      48,   112,    41,    42,   126,     0,     0,   431,     0,     0,
     2074     112,   431,     0,   918,     0,   920,     0,     0,     0,   457,
     2075    1107,   223,     0,     0,    48,    48,     0,     0,   265,     0,
     2076       0,     0,     0,   348,   348,     0,    45,    46,     0,     0,
     2077     259,   350,     0,     0,   413,   353,     0,     0,     0,    48,
     2078       0,   215,     0,    57,     0,     0,     0,   396,     0,     0,
     2079       0,     0,     0,     0,     0,     0,     0,   415,   416,     0,
     2080       0,     0,   420,     0,   422,   423,     0,     0,     0,     0,
     2081       0,     0,     0,     0,  1242,     0,   793,     0,     0,   353,
     2082     353,   353,     0,     0,     0,     0,     0,     0,     8,     9,
     2083      10,    11,    12,     0,   627,   805,     0,   353,   355,     0,
     2084       0,     0,  1107,     0,     0,     0,     0,   824,     0,     0,
     2085       0,   214,     0,     0,     0,   353,     0,    31,     0,     0,
     2086       0,     0,     0,     0,     0,   594,    74,     0,     0,     0,
     2087     594,     0,     0,     0,     0,     0,   627,     0,     0,   350,
     2088     350,   350,     0,     0,     0,    34,     0,     0,     0,     0,
     2089      37,     0,    74,     0,    40,   353,     0,   350,     0,     0,
     2090       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
     2091       0,     0,     0,     0,     0,   698,     0,     0,     0,   644,
     2092       0,     0,     0,     0,     0,  1039,   473,    43,     0,     0,
     2093     353,    57,    57,    77,     0,    45,    46,     0,    77,     0,
     2094    1107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2095       0,     0,   473,     0,    57,   350,     0,     0,     0,     0,
     2096      79,     0,     0,     0,   937,     0,  1089,   431,     0,     0,
     2097       0,  1481,    57,  1481,   353,     0,     0,     0,     0,     0,
     2098       0,     0,     0,     0,   353,     0,   353,     0,     0,   259,
     2099     712,   222,    79,     0,   353,   967,     0,     0,   353,     0,
     2100       0,     0,     0,     0,     0,     0,     0,  1481,     0,  1481,
     2101       0,     0,     0,     0,     0,     0,     0,   348,   348,     0,
     2102       0,     0,     0,   644,     0,     0,    57,     0,     0,   224,
     2103       0,    57,     0,   223,   698,     0,   323,   214,     0,     0,
     2104     126,   126,     0,     0,   698,     0,   350,     0,   627,     0,
     2105       0,  1002,     0,   627,   805,     0,     0,     0,   698,    74,
     2106       0,     0,     0,     0,    57,     0,     0,     0,  1013,   126,
     2107       0,     0,   126,   126,     0,   126,     0,   126,   126,     0,
     2108       0,     0,   126,   126,     0,     0,     0,     0,     0,   353,
    15582109       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1559      354,     0,    77,     0,     0,     0,     0,   508,     0,     0,
    1560        0,   702,     0,     0,     0,    74,   697,     0,   352,   702,
    1561      702,   702,     0,   224,     0,     0,   697,     0,   349,     0,
    1562      626,     0,     0,  1001,     0,   626,   804,     0,     0,     0,
    1563      697,     0,     0,     0,   354,     0,     0,   126,   126,     0,
    1564     1012,     0,     0,   352,     0,     0,     0,     0,     0,     0,
    1565        0,     0,     0,     0,     0,     0,     0,   508,   508,     0,
    1566        0,     0,   213,     0,     0,     0,     0,     0,     0,     0,
    1567        0,    86,     0,   702,     0,     0,     0,     0,     0,     0,
    1568        0,     0,     0,   282,   283,     0,   284,   352,     0,     0,
    1569        0,    66,     0,     0,     0,     0,     0,   352,   354,   352,
    1570      355,     0,     0,    86,   222,     0,     0,   352,     0,     0,
    1571        0,   352,   285,   626,     0,     0,     0,     0,   286,     0,
    1572      259,   711,   287,     0,  1084,   288,   289,   290,   291,    41,
    1573       42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    1574      225,     0,   354,   354,   354,     0,     0,     0,     0,     0,
    1575     1098,     0,     0,     0,     0,   505,     0,   213,   430,   117,
    1576      354,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    1577        0,     0,    74,     0,     0,     0,     0,     0,   354,     0,
    1578        0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
    1579        0,     0,     0,     0,   126,    79,     0,     0,     0,   126,
    1580       79,     0,   352,     0,     0,     0,     0,   794,   795,     0,
    1581        0,     0,     0,     0,     0,    77,   593,     0,   354,     0,
    1582        0,     0,     0,     0,     0,     0,     0,   362,     0,   428,
    1583        0,     0,     0,     0,   697,   697,   828,   349,   349,   831,
    1584      832,     0,   835,     0,   837,   838,     0,     0,     0,   839,
    1585      840,     0,     0,   354,     0,     0,     0,  1187,     0,     0,
    1586        0,     0,   508,     0,    57,    57,     0,     0,     0,     0,
    1587        0,     0,     0,     0,     0,     0,     0,     0,   508,     0,
    1588        0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
    1589        0,     0,   697,   697,   224,     0,    57,   354,     0,     0,
    1590        0,     0,     0,     0,     0,     0,     0,   354,     0,   354,
    1591        0,     0,     0,    31,   223,   352,   352,   354,   352,   352,
    1592        0,   354,    86,     0,     0,     0,     0,    86,     0,     0,
    1593       57,     0,     0,    57,     0,     0,     0,     0,    74,   626,
    1594        0,    34,     0,     0,     0,     0,    37,     0,   508,   508,
    1595       40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    1596      126,    79,     0,   711,     0,     0,     0,     0,     0,     0,
    1597        0,     0,     0,   352,   352,     0,   355,     0,     0,     0,
    1598        0,    79,    77,    43,     0,     0,     0,   968,   969,    79,
    1599        0,    45,    46,     0,     8,     9,    10,    11,    12,     0,
    1600        0,     0,     0,     0,     0,     0,  1282,   355,     0,     0,
    1601        0,     0,   354,     0,     0,     0,     0,     0,     0,     0,
    1602      347,   225,     0,    31,   259,   355,     0,    79,    66,     0,
     2110      77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2111       0,     0,     0,     0,     0,   355,   356,     0,     0,    66,
     2112      77,     0,     0,  1039,     0,     0,     0,     0,    77,     0,
     2113       0,     0,   214,     0,     0,     0,     0,   348,     0,     0,
     2114       0,   627,     0,     0,     0,     0,   355,     0,   259,   712,
     2115       0,     0,  1085,     0,     0,     0,     0,     0,     0,     0,
     2116       0,     0,    57,     0,   355,     0,    77,     0,     0,     0,
     2117       0,     0,     8,     9,    10,    11,    12,     0,  1099,     0,
     2118     795,   796,     0,     0,    57,     0,   431,   117,     0,     0,
     2119       0,    57,     0,     0,     0,     0,     0,     0,     0,     0,
     2120       0,    31,   353,   353,     0,   353,   353,     0,   355,   829,
     2121       0,    79,   832,   833,     0,   836,    79,   838,   839,     0,
     2122     126,   126,   840,   841,     0,    74,     0,     0,     0,    34,
     2123       0,     0,     0,     0,    37,     0,  1282,     0,    40,     0,
     2124       0,     0,    57,     0,   594,    41,    42,     0,     0,     0,
     2125       0,     0,     0,     0,     0,     0,     0,   429,     0,     0,
     2126     353,   353,   698,   698,     0,   350,   350,     0,     0,     0,
     2127       0,   718,   355,     0,     0,     0,     0,     0,     0,    45,
     2128      46,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
     2129       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2130      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2131      25,   224,     0,    26,    27,    28,   355,   355,   355,     0,
     2132     698,   698,    31,     0,     0,     0,     0,     0,     0,     0,
     2133       0,   353,     0,     0,   355,     0,     0,     0,     0,     0,
    16032134       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1604      697,     0,   711,     0,   352,     0,   117,     0,     0,     0,
    1605        0,    34,     0,     0,     0,     0,    37,     0,   183,   184,
    1606       40,     0,     0,     0,     0,     0,     0,    41,    42,   355,
    1607        0,     0,   697,     0,     0,     0,     0,     0,     0,     0,
    1608      697,   697,   697,     0,     0,    57,     0,   222,    86,   126,
    1609        0,   349,   349,   599,     0,   600,     0,     0,     0,     0,
    1610        0,    45,    46,   362,     0,  1187,     0,     0,    86,    74,
    1611        0,     0,     0,     0,     0,    57,    86,     0,     0,     0,
    1612        0,   352,     0,   352,     0,   354,   354,     0,   354,   354,
    1613        0,     0,     0,   355,   362,     0,     0,     0,   117,     0,
    1614        0,     0,     0,     0,   697,     0,     0,     0,    77,  1089,
    1615        0,     0,   362,   352,    86,     0,     0,     0,     0,     0,
    1616        0,   352,   352,   352,     0,     0,     0,     0,     0,     0,
    1617        0,     0,   352,   352,     0,     0,     0,   355,   355,   355,
    1618        0,     0,     0,   354,   354,     0,    74,     0,     0,     0,
    1619        0,     0,     0,     0,     0,   355,   362,     0,     0,     0,
     2135      34,     0,   355,     0,     0,     0,     0,    38,    39,     0,
     2136     969,   970,     0,    77,     0,     0,     0,   627,     0,     0,
     2137       0,     0,     0,     0,   222,     0,     0,   126,    79,     0,
     2138       0,     0,   126,     0,     0,     0,     0,     0,     0,    77,
     2139       0,   712,   355,   356,   257,     0,    74,    86,    79,     0,
     2140      45,    46,     0,     0,     0,     0,    79,     0,   353,     0,
     2141     353,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2142       0,     0,     0,     0,   356,     0,     0,   355,     0,    86,
     2143       0,     0,     0,     0,  1283,     0,     0,     0,     0,     0,
     2144     353,     0,   356,     0,    79,     0,     0,     0,   353,   353,
     2145     353,     0,   259,     0,     0,     0,    66,     0,     0,   353,
     2146     353,     8,     9,    10,    11,    12,   225,     0,   698,     0,
     2147     712,   355,     0,    74,   117,     8,     9,    10,    11,    12,
     2148       0,   355,     0,   355,     0,     0,   356,     0,   223,     0,
     2149      31,   355,   321,     0,     0,   355,     0,     0,     0,     0,
     2150     698,     0,   346,     0,    31,     0,     0,     0,   698,   698,
     2151     698,     0,   353,     0,   382,   382,     0,     0,    34,   350,
     2152     350,     0,  1090,    37,     0,   183,   184,    40,     0,     0,
     2153       0,     0,    34,  1188,    41,    42,     0,    37,     0,   183,
     2154     184,    40,     0,   126,     0,     0,     0,     0,    41,    42,
     2155     356,     0,     0,   363,     0,     0,    77,     0,     0,     0,
     2156     905,     0,   411,     0,     0,     0,   117,     0,    45,    46,
     2157       0,     0,   698,     0,  1505,     0,   411,     0,     0,   353,
     2158       0,     0,    45,    46,     0,   321,   355,     0,     0,     0,
     2159       0,     0,     0,     0,   356,   356,   356,     0,     0,     0,
     2160       0,     0,     0,     0,     0,     0,     0,     0,     0,   478,
     2161       0,     0,   356,     0,     0,     0,     8,     9,    10,    11,
     2162      12,     0,     0,     0,     0,     0,    74,     0,     0,     0,
     2163     356,     0,     0,    74,     0,     0,     0,     0,     0,   350,
     2164       0,    79,     0,     0,     0,    31,     0,     0,    86,     0,
     2165       0,     0,     0,    86,     0,     0,     0,     0,     0,     0,
     2166       0,     0,     0,     0,   117,     0,     0,    79,     0,     0,
     2167     356,     0,   126,    34,     0,     0,     0,     0,    37,     0,
     2168     183,   184,    40,  1218,    74,     0,  1188,     0,     0,    41,
     2169      42,     0,     0,  1188,     0,     0,     0,     0,     0,   355,
     2170     355,     0,   355,   355,     0,   356,     0,     0,     0,     0,
     2171       0,     0,     0,     0,     0,   185,     0,     0,     0,     0,
     2172       0,     0,    77,    45,    46,     0,   382,     0,     0,     0,
    16202173       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1621        0,   349,     0,   355,     0,     0,     0,     0,     0,     0,
    1622        0,     0,     0,     0,    79,   352,     0,     8,     9,    10,
    1623       11,    12,     0,     0,     0,     0,   117,     0,     0,     0,
     2174       0,     0,     0,     0,  1188,     0,     0,     0,   225,   356,
     2175       0,  1530,     0,     0,     0,     0,     0,   355,   355,   356,
     2176       0,   356,     0,     0,     0,     0,   224,     0,     0,   356,
     2177       0,     0,     0,   356,     0,   167,     0,   172,     0,     0,
     2178     178,   179,   180,     0,   182,     0,     0,     0,     0,     8,
     2179       9,    10,    11,    12,     0,     0,     0,     0,   233,     0,
    16242180       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1625       79,     0,     0,   355,   354,     0,    31,     0,  1187,     0,
    1626      362,     0,     0,     0,     0,  1187,     0,   167,     0,   172,
    1627        0,     0,   178,   179,   180,     0,   182,     0,     0,     0,
    1628        0,     0,     0,     0,    34,     0,     0,     0,   355,    37,
    1629      233,     0,   352,    40,     0,     0,   347,   223,     0,     0,
    1630       41,    42,   248,   249,   362,   362,   362,     0,     0,     0,
    1631     1217,     0,     0,     0,     0,     0,  1187,     0,     0,    77,
    1632        0,     0,   362,  1529,     0,     0,   717,     0,     0,     0,
    1633        0,   354,   355,   354,    45,    46,     0,     0,     0,    74,
    1634      362,     0,   355,     0,   355,     0,    74,    57,     0,   224,
    1635        0,    86,   355,     0,     0,     0,   355,     8,     9,    10,
    1636       11,    12,     0,   354,     0,     0,     0,     0,     0,     0,
    1637        0,   354,   354,   354,     0,     0,     0,    86,     0,     0,
    1638      362,     0,   354,   354,     0,     0,    31,     0,     0,   347,
    1639        0,     0,     0,     0,     0,     0,    77,    74,     0,     0,
     2181     248,   249,  1304,     0,     0,    86,     0,     0,    31,     0,
     2182     709,     0,     0,     0,     0,     0,     0,     0,   355,     0,
     2183     363,     0,     0,     0,    79,    86,     0,     0,     0,     0,
     2184       0,     0,     0,    86,     0,     0,    34,     0,     0,     0,
     2185       0,    37,     0,   183,   184,    40,     0,     0,     0,   741,
     2186       0,   363,    41,    42,   356,     0,     0,     0,     0,     0,
     2187       0,   223,   758,     0,     0,     0,     0,   741,     0,   363,
     2188     741,    86,     0,   282,   283,     0,   284,     0,   265,     0,
     2189       0,     0,   767,    77,     0,     0,    45,    46,     0,     0,
     2190       0,     0,     0,     0,     0,   355,     0,   355,     0,     0,
     2191       0,     0,   285,     0,   788,     0,     0,     0,   286,     0,
     2192       0,     0,   287,   363,   797,   288,   289,   290,   291,    41,
     2193      42,   346,   292,   293,     0,     0,   758,   355,     0,     0,
     2194       0,     0,     0,     0,     0,   355,   355,   355,     0,     0,
     2195       0,     0,     0,     0,     0,   506,   355,   355,     0,     0,
     2196       0,     0,     0,    45,    46,   296,   297,   298,   299,     0,
     2197      77,     0,     0,     0,     0,     0,     0,   356,   356,     0,
     2198     356,   356,     0,     0,     0,   862,     0,   363,     0,     0,
     2199       0,     0,     0,   382,     0,     0,     0,     0,     0,     0,
     2200      79,     0,     0,     0,     0,     0,     0,     0,     0,   355,
    16402201       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1641        0,     0,     0,     0,    34,   362,     0,    79,     0,    37,
    1642        0,   183,   184,    40,     0,     0,     0,     0,     0,     0,
    1643       41,    42,     0,     0,     0,   354,     0,     0,     0,  1303,
    1644        0,     0,     0,     0,     0,     0,     0,   355,     0,     0,
    1645        0,     0,     0,   347,     0,     0,   904,     0,   410,   362,
    1646        0,     0,     0,     0,    45,    46,     0,     0,     0,   362,
    1647        0,   362,     0,     0,     0,     0,   225,     0,     0,   362,
    1648        0,     0,     0,   362,     0,     0,     0,     0,     0,     0,
    1649        0,     0,     0,     0,     0,     0,     0,   347,   347,   347,
    1650        0,     0,   354,     0,     0,     0,     0,     0,     0,     0,
    1651        0,     0,     0,     0,     0,   347,     0,     0,     1,     2,
    1652        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2202       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2203       0,   363,   363,   363,     0,   356,   356,     0,     0,     0,
     2204       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2205       0,     0,  1012,     0,     0,     8,     9,    10,    11,    12,
     2206       0,     0,     0,     0,     0,     0,   591,   363,   599,     0,
     2207       0,   165,     0,     0,     0,     0,   355,     0,    86,   623,
     2208     624,     0,   282,   283,    31,   284,     0,     0,   218,     0,
     2209       0,   758,     0,   963,     0,     0,     0,     0,     0,     0,
     2210       0,     0,     0,   974,    86,     0,   356,   363,     0,   982,
     2211       0,   285,    34,     0,     0,     0,     0,   286,     0,     0,
     2212       0,   287,     0,    77,   288,   289,   290,   291,    41,    42,
     2213      77,   292,   293,     0,     0,   165,     0,     0,     0,   272,
     2214       0,     0,   363,     0,     0,     0,     0,     0,     0,   224,
     2215       0,  1000,  1001,     0,   294,   346,   379,     0,     0,     0,
     2216       0,     0,   344,    46,   296,   297,   298,   299,   165,   346,
     2217       0,    79,     0,     0,     0,     0,     0,     0,   369,     0,
     2218       0,    77,   375,   356,     0,   356,   363,     0,     0,     0,
     2219       0,     0,     0,     0,     0,     0,   363,     0,   363,     0,
     2220       0,     0,     0,   225,     0,     0,   363,     0,     0,  1031,
     2221     363,     0,     0,   382,     0,   356,     0,     0,     0,     0,
     2222       0,     0,     0,   356,   356,   356,     0,     0,     0,     0,
     2223       0,   165,     0,     0,   356,   356,     0,     0,     0,     0,
     2224       0,     0,     0,   218,     0,     0,     0,     0,    79,     0,
     2225     346,     0,     0,   282,   283,     0,   284,     0,     0,     0,
     2226       0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
     2227       0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
     2228       0,     0,   285,     0,     0,     0,   375,   356,   286,   321,
     2229       0,     0,   287,   165,     0,   288,   289,   290,   291,    41,
     2230      42,   363,   292,   293,     0,     0,     0,     0,     0,     0,
     2231       0,     0,     0,     0,     0,     0,   524,   382,     0,     0,
     2232       0,     0,     0,   974,     0,   294,     0,   741,     0,   165,
     2233       0,     0,     0,    45,    46,   296,   297,   298,   299,     0,
     2234       0,     0,     0,     0,     0,     0,     0,     0,  1150,     0,
     2235       0,     0,     0,     0,   356,     0,     0,     0,     0,  1165,
     2236       0,     0,     0,     0,     0,     0,     0,   597,     0,     0,
     2237       0,     0,   621,     0,     0,     0,     0,     0,     0,     0,
     2238       0,   382,     0,  1183,     0,     0,     0,     0,     0,     0,
     2239       0,     0,     0,     0,     0,     0,     0,     0,   974,   974,
     2240       0,    79,     0,     0,     0,     0,     0,     0,    79,     0,
     2241       0,     0,     0,     0,   363,   363,     0,   363,   363,  1215,
     2242       0,   925,     0,   926,     0,     0,     0,     0,     0,     0,
     2243     929,   930,     0,     0,     0,   935,     0,    86,     0,     0,
     2244       0,     0,     0,     0,     0,     0,     0,   940,   165,   165,
     2245       0,     0,   944,     0,     0,   369,     0,     0,     0,    79,
     2246       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2247       0,     0,   363,   363,   974,     0,   524,     0,     0,     0,
     2248     978,  1162,     0,     0,     8,     9,    10,    11,    12,     0,
     2249       0,     0,   862,     0,     0,     0,     0,     0,     0,     0,
     2250       0,     0,     0,     0,   715,     0,     0,  1266,  1267,     0,
     2251       0,   282,   283,    31,   284,     0,   165,     0,     0,     0,
     2252       0,     0,     0,     0,     0,     0,     0,     0,   524,     0,
     2253     524,     0,     0,   524,     0,   165,   524,     0,     0,     0,
     2254     285,    34,     0,   363,     0,     0,   286,     0,   369,     0,
     2255     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
     2256     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2257       0,     0,     0,     0,     0,     0,     0,     0,     0,  1023,
     2258    1024,  1025,  1026,   294,  1028,   379,   225,     0,     0,     0,
     2259       0,  1163,    46,   296,   297,   298,   299,     0,     0,  1072,
     2260     165,     0,     0,     0,     0,     0,     0,     0,    86,     0,
     2261       0,     0,   369,  1078,     0,     0,   810,     0,     0,     0,
     2262     363,     0,   363,     0,     0,     0,     0,     0,     0,     0,
     2263       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2264       0,     0,   597,     0,     0,     0,     0,   597,  1371,     0,
     2265       0,   741,   363,  1098,     0,     0,   369,   369,   369,     0,
     2266     363,   363,   363,     0,     0,     0,     0,     0,     0,     0,
     2267       0,   363,   363,     0,   369,     0,     0,     0,     0,     0,
     2268       0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
     2269       0,     0,     0,     0,     0,     0,     0,     0,  1129,     0,
     2270       0,     0,     0,     0,  1136,     0,   524,     0,     0,  1140,
     2271       0,     0,     0,     0,  1144,     0,  1145,     0,   211,     0,
     2272    1147,     0,  1148,  1149,   363,     0,  1152,   231,     0,   235,
     2273       0,   237,   369,     0,   934,  1164,     0,     0,   246,     0,
     2274       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2275       0,     0,     0,  1179,  1180,     0,     0,     0,     0,     0,
     2276       0,     0,     0,     0,     0,     0,     0,   715,     0,   211,
     2277       0,   235,   237,   246,     0,     0,     0,     0,     0,     0,
     2278    1210,     0,     0,  1212,     0,     0,     0,     0,     0,     0,
     2279       0,   363,     0,     8,     9,    10,    11,    12,    13,    14,
     2280      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2281      25,     0,   211,    26,    27,    28,     0,     0,     0,     0,
     2282       0,     0,    31,   369,     0,     0,  1226,   621,     0,     0,
     2283       0,   369,  1230,  1231,     0,     0,     0,     0,    86,     0,
     2284       0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
     2285      34,     0,  1247,     0,     0,  1251,     0,    38,    39,  1253,
     2286       0,   321,     0,     0,     0,     0,     0,     0,     0,     0,
     2287       0,     0,  1261,   211,     0,   235,   237,   246,     0,     0,
     2288       0,     0,     0,   156,     0,  1268,     0,  1270,  1271,  1272,
     2289    1273,     0,   634,     0,   338,     0,    86,     0,     0,     0,
     2290      45,    46,     0,  1280,     0,  1281,     0,     0,     0,   172,
     2291       0,   211,     0,     0,     0,     0,   211,     0,     0,     0,
     2292       0,     0,     0,     0,     0,     0,   715,     0,     0,     0,
     2293     251,   497,     0,     0,     0,     0,     0,     0,  1309,  1310,
     2294     256,   524,     0,     0,     0,     0,     0,     8,     9,    10,
     2295      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2296      21,    22,    23,    24,    25,   165,     0,    26,    27,    28,
     2297       0,     0,     0,     0,     0,     0,    31,   684,     0,     0,
     2298     211,     0,     0,     0,     0,     0,     0,     0,  1342,  1343,
     2299       0,     0,     0,     0,     0,     0,   156,     0,  1353,     0,
     2300       0,     0,   211,     0,    34,     0,     0,   235,   237,     0,
     2301     386,    38,    39,     0,     0,   246,     0,     0,     0,     0,
     2302       0,   597,     0,     0,     0,     0,     0,     0,     0,     0,
     2303       0,     0,     0,   418,     0,     0,     0,     0,     0,     0,
     2304       0,     0,   369,   369,     0,     0,     0,   433,   685,     0,
     2305       0,     0,   686,     0,    45,    46,   438,     0,   211,  1388,
     2306       0,  1389,  1390,  1391,     0,     0,   446,     0,     0,     0,
     2307       0,     0,     0,  1395,     0,     0,   211,   282,   283,     0,
     2308     284,   211,  1406,   211,     0,     0,     0,     0,     0,     0,
     2309       0,   464,     0,     0,     0,     0,   474,     0,     0,     0,
     2310     211,     0,   524,   211,   211,     0,   285,  1427,     0,   482,
     2311       0,   211,   286,     0,     0,   492,   287,   496,     0,   288,
     2312     289,   290,   291,    41,    42,   211,   292,   293,     0,     0,
     2313       0,     0,   211,     0,   526,     0,     0,     0,     0,     0,
     2314       0,     0,     0,     0,     0,     0,     0,     0,     0,   511,
     2315    1465,  1466,     0,     0,     0,     0,     0,    45,    46,   296,
     2316     297,   298,   299,  1471,     0,     0,     0,     0,   715,     0,
     2317    1471,     0,     0,     0,     0,     0,     0,   585,     0,     0,
     2318       0,     0,   590,     8,     9,    10,    11,    12,    13,    14,
     2319      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2320      25,  -292,  1504,     0,     0,     0,  1510,     0,     0,     0,
     2321     218,   635,    31,     0,     0,   636,   637,     0,   639,     0,
     2322       0,     0,     0,     0,     0,   650,   651,     0,   652,   653,
     2323       0,   654,     0,   655,  1532,     0,  1533,     0,     0,     0,
     2324      34,     0,   282,   283,     0,   284,   211,   715,     0,     0,
     2325     585,  -292,     0,     0,     0,     0,     0,     0,   670,     0,
     2326       0,     0,     0,     0,  1548,  1549,     0,     0,     0,     0,
     2327       0,   285,  1552,  1553,   211,     0,     0,   286,     0,   211,
     2328       0,   287,     0,   681,   288,   289,   290,   291,    41,    42,
     2329       0,   292,   293,     0,     0,     0,   369,   369,     0,     0,
     2330       0,     0,     0,     0,     0,   218,     0,     0,     0,   707,
     2331       0,     0,     0,     0,   294,   710,   379,     0,     0,   380,
     2332     464,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2333       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2334      17,    18,    19,    20,    21,    22,    23,    24,    25,  -292,
     2335     211,    26,    27,    28,     0,     0,   745,     0,     0,     0,
     2336      31,     0,     0,     0,   211,   507,     0,   509,   512,     0,
     2337       0,   763,     0,     0,     0,   515,   516,     0,     0,     0,
     2338       0,     0,     0,     0,   497,     0,     0,     0,    34,     0,
     2339     509,   509,     0,    37,     0,   336,   337,    40,     0,  -292,
     2340       0,     0,     0,     0,    41,    42,     0,     0,     0,   789,
     2341       0,     0,     0,     0,     0,     0,   369,     0,   799,     0,
     2342       0,     0,     0,     0,     0,   801,     0,     0,   509,     0,
     2343     634,   809,   338,     0,     0,     0,     0,     0,    45,    46,
     2344     823,     0,     0,     0,     0,   211,     0,     0,     0,     0,
     2345       0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
     2346       0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
     2347       0,     0,   524,     0,   524,     0,   211,     0,     0,     0,
     2348     863,     0,     0,     0,     0,     8,     9,    10,    11,    12,
    16532349      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    1654       23,    24,    25,     0,    86,    26,    27,    28,    29,    77,
    1655        0,    30,     0,     0,    31,    32,    77,   590,     0,   598,
    1656      355,   355,     0,   355,   355,     0,     0,     0,     0,     0,
    1657      622,   623,     0,   347,   362,     0,     0,     0,     0,    33,
    1658        0,     0,    34,    79,    35,     0,    36,    37,     0,    38,
    1659       39,    40,     0,     8,     9,    10,    11,    12,    41,    42,
    1660        0,     0,     0,     0,     0,     0,     0,    77,     0,     0,
    1661        0,     0,     0,     0,     0,     0,     0,     0,   355,   355,
    1662        0,     0,    31,     0,    43,     0,    44,     0,   211,     0,
    1663     -518,     0,    45,    46,     0,     0,     0,   231,     0,   235,
    1664        0,   237,     0,     0,     0,     0,     0,     0,   246,     0,
    1665       34,     0,   165,     0,     0,    37,     0,   183,   184,    40,
    1666        0,     0,     0,     0,   347,     0,    41,    42,     0,   218,
    1667        0,     0,   347,     0,     8,     9,    10,    11,    12,   211,
    1668        0,   235,   237,   246,     0,     0,     0,   362,   362,   355,
    1669      362,   362,  1504,     0,   410,     0,     0,     0,     0,     0,
    1670       45,    46,     0,    31,     0,     0,     0,     0,     0,     0,
    1671       86,     0,     0,     0,     0,     0,   165,     0,     0,     0,
    1672      272,     0,   211,     0,     0,     0,     0,     0,     0,     0,
    1673        0,    34,   224,     0,     0,     0,    37,    57,   183,   184,
    1674       40,     0,     0,     0,     0,   362,   362,    41,    42,   165,
    1675        0,     0,     0,     0,    79,     0,     0,     0,     0,   368,
    1676        0,     0,     0,   374,     0,     0,   355,     0,   355,     0,
    1677        0,     0,     0,   265,     0,     0,     0,     0,     0,     0,
    1678        0,    45,    46,   211,     0,   235,   237,   246,     0,     0,
    1679        0,     0,     0,     0,     0,     0,     0,     0,   355,     0,
    1680        0,     0,     0,     0,     0,    57,   355,   355,   355,     0,
    1681        0,     0,   165,     0,     0,     0,   362,   355,   355,     0,
    1682        0,   211,     0,     0,   218,     0,   211,     0,     0,     0,
    1683        0,    79,     0,     0,     0,     0,     0,     0,     0,     0,
    1684        0,   496,   165,     0,     0,     0,     0,     0,     0,     0,
    1685        0,     0,     0,     0,     0,     0,     0,     0,     0,   225,
    1686        0,     0,     0,     0,     0,     0,     0,   374,     0,     0,
    1687      355,     0,     0,     0,   165,     0,     0,     0,     0,     0,
    1688        0,    86,     0,   347,   347,     0,     0,     0,     0,   211,
    1689        0,     0,     0,   362,     0,   362,     0,   523,     0,     0,
    1690        0,     0,     0,    57,     0,     0,     0,     0,     0,   165,
    1691        0,   211,   924,     0,   925,     0,   235,   237,     0,     0,
    1692        0,   928,   929,     0,   246,   362,   934,     0,     0,     0,
    1693        0,     0,     0,   362,   362,   362,     0,   355,   939,     0,
    1694        0,     0,     0,   943,   362,   362,     0,   596,     0,     0,
    1695        0,     0,   620,     0,     0,     0,     0,     0,    86,     0,
    1696        0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
    1697        0,   977,     0,     0,     0,     0,     0,     0,     0,     0,
    1698        0,     0,     0,     0,    79,   211,     0,     0,     0,     0,
    1699      211,    79,   211,     0,     0,     0,     0,   362,     0,     0,
    1700        0,     0,     0,     0,     0,     0,     0,     0,     0,   211,
    1701        0,     0,   211,   211,     0,     0,     0,     0,     0,     0,
    1702      211,     0,     0,     0,     0,     0,     0,     0,   165,   165,
    1703        0,     0,     0,     0,   211,   368,     0,     0,     0,     0,
    1704        0,   211,    79,     0,     0,     0,     0,     0,     0,     0,
    1705        0,    57,    57,     0,     0,     0,   523,     0,     0,     0,
    1706        0,     0,     0,     0,   362,     0,     0,     0,     0,     0,
    1707     1022,  1023,  1024,  1025,    57,  1027,     0,     0,     0,     0,
    1708        0,     0,     0,     0,   714,     0,     0,     0,     0,     0,
    1709     1071,     0,    57,     0,     0,     0,   165,     0,     0,     0,
    1710        0,     0,     0,     0,  1077,     0,     0,     0,   523,     0,
    1711      523,    86,     0,   523,     0,   165,   523,     0,    86,     0,
    1712        0,     0,     0,     0,     0,     0,     0,     0,   368,     0,
    1713        0,     0,     0,     0,     0,     0,     0,   347,   347,     0,
    1714        0,     0,     0,     0,  1097,     0,    57,     0,     0,     0,
    1715        0,    57,     0,     0,     0,   211,     0,     0,     0,     0,
    1716        0,     0,     0,     0,     0,     0,     0,     0,     0,    86,
     2350      23,    24,    25,  -292,     0,    26,    27,    28,   524,     0,
     2351     524,     0,     0,     0,    31,     0,   809,     0,     0,     0,
     2352       0,     0,     0,     0,   904,     0,     0,     0,     0,     0,
     2353       0,     0,     0,   282,   283,     0,   284,   165,     0,     0,
     2354     341,   364,    34,     0,     0,     0,     0,    37,     0,   336,
     2355     337,    40,     0,  -292,     0,   251,     0,     0,    41,    42,
     2356       0,     0,   285,     0,     0,   941,   942,     0,   286,     0,
     2357       0,     0,   287,     0,   414,   288,   289,   290,   291,    41,
     2358      42,   414,   292,   293,     0,     0,   338,     0,     0,   211,
     2359       0,     0,    45,    46,     0,     0,     0,     0,   979,     0,
     2360       0,     0,     0,   983,     0,   294,     0,   379,     0,     0,
     2361       0,     0,     0,    45,    46,   296,   297,   298,   299,   211,
     2362       0,     0,     0,     0,     0,     0,   786,     0,     0,     0,
     2363       0,     0,   509,   509,   509,   509,   509,   509,   509,   509,
     2364     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
     2365       0,     0,     0,   414,   211,     0,     0,     0,     0,     0,
     2366       0,     0,     0,     0,     0,   211,     0,  1017,     0,     0,
     2367       0,     0,     0,     0,  1018,     0,     0,     0,     0,     0,
     2368       0,     0,     0,     0,     0,     0,     0,  1020,     0,  1021,
    17172369       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1718      165,     0,     0,   211,    57,     0,     0,     0,   211,  1128,
    1719        0,     0,   368,     0,     0,  1135,   809,     0,     0,     0,
    1720     1139,     0,     0,     0,     0,  1143,     0,  1144,     0,     0,
    1721        0,  1146,     0,  1147,  1148,     0,     0,  1151,     0,     0,
    1722        0,     0,   596,     0,     0,     0,  1163,   596,     0,     0,
    1723        0,     0,     0,     0,     0,     0,   368,   368,   368,     0,
    1724        0,     0,     0,     0,  1178,  1179,     0,     0,     0,     0,
    1725        0,     0,     0,     0,   368,     0,     0,   347,     0,   211,
     2370       0,     0,     0,  1033,     0,     0,     0,     0,   414,  1037,
     2371       0,     0,     0,     0,     0,     0,   414,   581,     0,   414,
     2372     584,  1075,     0,     0,  1076,     0,     0,     0,     0,     0,
     2373     364,     0,     0,     0,   613,     0,     0,   211,     0,     0,
    17262374       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1727        0,  1209,     0,   211,  1211,     0,     0,     0,     0,     0,
    1728        0,     0,    57,     0,     0,     0,   523,   282,   283,     0,
    1729      284,     0,     0,   496,     0,     0,     0,     0,     0,     0,
    1730        0,     0,     0,     0,    57,     0,     0,     0,     0,     0,
    1731        0,    57,   368,     0,   933,     0,   285,  1225,     0,     0,
    1732        0,     0,   286,  1229,  1230,     0,   287,     0,     0,   288,
    1733      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    1734        0,     0,     0,  1246,     0,     0,  1250,   714,     0,     0,
    1735     1252,     0,     0,     0,   211,     0,     0,     0,   156,   294,
    1736        0,   378,    57,  1260,   379,     0,   211,    45,    46,   296,
    1737      297,   298,   299,     0,     0,     0,  1267,     0,  1269,  1270,
    1738     1271,  1272,     0,     0,     0,   211,     0,     0,     0,     0,
    1739        0,     0,     0,     0,  1279,     0,  1280,     0,     0,     0,
    1740      172,     0,     0,   368,     0,   251,     0,   620,     0,     0,
    1741        0,   368,     0,     0,     0,   256,     0,     0,     0,     0,
    1742        0,     0,     0,     0,     0,     0,     0,     0,     0,  1308,
    1743     1309,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1744        0,   205,     2,   206,     4,     5,     6,     7,     8,     9,
    1745       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    1746       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    1747       28,   156,     0,     0,     0,     0,     0,    31,     0,  1341,
    1748     1342,     0,     0,     0,     0,   385,     0,     0,     0,  1352,
    1749        0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
    1750        0,     0,     0,     0,     0,    34,   714,    35,   417,    36,
    1751        0,     0,   207,    39,     0,     0,     0,     0,     0,     0,
    1752        0,   523,   432,     0,     0,     0,     0,     0,   211,     0,
    1753        0,   437,     0,   282,   283,     0,   284,     0,     0,     0,
    1754        0,   445,     0,     0,     0,   165,     0,     0,     0,   208,
    1755     1387,     0,  1388,  1389,  1390,    45,    46,     0,     0,     0,
    1756        0,     0,   285,   211,  1394,     0,   463,     0,   286,     0,
    1757        0,   473,   287,  1405,   211,   288,   289,   290,   291,    41,
    1758       42,     0,   292,   293,   481,     0,     0,     0,     0,     0,
    1759      491,     0,   495,     0,     0,     0,     0,     0,  1426,     0,
    1760        0,   596,     0,     0,     0,   294,     0,   378,     0,   525,
    1761        0,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    1762        0,     0,   368,   368,     0,     0,   785,     0,     0,     0,
    1763        0,     0,     0,     0,   282,   283,     0,   284,     0,     0,
    1764        0,  1464,  1465,     0,     0,     0,   211,     0,     0,     0,
    1765        0,   584,     0,     0,  1470,     0,   589,     0,     0,     0,
    1766      211,  1470,     0,   285,     0,     0,     0,     0,     0,   639,
    1767        0,   139,   140,   287,     0,     0,   288,   289,   290,   291,
    1768       41,    42,   523,   292,   293,   634,     0,     0,     0,   635,
    1769      636,     0,   638,  1503,     0,     0,     0,  1509,     0,   649,
    1770      650,     0,   651,   652,     0,   653,   294,   654,   640,     0,
    1771      641,   379,     0,     0,    45,    46,   296,   297,   298,   299,
    1772        0,     0,     0,     0,   584,  1531,     0,  1532,     0,     0,
    1773        0,     0,   669,     0,     0,     0,     0,     0,     0,     0,
    1774        0,   340,   363,     0,     0,     0,     0,     0,   714,   211,
    1775        0,     0,     0,     0,     0,  1547,  1548,   680,     0,     0,
    1776        0,     0,     0,  1551,  1552,     0,     0,     0,     0,     0,
    1777        0,     0,     0,     0,     0,   413,     0,     0,     0,     0,
    1778        0,     0,   413,   706,     0,     0,     0,     0,     0,   709,
    1779      218,     0,     0,     0,   463,   466,     2,   206,     4,     5,
    1780        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2375       0,   211,     0,   631,     0,     0,   341,     0,     0,     0,
     2376       0,   282,   283,     0,   284,  1041,     0,  1042,     0,     0,
     2377    1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,   509,     0,
     2378    1524,  1051,     0,   414,     0,  1052,  1053,   414,    33,     0,
     2379     285,     0,     0,     0,     0,     0,  1054,     0,     0,     0,
     2380     287,   590,     0,   288,   289,   290,   291,    41,    42,     0,
     2381     292,   293,     0,     0,     0,     0,     0,     0,   364,     0,
     2382       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2383       0,     0,     0,   294,     0,   379,  1146,     0,   171,   509,
     2384     211,    45,    46,   296,   297,   298,   299,     0,     0,     0,
     2385       0,  1056,     0,     0,     0,     0,  -127,     0,     0,     0,
     2386       0,     0,     0,     0,   414,     0,     0,   364,     0,   509,
     2387       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2388      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2389      22,    23,    24,    25,   526,     0,    26,    27,    28,     0,
     2390    1211,     0,     0,     0,     0,    31,   414,     0,     0,     0,
     2391     341,   364,     0,     0,     8,     9,    10,    11,    12,    13,
     2392      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2393      24,    25,  -293,    34,  1223,   211,     0,     0,    37,  1225,
     2394     336,   337,    40,    31,     0,     0,     0,  1229,     0,    41,
     2395      42,     0,     0,     0,     0,   414,   414,     0,     0,     0,
     2396       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2397       0,    34,     0,     0,   803,   364,     0,   338,     0,     0,
     2398    1255,     0,  -293,    45,    46,   613,     0,   613,   613,   509,
     2399       0,     0,  1263,     0,   613,  1264,     0,  1265,     0,     0,
     2400       0,     0,     0,     0,   842,   364,     0,     0,     0,     0,
     2401     364,  1274,  1275,     0,     0,     0,     0,     0,     0,   364,
     2402     364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
     2403       0,     0,     0,  1288,   509,     0,     0,   364,     0,     0,
     2404       0,     0,   414,   884,     0,     0,   414,   887,     0,     0,
     2405       0,     0,     0,   889,     0,     0,     0,     0,     0,     0,
     2406       0,     0,     0,     0,     0,     0,     0,     0,     0,   509,
     2407       0,     0,   414,     0,     0,     0,     0,     0,     0,     0,
     2408    1327,     0,   509,     0,     0,     0,     0,     0,     0,     0,
     2409       0,     0,     0,     0,     0,   364,   613,     0,     0,     8,
     2410       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2411      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2412      27,    28,     0,   509,     0,     0,     0,     0,    31,   341,
     2413     364,     0,     0,     0,   414,   414,     0,     0,     0,     0,
     2414       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2415       0,     0,     0,     0,     0,  1377,    34,  1378,     0,     0,
     2416       0,     0,     0,   207,    39,     0,     0,     0,     0,  1386,
     2417       0,  1387,     0,     0,     0,     0,     0,     0,   414,     0,
     2418       0,     0,   211,     0,     0,     0,   364,     0,  1394,     0,
     2419       0,     0,     0,   803,   364,     0,     0,   613,     0,   613,
     2420     509,     0,     0,     0,  1412,  1414,    45,    46,     0,   613,
     2421       0,     0,     0,     0,     0,  1419,     0,     0,  1229,     0,
     2422       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2423       0,     0,     0,     0,     0,     0,     0,     0,     0,  1441,
     2424       0,     0,     0,     0,     0,     0,     0,     0,  1448,     0,
     2425       0,  1450,     0,  1452,  1454,  1456,     0,     0,     0,     0,
     2426     509,   509,     8,     9,    10,    11,    12,    13,    14,    15,
    17812427      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    1782        0,     0,    26,    27,    28,     0,     0,   714,     0,     0,
    1783      744,    31,     0,     0,     0,     0,     0,     0,     0,     0,
    1784        0,     0,     0,     0,   211,   762,     0,     0,     0,     0,
    1785        0,     0,     0,     0,   413,     0,     0,     0,     0,    34,
    1786        0,    35,     0,    36,     0,     0,    38,    39,     0,     0,
    1787        0,     0,     0,     0,     0,     0,   368,   368,     0,     0,
    1788        0,     0,     0,   788,     0,   218,     0,     0,     0,     0,
    1789        0,     0,   798,     0,     0,     0,     0,     0,     0,   800,
    1790      320,     0,     0,     0,     0,   808,    -3,     0,   413,     0,
    1791      345,     0,     0,     0,   822,     0,   413,   580,     0,   413,
    1792      583,     0,   381,   381,     0,     0,     0,     0,     0,     0,
    1793      363,     0,  1011,     0,   612,     8,     9,    10,    11,    12,
     2428       0,   803,    26,    27,    28,     0,     0,     0,   341,   364,
     2429     414,    31,   414,  1486,     0,  1488,   414,  1229,     0,     0,
    17942430       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1795        0,     0,     0,   630,   862,     0,   340,     0,     0,     0,
    1796        0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
     2431       0,     0,  1499,     0,     0,     0,     0,   613,   613,    34,
     2432       0,     0,     0,     0,    37,     0,    38,    39,    40,     0,
     2433       0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    17972434       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1798        0,     0,     0,   413,     0,     0,     0,   413,     0,     0,
    1799      808,   285,    34,   320,     0,     0,   368,   286,   903,     0,
    1800        0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    1801        0,   292,   293,     0,     0,     0,     0,   477,   363,     0,
    1802        0,     0,     0,     0,     0,     0,     0,     0,     0,   251,
    1803        0,     0,     0,     0,   294,     0,   378,     0,     0,   940,
    1804      941,     0,   343,    46,   296,   297,   298,   299,     0,     0,
    1805        0,     0,   523,     0,   523,     0,     0,     0,     0,     0,
    1806        0,     0,     0,     0,   413,     0,     0,   363,     0,     0,
    1807        0,     0,   978,     0,     0,     0,     0,   982,     0,     0,
    1808        0,     0,     0,     0,     0,     0,     0,     0,   523,     0,
    1809      523,   211,     0,     0,     0,     0,     0,     0,     0,     0,
    1810        0,     0,     0,     0,     0,     0,   413,     0,     0,     0,
    1811      340,   363,     0,     0,     0,     0,     0,   165,     0,     0,
     2435       0,     0,   414,     0,     0,     0,     0,     0,     0,     0,
     2436       0,    43,     0,   157,     0,     0,     0,     0,     0,    45,
     2437      46,     0,     0,   414,  1143,     0,     0,     0,     0,     0,
     2438       0,     0,     0,     0,   364,     0,     0,     0,     0,     0,
     2439     414,  1155,     0,   613,   613,  1160,     0,     0,     0,     0,
     2440       0,     0,     0,     0,     0,   364,   364,     0,     0,     0,
     2441       0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
     2442       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2443      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2444      22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
     2445       0,     0,    30,   282,   283,    31,   284,     0,     0,     0,
     2446       0,     0,     0,     0,     0,   509,     0,     0,   414,     0,
     2447     414,     0,     0,     0,     0,   414,     0,     0,     0,     0,
     2448       0,   509,   285,    34,   613,    35,     0,    36,   286,     0,
     2449      38,    39,   287,     0,     0,   288,   289,   290,   291,    41,
     2450      42,     0,   292,   293,     0,     0,     0,   803,   414,  1243,
    18122451       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1813        0,     0,     0,   381,     0,     0,     0,     0,     0,     0,
    1814        0,  1016,     0,     0,     0,     0,     0,     0,  1017,     0,
    1815        0,     0,     0,     0,     0,   413,   413,     0,     0,     0,
    1816        0,  1019,     0,  1020,     0,     0,     0,     0,     0,     0,
    1817        0,     0,     0,     0,   802,   363,     0,  1032,     0,     0,
    1818        0,     0,     0,  1036,     0,   612,     0,   612,   612,     0,
    1819        0,     0,     0,     0,   612,  1074,     0,     0,  1075,     0,
    1820        0,     0,     0,     0,   841,   363,     0,     0,     0,     0,
    1821      363,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    1822      363,   363,     0,     0,     0,     0,     0,   708,     0,     0,
    1823        0,     0,     0,     0,     0,     0,     0,   363,     0,     0,
    1824        0,     0,   413,   883,     0,     0,   413,   886,     0,     0,
    1825        0,     0,     0,   888,     0,     0,     0,     0,     0,     0,
    1826        0,     0,     0,     0,     0,     0,   740,     0,     0,     0,
    1827        0,     0,   413,     0,     0,   589,     0,     0,     0,   757,
    1828        0,     0,     0,     0,   740,     0,     0,   740,     0,     0,
    1829        0,     0,     0,     0,     0,   363,   612,     0,     0,   766,
    1830        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1831     1145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1832        0,   787,     0,     0,     0,     0,     0,     0,     0,   340,
    1833      363,   796,     0,     0,   413,   413,     0,     0,   345,     0,
    1834        0,     0,     0,   757,     0,     0,     0,     0,     0,     0,
    1835        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    1836       18,    19,    20,    21,    22,    23,    24,    25,   525,     0,
    1837       26,    27,    28,     0,  1210,     0,     0,     0,   413,    31,
    1838        0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
    1839        0,     0,   861,   802,   363,     0,     0,   612,     0,   612,
    1840      381,     0,     0,     0,     0,     0,     0,    34,  1222,   612,
    1841        0,     0,    37,  1224,    38,    39,    40,     0,     0,     0,
    1842        0,  1228,     0,    41,    42,     0,     8,     9,    10,    11,
    1843       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    1844       22,    23,    24,    25,  -291,     0,     0,     0,     0,    43,
    1845        0,   157,     0,     0,  1254,    31,     0,    45,    46,     0,
    1846        0,     0,     0,     0,     0,     0,  1262,     0,     0,  1263,
    1847        0,  1264,     0,     0,     0,     0,     0,     0,     0,     0,
    1848        0,   802,     0,    34,     0,  1273,  1274,     0,   340,   363,
    1849      413,     0,   413,     0,  -291,     0,   413,     0,   757,     0,
    1850      962,     0,     0,     0,     0,     0,     0,  1287,     0,     0,
    1851      973,     0,     0,     0,     0,     0,   981,   612,   612,     0,
    1852        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    1853       18,    19,    20,    21,    22,    23,    24,    25,  1161,     0,
    1854        0,     8,     9,    10,    11,    12,     0,     0,     0,    31,
    1855        0,     0,   413,     0,  1326,     0,     0,     0,   999,  1000,
    1856        0,     0,   345,     0,     0,     0,     0,     0,   282,   283,
    1857       31,   284,     0,   413,  1142,     0,   345,    34,     0,     0,
    1858        0,     0,     0,     0,   363,     0,     0,     0,     0,     0,
    1859      413,  1154,     0,   612,   612,  1159,     0,   285,    34,     0,
    1860        0,     0,     0,   286,     0,   363,   363,   287,     0,     0,
    1861      288,   289,   290,   291,    41,    42,  1030,   292,   293,     0,
    1862      381,     0,     0,     0,     0,     0,     0,     0,     0,  1376,
    1863        0,  1377,     0,     0,     0,     0,     0,     0,     0,     0,
    1864      294,     0,   378,  1385,     0,  1386,     0,     0,  1162,    46,
    1865      296,   297,   298,   299,     0,     0,     0,   345,     0,     0,
    1866        0,     0,  1393,     0,     0,     0,     0,     0,   413,     0,
    1867      413,     0,     0,     0,     0,   413,     0,     0,  1411,  1413,
    1868        0,     0,     0,     0,   612,     0,     0,     0,     0,  1418,
    1869        0,     0,  1228,     0,     0,     0,   320,     0,     0,     0,
    1870        0,     0,     0,     0,     0,     0,     0,   802,   413,  1242,
    1871        0,     0,     0,  1440,     0,   282,   283,     0,   284,     0,
    1872        0,     0,  1447,     0,   381,  1449,     0,  1451,  1453,  1455,
    1873      973,   363,     0,     0,   740,     0,     0,     0,     0,     0,
    1874        0,     0,     0,     0,   285,     0,     0,     0,     0,     0,
    1875      286,     0,     0,     0,   287,  1149,     0,   288,   289,   290,
    1876      291,    41,    42,     0,   292,   293,  1164,  1485,     0,  1487,
    1877        0,  1228,     0,     0,     0,     0,     0,     0,     0,     0,
    1878        0,     0,     0,     0,     0,     0,  1498,   294,   381,   378,
    1879     1182,     0,   340,     0,   756,    45,    46,   296,   297,   298,
    1880      299,     0,     0,     0,     0,   973,   973,     0,     0,     0,
    1881      363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1882        0,     0,     0,     0,     0,     0,  1214,     0,     0,     0,
    1883        0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
    1884        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    1885       17,    18,    19,    20,    21,    22,    23,    24,    25,   363,
    1886      363,    26,    27,    28,    29,     0,     0,    30,     0,     0,
    1887       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1888        0,   973,     0,     0,     0,     0,     0,     0,     0,     0,
    1889        0,     0,     0,     0,     0,     0,     0,     0,    34,   861,
    1890       35,     0,    36,     0,     0,    38,    39,     0,     0,     0,
    1891        0,     0,     0,     0,  1265,  1266,     0,     1,     2,   206,
    1892        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    1893       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    1894       24,    25,    44,     0,    26,    27,    28,    29,    45,    46,
    1895       30,   282,   283,    31,  1039,  1040,     0,  1041,     0,     0,
    1896     1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,     0,     0,
    1897        0,  1050,     0,     0,     0,  1051,  1052,     0,    33,   363,
    1898      285,    34,     0,    35,     0,    36,  1053,     0,    38,    39,
     2452       0,   282,   283,     0,   284,   294,     0,  1055,     0,     0,
     2453       0,   364,     0,    45,    46,   296,   297,   298,   299,     0,
     2454       0,     0,     0,     0,     0,     0,     0,     0,  -127,     0,
     2455     285,   509,   509,     0,     0,     0,   640,     0,   139,   140,
    18992456     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    19002457     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    19012458       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1902        0,     0,     0,   294,     0,  1054,     0,     0,   171,     0,
     2459       0,     0,   341,   294,     0,   641,     0,   642,   380,     0,
    19032460       0,    45,    46,   296,   297,   298,   299,     0,     0,     0,
    1904        0,  1055,     0,     0,     0,     0,  -126,     0,     0,     0,
    1905        0,     0,     0,     0,     0,  1370,     0,     0,   740,     0,
    1906        0,     0,     0,     0,     0,     0,   413,     0,     0,     0,
    1907        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1908        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1909      413,   413,     0,     0,     0,     0,     0,     0,     0,     0,
    1910        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1911        0,     0,     0,     0,     0,   413,     1,     2,   206,     4,
    1912        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    1913       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    1914       25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
    1915      282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
    1916       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    1917       24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
    1918       34,     0,    35,    31,    36,   286,     0,    38,    39,   287,
    1919        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    1920      293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1921        0,    34,     0,     0,     0,     0,    37,     0,    38,    39,
    1922       40,     0,   294,     0,  1054,     0,     0,    41,    42,     0,
    1923       45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
    1924        0,     0,     0,     0,     0,  -126,     0,     0,     0,     0,
    1925        0,     0,     0,    43,     0,    44,     0,     0,     0,     0,
    1926        0,    45,    46,     0,     0,     0,     0,     0,   320,     1,
    1927        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    1928       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    1929       22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
    1930        0,     0,    30,   282,   283,    31,   284,     8,     9,    10,
    1931       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    1932       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    1933        0,     0,   285,    34,     0,    35,    31,    36,   286,     0,
    1934       38,    39,   287,     0,     0,   288,   289,   290,   291,    41,
    1935       42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    1936        0,     0,     0,     0,    34,     0,     0,     0,     0,   110,
    1937        0,    38,    39,     0,     0,   294,     0,    44,     0,     0,
    1938       41,    42,     0,    45,    46,   296,   297,   298,   299,     2,
     2461     364,     0,     0,     0,     0,     0,     0,     0,     1,     2,
    19392462     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    19402463      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    1941       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    1942        0,     0,   282,   283,    31,   284,     0,     0,     0,     8,
    1943        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    1944       19,    20,    21,    22,    23,    24,    25,  -292,     0,     0,
    1945        0,   285,    34,     0,    35,     0,    36,   286,    31,    38,
     2464      23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
     2465       0,    30,   282,   283,    31,  1040,  1041,     0,  1042,   364,
     2466     364,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,     0,
     2467       0,     0,  1051,     0,     0,     0,  1052,  1053,     0,    33,
     2468       0,   285,    34,     0,    35,     0,    36,  1054,     0,    38,
    19462469      39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    19472470       0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    1948        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
    1949        0,     0,     0,     0,   294,     0,   342,  -292,     0,     0,
    1950        0,   756,   343,    46,   296,   297,   298,   299,     2,   206,
    1951        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    1952       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    1953       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    1954        0,   282,   283,    31,   284,     8,     9,    10,    11,    12,
    1955       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    1956       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    1957      285,    34,     0,    35,    31,    36,   286,     0,    38,    39,
    1958      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    1959      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    1960        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    1961       39,     0,     0,   294,     0,   961,     0,     0,     0,     0,
    1962      756,   343,    46,   296,   297,   298,   299,     2,   206,     4,
    1963        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    1964       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    1965       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    1966      282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
    1967       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    1968       24,    25,     0,     0,    26,    27,    28,     0,     0,   285,
    1969       34,     0,    35,    31,    36,   286,     0,    38,    39,   287,
    1970        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    1971      293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1972        0,    34,     0,     0,     0,     0,     0,     0,   207,    39,
    1973        0,     0,   294,     0,   961,     0,     0,     0,     0,   756,
    1974       45,    46,   296,   297,   298,   299,     2,   206,     4,     5,
     2471       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2472       0,     0,     0,     0,   294,     0,  1055,     0,     0,   171,
     2473       0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2474       0,     0,  1056,     0,     0,     0,     0,  -127,     0,     0,
     2475       0,     0,     0,     1,     2,   206,     4,     5,     6,     7,
     2476       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2477      18,    19,    20,    21,    22,    23,    24,    25,     0,   364,
     2478      26,    27,    28,    29,     0,     0,    30,   282,   283,    31,
     2479     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2480      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2481       0,    26,    27,    28,     0,     0,   285,    34,     0,    35,
     2482      31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
     2483     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2484       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2485       0,     0,     0,   110,     0,    38,    39,     0,     0,   294,
     2486       0,    44,     0,     0,    41,    42,   414,    45,    46,   296,
     2487     297,   298,   299,     0,     0,     0,     0,     0,     0,     0,
     2488       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2489     414,   414,    44,     0,     0,     0,     0,     0,    45,    46,
     2490       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2491       0,     0,     0,     0,     0,   414,     2,   206,     4,     5,
    19752492       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    19762493      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    19772494       0,     0,    26,    27,    28,     0,     0,     0,     0,   282,
    1978      283,    31,   284,     0,     0,     0,     0,     0,     0,     0,
    1979        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1980        0,     0,     0,     0,     0,     0,     0,     0,   285,    34,
    1981        0,    35,     0,    36,   286,     0,    38,    39,   287,     0,
     2495     283,    31,   284,     8,     9,    10,    11,    12,    13,    14,
     2496      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2497      25,     0,     0,    26,    27,    28,     0,     0,   285,    34,
     2498       0,    35,    31,    36,   286,     0,    38,    39,   287,     0,
    19822499       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    19832500       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1984        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1985        0,   294,     0,   342,     0,     0,     0,     0,     0,   343,
     2501      34,     0,     0,     0,     0,   110,     0,    38,    39,     0,
     2502       0,   294,     0,   343,     0,     0,    41,    42,   757,   344,
    19862503      46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
    19872504       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    19882505      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    19892506       0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
    1990       31,   284,     0,     0,     0,     0,     0,     0,     0,     0,
    1991        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1992        0,     0,     0,     0,     0,     0,     0,   285,    34,     0,
    1993       35,     0,    36,   286,     0,   207,    39,   287,     0,     0,
     2507      31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
     2508      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2509       0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
     2510      35,    31,    36,   286,     0,    38,    39,   287,     0,     0,
    19942511     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    1995        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1996        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1997      294,     0,   996,     0,     0,     0,     0,     0,   997,    46,
     2512       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2513       0,     0,     0,     0,     0,     0,    38,    39,     0,     0,
     2514     294,     0,   962,     0,     0,     0,     0,   757,   344,    46,
    19982515     296,   297,   298,   299,     2,   206,     4,     5,     6,     7,
    19992516       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    20002517      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    20012518      26,    27,    28,     0,     0,     0,     0,   282,   283,    31,
    2002      284,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2003        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2004        0,     0,     0,     0,     0,     0,   285,    34,     0,    35,
    2005        0,    36,   286,     0,    38,    39,   287,     0,     0,   288,
     2519     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2520      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2521       0,    26,    27,    28,     0,     0,   285,    34,     0,    35,
     2522      31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
    20062523     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2007        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2008        0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2009        0,   961,     0,     0,     0,     0,     0,   343,    46,   296,
     2524       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2525       0,     0,     0,     0,     0,   207,    39,     0,     0,   294,
     2526       0,   962,     0,     0,     0,     0,   757,    45,    46,   296,
    20102527     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
    20112528       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     
    20152532       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    20162533       0,     0,     0,     0,     0,   285,    34,     0,    35,     0,
    2017       36,   286,     0,   207,    39,   287,     0,     0,   288,   289,
     2534      36,   286,     0,    38,    39,   287,     0,     0,   288,   289,
    20182535     290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
    20192536       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    20202537       0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2021      378,     0,     0,     0,     0,     0,    45,    46,   296,   297,
    2022      298,   299,  -514,     0,     0,     1,     2,     3,     4,     5,
     2538     343,     0,     0,     0,     0,     0,   344,    46,   296,   297,
     2539     298,   299,     2,   206,     4,     5,     6,     7,     8,     9,
     2540      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2541      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2542      28,     0,     0,     0,     0,   282,   283,    31,   284,     0,
     2543       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2544       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2545       0,     0,     0,     0,   285,    34,     0,    35,     0,    36,
     2546     286,     0,   207,    39,   287,     0,     0,   288,   289,   290,
     2547     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
     2548       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2549       0,     0,     0,     0,     0,     0,     0,   294,     0,   997,
     2550       0,     0,     0,     0,     0,   998,    46,   296,   297,   298,
     2551     299,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2552      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2553      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2554       0,     0,     0,     0,   282,   283,    31,   284,     0,     0,
     2555       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2556       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2557       0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
     2558       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
     2559      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2560       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2561       0,     0,     0,     0,     0,     0,   294,     0,   962,     0,
     2562       0,     0,     0,     0,   344,    46,   296,   297,   298,   299,
     2563       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2564      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2565      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2566       0,     0,     0,   282,   283,    31,   284,     0,     0,     0,
     2567       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2568       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2569       0,     0,   285,    34,     0,    35,     0,    36,   286,     0,
     2570     207,    39,   287,     0,     0,   288,   289,   290,   291,    41,
     2571      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
     2572       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2573       0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
     2574       0,     0,     0,    45,    46,   296,   297,   298,   299,  -515,
     2575       0,     0,     1,     2,     3,     4,     5,     6,     7,     8,
     2576       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2577      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2578      27,    28,    29,     0,     0,    30,     0,     0,    31,    32,
     2579       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2580       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2581       0,     0,     0,    33,     0,     0,    34,     0,    35,     0,
     2582      36,    37,     0,    38,    39,    40,     0,     0,     0,     0,
     2583       0,     0,    41,    42,     0,     0,     0,     0,     0,     0,
     2584       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2585       0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
     2586      44,     0,     0,     0,     0,     0,    45,    46,     1,     2,
     2587       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2588      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2589      23,    24,    25,     0,     0,    26,    27,    28,    29,     0,
     2590       0,    30,     0,     0,    31,    32,     0,     0,     0,     0,
     2591       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2592       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2593       0,     0,    34,     0,    35,     0,    36,    37,     0,    38,
     2594      39,    40,     0,     0,     0,     0,     0,     0,    41,    42,
     2595       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2596       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2597       0,     0,     0,     0,    43,     0,    44,     0,     0,     0,
     2598    -519,     0,    45,    46,     1,     2,     3,     4,     5,     6,
     2599       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2600      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2601       0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
     2602      31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
     2603       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2604       0,     0,     0,     0,     0,    33,     0,     0,    34,     0,
     2605      35,     0,    36,    37,     0,    38,    39,    40,     0,     0,
     2606       0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
     2607       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2608       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2609      43,     0,    44,     0,     0,     0,     0,     0,    45,    46,
     2610     205,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2611      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2612      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2613       0,     0,     0,     0,     0,     0,    31,     0,     8,     9,
     2614      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2615      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2616      28,   485,   486,   487,    34,     0,    35,    31,    36,    37,
     2617       0,   207,    39,    40,     0,     0,     0,     0,     0,     0,
     2618      41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
     2619       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2620       0,     0,    38,    39,     0,     0,    43,     0,   208,     0,
     2621       0,     0,     0,     0,    45,    46,     1,     2,   206,     4,
     2622       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2623      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2624      25,  -292,     0,    26,    27,    28,    29,     0,     0,    30,
     2625       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2626       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2627       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2628      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
     2629       0,  -292,     1,     2,   206,     4,     5,     6,     7,     8,
     2630       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2631      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2632      27,    28,    29,     0,    44,    30,     0,     0,    31,     0,
     2633      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2634       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2635       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2636      36,     0,     0,    38,    39,   205,     2,   206,     4,     5,
    20232637       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    20242638      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2025        0,     0,    26,    27,    28,    29,     0,     0,    30,     0,
    2026        0,    31,    32,     0,     0,     0,     0,     0,     0,     0,
     2639       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2640      44,    31,     0,     0,     0,     0,    45,    46,     0,     0,
    20272641       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2028        0,     0,     0,     0,     0,     0,    33,     0,     0,    34,
    2029        0,    35,     0,    36,    37,     0,    38,    39,    40,     0,
    2030        0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    2031        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2032        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2033        0,    43,     0,    44,     0,     0,     0,     0,     0,    45,
    2034       46,     1,     2,     3,     4,     5,     6,     7,     8,     9,
    2035       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2036       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2037       28,    29,     0,     0,    30,     0,     0,    31,    32,     0,
    2038        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2039        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2040        0,     0,    33,     0,     0,    34,     0,    35,     0,    36,
    2041       37,     0,    38,    39,    40,     0,     0,     0,     0,     0,
    2042        0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2043        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2044        0,     0,     0,     0,     0,     0,     0,    43,     0,    44,
    2045        0,     0,     0,     0,     0,    45,    46,   205,     2,   206,
    2046        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2047       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2048       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2049        0,     0,     0,    31,     0,     8,     9,    10,    11,    12,
    2050       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2051       23,    24,    25,     0,     0,    26,    27,    28,   484,   485,
    2052      486,    34,     0,    35,    31,    36,    37,     0,   207,    39,
    2053       40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    2054        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2055        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2056       39,     0,     0,    43,     0,   208,     0,     0,     0,     0,
    2057        0,    45,    46,     1,     2,   206,     4,     5,     6,     7,
    2058        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2059       18,    19,    20,    21,    22,    23,    24,    25,  -291,     0,
    2060       26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
    2061        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2062        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2063        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2064        0,    36,     0,     0,    38,    39,     0,     0,  -291,     2,
     2642       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2643       0,    35,     0,    36,     0,     0,   207,    39,     0,     2,
    20652644     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    20662645      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    20672646      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2068        0,    44,     0,     0,    31,     0,     0,    45,    46,     0,
    2069        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2647       0,     0,     0,   208,    31,     0,     0,     0,     0,    45,
     2648      46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    20702649       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    20712650       0,     0,    34,     0,    35,     0,    36,    37,     0,   207,
     
    20852664      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    20862665      25,    34,     0,    26,    27,    28,     0,     0,    38,    39,
    2087     -398,   676,    31,     0,     0,     0,     0,    45,    46,     0,
     2666    -399,   677,    31,     0,     0,     0,     0,    45,    46,     0,
    20882667       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    20892668       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2090       34,     0,    35,   633,    36,   337,     0,    38,    39,     0,
     2669      34,     0,    35,     0,    36,   157,     0,    38,    39,     0,
    20912670       0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
    2092        0,     0,     0,     0,     0,     0,     0,     0,     0,  1349,
     2671       0,     0,     0,     0,     0,     0,     0,     0,     0,  1350,
    20932672       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2094        0,     0,     0,     0,   676,     0,     0,     0,     0,     0,
     2673       0,     0,     0,     0,   677,     0,     0,     0,     0,     0,
    20952674      45,    46,     2,   206,     4,     5,     6,     7,     8,     9,
    20962675      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    21002679      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    21012680       0,    26,    27,    28,     0,    34,     0,    35,     0,    36,
    2102       31,   683,    38,    39,     0,     0,     0,     0,     0,     0,
     2681      31,   684,    38,    39,     0,     0,     0,     0,     0,     0,
    21032682       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2104        0,     0,     0,     0,  1351,     0,     0,     0,    34,     0,
    2105        0,     0,     0,     0,     0,    38,    39,     0,     0,   676,
     2683       0,     0,     0,     0,  1352,     0,     0,     0,    34,     0,
     2684       0,     0,     0,     0,     0,    38,    39,     0,     0,   677,
    21062685       0,     0,     0,     0,     0,    45,    46,     2,   206,     4,
    21072686       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    21082687      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2109       25,     0,   684,    26,    27,    28,   685,     0,    45,    46,
     2688      25,     0,   685,    26,    27,    28,  1091,     0,    45,    46,
    21102689       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    21112690       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    21222701       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    21232702      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2124       27,    28,     0,     0,     0,     0,     0,   676,    31,     0,
     2703      27,    28,     0,     0,     0,     0,     0,   677,    31,     0,
    21252704       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    21262705       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    21302709      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    21312710       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2132      591,    31,     0,     0,     0,     0,    45,    46,     0,     0,
     2711     592,    31,     0,     0,     0,     0,    45,    46,     0,     0,
    21332712       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    21342713       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     
    21432722     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    21442723       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2145        0,     0,     0,     0,     0,     0,     0,   294,     0,   516,
     2724       0,     0,     0,     0,     0,     0,     0,   294,     0,   517,
    21462725       0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
    21472726     299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     
    21512730      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    21522731       0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
    2153        0,    31,     0,   286,     0,    38,    39,   287,     0,     0,
     2732       0,    31,   684,   286,     0,    38,    39,   287,     0,     0,
    21542733     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    21552734       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2156        0,     0,     0,     0,    37,     0,   335,   336,    40,     0,
    2157      294,   -35,   295,     0,     0,    41,    42,     0,    45,    46,
     2735       0,     0,     0,     0,     0,     0,    38,    39,     0,     0,
     2736     294,   -36,   295,     0,     0,     0,     0,     0,    45,    46,
    21582737     296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
    21592738      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2160       24,    25,     0,   337,    26,    27,    28,     0,     0,    45,
     2739      24,    25,     0,   685,    26,    27,    28,  1220,     0,    45,
    21612740      46,   282,   283,    31,   284,     8,     9,    10,    11,    12,
    21622741      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    21652744     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    21662745     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2167        0,     0,    34,     0,     0,     0,     0,   110,     0,    38,
    2168       39,     0,     0,   294,     0,   295,     0,     0,    41,    42,
     2746       0,     0,    34,     0,     0,     0,     0,     0,     0,   207,
     2747      39,     0,     0,   294,     0,   295,     0,     0,     0,     0,
    21692748       0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
    21702749      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2171       21,    22,    23,    24,    25,     0,    44,    26,    27,    28,
     2750      21,    22,    23,    24,    25,     0,   270,    26,    27,    28,
    21722751       0,     0,    45,    46,   282,   283,    31,   284,     8,     9,
    21732752      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    21742753      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2175       28,     0,     0,   285,    34,     0,     0,    31,   683,   286,
     2754      28,     0,     0,   285,    34,     0,     0,    31,     0,   286,
    21762755       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    21772756      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     
    21802759       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
    21812760       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2182       18,    19,    20,    21,    22,    23,    24,    25,     0,   684,
    2183       26,    27,    28,  1090,     0,    45,    46,   282,   283,    31,
     2761      18,    19,    20,    21,    22,    23,    24,    25,     0,   338,
     2762      26,    27,    28,     0,     0,    45,    46,   282,   283,    31,
    21842763     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    21852764      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    21862765       0,    26,    27,    28,     0,     0,   285,    34,     0,     0,
    2187       31,   683,   286,     0,    38,    39,   287,     0,     0,   288,
     2766      31,     0,   286,     0,    38,    39,   287,     0,     0,   288,
    21882767     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    21892768       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    21902769       0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
    2191        0,   591,     0,     0,     0,     0,     0,    45,    46,   296,
     2770       0,   592,     0,     0,     0,     0,     0,    45,    46,   296,
    21922771     297,   298,   299,     8,     9,    10,    11,    12,    13,    14,
    21932772      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2194       25,     0,   684,    26,    27,    28,  1219,     0,    45,    46,
    2195      282,   283,    31,   284,     0,     8,     9,    10,    11,    12,
    2196       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2197       23,    24,    25,  -291,     0,    26,    27,    28,     0,   285,
    2198       34,     0,     0,     0,    31,   286,     0,    38,    39,   287,
    2199        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2773      25,     0,   685,    26,    27,    28,     0,     0,    45,    46,
     2774     282,   283,    31,   284,     0,     0,     0,     0,     0,     0,
     2775       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2776      17,    18,    19,    20,    21,    22,    23,    24,    25,   285,
     2777      34,    26,    27,    28,     0,   286,     0,    38,    39,   287,
     2778      31,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    22002779     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2201        0,     0,    34,     0,     0,     0,     0,    37,     0,   335,
    2202      336,    40,   294,  -291,   378,     0,     0,     0,    41,    42,
    2203       45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
    2204        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2205        0,     0,     0,     0,   633,     0,   337,     0,     0,     0,
    2206        0,     0,    45,    46,     8,     9,    10,    11,    12,    13,
     2780       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2781       0,     0,   294,     0,   379,    38,    39,     0,     0,     0,
     2782      45,    46,   296,   297,   298,   299,   467,     2,   206,     4,
     2783       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2784      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2785      25,     0,   592,    26,    27,    28,     0,     0,    45,    46,
     2786       0,     0,    31,     0,     0,     0,     8,     9,    10,    11,
     2787      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2788      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2789      34,     0,    35,     0,    36,    31,     0,    38,    39,     0,
     2790       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    22072791      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2208       24,    25,  -291,     0,    26,    27,    28,     0,     0,     0,
    2209        0,     0,     0,    31,     8,     9,    10,    11,    12,    13,
    2210       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2211       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2212        0,    34,     0,    31,     0,     0,    37,     0,   335,   336,
    2213       40,     0,  -291,     0,     0,     0,     0,    41,    42,     0,
    2214        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2215        0,    34,     0,     0,     0,     0,    37,     0,   207,    39,
    2216       40,     0,     0,     0,     0,   337,     0,    41,    42,     0,
    2217        0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
    2218        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2219        0,     0,     0,    43,     0,   270,     0,     0,     0,     0,
    2220        0,    45,    46,     8,     9,    10,    11,    12,    13,    14,
    2221       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2222       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2223        0,     0,    31,     8,     9,    10,    11,    12,    13,    14,
    2224       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2225       25,  -291,     0,    26,    27,    28,     0,     0,     0,     0,
    2226       34,     0,    31,     0,     0,    37,     0,   335,   336,    40,
    2227        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2228        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2229       34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
    2230        0,  -291,   633,     0,   337,     0,     0,     0,     0,     0,
    2231       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
    2232        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2233        0,     0,   633,     0,   337,     0,     0,     0,     0,     0,
    2234       45,    46,     8,     9,    10,    11,    12,    13,    14,    15,
     2792      24,    25,     0,    34,    26,    27,    28,     0,    37,     0,
     2793      38,    39,    40,    31,     0,     0,     0,    -3,     0,    41,
     2794      42,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    22352795      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2236     -291,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2237        0,    31,     8,     9,    10,    11,    12,    13,    14,    15,
    2238       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2239        0,     0,    26,    27,    28,     0,     0,     0,     0,    34,
    2240        0,    31,     0,     0,     0,     0,    38,    39,     0,     0,
    2241     -291,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2242       17,    18,    19,    20,    21,    22,    23,    24,    25,    34,
    2243        0,    26,    27,    28,     0,     0,    38,    39,     0,     0,
    2244       31,     0,     0,   337,     0,     0,     0,     0,     0,    45,
    2245       46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2246        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2247        0,     0,     0,   257,     0,    38,    39,     0,     0,    45,
     2796       0,    34,    26,    27,    28,    43,    37,    44,   207,    39,
     2797      40,    31,     0,    45,    46,     0,     0,    41,    42,     0,
     2798       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2799      18,    19,    20,    21,    22,    23,    24,    25,  -292,    34,
     2800      26,    27,    28,    43,    37,   270,   336,   337,    40,    31,
     2801       0,    45,    46,     0,     0,    41,    42,     0,     8,     9,
     2802      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2803      20,    21,    22,    23,    24,    25,  -292,    34,    26,    27,
     2804      28,   634,     0,   338,    38,    39,     0,    31,  -292,    45,
    22482805      46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    22492806      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2250        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2251       31,     0,   157,     0,     0,     0,     0,     0,    45,    46,
    2252        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2253       18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
    2254       26,    27,    28,     0,     0,   207,    39,     0,     0,    31,
    2255        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2256       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2257       26,    27,    28,     0,     0,     0,     0,    34,     0,    31,
    2258        0,     0,   270,     0,    38,    39,     0,     0,    45,    46,
     2807       0,    26,    27,    28,     0,    34,     0,     0,     0,   634,
     2808      31,   338,    38,    39,     0,     0,  -292,    45,    46,     0,
    22592809       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2260        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2261        0,     0,     0,     0,    38,    39,     0,     0,     0,     0,
    2262        0,   337,     0,     0,     0,     0,     0,    45,    46,     0,
    2263        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2264       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2265        0,   684,    26,    27,    28,     0,     0,    45,    46,     0,
    2266        0,    31,     8,     9,    10,    11,    12,    13,    14,    15,
    2267       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2268        0,     0,    26,    27,    28,     0,     0,     0,     0,    34,
    2269        0,    31,     0,     0,     0,     0,    38,    39,     0,     0,
    2270        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2271       18,    19,    20,    21,    22,    23,    24,    25,     0,    34,
    2272       26,    27,    28,     0,     0,     0,    38,    39,     0,    31,
    2273        0,     0,     0,   591,     0,     0,     0,     0,     0,    45,
    2274       46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2275        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2276        0,     0,     0,    44,   207,    39,     0,     0,     0,    45,
    2277       46,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    2278       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2279       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2280        0,     0,     0,     0,     0,     0,    31,    45,    46,     0,
     2810       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2811       0,     0,     0,     0,     0,    38,    39,     0,     0,   338,
     2812       0,     0,     0,     0,     0,    45,    46,     2,   206,     4,
     2813       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2814      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2815      25,     0,    44,    26,    27,    28,     0,     0,    45,    46,
     2816       0,     0,    31,     0,   282,   283,     0,   284,  1041,     0,
     2817    1042,     0,     0,  1043,  1044,  1045,  1046,  1047,  1048,  1049,
     2818    1050,     0,     0,     0,  1051,     0,     0,     0,  1052,  1053,
     2819      34,    33,    35,   285,    36,     0,     0,    38,    39,  1054,
     2820       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
     2821      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    22812822       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2823       0,     0,     0,  -412,     0,     0,   294,     0,   379,     0,
     2824       0,   171,     0,     0,    45,    46,   296,   297,   298,   299,
     2825       0,     0,     0,     0,  1056,     0,     0,     0,     0,  -127,
     2826       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2827      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2828      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2829       0,     0,     0,     0,     0,    31,     0,   282,   283,     0,
     2830     284,  1041,     0,  1042,  1398,  1399,  1043,  1044,  1045,  1046,
     2831    1047,  1048,  1049,  1050,     0,     0,  1524,  1051,     0,     0,
     2832       0,  1052,  1053,    34,    33,    35,   285,    36,     0,     0,
     2833      38,    39,  1054,     0,     0,     0,   287,     0,     0,   288,
     2834     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     2835       0,     0,  1311,     0,     0,     0,     0,     0,     0,     0,
     2836       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
     2837       0,   379,     0,     0,   171,     0,     0,    45,    46,   296,
     2838     297,   298,   299,     0,     0,   282,   283,  1056,   284,  1041,
     2839       0,  1042,  1398,  1399,  1043,  1044,  1045,  1046,  1047,  1048,
     2840    1049,  1050,     0,     0,     0,  1051,     0,     0,     0,  1052,
     2841    1053,     0,    33,     0,   285,     0,     0,     0,     0,     0,
     2842    1054,     0,     0,     0,   287,     0,     0,   288,   289,   290,
     2843     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    22822844       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2283        0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
    2284        0,    38,    39,   282,   283,     0,   284,  1040,     0,  1041,
    2285        0,     0,  1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,
    2286        0,     0,  1523,  1050,     0,     0,     0,  1051,  1052,     0,
    2287       33,     0,   285,     0,     0,     0,     0,  -411,  1053,     0,
     2845       0,     0,     0,     0,     0,     0,     0,   294,     0,   379,
     2846       0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
     2847     299,     0,     0,   282,   283,  1056,   284,  1041,     0,  1042,
     2848       0,     0,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,
     2849       0,     0,     0,  1051,     0,     0,     0,  1052,  1053,     0,
     2850      33,     0,   285,     0,     0,     0,     0,     0,  1054,     0,
    22882851       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    22892852      42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    2290        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2291        0,     0,     0,     0,     0,   294,     0,   378,     0,     0,
    2292      171,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    2293        0,   282,   283,  1055,   284,  1040,     0,  1041,  -126,     0,
    2294     1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,     0,     0,
    2295        0,  1050,     0,     0,     0,  1051,  1052,     0,    33,     0,
    2296      285,     0,     0,     0,     0,     0,  1053,     0,     0,     0,
    2297      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2298      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2299        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2300        0,     0,     0,   294,     0,   378,     0,     0,   171,     0,
    2301        0,    45,    46,   296,   297,   298,   299,     0,     0,     0,
    2302        0,  1055,     0,     0,     0,     0,  -126,     2,   206,     4,
    2303        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2304       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2305       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2306        0,     0,    31,     0,   282,   283,     0,   284,  1040,     0,
    2307     1041,  1397,  1398,  1042,  1043,  1044,  1045,  1046,  1047,  1048,
    2308     1049,     0,     0,  1523,  1050,     0,     0,     0,  1051,  1052,
    2309       34,    33,    35,   285,    36,     0,     0,    38,    39,  1053,
    2310        0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    2311       41,    42,     0,   292,   293,     0,     0,     0,     0,  1310,
    2312        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2313        0,     0,     0,     0,     0,     0,   294,     0,   378,     0,
    2314        0,   171,     0,     0,    45,    46,   296,   297,   298,   299,
    2315        0,     0,   282,   283,  1055,   284,  1040,     0,  1041,  1397,
    2316     1398,  1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,     0,
    2317        0,     0,  1050,     0,     0,     0,  1051,  1052,     0,    33,
    2318        0,   285,     0,     0,     0,     0,     0,  1053,     0,     0,
    2319        0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2320        0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    2321        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2322        0,     0,     0,     0,   294,     0,   378,     0,     0,   171,
    2323        0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
    2324      282,   283,  1055,   284,  1040,     0,  1041,     0,     0,  1042,
    2325     1043,  1044,  1045,  1046,  1047,  1048,  1049,     0,     0,     0,
    2326     1050,     0,     0,     0,  1051,  1052,     0,    33,     0,   285,
    2327        0,     0,     0,     0,     0,  1053,     0,     0,     0,   287,
     2853     282,   283,     0,   284,     0,     0,     0,     0,     0,     0,
     2854       0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
     2855     171,     0,     0,    45,    46,   296,   297,   298,   299,   285,
     2856       0,     0,     0,  1056,     0,   286,     0,     0,     0,   287,
    23282857       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    23292858     293,     0,     0,     0,     0,     0,     0,   282,   283,     0,
    23302859     284,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2331        0,     0,   294,     0,   378,     0,     0,   171,     0,     0,
     2860       0,     0,   294,     0,   379,     0,     0,     0,     0,   757,
    23322861      45,    46,   296,   297,   298,   299,   285,     0,     0,     0,
    2333     1055,     0,   286,     0,     0,     0,   287,     0,     0,   288,
     2862       0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
    23342863     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    23352864       0,     0,     0,     0,   282,   283,     0,   284,     0,     0,
    23362865       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2337        0,   378,     0,     0,   970,     0,     0,    45,    46,   296,
     2866       0,   379,     0,     0,   971,     0,     0,    45,    46,   296,
    23382867     297,   298,   299,   285,     0,     0,     0,     0,     0,   286,
    23392868       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    23402869      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    23412870       0,   282,   283,     0,   284,     0,     0,     0,     0,     0,
    2342        0,     0,     0,     0,     0,     0,   294,     0,   378,     0,
     2871       0,     0,     0,     0,     0,     0,   294,     0,   379,     0,
    23432872     282,   283,     0,   284,    45,    46,   296,   297,   298,   299,
    23442873     285,     0,     0,     0,     0,     0,   286,     0,     0,     0,
     
    23462875     292,   293,     0,     0,     0,   286,     0,     0,     0,   287,
    23472876       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    2348      293,     0,     0,   294,     0,   378,     0,   282,   283,     0,
    2349      284,   707,    46,   296,   297,   298,   299,     0,     0,     0,
    2350        0,     0,   294,     0,   378,     0,   282,   283,     0,   284,
    2351      343,    46,   296,   297,   298,   299,   285,     0,     0,     0,
     2877     293,     0,     0,   294,     0,   379,     0,   282,   283,     0,
     2878     284,   708,    46,   296,   297,   298,   299,     0,     0,     0,
     2879       0,     0,   294,     0,   379,     0,     0,     0,     0,     0,
     2880     344,    46,   296,   297,   298,   299,   285,     0,     0,     0,
    23522881       0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
    2353      289,   290,   291,    41,    42,   285,   292,   293,     0,     0,
    2354        0,   286,     0,     0,     0,   287,     0,     0,   288,   289,
    2355      290,   291,    41,    42,     0,   292,   293,     0,     0,   294,
    2356        0,     0,     0,   282,   283,     0,   284,    45,    46,   296,
    2357      297,   298,   299,     0,     0,     0,     0,     0,   510,     0,
    2358        0,     0,     0,     0,     0,     0,    45,    46,   296,   297,
    2359      298,   299,   285,     0,     0,     0,     0,     0,   286,     0,
    2360        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2361       42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
     2882     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    23622883       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2363        0,     0,     0,     0,     0,   513,     0,     0,     0,     0,
    2364        0,     0,     0,    45,    46,   296,   297,   298,   299,     2,
    2365      206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2366       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2367       23,    24,    25,     0,     0,     0,     0,     0,     0,     0,
    2368        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
     2884       0,     0,     0,     0,     0,     0,     0,     0,     0,   514,
     2885       0,     0,     0,     0,     0,     0,     0,    45,    46,   296,
     2886     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
     2887       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2888      19,    20,    21,    22,    23,    24,    25,     0,     0,     0,
     2889       0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
    23692890       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23702891       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2371        0,     0,    34,     0,    35,     0,    36,    37,     0,   174,
    2372      175,    40,     0,     0,     0,     0,     0,     0,    41,    42,
    2373      205,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    2374       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2375       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2376        0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
     2892       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2893      36,    37,     0,   174,   175,    40,     0,     0,     0,     0,
     2894       0,     0,    41,    42,   205,     2,   206,     4,     5,     6,
     2895       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2896      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2897       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2898      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2899       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2900       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2901      35,     0,    36,     0,     0,   207,    39,   467,     2,   206,
     2902       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2903      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2904      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2905       0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
    23772906       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23782907       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2379        0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
    2380        0,   207,    39,   466,     2,   206,     4,     5,     6,     7,
    2381        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2382       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2383       26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
     2908       0,    34,     0,    35,     0,    36,     0,     0,    38,    39,
     2909       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2910      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2911      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2912       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
    23842913       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23852914       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2386        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2387        0,    36,     0,     0,    38,    39,     2,   206,     4,     5,
    2388        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2389       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2390        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2391        0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
    2392        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2393        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2394        0,    35,     0,    36,     0,     0,   207,    39
     2915       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2916     207,    39
    23952917};
     2918
     2919#define yypact_value_is_default(yystate) \
     2920  ((yystate) == (-1390))
     2921
     2922#define yytable_value_is_error(yytable_value) \
     2923  YYID (0)
    23962924
    23972925static const yytype_int16 yycheck[] =
    23982926{
    2399        0,     1,    43,    43,   185,   185,   204,     0,    43,     1,
    2400      185,   239,   105,   185,   520,   533,   116,   187,   748,     0,
    2401        1,   748,   185,   168,   169,   748,   732,   185,     0,     1,
    2402      512,   186,    32,   344,   645,   185,   219,  1020,   601,    32,
    2403      156,   602,   256,    43,   873,   873,    57,   608,   491,    49,
    2404        0,    32,   495,   755,   691,   348,    49,   619,    72,   601,
    2405       32,   489,   155,    63,   348,    32,    66,  1320,   599,    69,
    2406       63,   570,   982,    66,   599,    72,    69,    69,   281,    82,
    2407       43,  1397,    32,    72,   265,   265,   599,  1039,    69,    63,
    2408      265,   261,   262,   265,    66,   106,    43,    69,   109,   599,
    2409       43,   201,   265,   425,   426,   105,    82,   265,   599,   599,
    2410       51,   266,    39,   113,   599,   265,   116,   117,   132,    39,
    2411       39,     0,  1032,   417,   634,   635,    28,     0,   117,     0,
    2412     1019,  1020,   109,    39,   110,   132,   363,     0,  1051,  1052,
    2413      367,   651,   107,   437,   185,   185,   146,   147,    39,    82,
    2414      185,   445,  1468,    32,   147,   155,   156,   186,   132,    32,
    2415      160,    32,   114,    39,    39,  1418,   131,   160,   109,    32,
    2416      481,   493,    43,     1,   904,   603,    78,   904,    49,   607,
    2417      686,   904,   109,   228,   111,   185,   186,    44,    45,   109,
    2418      512,   111,    63,   186,   487,    66,   156,   130,    69,   709,
    2419      628,   201,   247,   417,   632,   111,    95,   218,    49,   209,
    2420     1039,    44,    45,   109,  1127,    82,   209,   717,   109,  1500,
    2421      111,   221,   185,   437,   265,   265,   409,   717,   221,    64,
    2422      265,   445,   717,   109,   109,   111,   111,   266,   185,   239,
    2423      129,  1224,   185,   694,   111,    55,  1527,   340,    82,   221,
    2424      405,   251,   813,   109,   110,   577,   109,   114,   251,   259,
    2425      823,   272,   899,   112,   264,   265,   266,   116,   279,   116,
    2426      251,   271,   113,   266,   109,   109,   147,   370,   131,   251,
    2427      811,   823,   115,   985,   251,   132,   811,    97,    11,   160,
    2428      800,  1274,    96,   792,   294,   395,     0,    82,   811,   112,
    2429      503,   251,  1401,    44,    45,   146,   306,   294,   619,    85,
    2430      109,   811,   923,   624,   185,   186,   432,   601,   122,    72,
    2431      811,   811,   322,   423,   479,   110,   811,   327,    32,   429,
    2432       83,    84,   110,  1471,   327,  1287,   347,   113,   209,  1477,
    2433      340,   111,  1048,   113,   344,   130,     3,    82,   348,   349,
    2434      221,   116,   130,   364,    72,   110,  1451,   368,   111,  1497,
    2435      130,   588,    66,   363,  1502,    83,    84,   367,   209,   932,
    2436      370,    96,   251,   114,   109,   130,   405,   256,   251,     3,
    2437      251,  1210,  1210,   193,  1273,  1274,   680,   109,   251,   111,
    2438     1485,   109,  1487,   256,   265,   395,  1495,   122,   239,   116,
    2439      931,  1500,    72,   630,   116,   405,   216,    90,    91,   525,
    2440     1393,   116,   405,    83,    84,   132,   226,   845,   931,   116,
    2441      132,  1520,     0,   423,   252,   425,   426,    49,  1527,   429,
    2442      271,   524,   432,   744,   128,   132,   998,   131,   425,   426,
    2443      931,   111,   125,   126,   119,   120,  1007,  1008,   116,   116,
    2444      479,   116,   131,   453,   905,   109,   327,    72,  1287,   111,
    2445      966,   113,   665,   130,   132,   306,   680,   132,    83,    84,
    2446      112,   471,   432,   589,   116,  1385,  1386,   348,   130,   479,
    2447      116,   481,   109,   483,   294,   655,   479,   487,  1440,     0,
    2448      483,   113,   706,   493,   130,  1447,   111,   940,   980,   950,
    2449      116,   646,   483,   344,  1393,   505,   116,   507,   109,   937,
    2450      510,   483,   512,   513,   130,  1126,    72,   221,   505,   109,
    2451      520,   481,   132,   510,   524,   525,   513,    83,    84,   109,
    2452      823,   686,   735,   483,   405,  1098,  1500,   109,   417,   823,
    2453        4,     5,     6,     7,     8,     9,  1498,   251,   116,    72,
    2454      110,    74,    75,   653,   417,   111,  1520,   116,   437,   109,
    2455       83,    84,   110,  1527,   132,   525,   445,   112,   116,   569,
    2456      570,   116,   112,   132,   437,   802,   116,   577,  1084,   566,
    2457      807,  1287,   445,  1089,   425,   426,   109,   209,   588,   589,
    2458      116,   114,   903,   593,   110,    88,    89,   116,   116,   599,
    2459      116,   601,   481,   110,   483,    69,   132,    71,   110,   620,
    2460      483,  1440,   483,   132,   132,   110,   487,   112,  1447,   619,
    2461      483,   116,   112,   112,   624,   636,   626,   116,   116,   589,
    2462      630,   116,   442,   633,   634,   635,   131,   132,   466,   650,
    2463       66,   110,  1114,   936,   132,   349,  1118,   132,    72,   271,
    2464      743,   651,   493,   653,   110,  1361,    82,   686,   468,    83,
    2465       84,   109,   110,   111,    72,  1116,    74,    75,   895,  1498,
    2466      110,   512,   294,    92,    93,    83,    84,   860,    10,    11,
    2467       12,    13,    14,   683,   306,   115,   686,   998,   110,   109,
    2468       57,   117,   808,   109,   116,   505,   110,   880,   694,   527,
    2469      510,   109,   116,   513,   532,   109,   114,    39,   109,   709,
    2470      710,   711,    64,   110,   942,   132,   589,   717,   718,   116,
    2471      731,   866,   109,   904,   904,  1176,  1177,   110,   599,   904,
    2472      601,   110,   904,   116,   160,    67,   577,   116,  1444,   106,
    2473     1446,   904,   109,   743,   744,   109,   904,   111,   748,   749,
    2474      110,   906,   132,   581,   904,    72,   116,    74,    75,   115,
    2475      116,    10,    11,    12,    13,    14,    83,    84,   472,   117,
    2476       85,    86,    87,   112,  1504,   123,   124,  1504,   619,   483,
    2477      109,  1504,   111,   624,   744,   110,  1304,   114,   155,   785,
    2478       39,   116,   792,  1499,   109,   221,   111,   114,   113,   114,
    2479      800,   680,   802,   109,   804,   111,   114,   807,   808,   902,
    2480      110,   811,   109,  1011,   111,   686,   116,   680,    67,   110,
    2481      117,   118,   110,   823,   652,   116,   654,   706,   116,   132,
    2482      109,   453,   111,   259,  1145,    85,    86,    87,   264,   132,
    2483      109,    72,   111,   706,   110,    76,   717,   718,   808,   110,
    2484      116,   218,    83,    84,   109,   116,   111,   114,   668,   109,
    2485      109,   111,   111,   113,   114,   744,   862,   677,   117,   118,
    2486       66,   681,   109,   873,   111,   110,   704,   906,   109,   109,
    2487      111,   116,    82,   505,   110,   507,   117,   118,   510,  1034,
    2488      116,   513,   873,   110,  1121,   895,     0,     1,   109,   116,
    2489      111,   873,   902,   903,   904,   272,   906,   112,   110,   905,
    2490      109,  1114,   279,  1224,   116,  1118,  1119,   621,   918,   110,
    2491      111,   117,   109,   349,    82,    29,    30,   110,    32,  1084,
    2492     1381,   931,   932,   116,  1089,   808,   936,    58,    59,    43,
    2493      811,   941,   942,   903,   118,    49,  1397,   127,   109,   941,
    2494      111,   128,   823,    57,   950,    94,   117,   118,   131,    63,
    2495      941,   909,    66,   911,   160,    69,   966,   111,   109,   941,
    2496      111,   109,   110,   111,  1480,   109,   117,   118,    82,    83,
    2497      347,   109,     4,     5,     6,     7,     8,     9,   112,   985,
    2498      109,   110,   111,   697,   873,   115,   116,   364,   998,   112,
    2499      873,   368,   106,   112,   430,   109,  1106,   711,    44,    45,
    2500      873,   110,   116,   505,   110,   507,  1467,  1468,   510,  1019,
    2501     1020,   513,   110,  1529,   903,   221,   109,   110,   111,     1,
    2502      110,  1234,   110,   904,   110,   906,  1247,  1248,  1249,  1039,
    2503     1036,   109,    72,   147,    74,    75,   472,    69,   112,    71,
    2504      111,   155,   114,    83,    84,  1084,   160,   116,  1039,  1019,
    2505     1089,   683,   131,   259,   431,   936,   114,  1039,   264,   114,
    2506        4,     5,     6,     7,     8,     9,   109,    49,   112,  1079,
    2507      112,   185,   186,   110,  1084,   551,   552,   897,   112,  1089,
    2508      553,   554,    72,   110,    74,    75,    76,   201,  1098,    33,
    2509      804,   942,   112,    83,    84,   209,  1106,    58,    59,    60,
    2510      132,   112,   130,  1206,   218,   559,   560,   221,  1321,    72,
    2511     1116,  1121,  1325,    76,   228,   130,   130,   116,   956,   109,
    2512       83,    84,    29,   105,   110,    69,   110,    71,   115,   243,
    2513      115,   113,   112,   247,   110,  1145,   114,   251,   252,   112,
    2514      978,   115,   109,   349,   982,   116,   109,   998,   110,   132,
    2515     1039,   265,   266,   110,   117,   118,  1039,   593,   272,   873,
    2516      555,   556,   557,   558,   146,   279,  1039,   116,   110,   110,
    2517     1176,  1177,   110,   155,   110,  1145,   116,  1187,  1188,   110,
    2518      110,   110,   110,   110,   110,   621,  1188,   110,   110,   110,
    2519      626,   110,  1189,  1190,  1032,  1192,  1206,  1188,   110,   110,
    2520     1210,   110,  1199,  1084,  1201,  1187,  1188,   115,  1089,  1422,
    2521       29,   588,   130,   327,  1224,   131,   110,   116,  1228,  1210,
    2522      112,   112,   110,   205,   430,   110,  1228,   209,  1210,    72,
    2523     1050,    74,    75,   347,   348,   110,   116,  1228,   116,   112,
    2524       83,    84,   114,   620,   130,   110,  1228,   110,   110,   116,
    2525      364,   112,   110,   110,   368,   110,  1145,   239,   109,   636,
    2526      116,   697,   116,  1273,  1274,   379,   472,  1377,   111,   109,
    2527      112,   109,  1282,   650,   109,   711,  1514,  1287,   109,   112,
    2528      130,   395,   873,   132,   110,   115,   918,  1001,   110,   271,
    2529      115,   405,   274,   110,   128,    72,  1287,    74,    75,    76,
    2530     1282,   115,   114,  1273,   112,  1287,    83,    84,   132,   423,
    2531     1320,   110,   294,  1504,  1504,   429,   112,   431,  1320,  1504,
    2532      112,  1210,  1504,   116,   306,  1039,   110,  1210,   110,  1320,
    2533      110,  1504,   109,   112,   112,  1224,  1504,  1210,  1320,    72,
    2534     1505,    74,    75,    76,  1504,   112,   110,   112,    47,   112,
    2535       83,    84,   466,   112,   731,  1376,   132,   471,   340,   132,
    2536     1357,   132,   344,   132,  1529,   479,   132,  1377,   804,   483,
    2537     1480,    30,   115,   487,   110,  1381,   490,   115,   492,   130,
    2538      110,   363,   110,  1393,   115,   367,   463,   593,   370,   112,
    2539       72,  1397,    74,    75,    76,   112,   112,   112,  1287,   112,
    2540      112,    83,    84,   284,  1287,   110,   112,   109,  1418,  1247,
    2541     1248,  1249,   112,   527,  1287,   621,  1418,   109,   532,   109,
    2542      626,    60,   110,    82,    83,   306,   307,  1418,   114,   110,
    2543     1440,   132,   112,   112,   110,   112,  1418,  1447,   110,  1449,
    2544       96,  1451,    96,   425,   426,   109,   109,  1079,   132,  1440,
    2545      115,  1042,   110,  1504,  1504,   110,  1447,   110,  1440,  1504,
    2546      110,  1467,  1468,   344,   116,  1447,  1505,   581,    42,   130,
    2547     1480,   453,   132,  1187,   588,  1485,  1296,  1487,   110,   110,
    2548       96,   132,    96,   132,   466,   599,   110,   601,  1498,   132,
    2549     1529,   697,   110,   110,  1504,  1505,  1210,   132,   110,   380,
    2550      115,   112,  1505,   112,  1514,   711,   620,  1498,   109,   491,
    2551      132,   493,   132,   495,   110,   115,  1498,   115,   895,  1529,
    2552      110,   110,   636,   505,   132,   507,  1529,   641,   510,   110,
    2553      512,   513,  1055,   562,   564,   561,   650,   976,   652,   653,
    2554      654,   563,   524,  1468,   565,  1210,    49,  1385,  1386,  1539,
    2555     1363,  1440,  1119,  1297,  1325,  1447,  1070,  1440,  1447,   683,
    2556       63,    66,   683,    66,  1447,  1001,    69,  1440,  1282,  1089,
    2557       75,   911,   686,  1287,  1447,   919,   690,   581,   692,   696,
    2558      866,   647,   696,   970,   243,  1423,   721,   938,  1228,   731,
    2559      704,    -1,   669,   483,   569,   577,    -1,   569,   804,   569,
    2560       -1,    -1,    -1,   717,   718,    70,   588,    -1,    73,  1498,
    2561       -1,    76,   117,    78,    -1,  1498,    -1,   731,    -1,  1210,
    2562       85,    -1,    -1,  1504,     3,  1498,    -1,    -1,  1448,    -1,
    2563     1450,    10,    11,    12,    13,    14,    -1,   619,    -1,    -1,
    2564       -1,    -1,   624,  1481,   147,    -1,    -1,    72,   630,    74,
    2565       75,    76,  1490,    -1,    -1,   160,    -1,   160,    83,    84,
    2566       39,    -1,    -1,  1514,  1484,   189,  1486,   548,   549,   550,
    2567       -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2568       -1,    -1,    -1,   186,   109,    -1,   111,    -1,    67,    -1,
    2569       -1,    -1,   117,   118,    -1,    -1,    -1,   811,    -1,    -1,
    2570       -1,   683,    -1,    72,    -1,   130,   209,    76,  1528,   823,
    2571     1530,   788,  1303,    -1,    83,    84,   221,    -1,   221,    -1,
    2572      379,   798,    -1,  1543,  1544,    72,  1440,    74,    75,    76,
    2573       -1,    -1,   669,  1447,    -1,   812,    83,    84,    -1,   721,
    2574      109,    -1,    -1,    -1,   268,    -1,    -1,   212,   117,   118,
    2575       -1,  1187,   866,    -1,   259,    -1,    -1,    -1,   872,   264,
    2576       -1,   743,   109,    -1,  1355,    -1,    -1,  1358,     3,    -1,
    2577      117,   118,    -1,    -1,   279,    10,    11,    12,    13,    14,
    2578       -1,   895,    -1,   282,  1498,   284,   285,    -1,    -1,    -1,
    2579      904,    -1,   906,   292,   293,  1001,    -1,    -1,   322,   913,
    2580       -1,    -1,    -1,    -1,    39,    -1,   330,   306,   307,   333,
    2581     1401,    -1,    -1,    -1,   279,  1406,    -1,  1449,    -1,  1451,
    2582      802,    -1,   936,    -1,   327,   807,    -1,    -1,    -1,  1206,
    2583      463,   490,    67,   492,    -1,    -1,    -1,    -1,     0,     1,
    2584       -1,    -1,   956,  1434,   349,   344,  1282,    -1,    -1,    -1,
    2585       -1,   788,    -1,  1485,    -1,  1487,   970,    -1,    -1,    -1,
    2586       -1,   798,    -1,    -1,   978,    -1,    -1,    -1,   982,    -1,
    2587       32,    -1,    -1,   397,   755,   812,    -1,   401,    -1,    -1,
    2588       -1,   380,    -1,    -1,    -1,     3,   351,    49,   353,    -1,
    2589       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    2590       -1,    -1,   405,    -1,    -1,    -1,    -1,    69,    -1,    -1,
    2591       -1,    -1,    -1,   895,    -1,    -1,    -1,    -1,  1032,     0,
    2592      902,    39,    -1,    -1,    -1,   430,    -1,  1518,    -1,    -1,
    2593       26,    27,    28,  1524,    -1,    -1,   918,    -1,    -1,  1016,
    2594     1017,    -1,   447,   105,  1535,    -1,    -1,    -1,  1539,    67,
    2595       -1,    32,    -1,    -1,   478,    -1,  1070,    -1,   940,   941,
    2596      942,    -1,    -1,    -1,    -1,    -1,    -1,   472,    -1,    -1,
    2597     1084,    -1,    -1,    -1,    -1,  1089,   441,    -1,    -1,    -1,
    2598       -1,  1187,   641,    -1,    -1,   147,    -1,    -1,    69,    -1,
    2599       -1,    -1,  1106,   155,   156,    -1,    -1,  1074,  1075,  1376,
    2600       -1,    -1,    98,    -1,   100,    -1,    97,    98,    99,   100,
    2601      101,   102,   103,   104,   105,   106,   998,    -1,    -1,    -1,
    2602       -1,    -1,    -1,    -1,   186,    -1,    -1,    -1,    -1,   125,
    2603       -1,   690,    -1,   692,    -1,    -1,   669,   696,    -1,   201,
    2604      131,    -1,   204,   205,    -1,   569,   570,   209,    -1,   548,
    2605      549,   550,   551,   552,   553,   554,   555,   556,   557,   558,
    2606      559,   560,   561,   562,   563,   564,   565,    -1,   230,  1183,
    2607       -1,    -1,   234,    -1,   236,   156,  1282,    -1,    -1,  1016,
    2608     1017,    -1,    -1,   245,    -1,   181,    -1,    -1,   593,   251,
    2609       -1,    -1,  1206,   189,   256,   191,   192,  1079,    -1,    -1,
    2610      196,    -1,   198,   199,   266,    -1,    -1,    -1,    -1,    -1,
    2611       -1,    72,   274,    74,    75,    76,   621,   998,    -1,    -1,
    2612       -1,   626,    83,    84,    -1,    -1,    -1,    -1,    -1,     0,
    2613       -1,    -1,   656,  1247,  1248,  1249,   660,  1074,  1075,  1121,
    2614       10,    11,    12,    13,    14,  1222,    -1,    -1,   109,   230,
    2615      111,    -1,    -1,    -1,    -1,   788,   117,   118,  1039,    -1,
    2616       -1,    32,    -1,    -1,    -1,   798,    -1,    -1,    -1,    39,
    2617      251,    -1,   268,    -1,    -1,   256,    -1,  1254,   340,   812,
    2618       -1,    -1,   344,    -1,    -1,  1262,  1263,  1264,   350,    -1,
    2619       -1,    -1,   697,    -1,    -1,   694,    -1,    67,    69,    -1,
    2620       -1,   363,    -1,    -1,    -1,   367,   711,   866,   370,    -1,
    2621       -1,    -1,    -1,   872,    -1,    -1,    -1,    -1,    -1,    -1,
    2622       -1,    -1,    -1,    -1,  1206,    -1,   731,    -1,    -1,    -1,
    2623       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,   109,
    2624       -1,   111,    -1,    -1,    -1,    -1,  1228,   117,   118,  1326,
    2625       -1,    -1,    -1,    -1,   913,   417,   755,    -1,    -1,    -1,
    2626       -1,    39,  1376,  1377,    -1,    -1,   731,    -1,   792,   350,
    2627      432,  1385,  1386,    -1,    -1,   437,    -1,    -1,    -1,    -1,
    2628       26,    27,    28,   445,    -1,   156,   785,    -1,    -1,    67,
    2629       -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,   804,
    2630       -1,   463,    -1,    -1,   466,    83,    84,    -1,    -1,  1423,
    2631       -1,   970,    72,    -1,    74,    75,    76,  1254,    -1,   481,
    2632       -1,   483,    -1,    83,    84,  1262,  1263,  1264,    -1,   491,
    2633       -1,   109,    -1,   495,    -1,    -1,   417,    -1,  1320,   117,
    2634      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    2635       -1,   432,    98,    -1,   100,    -1,   437,   117,   118,    -1,
    2636       -1,    -1,   524,   525,   445,    -1,  1480,  1481,    -1,    -1,
    2637       -1,    -1,    -1,    -1,    -1,    -1,  1490,    -1,    -1,    -1,
    2638      251,    -1,   463,  1016,  1017,   256,   910,    -1,    -1,  1326,
    2639     1504,  1505,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2640      481,    -1,   483,    -1,    -1,    -1,   905,    -1,   570,    -1,
    2641       72,  1070,    74,    75,    76,  1529,    -1,    -1,    -1,    -1,
    2642       -1,    83,    84,    -1,    -1,    -1,   588,   589,    -1,    -1,
    2643       10,    11,    12,    13,    14,   181,  1418,    -1,    -1,   601,
    2644       -1,  1074,  1075,    -1,   525,   191,   192,   109,    -1,   111,
    2645      196,   950,   198,   199,    -1,   117,   118,   619,    -1,    39,
    2646       -1,    -1,   624,   987,    -1,    -1,    -1,  1449,   630,  1451,
    2647       -1,   633,   634,   635,    -1,    -1,    -1,   573,   574,   350,
    2648     1004,    -1,    -1,    -1,    -1,    -1,   985,    67,    -1,   651,
    2649       -1,    -1,    -1,    -1,    -1,    -1,  1001,    -1,    -1,   998,
    2650       -1,    -1,    -1,  1485,    -1,  1487,   602,   669,   589,   605,
    2651      606,    -1,   608,    -1,   610,   611,    -1,    -1,   680,   615,
    2652      616,    -1,    -1,    72,  1183,    74,    75,    76,    -1,   109,
    2653       -1,   111,  1514,    -1,    83,    84,    -1,   117,   118,    -1,
    2654     1039,    -1,    -1,    -1,   706,    -1,   417,   709,    -1,    -1,
    2655       -1,    -1,   633,   634,   635,    -1,   718,    -1,  1082,   721,
    2656      109,   432,   111,    -1,     0,    -1,   437,    -1,   117,   118,
    2657      651,    -1,    -1,    -1,   445,    -1,    -1,    -1,    -1,    -1,
    2658       -1,   743,   744,    -1,    -1,    -1,    -1,   749,   669,  1222,
    2659       -1,    -1,   463,    -1,    -1,    -1,    32,    -1,  1122,   680,
     2927       0,     1,   204,    43,    49,   239,   219,     0,   185,     1,
     2928     534,   116,   620,   602,   185,    43,    43,   646,   364,   185,
     2929     349,   513,   368,     0,   521,     0,   281,   749,   749,   349,
     2930     602,   185,    32,     0,   185,   185,   345,   874,  1040,    32,
     2931     186,   168,   169,    43,   185,   600,  1321,   756,   749,    49,
     2932    1021,   600,     0,   571,   492,    32,    49,    32,   496,     0,
     2933     600,   187,   156,    63,    32,    32,    66,   156,   113,    69,
     2934      63,    43,    43,    66,    82,   418,    69,    69,  1020,  1021,
     2935     692,    39,   983,    63,    32,   600,   109,   600,   265,   600,
     2936     105,    32,    51,   600,   265,   438,   201,     0,     1,   265,
     2937      43,   146,    43,   446,    39,   105,  1052,  1053,    49,   426,
     2938     427,   265,  1501,   113,   265,   265,   116,   117,    72,    39,
     2939     266,  1402,    63,   186,   265,    66,    39,    72,    69,    32,
     2940      39,   256,  1033,     0,     1,   261,   262,    11,    39,  1528,
     2941     155,  1398,    28,   733,  1419,   185,   146,   147,    44,    45,
     2942     109,   109,   132,   111,   147,   155,   156,   185,   185,   488,
     2943     160,    39,   603,    66,   209,    32,    69,   160,   609,   109,
     2944      82,   635,   636,   482,   109,   695,   111,   494,   132,    44,
     2945      45,   228,  1128,   905,   905,   185,   186,   132,   652,   109,
     2946     687,   111,    78,   186,   239,    95,   513,   410,   111,   111,
     2947     247,   201,    69,   266,   905,   718,   147,   718,   109,   209,
     2948     111,   718,  1469,   185,   185,  1496,   209,   107,   114,   160,
     2949    1501,   221,    64,   874,     0,   265,   271,    55,   221,   129,
     2950     110,   109,   116,   111,    49,   824,   116,   265,   265,   239,
     2951    1521,   131,   185,   589,   185,   186,   710,  1528,   132,   504,
     2952     115,   251,   824,  1452,  1225,   109,    32,   812,   251,   259,
     2953     406,   578,   307,   812,   264,   265,   266,   109,   209,    97,
     2954      72,   271,   812,   266,   251,   793,   251,   986,    85,   256,
     2955     221,   256,   602,   251,   251,   631,  1288,  1486,   900,  1488,
     2956      66,   396,   109,   418,   294,   924,  1472,   812,   113,   812,
     2957     345,   812,  1478,   251,  1275,   812,   113,   307,    44,    45,
     2958     251,   620,   112,   438,   131,   117,   625,   114,   221,   424,
     2959     116,   446,  1498,   323,   265,   430,   341,  1503,   328,    96,
     2960     116,    96,  1274,  1275,   480,   328,   132,   801,   681,   433,
     2961      72,   341,   116,   406,   433,   345,   110,   695,   251,   349,
     2962     350,    83,    84,   116,     1,   122,   371,   122,    72,   116,
     2963     110,   933,    76,     3,   364,   193,   130,   130,   368,    83,
     2964      84,   371,   112,   814,  1211,   132,   116,   932,   114,   111,
     2965     130,   426,   427,   932,   251,  1501,   906,   328,   216,  1040,
     2966      72,   999,   932,   482,   209,   109,   396,   111,   226,    90,
     2967      91,    83,    84,   117,   118,  1521,   406,    72,   349,    72,
     2968     110,   666,  1528,   406,   116,     0,   116,   480,    83,    84,
     2969      83,    84,   110,  1394,   424,    57,   426,   427,   130,   111,
     2970     430,   951,   526,   433,   125,   126,   745,   526,   786,  1441,
     2971     464,   418,   130,   418,   109,   221,  1448,     3,   111,   494,
     2972      57,   112,  1394,     0,   454,   116,   271,   803,   109,  1049,
     2973     116,   438,   808,   438,   116,   406,   294,   116,   513,   446,
     2974     967,   446,   472,   131,   106,   251,   132,   109,   130,   294,
     2975     480,   736,   482,   132,   484,  1386,  1387,   480,   488,   981,
     2976     128,   484,   307,   131,   494,   824,   590,  1499,  1127,   106,
     2977     116,   590,   109,   941,   824,   482,   506,   484,   508,   484,
     2978     525,   511,   490,   513,   514,   863,   132,   484,   110,   110,
     2979     647,   521,   110,   116,   116,   525,   526,  1099,   116,    70,
     2980     656,   109,    73,   578,    72,    76,   484,    78,   111,   132,
     2981     113,   687,   464,   484,    85,    83,    84,   488,   155,   654,
     2982     896,   109,   109,   116,   111,     3,   681,   130,   906,   109,
     2983    1211,   111,    10,    11,    12,    13,    14,  1008,  1009,   132,
     2984     570,   571,   109,   111,   350,   620,   116,   110,   578,   112,
     2985     625,   484,   707,   116,   109,   111,   218,   113,  1085,   589,
     2986     590,    39,   132,  1090,   594,   904,   109,  1117,   131,   132,
     2987     600,   109,   602,   951,   130,   252,   110,   116,   937,   110,
     2988      72,   218,    74,    75,   112,   443,   116,   484,   116,    67,
     2989     620,    83,    84,   132,   687,   625,   604,   627,   116,   116,
     2990     608,   631,   132,   110,   634,   635,   636,  1288,   986,   454,
     2991     272,   469,   590,   110,   132,   132,   670,   279,   861,   111,
     2992     116,   629,   652,   110,   654,   633,   745,  1177,  1178,   600,
     2993     112,   602,    72,   132,   110,   272,   132,   109,   881,   111,
     2994     116,   212,   279,    83,    84,   117,   118,   506,   506,   508,
     2995     109,   110,   511,   511,   684,   514,   514,   687,   109,  1037,
     2996     999,   506,   109,   508,   111,   109,   511,   473,  1288,   514,
     2997     117,   118,    88,    89,   681,   109,   681,   111,   484,   943,
     2998     710,   711,   712,   117,   118,   809,   348,   115,   718,   719,
     2999     809,     4,     5,     6,     7,     8,     9,   112,   905,   744,
     3000     707,   116,   707,   365,   905,   109,   117,   369,   279,   905,
     3001     867,   348,   123,   124,   744,   745,   687,   110,   670,   749,
     3002     750,   905,   112,   116,   905,   905,   116,   110,   365,    64,
     3003     110,   907,   369,   116,   905,   789,   116,   110,   745,  1117,
     3004     119,   120,  1362,   116,   110,   799,  1122,   718,   719,   110,
     3005     116,  1305,   109,  1505,  1505,   116,    69,   874,    71,   813,
     3006    1441,  1115,   110,   793,   110,  1119,   110,  1448,   116,   109,
     3007     116,   801,   116,   803,  1505,   805,    92,    93,   808,   809,
     3008    1012,   352,   812,   354,   112,   904,    72,   110,    74,    75,
     3009     467,   115,   116,   116,   824,   432,   110,    83,    84,  1177,
     3010    1178,    72,   116,    74,    75,   132,   109,  1146,   111,   110,
     3011     114,   669,    83,    84,   907,   116,   622,    72,  1499,   132,
     3012     678,    76,   110,   111,   682,  1445,   132,  1447,    83,    84,
     3013    1115,   809,  1382,   114,  1119,  1120,   110,   789,   846,   684,
     3014     110,   812,   116,   114,   874,   132,   116,   799,  1398,   114,
     3015     109,   528,   111,   824,   109,   109,   533,   111,   903,    58,
     3016      59,   813,   117,   118,   115,   116,   896,   874,   943,   874,
     3017     109,   442,   111,   903,   904,   905,   109,   907,  1035,    72,
     3018    1500,    74,    75,   109,   294,   111,  1225,    44,    45,   919,
     3019      83,    84,   698,   109,   110,   111,   874,   904,    82,     0,
     3020       1,  1020,   932,   933,   109,   582,   712,   937,   109,  1085,
     3021     111,   118,   942,   943,  1090,   109,   109,   111,  1468,  1469,
     3022     942,   114,   109,   910,   999,   912,  1043,   112,    29,    30,
     3023     938,    32,   552,   553,   905,    82,   907,   967,   109,   110,
     3024     111,   874,    43,   556,   557,   558,   559,   127,    49,    72,
     3025    1235,   128,   589,    76,  1481,    94,    57,   554,   555,   621,
     3026      83,    84,    63,  1017,  1018,    66,   937,   131,    69,   999,
     3027     560,   561,  1107,   111,   109,   637,   653,   874,   655,   109,
     3028     112,    82,    83,   112,   621,   112,   109,   112,   110,   651,
     3029    1020,  1021,  1085,   110,   117,   118,   110,  1090,   110,   805,
     3030     637,   110,   110,  1530,  1382,   106,   109,   111,   109,   942,
     3031    1040,   109,   110,   111,   651,   116,   426,   427,   114,   116,
     3032    1398,  1075,  1076,   109,   110,   111,   131,  1146,   705,    58,
     3033      59,    60,   109,  1040,   114,  1040,    72,  1322,    74,    75,
     3034     898,  1326,  1248,  1249,  1250,   942,   147,    83,    84,   114,
     3035    1080,   112,   110,   110,   155,  1085,   112,   112,   112,   160,
     3036    1090,   112,  1040,   130,   130,  1017,  1018,   130,   874,  1099,
     3037     732,   116,    29,   109,   919,   110,   110,  1107,   114,   112,
     3038     110,   112,   114,   130,   185,   186,   284,   115,   115,   115,
     3039    1468,  1469,  1122,   116,  1211,   732,   506,   109,   116,   110,
     3040     201,   511,   110,   110,   514,   110,   110,  1040,   209,   307,
     3041     308,   132,   110,   116,  1085,   110,  1146,   218,   110,  1090,
     3042     221,   110,    66,  1075,  1076,   110,   110,   228,   110,   110,
     3043     110,    75,   110,    72,   110,    74,    75,    76,  1423,  1146,
     3044     110,   110,   243,  1040,    83,    84,   247,   345,   110,   115,
     3045     251,   252,    29,   116,   131,  1274,   110,   567,  1188,  1189,
     3046     110,   732,  1207,   130,   265,   266,   112,  1189,   110,  1223,
     3047     109,   272,     1,   117,    85,    86,    87,  1207,   279,   112,
     3048     110,  1211,   116,   381,   110,   130,   109,  1304,   116,   114,
     3049     112,   110,   110,  1051,   110,  1225,  1002,   112,   109,  1229,
     3050     111,  1255,   113,   114,  1211,   110,  1211,  1229,   116,  1263,
     3051    1264,  1265,   116,   116,    66,   110,   160,   110,  1225,   109,
     3052      49,     4,     5,     6,     7,     8,     9,   328,   112,   109,
     3053      82,   109,   130,  1211,  1040,  1080,   109,   109,   112,  1356,
     3054     132,   128,  1359,  1378,  1274,  1275,   115,   348,   349,    49,
     3055      33,  1515,   110,  1283,   110,  1188,  1189,   110,  1288,   896,
     3056     115,   115,   112,    63,   365,   117,    66,   114,   369,    69,
     3057     132,  1223,   110,  1327,   116,   112,   105,   221,  1211,   380,
     3058     957,  1288,   112,  1288,   113,  1402,    69,   110,    71,   110,
     3059    1407,  1321,  1189,   110,   112,   396,  1229,   112,  1505,  1321,
     3060     112,   110,   979,  1255,  1505,   406,   983,   112,   160,  1505,
     3061    1288,  1263,  1264,  1265,  1211,   259,   112,   146,  1435,   112,
     3062     264,  1505,    47,   424,  1505,  1505,   155,   130,   132,   430,
     3063    1506,   432,  1229,   132,  1505,   279,     4,     5,     6,     7,
     3064       8,     9,   132,   132,   132,   115,  1481,   147,  1378,   110,
     3065    1283,   549,   550,   551,  1530,  1288,  1033,   115,   110,   115,
     3066     160,   112,   112,   112,  1394,   112,   467,   112,   112,   221,
     3067     110,   472,   110,   112,    60,  1327,   205,   112,   109,   480,
     3068     209,   109,  1188,   484,   110,   109,   186,   488,  1321,  1419,
     3069     491,  1288,   493,     0,     1,   110,   114,  1419,   109,   132,
     3070     112,    69,  1519,    71,   112,  1211,   350,   259,  1525,   209,
     3071     239,  1441,   264,  1506,   110,   112,   110,    96,  1448,  1536,
     3072    1450,   221,  1452,  1540,  1321,    32,    96,   528,   109,   109,
     3073     132,   115,   533,   110,  1441,  1505,  1441,  1530,   110,  1297,
     3074    1515,  1448,   271,  1448,   110,   274,   110,  1505,  1505,   116,
     3075      42,  1481,   130,   110,   110,    96,  1486,   132,  1488,    66,
     3076      96,   132,    69,  1441,   110,   294,   110,   132,   110,  1499,
     3077    1448,   132,   132,   110,   112,  1505,  1506,  1283,   307,   112,
     3078     115,   582,  1288,  1506,   132,  1515,  1419,   431,   589,   109,
     3079     115,   115,  1499,   132,  1499,   110,   110,   110,   350,   600,
     3080    1530,   602,   132,  1056,   448,   110,   565,  1530,  1441,   562,
     3081     977,   563,   341,  1211,   564,  1448,   345,   566,  1469,  1540,
     3082     621,  1499,  1419,  1364,  1298,  1120,  1326,  1448,   328,   473,
     3083     189,  1071,   684,   684,  1505,   364,   637,   196,  1090,   368,
     3084     912,   642,   371,   697,  1441,   920,   971,   867,   648,   156,
     3085     651,  1448,   653,   654,   655,   722,  1229,    72,   756,    74,
     3086      75,    76,   582,   939,   484,    66,  1499,   732,    83,    84,
     3087    1207,  1248,  1249,  1250,   570,    -1,   570,   570,    -1,   431,
     3088      -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,   670,    -1,
     3089     691,  1449,   693,  1451,   109,    -1,   697,   426,   427,    -1,
     3090      -1,    -1,  1499,    -1,   705,  1450,   406,  1452,    72,   268,
     3091      74,    75,    76,    -1,   221,    -1,   117,   718,   719,    83,
     3092      84,   473,    -1,    -1,    -1,   454,    -1,  1485,    -1,  1487,
     3093      -1,   732,    -1,    -1,    -1,  1441,    -1,    -1,   467,    -1,
     3094      -1,  1486,  1448,  1488,   251,    10,    11,    12,    13,    14,
     3095     594,    10,    11,    12,    13,    14,    -1,    -1,    72,   160,
     3096      74,    75,    76,   492,   323,   494,    -1,   496,    -1,    83,
     3097      84,  1529,   331,  1531,    39,   334,    -1,   506,   622,   508,
     3098      39,    -1,   511,   627,   513,   514,  1544,  1545,    72,    -1,
     3099      74,    75,    76,  1499,    -1,   109,   525,   111,    -1,    83,
     3100      84,    -1,    67,   117,   118,    -1,    -1,   789,    67,  1386,
     3101    1387,   812,    -1,    -1,    -1,  1377,   130,   799,    -1,    -1,
     3102     221,    -1,    -1,   824,    -1,   109,    72,   111,    74,    75,
     3103      76,   813,    30,   117,   118,    -1,    -1,    83,    84,   398,
     3104    1377,    -1,   594,   402,   109,    -1,   111,  1424,    -1,   578,
     3105      -1,    -1,   117,   118,   698,    -1,    -1,    -1,   259,    -1,
     3106     589,    -1,    -1,   264,    -1,    -1,   867,    -1,   712,    -1,
     3107     622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,    -1,
     3108    1190,  1191,    -1,  1193,    82,    83,    -1,    -1,   732,    -1,
     3109    1200,   620,  1202,    -1,    -1,   896,   625,    -1,    -1,    -1,
     3110      -1,   999,   631,    -1,   905,  1482,   907,    -1,    -1,    -1,
     3111      -1,    -1,    -1,   914,  1491,    10,    11,    12,    13,    14,
     3112     479,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     3113      10,    11,    12,    13,    14,     0,   937,    -1,    -1,    -1,
     3114      -1,    -1,  1040,     3,    39,    -1,   698,    -1,    -1,   350,
     3115      10,    11,    12,    13,    14,   684,   957,    -1,    -1,    39,
     3116     712,   805,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
     3117     971,    -1,    67,    -1,    -1,    -1,    -1,   484,   979,    39,
     3118      -1,    -1,   983,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3119       3,    -1,    -1,   722,    -1,     0,     1,    10,    11,    12,
     3120      13,    14,    -1,    -1,    69,    -1,    -1,    67,    -1,    -1,
     3121      -1,   570,   571,    -1,   109,   744,   111,    -1,    -1,   526,
     3122      -1,    -1,   117,   118,    -1,    -1,    39,    32,    -1,   109,
     3123     431,   111,  1033,    -1,    -1,  1017,  1018,   117,   118,    10,
     3124      11,    12,    13,    14,    49,   243,    -1,    -1,  1358,    85,
     3125      86,    87,    -1,   805,    67,    -1,    -1,    -1,    -1,    -1,
     3126      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    39,    -1,
     3127    1071,    -1,   473,   109,   803,   111,    -1,   113,   114,   808,
     3128      -1,    -1,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
     3129      -1,   156,    -1,  1075,  1076,    -1,    67,    -1,   657,    -1,
     3130     105,    72,   661,    74,    75,    76,  1107,    -1,    -1,    -1,
     3131      -1,    -1,    83,    84,    97,    98,    99,   100,   101,   102,
     3132     103,   104,   105,   106,    -1,    -1,    -1,   634,   635,   636,
     3133      -1,    -1,    72,    -1,    74,    75,    76,    -1,   109,    -1,
     3134     111,    -1,   147,    83,    84,   652,   117,   118,   131,    -1,
     3135     155,   156,    72,    -1,    74,    75,    76,    -1,  1002,    -1,
     3136      -1,    -1,    -1,    83,    84,   230,    -1,   896,    -1,   109,
     3137      -1,   111,    -1,    -1,   903,    -1,    -1,   117,   118,    -1,
     3138      -1,   186,   380,  1184,    -1,    -1,   251,    -1,    -1,   109,
     3139     919,   256,    -1,   594,    -1,    -1,   201,   117,   118,   204,
     3140     205,    -1,    -1,   710,   209,    -1,  1207,    -1,    -1,    -1,
     3141      -1,    -1,   941,   942,   943,    -1,    -1,    -1,    -1,    -1,
     3142      -1,   622,    -1,    -1,    -1,   230,   627,    -1,    -1,   234,
     3143      -1,   236,    -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,
     3144     245,    -1,    26,    27,    28,    -1,   251,  1248,  1249,  1250,
     3145    1002,   256,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3146      -1,   266,    -1,    -1,    83,    84,    -1,    -1,    -1,   274,
     3147     999,    -1,    -1,  1255,    -1,    -1,    -1,    -1,    -1,    -1,
     3148      -1,  1263,  1264,  1265,    -1,    -1,   351,    -1,    -1,    -1,
     3149     109,    -1,   111,   491,   801,   493,    -1,   698,   117,   118,
     3150      -1,    -1,   809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3151      -1,   712,    -1,    -1,    98,    -1,   100,    -1,    10,    11,
     3152      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3153      22,    23,    24,    25,    26,    27,   341,    -1,    -1,    -1,
     3154     345,   125,    -1,    -1,  1188,  1327,   351,    39,    -1,    -1,
     3155      -1,  1080,   911,   418,    -1,    -1,    -1,    -1,    -1,   364,
     3156      -1,    -1,    -1,   368,    -1,    -1,   371,   874,   433,    -1,
     3157      -1,    -1,    -1,   438,    -1,    67,  1377,  1378,    -1,    -1,
     3158      -1,   446,    26,    27,    28,  1386,  1387,    -1,    -1,    -1,
     3159      -1,    -1,    -1,  1122,    -1,    -1,    -1,   181,    -1,   464,
     3160      -1,    -1,    -1,    -1,   805,   189,    -1,   191,   192,    -1,
     3161      -1,    -1,   196,   418,   198,   199,    -1,   482,    -1,   484,
     3162      -1,    -1,    -1,  1424,    -1,    -1,    -1,    -1,   433,   988,
     3163      -1,    -1,     0,   438,    -1,   942,  1188,    -1,    -1,  1283,
     3164      -1,   446,    -1,    -1,   642,    -1,  1005,    -1,    -1,    -1,
     3165      -1,    -1,    -1,    -1,    98,    -1,   100,    -1,    -1,   464,
     3166      -1,   526,   467,    -1,    32,    -1,    -1,    -1,    -1,    -1,
     3167      -1,    72,    -1,    74,    75,    76,    -1,   482,  1207,   484,
     3168    1481,  1482,    83,    84,   268,    -1,    -1,   492,    -1,    -1,
     3169    1491,   496,    -1,   691,    -1,   693,    -1,    -1,    -1,   697,
     3170    1229,    69,    -1,    -1,  1505,  1506,    -1,    -1,   109,    -1,
     3171      -1,    -1,    -1,  1020,  1021,    -1,   117,   118,    -1,    -1,
     3172     525,   526,    -1,    -1,  1083,   590,    -1,    -1,    -1,  1530,
     3173      -1,  1283,    -1,  1040,    -1,    -1,    -1,   181,    -1,    -1,
     3174      -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,   192,    -1,
     3175      -1,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,    -1,
     3176      -1,    -1,    -1,    -1,  1123,    -1,   571,    -1,    -1,   634,
     3177     635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
     3178      12,    13,    14,    -1,   589,   590,    -1,   652,   156,    -1,
     3179      -1,    -1,  1321,    -1,    -1,    -1,    -1,   602,    -1,    -1,
     3180      -1,  1002,    -1,    -1,    -1,   670,    -1,    39,    -1,    -1,
     3181      -1,    -1,    -1,    -1,    -1,   620,   681,    -1,    -1,    -1,
     3182     625,    -1,    -1,    -1,    -1,    -1,   631,    -1,    -1,   634,
     3183     635,   636,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3184      72,    -1,   707,    -1,    76,   710,    -1,   652,    -1,    -1,
     3185      -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3186      -1,    -1,    -1,    -1,    -1,   670,    -1,    -1,    -1,   867,
     3187      -1,    -1,    -1,    -1,    -1,   873,   681,   109,    -1,    -1,
     3188     745,  1188,  1189,   251,    -1,   117,   118,    -1,   256,    -1,
     3189    1419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3190      -1,    -1,   707,    -1,  1211,   710,    -1,    -1,    -1,    -1,
     3191       0,    -1,    -1,    -1,   719,    -1,   914,   722,    -1,    -1,
     3192      -1,  1450,  1229,  1452,   789,    -1,    -1,    -1,    -1,    -1,
     3193      -1,    -1,    -1,    -1,   799,    -1,   801,    -1,    -1,   744,
     3194     745,   806,    32,    -1,   809,   750,    -1,    -1,   813,    -1,
     3195      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1486,    -1,  1488,
     3196      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1274,  1275,    -1,
     3197      -1,    -1,    -1,   971,    -1,    -1,  1283,    -1,    -1,    69,
     3198      -1,  1288,    -1,   351,   789,    -1,  1515,  1188,    -1,    -1,
     3199     574,   575,    -1,    -1,   799,    -1,   801,    -1,   803,    -1,
     3200      -1,   806,    -1,   808,   809,    -1,    -1,    -1,   813,   874,
     3201      -1,    -1,    -1,    -1,  1321,    -1,    -1,    -1,   823,   603,
     3202      -1,    -1,   606,   607,    -1,   609,    -1,   611,   612,    -1,
     3203      -1,    -1,   616,   617,    -1,    -1,    -1,    -1,    -1,   904,
    26603204      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2661      481,    -1,   483,    -1,    -1,    -1,    -1,  1116,    -1,    -1,
    2662       -1,  1254,    -1,    -1,    -1,   706,   788,    -1,   709,  1262,
    2663     1263,  1264,    -1,    69,    -1,    -1,   798,    -1,   800,    -1,
    2664      802,    -1,    -1,   805,    -1,   807,   808,    -1,    -1,    -1,
    2665      812,    -1,    -1,    -1,   525,    -1,    -1,   753,   754,    -1,
    2666      822,    -1,    -1,   744,    -1,    -1,    -1,    -1,    -1,    -1,
    2667       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1176,  1177,    -1,
    2668       -1,    -1,  1187,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2669       -1,     0,    -1,  1326,    -1,    -1,    -1,    -1,    -1,    -1,
    2670       -1,    -1,    -1,    37,    38,    -1,    40,   788,    -1,    -1,
    2671       -1,   873,    -1,    -1,    -1,    -1,    -1,   798,   589,   800,
    2672      156,    -1,    -1,    32,   805,    -1,    -1,   808,    -1,    -1,
    2673       -1,   812,    66,   895,    -1,    -1,    -1,    -1,    72,    -1,
    2674      902,   903,    76,    -1,   906,    79,    80,    81,    82,    83,
    2675       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    2676       69,    -1,   633,   634,   635,    -1,    -1,    -1,    -1,    -1,
    2677      932,    -1,    -1,    -1,    -1,   109,    -1,  1282,   940,   941,
    2678      651,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    2679       -1,    -1,   873,    -1,    -1,    -1,    -1,    -1,   669,    -1,
    2680       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   680,
    2681       -1,    -1,    -1,    -1,   910,   251,    -1,    -1,    -1,   915,
    2682      256,    -1,   903,    -1,    -1,    -1,    -1,   573,   574,    -1,
    2683       -1,    -1,    -1,    -1,    -1,   706,   998,    -1,   709,    -1,
    2684       -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,    -1,  1011,
    2685       -1,    -1,    -1,    -1,  1016,  1017,   602,  1019,  1020,   605,
    2686      606,    -1,   608,    -1,   610,   611,    -1,    -1,    -1,   615,
    2687      616,    -1,    -1,   744,    -1,    -1,    -1,  1039,    -1,    -1,
    2688       -1,    -1,  1381,    -1,     0,     1,    -1,    -1,    -1,    -1,
    2689       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1397,    -1,
    2690       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    2691       -1,    -1,  1074,  1075,   350,    -1,    32,   788,    -1,    -1,
    2692       -1,    -1,    -1,    -1,    -1,    -1,    -1,   798,    -1,   800,
    2693       -1,    -1,    -1,    39,   805,  1016,  1017,   808,  1019,  1020,
    2694       -1,   812,   251,    -1,    -1,    -1,    -1,   256,    -1,    -1,
    2695       66,    -1,    -1,    69,    -1,    -1,    -1,    -1,  1039,  1121,
    2696       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,  1467,  1468,
    2697       76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
    2698     1076,   417,    -1,  1145,    -1,    -1,    -1,    -1,    -1,    -1,
    2699       -1,    -1,    -1,  1074,  1075,    -1,   432,    -1,    -1,    -1,
    2700       -1,   437,   873,   109,    -1,    -1,    -1,   753,   754,   445,
    2701       -1,   117,   118,    -1,    10,    11,    12,    13,    14,    -1,
    2702       -1,    -1,    -1,    -1,    -1,    -1,  1188,   463,    -1,    -1,
    2703       -1,    -1,   903,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2704      156,   350,    -1,    39,  1206,   481,    -1,   483,  1210,    -1,
     3205     418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3206      -1,    -1,    -1,    -1,    -1,   433,   156,    -1,    -1,   874,
     3207     438,    -1,    -1,  1071,    -1,    -1,    -1,    -1,   446,    -1,
     3208      -1,    -1,  1283,    -1,    -1,    -1,    -1,  1394,    -1,    -1,
     3209      -1,   896,    -1,    -1,    -1,    -1,   464,    -1,   903,   904,
     3210      -1,    -1,   907,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3211      -1,    -1,  1419,    -1,   482,    -1,   484,    -1,    -1,    -1,
     3212      -1,    -1,    10,    11,    12,    13,    14,    -1,   933,    -1,
     3213     574,   575,    -1,    -1,  1441,    -1,   941,   942,    -1,    -1,
     3214      -1,  1448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3215      -1,    39,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
     3216      -1,   251,   606,   607,    -1,   609,   256,   611,   612,    -1,
     3217     754,   755,   616,   617,    -1,  1040,    -1,    -1,    -1,    67,
     3218      -1,    -1,    -1,    -1,    72,    -1,  1184,    -1,    76,    -1,
     3219      -1,    -1,  1499,    -1,   999,    83,    84,    -1,    -1,    -1,
     3220      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,    -1,
     3221    1075,  1076,  1017,  1018,    -1,  1020,  1021,    -1,    -1,    -1,
     3222      -1,   109,   590,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3223     118,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
     3224      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3225      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3226      27,   351,    -1,    30,    31,    32,   634,   635,   636,    -1,
     3227    1075,  1076,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3228      -1,  1146,    -1,    -1,   652,    -1,    -1,    -1,    -1,    -1,
    27053229      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2706     1222,    -1,  1224,    -1,  1145,    -1,  1228,    -1,    -1,    -1,
    2707       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    2708       76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,   525,
    2709       -1,    -1,  1254,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2710     1262,  1263,  1264,    -1,    -1,   221,    -1,  1188,   417,  1205,
    2711       -1,  1273,  1274,   109,    -1,   111,    -1,    -1,    -1,    -1,
    2712       -1,   117,   118,   432,    -1,  1287,    -1,    -1,   437,  1210,
    2713       -1,    -1,    -1,    -1,    -1,   251,   445,    -1,    -1,    -1,
    2714       -1,  1222,    -1,  1224,    -1,  1016,  1017,    -1,  1019,  1020,
    2715       -1,    -1,    -1,   589,   463,    -1,    -1,    -1,  1320,    -1,
    2716       -1,    -1,    -1,    -1,  1326,    -1,    -1,    -1,  1039,   915,
    2717       -1,    -1,   481,  1254,   483,    -1,    -1,    -1,    -1,    -1,
    2718       -1,  1262,  1263,  1264,    -1,    -1,    -1,    -1,    -1,    -1,
    2719       -1,    -1,  1273,  1274,    -1,    -1,    -1,   633,   634,   635,
    2720       -1,    -1,    -1,  1074,  1075,    -1,  1287,    -1,    -1,    -1,
    2721       -1,    -1,    -1,    -1,    -1,   651,   525,    -1,    -1,    -1,
     3230      67,    -1,   670,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3231     754,   755,    -1,   681,    -1,    -1,    -1,  1122,    -1,    -1,
     3232      -1,    -1,    -1,    -1,  1189,    -1,    -1,   911,   418,    -1,
     3233      -1,    -1,   916,    -1,    -1,    -1,    -1,    -1,    -1,   707,
     3234      -1,  1146,   710,   433,   111,    -1,  1211,     0,   438,    -1,
     3235     117,   118,    -1,    -1,    -1,    -1,   446,    -1,  1223,    -1,
     3236    1225,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3237      -1,    -1,    -1,    -1,   464,    -1,    -1,   745,    -1,    32,
     3238      -1,    -1,    -1,    -1,  1189,    -1,    -1,    -1,    -1,    -1,
     3239    1255,    -1,   482,    -1,   484,    -1,    -1,    -1,  1263,  1264,
     3240    1265,    -1,  1207,    -1,    -1,    -1,  1211,    -1,    -1,  1274,
     3241    1275,    10,    11,    12,    13,    14,    69,    -1,  1223,    -1,
     3242    1225,   789,    -1,  1288,  1229,    10,    11,    12,    13,    14,
     3243      -1,   799,    -1,   801,    -1,    -1,   526,    -1,   806,    -1,
     3244      39,   809,   146,    -1,    -1,   813,    -1,    -1,    -1,    -1,
     3245    1255,    -1,   156,    -1,    39,    -1,    -1,    -1,  1263,  1264,
     3246    1265,    -1,  1327,    -1,   168,   169,    -1,    -1,    67,  1274,
     3247    1275,    -1,   916,    72,    -1,    74,    75,    76,    -1,    -1,
     3248      -1,    -1,    67,  1288,    83,    84,    -1,    72,    -1,    74,
     3249      75,    76,    -1,  1077,    -1,    -1,    -1,    -1,    83,    84,
     3250     590,    -1,    -1,   156,    -1,    -1,   874,    -1,    -1,    -1,
     3251     109,    -1,   111,    -1,    -1,    -1,  1321,    -1,   117,   118,
     3252      -1,    -1,  1327,    -1,   109,    -1,   111,    -1,    -1,  1394,
     3253      -1,    -1,   117,   118,    -1,   239,   904,    -1,    -1,    -1,
     3254      -1,    -1,    -1,    -1,   634,   635,   636,    -1,    -1,    -1,
     3255      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   263,
     3256      -1,    -1,   652,    -1,    -1,    -1,    10,    11,    12,    13,
     3257      14,    -1,    -1,    -1,    -1,    -1,  1441,    -1,    -1,    -1,
     3258     670,    -1,    -1,  1448,    -1,    -1,    -1,    -1,    -1,  1394,
     3259      -1,   681,    -1,    -1,    -1,    39,    -1,    -1,   251,    -1,
     3260      -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,    -1,  1419,    -1,    -1,   707,    -1,    -1,
     3262     710,    -1,  1206,    67,    -1,    -1,    -1,    -1,    72,    -1,
     3263      74,    75,    76,  1077,  1499,    -1,  1441,    -1,    -1,    83,
     3264      84,    -1,    -1,  1448,    -1,    -1,    -1,    -1,    -1,  1017,
     3265    1018,    -1,  1020,  1021,    -1,   745,    -1,    -1,    -1,    -1,
     3266      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
     3267      -1,    -1,  1040,   117,   118,    -1,   380,    -1,    -1,    -1,
    27223268      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2723       -1,  1393,    -1,   669,    -1,    -1,    -1,    -1,    -1,    -1,
    2724       -1,    -1,    -1,    -1,   680,  1326,    -1,    10,    11,    12,
    2725       13,    14,    -1,    -1,    -1,    -1,  1418,    -1,    -1,    -1,
     3269      -1,    -1,    -1,    -1,  1499,    -1,    -1,    -1,   351,   789,
     3270      -1,  1506,    -1,    -1,    -1,    -1,    -1,  1075,  1076,   799,
     3271      -1,   801,    -1,    -1,    -1,    -1,   806,    -1,    -1,   809,
     3272      -1,    -1,    -1,   813,    -1,    53,    -1,    55,    -1,    -1,
     3273      58,    59,    60,    -1,    62,    -1,    -1,    -1,    -1,    10,
     3274      11,    12,    13,    14,    -1,    -1,    -1,    -1,    76,    -1,
    27263275      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2727      706,    -1,    -1,   709,  1145,    -1,    39,    -1,  1440,    -1,
    2728      589,    -1,    -1,    -1,    -1,  1447,    -1,    53,    -1,    55,
    2729       -1,    -1,    58,    59,    60,    -1,    62,    -1,    -1,    -1,
    2730       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,   744,    72,
    2731       76,    -1,  1393,    76,    -1,    -1,   432,  1188,    -1,    -1,
    2732       83,    84,    88,    89,   633,   634,   635,    -1,    -1,    -1,
    2733     1076,    -1,    -1,    -1,    -1,    -1,  1498,    -1,    -1,  1210,
    2734       -1,    -1,   651,  1505,    -1,    -1,   109,    -1,    -1,    -1,
    2735       -1,  1222,   788,  1224,   117,   118,    -1,    -1,    -1,  1440,
    2736      669,    -1,   798,    -1,   800,    -1,  1447,   483,    -1,   805,
    2737       -1,   680,   808,    -1,    -1,    -1,   812,    10,    11,    12,
    2738       13,    14,    -1,  1254,    -1,    -1,    -1,    -1,    -1,    -1,
    2739       -1,  1262,  1263,  1264,    -1,    -1,    -1,   706,    -1,    -1,
    2740      709,    -1,  1273,  1274,    -1,    -1,    39,    -1,    -1,   525,
    2741       -1,    -1,    -1,    -1,    -1,    -1,  1287,  1498,    -1,    -1,
     3276      88,    89,  1206,    -1,    -1,   418,    -1,    -1,    39,    -1,
     3277     474,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1146,    -1,
     3278     433,    -1,    -1,    -1,   874,   438,    -1,    -1,    -1,    -1,
     3279      -1,    -1,    -1,   446,    -1,    -1,    67,    -1,    -1,    -1,
     3280      -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,   513,
     3281      -1,   464,    83,    84,   904,    -1,    -1,    -1,    -1,    -1,
     3282      -1,  1189,   526,    -1,    -1,    -1,    -1,   531,    -1,   482,
     3283     534,   484,    -1,    37,    38,    -1,    40,    -1,   109,    -1,
     3284      -1,    -1,   546,  1211,    -1,    -1,   117,   118,    -1,    -1,
     3285      -1,    -1,    -1,    -1,    -1,  1223,    -1,  1225,    -1,    -1,
     3286      -1,    -1,    66,    -1,   568,    -1,    -1,    -1,    72,    -1,
     3287      -1,    -1,    76,   526,   578,    79,    80,    81,    82,    83,
     3288      84,   585,    86,    87,    -1,    -1,   590,  1255,    -1,    -1,
     3289      -1,    -1,    -1,    -1,    -1,  1263,  1264,  1265,    -1,    -1,
     3290      -1,    -1,    -1,    -1,    -1,   109,  1274,  1275,    -1,    -1,
     3291      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3292    1288,    -1,    -1,    -1,    -1,    -1,    -1,  1017,  1018,    -1,
     3293    1020,  1021,    -1,    -1,    -1,   639,    -1,   590,    -1,    -1,
     3294      -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,    -1,
     3295    1040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1327,
    27423296      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2743       -1,    -1,    -1,    -1,    67,   744,    -1,   873,    -1,    72,
    2744       -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
    2745       83,    84,    -1,    -1,    -1,  1326,    -1,    -1,    -1,  1205,
    2746       -1,    -1,    -1,    -1,    -1,    -1,    -1,   903,    -1,    -1,
    2747       -1,    -1,    -1,   589,    -1,    -1,   109,    -1,   111,   788,
    2748       -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,   798,
    2749       -1,   800,    -1,    -1,    -1,    -1,   805,    -1,    -1,   808,
    2750       -1,    -1,    -1,   812,    -1,    -1,    -1,    -1,    -1,    -1,
    2751       -1,    -1,    -1,    -1,    -1,    -1,    -1,   633,   634,   635,
    2752       -1,    -1,  1393,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2753       -1,    -1,    -1,    -1,    -1,   651,    -1,    -1,     3,     4,
    2754        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3297      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3298      -1,   634,   635,   636,    -1,  1075,  1076,    -1,    -1,    -1,
     3299      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
     3300      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3301      -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    -1,
     3302      -1,    49,    -1,    -1,    -1,    -1,  1394,    -1,   681,   357,
     3303     358,    -1,    37,    38,    39,    40,    -1,    -1,    66,    -1,
     3304      -1,   745,    -1,   747,    -1,    -1,    -1,    -1,    -1,    -1,
     3305      -1,    -1,    -1,   757,   707,    -1,  1146,   710,    -1,   763,
     3306      -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3307      -1,    76,    -1,  1441,    79,    80,    81,    82,    83,    84,
     3308    1448,    86,    87,    -1,    -1,   113,    -1,    -1,    -1,   117,
     3309      -1,    -1,   745,    -1,    -1,    -1,    -1,    -1,    -1,  1189,
     3310      -1,   805,   806,    -1,   109,   809,   111,    -1,    -1,    -1,
     3311      -1,    -1,   117,   118,   119,   120,   121,   122,   146,   823,
     3312      -1,  1211,    -1,    -1,    -1,    -1,    -1,    -1,   156,    -1,
     3313      -1,  1499,   160,  1223,    -1,  1225,   789,    -1,    -1,    -1,
     3314      -1,    -1,    -1,    -1,    -1,    -1,   799,    -1,   801,    -1,
     3315      -1,    -1,    -1,   806,    -1,    -1,   809,    -1,    -1,   863,
     3316     813,    -1,    -1,   867,    -1,  1255,    -1,    -1,    -1,    -1,
     3317      -1,    -1,    -1,  1263,  1264,  1265,    -1,    -1,    -1,    -1,
     3318      -1,   209,    -1,    -1,  1274,  1275,    -1,    -1,    -1,    -1,
     3319      -1,    -1,    -1,   221,    -1,    -1,    -1,    -1,  1288,    -1,
     3320     904,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
     3321      -1,   239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3322      -1,   874,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3323      -1,    -1,    66,    -1,    -1,    -1,   264,  1327,    72,   943,
     3324      -1,    -1,    76,   271,    -1,    79,    80,    81,    82,    83,
     3325      84,   904,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,    -1,   294,   971,    -1,    -1,
     3327      -1,    -1,    -1,   977,    -1,   109,    -1,   981,    -1,   307,
     3328      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3329      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1002,    -1,
     3330      -1,    -1,    -1,    -1,  1394,    -1,    -1,    -1,    -1,  1013,
     3331      -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,    -1,
     3332      -1,    -1,   350,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3333      -1,  1035,    -1,  1037,    -1,    -1,    -1,    -1,    -1,    -1,
     3334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1052,  1053,
     3335      -1,  1441,    -1,    -1,    -1,    -1,    -1,    -1,  1448,    -1,
     3336      -1,    -1,    -1,    -1,  1017,  1018,    -1,  1020,  1021,  1073,
     3337      -1,   699,    -1,   701,    -1,    -1,    -1,    -1,    -1,    -1,
     3338     708,   709,    -1,    -1,    -1,   713,    -1,  1040,    -1,    -1,
     3339      -1,    -1,    -1,    -1,    -1,    -1,    -1,   725,   426,   427,
     3340      -1,    -1,   730,    -1,    -1,   433,    -1,    -1,    -1,  1499,
     3341      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3342      -1,    -1,  1075,  1076,  1128,    -1,   454,    -1,    -1,    -1,
     3343     758,     7,    -1,    -1,    10,    11,    12,    13,    14,    -1,
     3344      -1,    -1,  1146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3345      -1,    -1,    -1,    -1,   482,    -1,    -1,  1161,  1162,    -1,
     3346      -1,    37,    38,    39,    40,    -1,   494,    -1,    -1,    -1,
     3347      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   506,    -1,
     3348     508,    -1,    -1,   511,    -1,   513,   514,    -1,    -1,    -1,
     3349      66,    67,    -1,  1146,    -1,    -1,    72,    -1,   526,    -1,
     3350      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3351      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3352      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   857,
     3353     858,   859,   860,   109,   862,   111,  1189,    -1,    -1,    -1,
     3354      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,   877,
     3355     578,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1211,    -1,
     3356      -1,    -1,   590,   891,    -1,    -1,   594,    -1,    -1,    -1,
     3357    1223,    -1,  1225,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3358      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3359      -1,    -1,   620,    -1,    -1,    -1,    -1,   625,  1302,    -1,
     3360      -1,  1305,  1255,   931,    -1,    -1,   634,   635,   636,    -1,
     3361    1263,  1264,  1265,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3362      -1,  1274,  1275,    -1,   652,    -1,    -1,    -1,    -1,    -1,
     3363      -1,    -1,    -1,    -1,    -1,  1288,    -1,    -1,    -1,    -1,
     3364      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   976,    -1,
     3365      -1,    -1,    -1,    -1,   982,    -1,   684,    -1,    -1,   987,
     3366      -1,    -1,    -1,    -1,   992,    -1,   994,    -1,    66,    -1,
     3367     998,    -1,  1000,  1001,  1327,    -1,  1004,    75,    -1,    77,
     3368      -1,    79,   710,    -1,   712,  1013,    -1,    -1,    86,    -1,
     3369      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3370      -1,    -1,    -1,  1031,  1032,    -1,    -1,    -1,    -1,    -1,
     3371      -1,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,   117,
     3372      -1,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
     3373    1058,    -1,    -1,  1061,    -1,    -1,    -1,    -1,    -1,    -1,
     3374      -1,  1394,    -1,    10,    11,    12,    13,    14,    15,    16,
     3375      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3376      27,    -1,   160,    30,    31,    32,    -1,    -1,    -1,    -1,
     3377      -1,    -1,    39,   801,    -1,    -1,  1104,   805,    -1,    -1,
     3378      -1,   809,  1110,  1111,    -1,    -1,    -1,    -1,  1441,    -1,
     3379      -1,    -1,    -1,    -1,    -1,  1448,    -1,    -1,    -1,    -1,
     3380      67,    -1,  1130,    -1,    -1,  1133,    -1,    74,    75,  1137,
     3381      -1,  1515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3382      -1,    -1,  1150,   221,    -1,   223,   224,   225,    -1,    -1,
     3383      -1,    -1,    -1,    44,    -1,  1163,    -1,  1165,  1166,  1167,
     3384    1168,    -1,   109,    -1,   111,    -1,  1499,    -1,    -1,    -1,
     3385     117,   118,    -1,  1181,    -1,  1183,    -1,    -1,    -1,  1187,
     3386      -1,   259,    -1,    -1,    -1,    -1,   264,    -1,    -1,    -1,
     3387      -1,    -1,    -1,    -1,    -1,    -1,   904,    -1,    -1,    -1,
     3388      91,   279,    -1,    -1,    -1,    -1,    -1,    -1,  1216,  1217,
     3389     101,   919,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3390      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3391      23,    24,    25,    26,    27,   943,    -1,    30,    31,    32,
     3392      -1,    -1,    -1,    -1,    -1,    -1,    39,    40,    -1,    -1,
     3393     328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1266,  1267,
     3394      -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,  1276,    -1,
     3395      -1,    -1,   350,    -1,    67,    -1,    -1,   355,   356,    -1,
     3396     171,    74,    75,    -1,    -1,   363,    -1,    -1,    -1,    -1,
     3397      -1,   999,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3398      -1,    -1,    -1,   194,    -1,    -1,    -1,    -1,    -1,    -1,
     3399      -1,    -1,  1020,  1021,    -1,    -1,    -1,   208,   111,    -1,
     3400      -1,    -1,   115,    -1,   117,   118,   217,    -1,   406,  1337,
     3401      -1,  1339,  1340,  1341,    -1,    -1,   227,    -1,    -1,    -1,
     3402      -1,    -1,    -1,  1351,    -1,    -1,   424,    37,    38,    -1,
     3403      40,   429,  1360,   431,    -1,    -1,    -1,    -1,    -1,    -1,
     3404      -1,   252,    -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,
     3405     448,    -1,  1080,   451,   452,    -1,    66,  1385,    -1,   270,
     3406      -1,   459,    72,    -1,    -1,   276,    76,   278,    -1,    79,
     3407      80,    81,    82,    83,    84,   473,    86,    87,    -1,    -1,
     3408      -1,    -1,   480,    -1,   295,    -1,    -1,    -1,    -1,    -1,
     3409      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3410    1428,  1429,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
     3411     120,   121,   122,  1441,    -1,    -1,    -1,    -1,  1146,    -1,
     3412    1448,    -1,    -1,    -1,    -1,    -1,    -1,   338,    -1,    -1,
     3413      -1,    -1,   343,    10,    11,    12,    13,    14,    15,    16,
     3414      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3415      27,    28,  1480,    -1,    -1,    -1,  1484,    -1,    -1,    -1,
     3416    1188,   372,    39,    -1,    -1,   376,   377,    -1,   379,    -1,
     3417      -1,    -1,    -1,    -1,    -1,   386,   387,    -1,   389,   390,
     3418      -1,   392,    -1,   394,  1512,    -1,  1514,    -1,    -1,    -1,
     3419      67,    -1,    37,    38,    -1,    40,   594,  1225,    -1,    -1,
     3420     411,    78,    -1,    -1,    -1,    -1,    -1,    -1,   419,    -1,
     3421      -1,    -1,    -1,    -1,  1542,  1543,    -1,    -1,    -1,    -1,
     3422      -1,    66,  1550,  1551,   622,    -1,    -1,    72,    -1,   627,
     3423      -1,    76,    -1,   444,    79,    80,    81,    82,    83,    84,
     3424      -1,    86,    87,    -1,    -1,    -1,  1274,  1275,    -1,    -1,
     3425      -1,    -1,    -1,    -1,    -1,  1283,    -1,    -1,    -1,   470,
     3426      -1,    -1,    -1,    -1,   109,   476,   111,    -1,    -1,   114,
     3427     481,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3428      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3429      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3430     698,    30,    31,    32,    -1,    -1,   517,    -1,    -1,    -1,
     3431      39,    -1,    -1,    -1,   712,   282,    -1,   284,   285,    -1,
     3432      -1,   532,    -1,    -1,    -1,   292,   293,    -1,    -1,    -1,
     3433      -1,    -1,    -1,    -1,   732,    -1,    -1,    -1,    67,    -1,
     3434     307,   308,    -1,    72,    -1,    74,    75,    76,    -1,    78,
     3435      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,   570,
     3436      -1,    -1,    -1,    -1,    -1,    -1,  1394,    -1,   579,    -1,
     3437      -1,    -1,    -1,    -1,    -1,   586,    -1,    -1,   345,    -1,
     3438     109,   592,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3439     601,    -1,    -1,    -1,    -1,   793,    -1,    -1,    -1,    -1,
     3440      -1,    -1,    -1,    -1,    -1,    -1,    -1,   805,    -1,    -1,
     3441      -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
     3442      -1,    -1,  1450,    -1,  1452,    -1,   824,    -1,    -1,    -1,
     3443     641,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    27553444      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2756       25,    26,    27,    -1,   873,    30,    31,    32,    33,  1440,
    2757       -1,    36,    -1,    -1,    39,    40,  1447,   343,    -1,   345,
    2758     1016,  1017,    -1,  1019,  1020,    -1,    -1,    -1,    -1,    -1,
    2759      356,   357,    -1,   709,   903,    -1,    -1,    -1,    -1,    64,
    2760       -1,    -1,    67,  1039,    69,    -1,    71,    72,    -1,    74,
    2761       75,    76,    -1,    10,    11,    12,    13,    14,    83,    84,
    2762       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1498,    -1,    -1,
    2763       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1074,  1075,
    2764       -1,    -1,    39,    -1,   109,    -1,   111,    -1,    66,    -1,
    2765      115,    -1,   117,   118,    -1,    -1,    -1,    75,    -1,    77,
    2766       -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,    86,    -1,
    2767       67,    -1,    49,    -1,    -1,    72,    -1,    74,    75,    76,
    2768       -1,    -1,    -1,    -1,   800,    -1,    83,    84,    -1,    66,
    2769       -1,    -1,   808,    -1,    10,    11,    12,    13,    14,   117,
    2770       -1,   119,   120,   121,    -1,    -1,    -1,  1016,  1017,  1145,
    2771     1019,  1020,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    2772      117,   118,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    2773     1039,    -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
    2774      117,    -1,   160,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2775       -1,    67,  1188,    -1,    -1,    -1,    72,   873,    74,    75,
    2776       76,    -1,    -1,    -1,    -1,  1074,  1075,    83,    84,   146,
    2777       -1,    -1,    -1,    -1,  1210,    -1,    -1,    -1,    -1,   156,
    2778       -1,    -1,    -1,   160,    -1,    -1,  1222,    -1,  1224,    -1,
    2779       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
    2780       -1,   117,   118,   221,    -1,   223,   224,   225,    -1,    -1,
    2781       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1254,    -1,
    2782       -1,    -1,    -1,    -1,    -1,   941,  1262,  1263,  1264,    -1,
    2783       -1,    -1,   209,    -1,    -1,    -1,  1145,  1273,  1274,    -1,
    2784       -1,   259,    -1,    -1,   221,    -1,   264,    -1,    -1,    -1,
    2785       -1,  1287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2786       -1,   279,   239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2787       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1188,
    2788       -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,    -1,    -1,
    2789     1326,    -1,    -1,    -1,   271,    -1,    -1,    -1,    -1,    -1,
    2790       -1,  1210,    -1,  1019,  1020,    -1,    -1,    -1,    -1,   327,
    2791       -1,    -1,    -1,  1222,    -1,  1224,    -1,   294,    -1,    -1,
    2792       -1,    -1,    -1,  1039,    -1,    -1,    -1,    -1,    -1,   306,
    2793       -1,   349,   698,    -1,   700,    -1,   354,   355,    -1,    -1,
    2794       -1,   707,   708,    -1,   362,  1254,   712,    -1,    -1,    -1,
    2795       -1,    -1,    -1,  1262,  1263,  1264,    -1,  1393,   724,    -1,
    2796       -1,    -1,    -1,   729,  1273,  1274,    -1,   344,    -1,    -1,
    2797       -1,    -1,   349,    -1,    -1,    -1,    -1,    -1,  1287,    -1,
    2798       -1,    -1,    -1,    -1,    -1,    -1,    -1,   405,    -1,    -1,
    2799       -1,   757,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2800       -1,    -1,    -1,    -1,  1440,   423,    -1,    -1,    -1,    -1,
    2801      428,  1447,   430,    -1,    -1,    -1,    -1,  1326,    -1,    -1,
    2802       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   447,
    2803       -1,    -1,   450,   451,    -1,    -1,    -1,    -1,    -1,    -1,
    2804      458,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   425,   426,
    2805       -1,    -1,    -1,    -1,   472,   432,    -1,    -1,    -1,    -1,
    2806       -1,   479,  1498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2807       -1,  1187,  1188,    -1,    -1,    -1,   453,    -1,    -1,    -1,
    2808       -1,    -1,    -1,    -1,  1393,    -1,    -1,    -1,    -1,    -1,
    2809      856,   857,   858,   859,  1210,   861,    -1,    -1,    -1,    -1,
    2810       -1,    -1,    -1,    -1,   481,    -1,    -1,    -1,    -1,    -1,
    2811      876,    -1,  1228,    -1,    -1,    -1,   493,    -1,    -1,    -1,
    2812       -1,    -1,    -1,    -1,   890,    -1,    -1,    -1,   505,    -1,
    2813      507,  1440,    -1,   510,    -1,   512,   513,    -1,  1447,    -1,
    2814       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   525,    -1,
    2815       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1273,  1274,    -1,
    2816       -1,    -1,    -1,    -1,   930,    -1,  1282,    -1,    -1,    -1,
    2817       -1,  1287,    -1,    -1,    -1,   593,    -1,    -1,    -1,    -1,
    2818       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1498,
     3445      25,    26,    27,    28,    -1,    30,    31,    32,  1486,    -1,
     3446    1488,    -1,    -1,    -1,    39,    -1,   677,    -1,    -1,    -1,
     3447      -1,    -1,    -1,    -1,   685,    -1,    -1,    -1,    -1,    -1,
     3448      -1,    -1,    -1,    37,    38,    -1,    40,  1515,    -1,    -1,
     3449     155,   156,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3450      75,    76,    -1,    78,    -1,   716,    -1,    -1,    83,    84,
     3451      -1,    -1,    66,    -1,    -1,   726,   727,    -1,    72,    -1,
     3452      -1,    -1,    76,    -1,   189,    79,    80,    81,    82,    83,
     3453      84,   196,    86,    87,    -1,    -1,   111,    -1,    -1,   937,
     3454      -1,    -1,   117,   118,    -1,    -1,    -1,    -1,   759,    -1,
     3455      -1,    -1,    -1,   764,    -1,   109,    -1,   111,    -1,    -1,
     3456      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,   967,
     3457      -1,    -1,    -1,    -1,    -1,    -1,   130,    -1,    -1,    -1,
     3458      -1,    -1,   549,   550,   551,   552,   553,   554,   555,   556,
     3459     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
     3460      -1,    -1,    -1,   268,  1002,    -1,    -1,    -1,    -1,    -1,
     3461      -1,    -1,    -1,    -1,    -1,  1013,    -1,   828,    -1,    -1,
     3462      -1,    -1,    -1,    -1,   835,    -1,    -1,    -1,    -1,    -1,
     3463      -1,    -1,    -1,    -1,    -1,    -1,    -1,   848,    -1,   850,
    28193464      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2820      577,    -1,    -1,   621,  1320,    -1,    -1,    -1,   626,   975,
    2821       -1,    -1,   589,    -1,    -1,   981,   593,    -1,    -1,    -1,
    2822      986,    -1,    -1,    -1,    -1,   991,    -1,   993,    -1,    -1,
    2823       -1,   997,    -1,   999,  1000,    -1,    -1,  1003,    -1,    -1,
    2824       -1,    -1,   619,    -1,    -1,    -1,  1012,   624,    -1,    -1,
    2825       -1,    -1,    -1,    -1,    -1,    -1,   633,   634,   635,    -1,
    2826       -1,    -1,    -1,    -1,  1030,  1031,    -1,    -1,    -1,    -1,
    2827       -1,    -1,    -1,    -1,   651,    -1,    -1,  1393,    -1,   697,
     3465      -1,    -1,    -1,   864,    -1,    -1,    -1,    -1,   323,   870,
     3466      -1,    -1,    -1,    -1,    -1,    -1,   331,   332,    -1,   334,
     3467     335,   882,    -1,    -1,   885,    -1,    -1,    -1,    -1,    -1,
     3468     345,    -1,    -1,    -1,   349,    -1,    -1,  1085,    -1,    -1,
    28283469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2829       -1,  1057,    -1,   711,  1060,    -1,    -1,    -1,    -1,    -1,
    2830       -1,    -1,  1418,    -1,    -1,    -1,   683,    37,    38,    -1,
    2831       40,    -1,    -1,   731,    -1,    -1,    -1,    -1,    -1,    -1,
    2832       -1,    -1,    -1,    -1,  1440,    -1,    -1,    -1,    -1,    -1,
    2833       -1,  1447,   709,    -1,   711,    -1,    66,  1103,    -1,    -1,
    2834       -1,    -1,    72,  1109,  1110,    -1,    76,    -1,    -1,    79,
    2835       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    2836       -1,    -1,    -1,  1129,    -1,    -1,  1132,   744,    -1,    -1,
    2837     1136,    -1,    -1,    -1,   792,    -1,    -1,    -1,    44,   109,
    2838       -1,   111,  1498,  1149,   114,    -1,   804,   117,   118,   119,
    2839      120,   121,   122,    -1,    -1,    -1,  1162,    -1,  1164,  1165,
    2840     1166,  1167,    -1,    -1,    -1,   823,    -1,    -1,    -1,    -1,
    2841       -1,    -1,    -1,    -1,  1180,    -1,  1182,    -1,    -1,    -1,
    2842     1186,    -1,    -1,   800,    -1,    91,    -1,   804,    -1,    -1,
    2843       -1,   808,    -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,
    2844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1215,
    2845     1216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2846       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2847       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2848       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    2849       32,   157,    -1,    -1,    -1,    -1,    -1,    39,    -1,  1265,
    2850     1266,    -1,    -1,    -1,    -1,   171,    -1,    -1,    -1,  1275,
    2851       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   936,    -1,
    2852       -1,    -1,    -1,    -1,    -1,    67,   903,    69,   194,    71,
    2853       -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
    2854       -1,   918,   208,    -1,    -1,    -1,    -1,    -1,   966,    -1,
    2855       -1,   217,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
    2856       -1,   227,    -1,    -1,    -1,   942,    -1,    -1,    -1,   111,
    2857     1336,    -1,  1338,  1339,  1340,   117,   118,    -1,    -1,    -1,
    2858       -1,    -1,    66,  1001,  1350,    -1,   252,    -1,    72,    -1,
    2859       -1,   257,    76,  1359,  1012,    79,    80,    81,    82,    83,
    2860       84,    -1,    86,    87,   270,    -1,    -1,    -1,    -1,    -1,
    2861      276,    -1,   278,    -1,    -1,    -1,    -1,    -1,  1384,    -1,
    2862       -1,   998,    -1,    -1,    -1,   109,    -1,   111,    -1,   295,
    2863       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    2864       -1,    -1,  1019,  1020,    -1,    -1,   130,    -1,    -1,    -1,
    2865       -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
    2866       -1,  1427,  1428,    -1,    -1,    -1,  1084,    -1,    -1,    -1,
    2867       -1,   337,    -1,    -1,  1440,    -1,   342,    -1,    -1,    -1,
    2868     1098,  1447,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,
    2869       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    2870       83,    84,  1079,    86,    87,   371,    -1,    -1,    -1,   375,
    2871      376,    -1,   378,  1479,    -1,    -1,    -1,  1483,    -1,   385,
    2872      386,    -1,   388,   389,    -1,   391,   109,   393,   111,    -1,
    2873      113,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
    2874       -1,    -1,    -1,    -1,   410,  1511,    -1,  1513,    -1,    -1,
    2875       -1,    -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2876       -1,   155,   156,    -1,    -1,    -1,    -1,    -1,  1145,  1187,
    2877       -1,    -1,    -1,    -1,    -1,  1541,  1542,   443,    -1,    -1,
    2878       -1,    -1,    -1,  1549,  1550,    -1,    -1,    -1,    -1,    -1,
    2879       -1,    -1,    -1,    -1,    -1,   189,    -1,    -1,    -1,    -1,
    2880       -1,    -1,   196,   469,    -1,    -1,    -1,    -1,    -1,   475,
    2881     1187,    -1,    -1,    -1,   480,     3,     4,     5,     6,     7,
    2882        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3470      -1,  1099,    -1,   368,    -1,    -1,   371,    -1,    -1,    -1,
     3471      -1,    37,    38,    -1,    40,    41,    -1,    43,    -1,    -1,
     3472      46,    47,    48,    49,    50,    51,    52,    53,   695,    -1,
     3473      56,    57,    -1,   398,    -1,    61,    62,   402,    64,    -1,
     3474      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3475      76,   962,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3476      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,
     3477      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3478      -1,    -1,    -1,   109,    -1,   111,   997,    -1,   114,   756,
     3479    1188,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
     3480      -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,
     3481      -1,    -1,    -1,    -1,   479,    -1,    -1,   482,    -1,   786,
     3482      -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3483      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3484      24,    25,    26,    27,  1055,    -1,    30,    31,    32,    -1,
     3485    1061,    -1,    -1,    -1,    -1,    39,   521,    -1,    -1,    -1,
     3486     525,   526,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3487      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3488      26,    27,    28,    67,  1095,  1283,    -1,    -1,    72,  1100,
     3489      74,    75,    76,    39,    -1,    -1,    -1,  1108,    -1,    83,
     3490      84,    -1,    -1,    -1,    -1,   570,   571,    -1,    -1,    -1,
     3491      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3492      -1,    67,    -1,    -1,   589,   590,    -1,   111,    -1,    -1,
     3493    1141,    -1,    78,   117,   118,   600,    -1,   602,   603,   906,
     3494      -1,    -1,  1153,    -1,   609,  1156,    -1,  1158,    -1,    -1,
     3495      -1,    -1,    -1,    -1,   619,   620,    -1,    -1,    -1,    -1,
     3496     625,  1172,  1173,    -1,    -1,    -1,    -1,    -1,    -1,   634,
     3497     635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498      -1,    -1,    -1,  1194,   951,    -1,    -1,   652,    -1,    -1,
     3499      -1,    -1,   657,   658,    -1,    -1,   661,   662,    -1,    -1,
     3500      -1,    -1,    -1,   668,    -1,    -1,    -1,    -1,    -1,    -1,
     3501      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   986,
     3502      -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3503    1241,    -1,   999,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,   710,   711,    -1,    -1,    10,
     3505      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3506      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3507      31,    32,    -1,  1040,    -1,    -1,    -1,    -1,    39,   744,
     3508     745,    -1,    -1,    -1,   749,   750,    -1,    -1,    -1,    -1,
     3509      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3510      -1,    -1,    -1,    -1,    -1,  1316,    67,  1318,    -1,    -1,
     3511      -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,  1330,
     3512      -1,  1332,    -1,    -1,    -1,    -1,    -1,    -1,   793,    -1,
     3513      -1,    -1,  1530,    -1,    -1,    -1,   801,    -1,  1349,    -1,
     3514      -1,    -1,    -1,   808,   809,    -1,    -1,   812,    -1,   814,
     3515    1117,    -1,    -1,    -1,  1365,  1366,   117,   118,    -1,   824,
     3516      -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,  1379,    -1,
     3517      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3518      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1400,
     3519      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1409,    -1,
     3520      -1,  1412,    -1,  1414,  1415,  1416,    -1,    -1,    -1,    -1,
     3521    1177,  1178,    10,    11,    12,    13,    14,    15,    16,    17,
    28833522      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2884       -1,    -1,    30,    31,    32,    -1,    -1,  1224,    -1,    -1,
    2885      516,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2886       -1,    -1,    -1,    -1,  1282,   531,    -1,    -1,    -1,    -1,
    2887       -1,    -1,    -1,    -1,   268,    -1,    -1,    -1,    -1,    67,
    2888       -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,
    2889       -1,    -1,    -1,    -1,    -1,    -1,  1273,  1274,    -1,    -1,
    2890       -1,    -1,    -1,   569,    -1,  1282,    -1,    -1,    -1,    -1,
    2891       -1,    -1,   578,    -1,    -1,    -1,    -1,    -1,    -1,   585,
    2892      146,    -1,    -1,    -1,    -1,   591,   114,    -1,   322,    -1,
    2893      156,    -1,    -1,    -1,   600,    -1,   330,   331,    -1,   333,
    2894      334,    -1,   168,   169,    -1,    -1,    -1,    -1,    -1,    -1,
    2895      344,    -1,     7,    -1,   348,    10,    11,    12,    13,    14,
     3523      -1,   896,    30,    31,    32,    -1,    -1,    -1,   903,   904,
     3524     905,    39,   907,  1454,    -1,  1456,   911,  1458,    -1,    -1,
    28963525      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2897       -1,    -1,    -1,   367,   640,    -1,   370,    -1,    -1,    -1,
    2898       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3526      -1,    -1,  1473,    -1,    -1,    -1,    -1,   932,   933,    67,
     3527      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
     3528      -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
    28993529      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2900       -1,    -1,    -1,   397,    -1,    -1,    -1,   401,    -1,    -1,
    2901      676,    66,    67,   239,    -1,    -1,  1393,    72,   684,    -1,
    2902       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    2903       -1,    86,    87,    -1,    -1,    -1,    -1,   263,   432,    -1,
    2904       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   715,
    2905       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   725,
    2906      726,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    2907       -1,    -1,  1449,    -1,  1451,    -1,    -1,    -1,    -1,    -1,
    2908       -1,    -1,    -1,    -1,   478,    -1,    -1,   481,    -1,    -1,
    2909       -1,    -1,   758,    -1,    -1,    -1,    -1,   763,    -1,    -1,
    2910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1485,    -1,
    2911     1487,  1529,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2912       -1,    -1,    -1,    -1,    -1,    -1,   520,    -1,    -1,    -1,
    2913      524,   525,    -1,    -1,    -1,    -1,    -1,  1514,    -1,    -1,
     3530      -1,    -1,   967,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3531      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3532     118,    -1,    -1,   988,   989,    -1,    -1,    -1,    -1,    -1,
     3533      -1,    -1,    -1,    -1,   999,    -1,    -1,    -1,    -1,    -1,
     3534    1005,  1006,    -1,  1008,  1009,  1010,    -1,    -1,    -1,    -1,
     3535      -1,    -1,    -1,    -1,    -1,  1020,  1021,    -1,    -1,    -1,
     3536      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     3537       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3538      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3539      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
     3540      -1,    -1,    36,    37,    38,    39,    40,    -1,    -1,    -1,
     3541      -1,    -1,    -1,    -1,    -1,  1382,    -1,    -1,  1083,    -1,
     3542    1085,    -1,    -1,    -1,    -1,  1090,    -1,    -1,    -1,    -1,
     3543      -1,  1398,    66,    67,  1099,    69,    -1,    71,    72,    -1,
     3544      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3545      84,    -1,    86,    87,    -1,    -1,    -1,  1122,  1123,  1124,
    29143546      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2915       -1,    -1,    -1,   379,    -1,    -1,    -1,    -1,    -1,    -1,
    2916       -1,   827,    -1,    -1,    -1,    -1,    -1,    -1,   834,    -1,
    2917       -1,    -1,    -1,    -1,    -1,   569,   570,    -1,    -1,    -1,
    2918       -1,   847,    -1,   849,    -1,    -1,    -1,    -1,    -1,    -1,
    2919       -1,    -1,    -1,    -1,   588,   589,    -1,   863,    -1,    -1,
    2920       -1,    -1,    -1,   869,    -1,   599,    -1,   601,   602,    -1,
    2921       -1,    -1,    -1,    -1,   608,   881,    -1,    -1,   884,    -1,
    2922       -1,    -1,    -1,    -1,   618,   619,    -1,    -1,    -1,    -1,
    2923      624,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   633,
    2924      634,   635,    -1,    -1,    -1,    -1,    -1,   473,    -1,    -1,
    2925       -1,    -1,    -1,    -1,    -1,    -1,    -1,   651,    -1,    -1,
    2926       -1,    -1,   656,   657,    -1,    -1,   660,   661,    -1,    -1,
    2927       -1,    -1,    -1,   667,    -1,    -1,    -1,    -1,    -1,    -1,
    2928       -1,    -1,    -1,    -1,    -1,    -1,   512,    -1,    -1,    -1,
    2929       -1,    -1,   686,    -1,    -1,   961,    -1,    -1,    -1,   525,
    2930       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
    2931       -1,    -1,    -1,    -1,    -1,   709,   710,    -1,    -1,   545,
    2932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2933      996,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2934       -1,   567,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   743,
    2935      744,   577,    -1,    -1,   748,   749,    -1,    -1,   584,    -1,
    2936       -1,    -1,    -1,   589,    -1,    -1,    -1,    -1,    -1,    -1,
    2937       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2938       20,    21,    22,    23,    24,    25,    26,    27,  1054,    -1,
    2939       30,    31,    32,    -1,  1060,    -1,    -1,    -1,   792,    39,
    2940       -1,    -1,    -1,    -1,    -1,    -1,   800,    -1,    -1,    -1,
    2941       -1,    -1,   638,   807,   808,    -1,    -1,   811,    -1,   813,
    2942      646,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1094,   823,
    2943       -1,    -1,    72,  1099,    74,    75,    76,    -1,    -1,    -1,
    2944       -1,  1107,    -1,    83,    84,    -1,    10,    11,    12,    13,
    2945       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2946       24,    25,    26,    27,    28,    -1,    -1,    -1,    -1,   109,
    2947       -1,   111,    -1,    -1,  1140,    39,    -1,   117,   118,    -1,
    2948       -1,    -1,    -1,    -1,    -1,    -1,  1152,    -1,    -1,  1155,
    2949       -1,  1157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2950       -1,   895,    -1,    67,    -1,  1171,  1172,    -1,   902,   903,
    2951      904,    -1,   906,    -1,    78,    -1,   910,    -1,   744,    -1,
    2952      746,    -1,    -1,    -1,    -1,    -1,    -1,  1193,    -1,    -1,
    2953      756,    -1,    -1,    -1,    -1,    -1,   762,   931,   932,    -1,
    2954       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2955       20,    21,    22,    23,    24,    25,    26,    27,     7,    -1,
    2956       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    39,
    2957       -1,    -1,   966,    -1,  1240,    -1,    -1,    -1,   804,   805,
    2958       -1,    -1,   808,    -1,    -1,    -1,    -1,    -1,    37,    38,
    2959       39,    40,    -1,   987,   988,    -1,   822,    67,    -1,    -1,
    2960       -1,    -1,    -1,    -1,   998,    -1,    -1,    -1,    -1,    -1,
    2961     1004,  1005,    -1,  1007,  1008,  1009,    -1,    66,    67,    -1,
    2962       -1,    -1,    -1,    72,    -1,  1019,  1020,    76,    -1,    -1,
    2963       79,    80,    81,    82,    83,    84,   862,    86,    87,    -1,
    2964      866,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1315,
    2965       -1,  1317,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2966      109,    -1,   111,  1329,    -1,  1331,    -1,    -1,   117,   118,
    2967      119,   120,   121,   122,    -1,    -1,    -1,   903,    -1,    -1,
    2968       -1,    -1,  1348,    -1,    -1,    -1,    -1,    -1,  1082,    -1,
    2969     1084,    -1,    -1,    -1,    -1,  1089,    -1,    -1,  1364,  1365,
    2970       -1,    -1,    -1,    -1,  1098,    -1,    -1,    -1,    -1,  1375,
    2971       -1,    -1,  1378,    -1,    -1,    -1,   942,    -1,    -1,    -1,
    2972       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1121,  1122,  1123,
    2973       -1,    -1,    -1,  1399,    -1,    37,    38,    -1,    40,    -1,
    2974       -1,    -1,  1408,    -1,   970,  1411,    -1,  1413,  1414,  1415,
    2975      976,  1145,    -1,    -1,   980,    -1,    -1,    -1,    -1,    -1,
    2976       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
    2977       72,    -1,    -1,    -1,    76,  1001,    -1,    79,    80,    81,
    2978       82,    83,    84,    -1,    86,    87,  1012,  1453,    -1,  1455,
    2979       -1,  1457,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2980       -1,    -1,    -1,    -1,    -1,    -1,  1472,   109,  1034,   111,
    2981     1036,    -1,  1206,    -1,   116,   117,   118,   119,   120,   121,
    2982      122,    -1,    -1,    -1,    -1,  1051,  1052,    -1,    -1,    -1,
    2983     1224,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2984       -1,    -1,    -1,    -1,    -1,    -1,  1072,    -1,    -1,    -1,
    2985       -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    2986        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2987       19,    20,    21,    22,    23,    24,    25,    26,    27,  1273,
    2988     1274,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
    2989       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2990       -1,  1127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2991       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,  1145,
    2992       69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,
    2993       -1,    -1,    -1,    -1,  1160,  1161,    -1,     3,     4,     5,
    2994        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2995       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2996       26,    27,   111,    -1,    30,    31,    32,    33,   117,   118,
    2997       36,    37,    38,    39,    40,    41,    -1,    43,    -1,    -1,
    2998       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    2999       -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,  1393,
    3000       66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3547      -1,    37,    38,    -1,    40,   109,    -1,   111,    -1,    -1,
     3548      -1,  1146,    -1,   117,   118,   119,   120,   121,   122,    -1,
     3549      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,    -1,
     3550      66,  1468,  1469,    -1,    -1,    -1,    72,    -1,    74,    75,
    30013551      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    30023552      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30033553      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3004       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3554      -1,    -1,  1207,   109,    -1,   111,    -1,   113,   114,    -1,
    30053555      -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3006       -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,
    3007       -1,    -1,    -1,    -1,    -1,  1301,    -1,    -1,  1304,    -1,
    3008       -1,    -1,    -1,    -1,    -1,    -1,  1480,    -1,    -1,    -1,
    3009       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3010       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3011     1504,  1505,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3012       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3013       -1,    -1,    -1,    -1,    -1,  1529,     3,     4,     5,     6,
    3014        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3015       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3016       27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
    3017       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3018       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3019       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
    3020       67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
    3021       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3022       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3023       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3024       76,    -1,   109,    -1,   111,    -1,    -1,    83,    84,    -1,
    3025      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3026       -1,    -1,    -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,
    3027       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3028       -1,   117,   118,    -1,    -1,    -1,    -1,    -1,  1514,     3,
    3029        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3030       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3031       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
    3032       -1,    -1,    36,    37,    38,    39,    40,    10,    11,    12,
    3033       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3034       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3035       -1,    -1,    66,    67,    -1,    69,    39,    71,    72,    -1,
    3036       74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3037       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3038       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
    3039       -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3040       83,    84,    -1,   117,   118,   119,   120,   121,   122,     4,
     3556    1225,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
    30413557       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    30423558      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3043       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3044       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    10,
    3045       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3046       21,    22,    23,    24,    25,    26,    27,    28,    -1,    -1,
    3047       -1,    66,    67,    -1,    69,    -1,    71,    72,    39,    74,
     3559      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
     3560      -1,    36,    37,    38,    39,    40,    41,    -1,    43,  1274,
     3561    1275,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3562      -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
     3563      -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    30483564      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    30493565      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3050       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    3051       -1,    -1,    -1,    -1,   109,    -1,   111,    78,    -1,    -1,
    3052       -1,   116,   117,   118,   119,   120,   121,   122,     4,     5,
    3053        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3054       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3055       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3056       -1,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    3057       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3058       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3059       66,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
    3060       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3061       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3062       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3063       75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3064      116,   117,   118,   119,   120,   121,   122,     4,     5,     6,
    3065        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3066       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3067       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3068       37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    3069       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3070       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,
    3071       67,    -1,    69,    39,    71,    72,    -1,    74,    75,    76,
    3072       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3073       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3074       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
    3075       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,
    3076      117,   118,   119,   120,   121,   122,     4,     5,     6,     7,
     3566      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3567      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3568      -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
     3569      -1,    -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    -1,
     3570      -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
     3571      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3572      20,    21,    22,    23,    24,    25,    26,    27,    -1,  1394,
     3573      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
     3574      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3575      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3576      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    69,
     3577      39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3578      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3579      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3580      -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,   109,
     3581      -1,   111,    -1,    -1,    83,    84,  1481,   117,   118,   119,
     3582     120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3583      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3584    1505,  1506,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3585      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3586      -1,    -1,    -1,    -1,    -1,  1530,     4,     5,     6,     7,
    30773587       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    30783588      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    30793589      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
    3080       38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3081       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3082       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
    3083       -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3590      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
     3591      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3592      27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
     3593      -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
    30843594      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    30853595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3086       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3087       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
     3596      67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,
     3597      -1,   109,    -1,   111,    -1,    -1,    83,    84,   116,   117,
    30883598     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    30893599       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    30903600      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    30913601      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    3092       39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3093       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3094       -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,
    3095       69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3602      39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
     3603      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3604      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
     3605      69,    39,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    30963606      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3098       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3099      109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3607      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3608      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
     3609     109,    -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,
    31003610     119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
    31013611      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    31023612      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    31033613      30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,
    3104       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3105       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3106       -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,
    3107       -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3614      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3615      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3616      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    69,
     3617      39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    31083618      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3109       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3110       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    3111       -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
     3619      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3620      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
     3621      -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
    31123622     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
    31133623      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     
    31223632      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    31233633     111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
    3124      121,   122,     0,    -1,    -1,     3,     4,     5,     6,     7,
     3634     121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3635      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3636      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3637      32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     3638      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3639      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3640      -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
     3641      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3642      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3643      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3644      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3645      -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
     3646     122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3647      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3648      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3649      -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
     3650      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3651      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3652      -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
     3653      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
     3654      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3655      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3656      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3657      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3658       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3659      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3660      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3661      -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,
     3662      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3663      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3664      -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,
     3665      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3666      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3667      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3668      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3669      -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     0,
     3670      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3671      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3672      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3673      31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,
     3674      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3675      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3676      -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,    -1,
     3677      71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3678      -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,
     3679      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3680      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
     3681     111,    -1,    -1,    -1,    -1,    -1,   117,   118,     3,     4,
     3682       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3683      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3684      25,    26,    27,    -1,    -1,    30,    31,    32,    33,    -1,
     3685      -1,    36,    -1,    -1,    39,    40,    -1,    -1,    -1,    -1,
     3686      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3687      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,
     3688      -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     3689      75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
     3690      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3691      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3692      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3693     115,    -1,   117,   118,     3,     4,     5,     6,     7,     8,
     3694       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3695      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3696      -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
     3697      39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3698      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3699      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,
     3700      69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3701      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
     3702      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704     109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3705       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3706      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3707      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3708      -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    10,    11,
     3709      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3710      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3711      32,    33,    34,    35,    67,    -1,    69,    39,    71,    72,
     3712      -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
     3713      83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3714      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3715      -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
     3716      -1,    -1,    -1,    -1,   117,   118,     3,     4,     5,     6,
     3717       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3718      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3719      27,    28,    -1,    30,    31,    32,    33,    -1,    -1,    36,
     3720      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3721      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3723      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3724      -1,    78,     3,     4,     5,     6,     7,     8,     9,    10,
     3725      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3726      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3727      31,    32,    33,    -1,   111,    36,    -1,    -1,    39,    -1,
     3728     117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3729      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3730      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3731      71,    -1,    -1,    74,    75,     3,     4,     5,     6,     7,
    31253732       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    31263733      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3127       -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
    3128       -1,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3734      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3735     111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
    31293736      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3130       -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,
    3131       -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
    3132       -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
    3133       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3134       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3135       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
    3136      118,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3137       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3138       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3139       32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,    -1,
    3140       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3141       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3142       -1,    -1,    64,    -1,    -1,    67,    -1,    69,    -1,    71,
    3143       72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,    -1,
    3144       -1,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3145       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3146       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    3147       -1,    -1,    -1,    -1,    -1,   117,   118,     3,     4,     5,
    3148        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3149       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3150       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3151       -1,    -1,    -1,    39,    -1,    10,    11,    12,    13,    14,
    3152       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3153       25,    26,    27,    -1,    -1,    30,    31,    32,    33,    34,
    3154       35,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
    3155       76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3156       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3157       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3158       75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3159       -1,   117,   118,     3,     4,     5,     6,     7,     8,     9,
    3160       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3161       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3162       30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
    3163       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3164       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3165       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3166       -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,     4,
     3737      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3738      -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,     4,
    31673739       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    31683740      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    31693741      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3170       -1,   111,    -1,    -1,    39,    -1,    -1,   117,   118,    -1,
    3171       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3742      -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,   117,
     3743     118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    31723744      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    31733745      -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     
    31903762      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    31913763      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3192       67,    -1,    69,   109,    71,   111,    -1,    74,    75,    -1,
     3764      67,    -1,    69,    -1,    71,   111,    -1,    74,    75,    -1,
    31933765      -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    31943766      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,
     
    32533825      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    32543826      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
    3255       -1,    39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3827      -1,    39,    40,    72,    -1,    74,    75,    76,    -1,    -1,
    32563828      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    32573829      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3258       -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
    3259      109,   110,   111,    -1,    -1,    83,    84,    -1,   117,   118,
     3830      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
     3831     109,   110,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    32603832     119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
    32613833      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3262       26,    27,    -1,   111,    30,    31,    32,    -1,    -1,   117,
     3834      26,    27,    -1,   111,    30,    31,    32,   115,    -1,   117,
    32633835     118,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    32643836      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    32673839      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    32683840      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3269       -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3270       75,    -1,    -1,   109,    -1,   111,    -1,    -1,    83,    84,
     3841      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3842      75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    32713843      -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
    32723844      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    32753847      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    32763848      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3277       32,    -1,    -1,    66,    67,    -1,    -1,    39,    40,    72,
     3849      32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,    72,
    32783850      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    32793851      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     
    32833855      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    32843856      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3285       30,    31,    32,   115,    -1,   117,   118,    37,    38,    39,
     3857      30,    31,    32,    -1,    -1,   117,   118,    37,    38,    39,
    32863858      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    32873859      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    32883860      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,
    3289       39,    40,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3861      39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    32903862      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    32913863      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     
    32943866     120,   121,   122,    10,    11,    12,    13,    14,    15,    16,
    32953867      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3296       27,    -1,   111,    30,    31,    32,   115,    -1,   117,   118,
    3297       37,    38,    39,    40,    -1,    10,    11,    12,    13,    14,
    3298       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3299       25,    26,    27,    28,    -1,    30,    31,    32,    -1,    66,
    3300       67,    -1,    -1,    -1,    39,    72,    -1,    74,    75,    76,
    3301       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3868      27,    -1,   111,    30,    31,    32,    -1,    -1,   117,   118,
     3869      37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,
     3870      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3871      19,    20,    21,    22,    23,    24,    25,    26,    27,    66,
     3872      67,    30,    31,    32,    -1,    72,    -1,    74,    75,    76,
     3873      39,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    33023874      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3303       -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3304       75,    76,   109,    78,   111,    -1,    -1,    -1,    83,    84,
    3305      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3306       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3307       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3308       -1,    -1,   117,   118,    10,    11,    12,    13,    14,    15,
     3875      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3876      -1,    -1,   109,    -1,   111,    74,    75,    -1,    -1,    -1,
     3877     117,   118,   119,   120,   121,   122,     3,     4,     5,     6,
     3878       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3879      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3880      27,    -1,   111,    30,    31,    32,    -1,    -1,   117,   118,
     3881      -1,    -1,    39,    -1,    -1,    -1,    10,    11,    12,    13,
     3882      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3883      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3884      67,    -1,    69,    -1,    71,    39,    -1,    74,    75,    -1,
     3885      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    33093886      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3310       26,    27,    28,    -1,    30,    31,    32,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    39,    10,    11,    12,    13,    14,    15,
    3312       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3313       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3314       -1,    67,    -1,    39,    -1,    -1,    72,    -1,    74,    75,
    3315       76,    -1,    78,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3316       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3317       -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,
    3318       76,    -1,    -1,    -1,    -1,   111,    -1,    83,    84,    -1,
    3319       -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3320       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3321       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3322       -1,   117,   118,    10,    11,    12,    13,    14,    15,    16,
    3323       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3324       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3325       -1,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
    3326       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3327       27,    28,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3328       67,    -1,    39,    -1,    -1,    72,    -1,    74,    75,    76,
    3329       -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,
    3330       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3331       67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
    3332       -1,    78,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3333      117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3334       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3335       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3336      117,   118,    10,    11,    12,    13,    14,    15,    16,    17,
     3887      26,    27,    -1,    67,    30,    31,    32,    -1,    72,    -1,
     3888      74,    75,    76,    39,    -1,    -1,    -1,   114,    -1,    83,
     3889      84,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    33373890      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3338       28,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3339       -1,    39,    10,    11,    12,    13,    14,    15,    16,    17,
    3340       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3341       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    67,
    3342       -1,    39,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
    3343       78,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3344       19,    20,    21,    22,    23,    24,    25,    26,    27,    67,
    3345       -1,    30,    31,    32,    -1,    -1,    74,    75,    -1,    -1,
    3346       39,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
    3347      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3348       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3349       -1,    -1,    -1,   111,    -1,    74,    75,    -1,    -1,   117,
     3891      -1,    67,    30,    31,    32,   109,    72,   111,    74,    75,
     3892      76,    39,    -1,   117,   118,    -1,    -1,    83,    84,    -1,
     3893      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3894      20,    21,    22,    23,    24,    25,    26,    27,    28,    67,
     3895      30,    31,    32,   109,    72,   111,    74,    75,    76,    39,
     3896      -1,   117,   118,    -1,    -1,    83,    84,    -1,    10,    11,
     3897      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3898      22,    23,    24,    25,    26,    27,    28,    67,    30,    31,
     3899      32,   109,    -1,   111,    74,    75,    -1,    39,    78,   117,
    33503900     118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    33513901      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3352       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3353       39,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    3354       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3355       20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
    3356       30,    31,    32,    -1,    -1,    74,    75,    -1,    -1,    39,
    3357       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3358       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3359       30,    31,    32,    -1,    -1,    -1,    -1,    67,    -1,    39,
    3360       -1,    -1,   111,    -1,    74,    75,    -1,    -1,   117,   118,
     3902      -1,    30,    31,    32,    -1,    67,    -1,    -1,    -1,   109,
     3903      39,   111,    74,    75,    -1,    -1,    78,   117,   118,    -1,
    33613904      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3362       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3363       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3364       -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,
    3365       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3366       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3367       -1,   111,    30,    31,    32,    -1,    -1,   117,   118,    -1,
    3368       -1,    39,    10,    11,    12,    13,    14,    15,    16,    17,
    3369       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3370       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    67,
    3371       -1,    39,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
    3372       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3373       20,    21,    22,    23,    24,    25,    26,    27,    -1,    67,
    3374       30,    31,    32,    -1,    -1,    -1,    74,    75,    -1,    39,
    3375       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
    3376      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3377       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3378       -1,    -1,    -1,   111,    74,    75,    -1,    -1,    -1,   117,
    3379      118,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3380       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3381       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3382       -1,    -1,    -1,    -1,    -1,    -1,    39,   117,   118,    -1,
     3905      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3906      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   111,
     3907      -1,    -1,    -1,    -1,    -1,   117,   118,     4,     5,     6,
     3908       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3909      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3910      27,    -1,   111,    30,    31,    32,    -1,    -1,   117,   118,
     3911      -1,    -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,
     3912      43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
     3913      53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,
     3914      67,    64,    69,    66,    71,    -1,    -1,    74,    75,    72,
     3915      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3916      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    33833917      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3918      -1,    -1,    -1,   110,    -1,    -1,   109,    -1,   111,    -1,
     3919      -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3920      -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,   132,
     3921       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3922      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3923      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3924      -1,    -1,    -1,    -1,    -1,    39,    -1,    37,    38,    -1,
     3925      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
     3926      50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    -1,
     3927      -1,    61,    62,    67,    64,    69,    66,    71,    -1,    -1,
     3928      74,    75,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3929      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3930      -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3931      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3932      -1,   111,    -1,    -1,   114,    -1,    -1,   117,   118,   119,
     3933     120,   121,   122,    -1,    -1,    37,    38,   127,    40,    41,
     3934      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
     3935      52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
     3936      62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     3937      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     3938      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    33843939      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3385       -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
    3386       -1,    74,    75,    37,    38,    -1,    40,    41,    -1,    43,
     3940      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     3941      -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,   121,
     3942     122,    -1,    -1,    37,    38,   127,    40,    41,    -1,    43,
    33873943      -1,    -1,    46,    47,    48,    49,    50,    51,    52,    53,
    3388       -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,
    3389       64,    -1,    66,    -1,    -1,    -1,    -1,   110,    72,    -1,
     3944      -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,
     3945      64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
    33903946      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    33913947      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3392       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3948      37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    33933949      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3394      114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    3395       -1,    37,    38,   127,    40,    41,    -1,    43,   132,    -1,
    3396       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    3397       -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,
    3398       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    3399       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3400       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3401       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3402       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
    3403       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3404       -1,   127,    -1,    -1,    -1,    -1,   132,     4,     5,     6,
    3405        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3406       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3407       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3408       -1,    -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,
    3409       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    3410       53,    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,
    3411       67,    64,    69,    66,    71,    -1,    -1,    74,    75,    72,
    3412       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3413       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    96,
    3414       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3415       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    3416       -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3417       -1,    -1,    37,    38,   127,    40,    41,    -1,    43,    44,
    3418       45,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3419       -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3420       -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3421       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3422       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3423       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3424       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
    3425       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3426       37,    38,   127,    40,    41,    -1,    43,    -1,    -1,    46,
    3427       47,    48,    49,    50,    51,    52,    53,    -1,    -1,    -1,
    3428       57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,
    3429       -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3950     114,    -1,    -1,   117,   118,   119,   120,   121,   122,    66,
     3951      -1,    -1,    -1,   127,    -1,    72,    -1,    -1,    -1,    76,
    34303952      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    34313953      87,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,
    34323954      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3433       -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
     3955      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,
    34343956     117,   118,   119,   120,   121,   122,    66,    -1,    -1,    -1,
    3435      127,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3957      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    34363958      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    34373959      -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
     
    34503972      87,    -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,
    34513973      40,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3452       -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,    40,
     3974      -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    34533975     117,   118,   119,   120,   121,   122,    66,    -1,    -1,    -1,
    34543976      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3455       80,    81,    82,    83,    84,    66,    86,    87,    -1,    -1,
    3456       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    3457       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,   109,
    3458       -1,    -1,    -1,    37,    38,    -1,    40,   117,   118,   119,
    3459      120,   121,   122,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3460       -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
    3461      121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
    3462       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3463       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3977      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    34643978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3465       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
    3466       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     4,
    3467        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3468       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3469       25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3470       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
     3979      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3980      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
     3981     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
     3982      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3983      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    -1,
     3984      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
    34713985      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34723986      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3473       -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3474       75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
    3475        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3476       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3477       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3478       -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
     3987      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3988      71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
     3989      -1,    -1,    83,    84,     3,     4,     5,     6,     7,     8,
     3990       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3991      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3992      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3993      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3994      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3995      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3996      69,    -1,    71,    -1,    -1,    74,    75,     3,     4,     5,
     3997       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3998      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3999      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     4000      -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    34794001      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34804002      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3481       -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
    3482       -1,    74,    75,     3,     4,     5,     6,     7,     8,     9,
    3483       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3484       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3485       30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     4003      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
     4004       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     4005      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     4006      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     4007      -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    34864008      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34874009      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3488       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3489       -1,    71,    -1,    -1,    74,    75,     4,     5,     6,     7,
    3490        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3491       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3492       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3493       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3495       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3496       -1,    69,    -1,    71,    -1,    -1,    74,    75
     4010      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     4011      74,    75
    34974012};
    34984013
    3499   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    3500      symbol of state STATE-NUM.  */
     4014/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
     4015   symbol of state STATE-NUM.  */
    35014016static const yytype_uint16 yystos[] =
    35024017{
     
    35054020      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    35064021      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    3507       76,    83,    84,   109,   111,   117,   118,   137,   140,   149,
    3508      198,   212,   213,   214,   215,   216,   217,   218,   219,   220,
    3509      221,   222,   223,   224,   225,   226,   227,   228,   229,   231,
    3510      232,   233,   234,   235,   236,   237,   239,   240,   241,   242,
    3511      243,   244,   246,   254,   255,   282,   283,   284,   292,   295,
    3512      301,   302,   304,   306,   307,   313,   318,   322,   323,   324,
    3513      325,   326,   327,   328,   329,   349,   366,   367,   368,   369,
    3514       72,   139,   140,   149,   215,   217,   225,   227,   236,   240,
    3515      242,   283,    82,   109,   311,   312,   313,   311,   311,    72,
    3516       74,    75,    76,   138,   139,   272,   273,   293,   294,    74,
    3517       75,   273,   109,   304,    11,   199,   109,   149,   318,   323,
    3518      324,   325,   327,   328,   329,   112,   134,   111,   218,   225,
    3519      227,   322,   326,   365,   366,   369,   370,   135,   107,   131,
    3520      276,   114,   135,   173,    74,    75,   137,   271,   135,   135,
    3521      135,   116,   135,    74,    75,   109,   149,   308,   317,   318,
    3522      319,   320,   321,   322,   326,   330,   331,   332,   333,   334,
    3523      340,     3,    28,    78,   238,     3,     5,    74,   111,   149,
    3524      217,   228,   232,   234,   243,   284,   322,   326,   369,   215,
    3525      217,   227,   236,   240,   242,   283,   322,   326,    33,   233,
    3526      233,   228,   234,   135,   233,   228,   233,   228,    75,   109,
    3527      114,   273,   284,   114,   273,   233,   228,   116,   135,   135,
    3528        0,   134,   109,   173,   311,   311,   134,   111,   225,   227,
    3529      367,   271,   271,   131,   227,   109,   149,   308,   318,   322,
    3530      111,   149,   369,   305,   230,   313,   109,   289,   109,   109,
     4022      76,    83,    84,   109,   111,   117,   118,   137,   140,   150,
     4023     199,   213,   214,   215,   216,   217,   218,   219,   220,   221,
     4024     222,   223,   224,   225,   226,   227,   228,   229,   230,   232,
     4025     233,   234,   235,   236,   237,   238,   240,   241,   242,   243,
     4026     244,   245,   247,   255,   256,   283,   284,   285,   293,   296,
     4027     302,   303,   305,   307,   308,   314,   319,   323,   324,   325,
     4028     326,   327,   328,   329,   330,   350,   367,   368,   369,   370,
     4029      72,   139,   140,   150,   216,   218,   226,   228,   237,   241,
     4030     243,   284,    82,   109,   312,   313,   314,   312,   312,    72,
     4031      74,    75,    76,   138,   139,   273,   274,   294,   295,    74,
     4032      75,   274,   109,   305,    11,   200,   109,   150,   319,   324,
     4033     325,   326,   328,   329,   330,   112,   134,   111,   219,   226,
     4034     228,   323,   327,   366,   367,   370,   371,   135,   107,   131,
     4035     277,   114,   135,   174,    74,    75,   137,   272,   135,   135,
     4036     135,   116,   135,    74,    75,   109,   150,   309,   318,   319,
     4037     320,   321,   322,   323,   327,   331,   332,   333,   334,   335,
     4038     341,     3,    28,    78,   239,     3,     5,    74,   111,   150,
     4039     218,   229,   233,   235,   244,   285,   323,   327,   370,   216,
     4040     218,   228,   237,   241,   243,   284,   323,   327,    33,   234,
     4041     234,   229,   235,   135,   234,   229,   234,   229,    75,   109,
     4042     114,   274,   285,   114,   274,   234,   229,   116,   135,   135,
     4043       0,   134,   109,   174,   312,   312,   134,   111,   226,   228,
     4044     368,   272,   272,   131,   228,   109,   150,   309,   319,   323,
     4045     111,   150,   370,   306,   231,   314,   109,   290,   109,   109,
    35314046      51,   109,    37,    38,    40,    66,    72,    76,    79,    80,
    35324047      81,    82,    86,    87,   109,   111,   119,   120,   121,   122,
    3533      136,   140,   141,   142,   143,   148,   149,   150,   151,   152,
     4048     136,   140,   141,   142,   143,   144,   149,   150,   151,   152,
    35344049     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
    3535      164,   167,   225,   275,   291,   365,   370,   227,   110,   110,
    3536      110,   110,   110,   110,   110,    74,    75,   111,   225,   271,
    3537      349,   367,   111,   117,   149,   164,   217,   218,   224,   227,
    3538      231,   232,   236,   239,   240,   242,   261,   262,   266,   267,
    3539      268,   269,   283,   349,   361,   362,   363,   364,   369,   370,
    3540      112,   109,   322,   326,   369,   109,   116,   132,   111,   114,
    3541      149,   164,   277,   277,   115,   134,   116,   132,   109,   116,
    3542      132,   116,   132,   116,   132,   311,   132,   318,   319,   320,
    3543      321,   331,   332,   333,   334,   227,   317,   330,    64,   310,
    3544      111,   311,   348,   349,   311,   311,   173,   134,   109,   311,
    3545      348,   311,   311,   227,   308,   109,   109,   226,   227,   225,
    3546      227,   112,   134,   225,   365,   370,   173,   134,   271,   276,
    3547      217,   232,   322,   326,   173,   134,   293,   227,   236,   132,
    3548      227,   227,   291,   247,   245,   257,   273,   256,   227,   293,
    3549      132,   132,   304,   134,   139,   270,     3,   135,   207,   208,
    3550      222,   224,   227,   134,   310,   109,   310,   164,   318,   227,
    3551      109,   134,   271,   114,    33,    34,    35,   225,   285,   286,
    3552      288,   134,   128,   131,   290,   134,   228,   233,   234,   271,
    3553      314,   315,   316,   109,   141,   109,   148,   109,   148,   151,
    3554      109,   148,   109,   109,   148,   148,   111,   164,   169,   173,
    3555      225,   274,   365,   369,   112,   134,    82,    85,    86,    87,
    3556      109,   111,   113,   114,    97,    98,    99,   100,   101,   102,
    3557      103,   104,   105,   106,   131,   166,   151,   151,   117,   123,
    3558      124,   119,   120,    88,    89,    90,    91,   125,   126,    92,
    3559       93,   118,   127,   128,    94,    95,   129,   131,   372,   109,
    3560      149,   344,   345,   346,   347,   348,   110,   116,   109,   348,
    3561      349,   109,   348,   349,   134,   109,   225,   367,   112,   134,
    3562      135,   111,   225,   227,   360,   361,   369,   370,   135,   109,
    3563      111,   149,   318,   335,   336,   337,   338,   339,   340,   341,
    3564      342,   343,   349,   350,   351,   352,   353,   354,   355,   149,
    3565      369,   227,   135,   135,   149,   225,   227,   362,   271,   225,
    3566      349,   362,   271,   109,   134,   134,   134,   112,   134,    72,
    3567      111,   113,   140,   273,   277,   278,   279,   280,   281,   134,
    3568      134,   134,   134,   134,   134,   308,   110,   110,   110,   110,
    3569      110,   110,   110,   317,   330,   109,   276,   112,   207,   134,
    3570      308,   169,   275,   169,   275,   308,   111,   207,   310,   173,
    3571      134,   207,   110,    40,   111,   115,   225,   248,   249,   250,
    3572      365,   114,   116,   371,   131,   258,   114,   227,   263,   264,
    3573      265,   268,   269,   110,   116,   173,   134,   117,   164,   134,
    3574      224,   227,   262,   361,   369,   302,   303,   109,   149,   335,
    3575      110,   116,   372,   273,   285,   109,   114,   273,   275,   285,
    3576      110,   116,   109,   141,   110,   130,   274,   274,   274,   145,
    3577      164,   275,   274,   112,   134,   110,   116,   110,   109,   149,
    3578      348,   356,   357,   358,   359,   110,   116,   164,   111,   139,
    3579      144,   145,   134,   111,   139,   144,   164,   151,   151,   151,
    3580      152,   152,   153,   153,   154,   154,   154,   154,   155,   155,
    3581      156,   157,   158,   159,   160,   130,   169,   164,   134,   345,
    3582      346,   347,   227,   344,   311,   311,   164,   275,   134,   270,
    3583      134,   225,   349,   362,   227,   231,   112,   112,   134,   369,
    3584      112,   109,   134,   318,   336,   337,   338,   341,   351,   352,
    3585      353,   112,   134,   227,   335,   339,   350,   109,   311,   354,
    3586      372,   311,   311,   372,   109,   311,   354,   311,   311,   311,
    3587      311,   349,   225,   360,   370,   271,   112,   116,   112,   116,
    3588      372,   225,   362,   372,   259,   260,   261,   262,   259,   259,
    3589      271,   164,   134,   111,   273,   130,   116,   371,   277,   111,
    3590      130,   281,    29,   209,   210,   271,   259,   139,   308,   139,
    3591      310,   109,   348,   349,   109,   348,   349,   141,   349,   173,
    3592      263,   110,   110,   110,   110,   112,   173,   207,   173,   114,
    3593      249,   250,   112,   134,   109,   130,   149,   251,   253,   317,
    3594      318,   330,   356,   116,   132,   116,   132,   273,   247,   273,
    3595      115,   162,   163,   257,   135,   135,   139,   222,   135,   135,
    3596      259,   109,   149,   369,   135,   115,   227,   286,   287,   135,
    3597      134,   134,   109,   135,   110,   315,   169,   170,   130,   132,
    3598      111,   141,   200,   201,   202,   110,   116,   110,   110,   110,
    3599      110,   111,   164,   357,   358,   359,   227,   356,   311,   311,
    3600      114,   151,   167,   164,   165,   168,   116,   135,   134,   110,
    3601      116,   164,   134,   115,   162,   130,   263,   110,   110,   110,
    3602      344,   263,   110,   259,   225,   362,   111,   117,   149,   164,
    3603      164,   227,   341,   263,   110,   110,   110,   110,   110,   110,
    3604      110,     7,   227,   335,   339,   350,   134,   134,   372,   134,
    3605      134,   110,   135,   135,   135,   135,   276,   135,   162,   163,
    3606      164,   309,   134,   277,   279,   115,   134,   211,   273,    40,
    3607       41,    43,    46,    47,    48,    49,    50,    51,    52,    53,
    3608       57,    61,    62,    72,   111,   127,   170,   171,   172,   173,
    3609      174,   175,   177,   178,   190,   192,   193,   198,   212,   307,
    3610       29,   135,   131,   276,   134,   134,   110,   135,   173,   247,
    3611      132,   132,   318,   163,   227,   252,   253,   252,   273,   311,
    3612      115,   258,   371,   110,   116,   112,   112,   135,   227,   116,
    3613      372,   289,   110,   285,   215,   217,   225,   297,   298,   299,
    3614      300,   291,   110,   110,   130,   163,   109,   110,   130,   116,
    3615      139,   112,   110,   110,   110,   356,   278,   116,   135,   168,
    3616      112,   139,   146,   147,   145,   135,   146,   162,   167,   135,
    3617      109,   348,   349,   135,   135,   134,   135,   135,   135,   164,
    3618      110,   135,   109,   348,   349,   109,   354,   109,   354,   349,
    3619      226,     7,   117,   135,   164,   263,   263,   262,   266,   266,
    3620      267,   116,   116,   110,   110,   112,    96,   122,   135,   135,
    3621      146,   277,   164,   116,   132,   212,   216,   227,   231,   109,
    3622      109,   171,   109,   109,    72,   132,    72,   132,    72,   117,
    3623      170,   109,   173,   165,   165,   130,   112,   143,   132,   135,
    3624      134,   135,   211,   110,   164,   263,   263,   311,   110,   115,
    3625      251,   115,   134,   110,   134,   135,   308,   115,   134,   135,
    3626      135,   110,   114,   200,   112,   163,   132,   200,   202,   110,
    3627      109,   348,   349,   371,   165,   112,   135,    85,   113,   116,
    3628      135,   112,   135,   110,   134,   110,   110,   112,   112,   112,
    3629      135,   110,   134,   134,   134,   164,   164,   135,   112,   135,
    3630      135,   135,   135,   134,   134,   163,   163,   112,   112,   135,
    3631      135,   273,   227,   169,   169,    47,   169,   134,   132,   132,
    3632      132,   169,   132,   169,    58,    59,    60,   194,   195,   196,
    3633      132,    63,   132,   311,   114,   175,   115,   132,   135,   135,
    3634       96,   268,   269,   110,   298,   116,   132,   116,   132,   115,
    3635      296,   130,   141,   110,   110,   130,   134,   115,   112,   111,
    3636      147,   111,   147,   147,   112,   112,   263,   112,   263,   263,
    3637      263,   135,   135,   112,   112,   110,   110,   112,   116,    96,
    3638      262,    96,   135,   112,   112,   110,   110,   109,   110,   170,
    3639      191,   212,   132,   110,   109,   109,   173,   196,    58,    59,
    3640      164,   171,   144,   110,   110,   114,   134,   134,   297,   141,
    3641      203,   109,   132,   203,   263,   134,   134,   135,   135,   135,
    3642      135,   112,   112,   134,   135,   112,   171,    44,    45,   114,
    3643      181,   182,   183,   169,   171,   135,   110,   170,   114,   183,
    3644       96,   134,    96,   134,   109,   109,   132,   115,   134,   271,
    3645      308,   115,   116,   130,   163,   110,   135,   146,   146,   110,
    3646      110,   110,   110,   266,    42,   163,   179,   180,   309,   130,
    3647      134,   171,   181,   110,   132,   171,   132,   134,   110,   134,
    3648      110,   134,    96,   134,    96,   134,   132,   297,   141,   139,
    3649      204,   110,   132,   110,   135,   135,   171,    96,   116,   130,
    3650      135,   205,   206,   212,   132,   170,   170,   205,   173,   197,
    3651      225,   365,   173,   197,   110,   134,   110,   134,   115,   110,
    3652      116,   112,   112,   163,   179,   182,   184,   185,   134,   132,
    3653      182,   186,   187,   135,   109,   149,   308,   356,   139,   135,
    3654      173,   197,   173,   197,   109,   132,   139,   171,   176,   115,
    3655      182,   212,   170,    56,   176,   189,   115,   182,   110,   227,
    3656      110,   135,   135,   291,   171,   176,   132,   188,   189,   176,
    3657      189,   173,   173,   110,   110,   110,   188,   135,   135,   173,
    3658      173,   135,   135
     4050     163,   165,   168,   226,   276,   292,   366,   371,   228,   110,
     4051     110,   110,   110,   110,   110,   110,    74,    75,   111,   226,
     4052     272,   350,   368,   111,   117,   150,   165,   218,   219,   225,
     4053     228,   232,   233,   237,   240,   241,   243,   262,   263,   267,
     4054     268,   269,   270,   284,   350,   362,   363,   364,   365,   370,
     4055     371,   112,   109,   323,   327,   370,   109,   116,   132,   111,
     4056     114,   150,   165,   278,   278,   115,   134,   116,   132,   109,
     4057     116,   132,   116,   132,   116,   132,   312,   132,   319,   320,
     4058     321,   322,   332,   333,   334,   335,   228,   318,   331,    64,
     4059     311,   111,   312,   349,   350,   312,   312,   174,   134,   109,
     4060     312,   349,   312,   312,   228,   309,   109,   109,   227,   228,
     4061     226,   228,   112,   134,   226,   366,   371,   174,   134,   272,
     4062     277,   218,   233,   323,   327,   174,   134,   294,   228,   237,
     4063     132,   228,   228,   292,   248,   246,   258,   274,   257,   228,
     4064     294,   132,   132,   305,   134,   139,   271,     3,   135,   208,
     4065     209,   223,   225,   228,   134,   311,   109,   311,   165,   319,
     4066     228,   109,   134,   272,   114,    33,    34,    35,   226,   286,
     4067     287,   289,   134,   128,   131,   291,   134,   229,   234,   235,
     4068     272,   315,   316,   317,   109,   141,   109,   149,   109,   149,
     4069     152,   109,   149,   109,   109,   149,   149,   111,   165,   170,
     4070     174,   226,   275,   366,   370,   112,   134,    82,    85,    86,
     4071      87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
     4072     102,   103,   104,   105,   106,   131,   167,   152,   152,   117,
     4073     123,   124,   119,   120,    88,    89,    90,    91,   125,   126,
     4074      92,    93,   118,   127,   128,    94,    95,   129,   131,   373,
     4075     109,   150,   345,   346,   347,   348,   349,   110,   116,   109,
     4076     349,   350,   109,   349,   350,   134,   109,   226,   368,   112,
     4077     134,   135,   111,   226,   228,   361,   362,   370,   371,   135,
     4078     109,   111,   150,   319,   336,   337,   338,   339,   340,   341,
     4079     342,   343,   344,   350,   351,   352,   353,   354,   355,   356,
     4080     150,   370,   228,   135,   135,   150,   226,   228,   363,   272,
     4081     226,   350,   363,   272,   109,   134,   134,   134,   112,   134,
     4082      72,   111,   113,   140,   274,   278,   279,   280,   281,   282,
     4083     134,   134,   134,   134,   134,   134,   309,   110,   110,   110,
     4084     110,   110,   110,   110,   318,   331,   109,   277,   112,   208,
     4085     134,   309,   170,   276,   170,   276,   309,   111,   208,   311,
     4086     174,   134,   208,   110,    40,   111,   115,   226,   249,   250,
     4087     251,   366,   114,   116,   372,   131,   259,   114,   228,   264,
     4088     265,   266,   269,   270,   110,   116,   174,   134,   117,   165,
     4089     134,   225,   228,   263,   362,   370,   303,   304,   109,   150,
     4090     336,   110,   116,   373,   274,   286,   109,   114,   274,   276,
     4091     286,   110,   116,   109,   141,   110,   130,   275,   275,   275,
     4092     146,   165,   276,   275,   112,   134,   110,   116,   110,   109,
     4093     150,   349,   357,   358,   359,   360,   110,   116,   165,   111,
     4094     139,   145,   146,   134,   111,   139,   145,   165,   152,   152,
     4095     152,   153,   153,   154,   154,   155,   155,   155,   155,   156,
     4096     156,   157,   158,   159,   160,   161,   130,   170,   165,   134,
     4097     346,   347,   348,   228,   345,   312,   312,   165,   276,   134,
     4098     271,   134,   226,   350,   363,   228,   232,   112,   112,   134,
     4099     370,   112,   109,   134,   319,   337,   338,   339,   342,   352,
     4100     353,   354,   112,   134,   228,   336,   340,   351,   109,   312,
     4101     355,   373,   312,   312,   373,   109,   312,   355,   312,   312,
     4102     312,   312,   350,   226,   361,   371,   272,   112,   116,   112,
     4103     116,   373,   226,   363,   373,   260,   261,   262,   263,   260,
     4104     260,   272,   165,   134,   111,   274,   130,   116,   372,   278,
     4105     111,   130,   282,    29,   210,   211,   272,   260,   139,   309,
     4106     139,   311,   109,   349,   350,   109,   349,   350,   141,   350,
     4107     174,   264,   110,   110,   110,   110,   112,   174,   208,   174,
     4108     114,   250,   251,   112,   134,   109,   130,   150,   252,   254,
     4109     318,   319,   331,   357,   116,   132,   116,   132,   274,   248,
     4110     274,   115,   163,   164,   258,   135,   135,   139,   223,   135,
     4111     135,   260,   109,   150,   370,   135,   115,   228,   287,   288,
     4112     135,   134,   134,   109,   135,   110,   316,   170,   171,   130,
     4113     132,   111,   141,   201,   202,   203,   110,   116,   110,   110,
     4114     110,   110,   111,   165,   358,   359,   360,   228,   357,   312,
     4115     312,   114,   152,   168,   165,   166,   169,   116,   135,   134,
     4116     110,   116,   165,   134,   115,   163,   130,   264,   110,   110,
     4117     110,   345,   264,   110,   260,   226,   363,   111,   117,   150,
     4118     165,   165,   228,   342,   264,   110,   110,   110,   110,   110,
     4119     110,   110,     7,   228,   336,   340,   351,   134,   134,   373,
     4120     134,   134,   110,   135,   135,   135,   135,   277,   135,   163,
     4121     164,   165,   310,   134,   278,   280,   115,   134,   212,   274,
     4122      40,    41,    43,    46,    47,    48,    49,    50,    51,    52,
     4123      53,    57,    61,    62,    72,   111,   127,   171,   172,   173,
     4124     174,   175,   176,   178,   179,   191,   193,   194,   199,   213,
     4125     308,    29,   135,   131,   277,   134,   134,   110,   135,   174,
     4126     248,   132,   132,   319,   164,   228,   253,   254,   253,   274,
     4127     312,   115,   259,   372,   110,   116,   112,   112,   135,   228,
     4128     116,   373,   290,   110,   286,   216,   218,   226,   298,   299,
     4129     300,   301,   292,   110,   110,   130,   164,   109,   110,   130,
     4130     116,   139,   112,   110,   110,   110,   357,   279,   116,   135,
     4131     169,   112,   139,   147,   148,   146,   135,   147,   163,   168,
     4132     135,   109,   349,   350,   135,   135,   134,   135,   135,   135,
     4133     165,   110,   135,   109,   349,   350,   109,   355,   109,   355,
     4134     350,   227,     7,   117,   135,   165,   264,   264,   263,   267,
     4135     267,   268,   116,   116,   110,   110,   112,    96,   122,   135,
     4136     135,   147,   278,   165,   116,   132,   213,   217,   228,   232,
     4137     109,   109,   172,   109,   109,    72,   132,    72,   132,    72,
     4138     117,   171,   109,   174,   166,   166,   130,   112,   144,   132,
     4139     135,   134,   135,   212,   110,   165,   264,   264,   312,   110,
     4140     115,   252,   115,   134,   110,   134,   135,   309,   115,   134,
     4141     135,   135,   110,   114,   201,   112,   164,   132,   201,   203,
     4142     110,   109,   349,   350,   372,   166,   112,   135,    85,   113,
     4143     116,   135,   112,   135,   110,   134,   110,   110,   112,   112,
     4144     112,   135,   110,   134,   134,   134,   165,   165,   135,   112,
     4145     135,   135,   135,   135,   134,   134,   164,   164,   112,   112,
     4146     135,   135,   274,   228,   170,   170,    47,   170,   134,   132,
     4147     132,   132,   170,   132,   170,    58,    59,    60,   195,   196,
     4148     197,   132,    63,   132,   312,   114,   176,   115,   132,   135,
     4149     135,    96,   269,   270,   110,   299,   116,   132,   116,   132,
     4150     115,   297,   130,   141,   110,   110,   130,   134,   115,   112,
     4151     111,   148,   111,   148,   148,   112,   112,   264,   112,   264,
     4152     264,   264,   135,   135,   112,   112,   110,   110,   112,   116,
     4153      96,   263,    96,   135,   112,   112,   110,   110,   109,   110,
     4154     171,   192,   213,   132,   110,   109,   109,   174,   197,    58,
     4155      59,   165,   172,   145,   110,   110,   114,   134,   134,   298,
     4156     141,   204,   109,   132,   204,   264,   134,   134,   135,   135,
     4157     135,   135,   112,   112,   134,   135,   112,   172,    44,    45,
     4158     114,   182,   183,   184,   170,   172,   135,   110,   171,   114,
     4159     184,    96,   134,    96,   134,   109,   109,   132,   115,   134,
     4160     272,   309,   115,   116,   130,   164,   110,   135,   147,   147,
     4161     110,   110,   110,   110,   267,    42,   164,   180,   181,   310,
     4162     130,   134,   172,   182,   110,   132,   172,   132,   134,   110,
     4163     134,   110,   134,    96,   134,    96,   134,   132,   298,   141,
     4164     139,   205,   110,   132,   110,   135,   135,   172,    96,   116,
     4165     130,   135,   206,   207,   213,   132,   171,   171,   206,   174,
     4166     198,   226,   366,   174,   198,   110,   134,   110,   134,   115,
     4167     110,   116,   112,   112,   164,   180,   183,   185,   186,   134,
     4168     132,   183,   187,   188,   135,   109,   150,   309,   357,   139,
     4169     135,   174,   198,   174,   198,   109,   132,   139,   172,   177,
     4170     115,   183,   213,   171,    56,   177,   190,   115,   183,   110,
     4171     228,   110,   135,   135,   292,   172,   177,   132,   189,   190,
     4172     177,   190,   174,   174,   110,   110,   110,   189,   135,   135,
     4173     174,   174,   135,   135
    36594174};
    36604175
    3661   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    3662 static const yytype_uint16 yyr1[] =
    3663 {
    3664        0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
    3665      138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
    3666      142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
    3667      143,   143,   143,   144,   144,   145,   145,   146,   146,   147,
    3668      147,   147,   147,   147,   148,   148,   148,   148,   148,   148,
    3669      148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
    3670      149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
    3671      152,   152,   152,   153,   153,   153,   154,   154,   154,   155,
    3672      155,   155,   155,   155,   156,   156,   156,   157,   157,   158,
    3673      158,   159,   159,   160,   160,   161,   161,   162,   162,   162,
    3674      162,   163,   164,   164,   164,   165,   165,   166,   166,   166,
    3675      166,   166,   166,   166,   166,   166,   166,   166,   167,   167,
    3676      167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
    3677      171,   171,   171,   171,   171,   171,   171,   172,   173,   173,
    3678      174,   174,   175,   175,   175,   175,   176,   176,   177,   178,
    3679      178,   178,   178,   178,   178,   179,   179,   179,   180,   180,
    3680      181,   181,   182,   182,   183,   184,   184,   185,   185,   186,
    3681      186,   187,   187,   187,   187,   188,   188,   189,   189,   190,
    3682      190,   190,   191,   191,   192,   192,   192,   192,   192,   192,
    3683      192,   192,   192,   192,   193,   193,   193,   194,   194,   194,
    3684      194,   194,   195,   195,   195,   195,   196,   197,   197,   197,
    3685      197,   197,   198,   198,   198,   198,   198,   199,   199,   200,
    3686      200,   201,   201,   202,   202,   203,   203,   203,   204,   204,
    3687      205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
    3688      210,   210,   211,   211,   212,   212,   213,   213,   213,   213,
    3689      213,   214,   214,   214,   215,   215,   215,   216,   216,   216,
    3690      216,   216,   217,   217,   217,   218,   218,   219,   219,   219,
    3691      220,   220,   220,   220,   220,   221,   221,   222,   222,   222,
    3692      222,   223,   223,   224,   224,   224,   224,   225,   225,   225,
    3693      225,   226,   226,   227,   227,   228,   228,   229,   229,   229,
    3694      229,   229,   230,   229,   231,   231,   231,   232,   232,   233,
    3695      233,   233,   233,   233,   233,   233,   233,   234,   234,   234,
    3696      234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
    3697      235,   235,   235,   235,   235,   236,   236,   237,   237,   237,
    3698      237,   238,   238,   238,   238,   239,   239,   239,   239,   240,
    3699      240,   240,   241,   241,   241,   241,   242,   242,   242,   243,
    3700      243,   244,   244,   245,   244,   244,   244,   246,   246,   247,
    3701      247,   248,   248,   248,   248,   249,   249,   249,   249,   250,
    3702      250,   251,   251,   251,   251,   251,   252,   252,   253,   254,
    3703      255,   255,   256,   255,   257,   257,   258,   258,   259,   259,
    3704      260,   260,   260,   260,   260,   261,   261,   261,   261,   262,
    3705      262,   263,   263,   264,   264,   265,   265,   265,   265,   266,
    3706      266,   266,   266,   266,   267,   267,   267,   267,   267,   268,
    3707      268,   269,   269,   270,   270,   271,   271,   271,   272,   272,
    3708      272,   273,   273,   273,   274,   274,   274,   275,   275,   275,
    3709      275,   276,   276,   276,   277,   277,   278,   278,   278,   278,
    3710      278,   279,   279,   280,   280,   281,   281,   281,   281,   281,
    3711      282,   282,   282,   282,   283,   283,   283,   284,   285,   285,
    3712      287,   286,   286,   288,   288,   288,   289,   289,   290,   290,
    3713      290,   291,   291,   291,   291,   292,   292,   292,   293,   293,
    3714      294,   294,   295,   296,   295,   297,   297,   298,   298,   299,
    3715      299,   299,   300,   300,   301,   301,   302,   302,   303,   303,
    3716      304,   304,   304,   305,   304,   304,   306,   306,   306,   307,
    3717      307,   307,   307,   307,   307,   307,   307,   307,   308,   308,
    3718      308,   309,   310,   310,   311,   311,   312,   312,   313,   314,
    3719      314,   315,   315,   315,   316,   316,   316,   316,   317,   317,
    3720      317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
    3721      320,   321,   321,   322,   322,   322,   323,   323,   323,   324,
    3722      324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
    3723      327,   328,   328,   328,   329,   329,   329,   330,   330,   330,
    3724      330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
    3725      334,   334,   334,   335,   335,   335,   335,   336,   336,   336,
    3726      337,   337,   337,   337,   338,   338,   338,   339,   339,   339,
    3727      339,   340,   340,   341,   341,   341,   342,   342,   343,   343,
    3728      344,   344,   344,   345,   345,   345,   345,   345,   346,   346,
    3729      346,   346,   347,   347,   347,   348,   348,   348,   349,   349,
    3730      349,   349,   350,   350,   350,   351,   351,   351,   351,   351,
    3731      352,   352,   352,   352,   353,   353,   353,   354,   354,   354,
    3732      355,   355,   355,   355,   355,   355,   356,   356,   356,   357,
    3733      357,   357,   357,   357,   358,   358,   358,   358,   359,   359,
    3734      360,   360,   360,   361,   361,   362,   362,   362,   362,   362,
    3735      362,   363,   363,   363,   363,   363,   363,   363,   363,   363,
    3736      363,   364,   364,   364,   364,   365,   365,   365,   366,   366,
    3737      367,   367,   367,   367,   367,   367,   368,   368,   368,   368,
    3738      368,   368,   369,   370,   370,   370,   371,   371,   372,   372
    3739 };
    3740 
    3741   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
    3742 static const yytype_uint8 yyr2[] =
    3743 {
    3744        0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    3745        1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
    3746        3,     3,     1,     6,     4,     3,     7,     3,     7,     2,
    3747        2,     7,     4,     1,     3,     0,     1,     1,     3,     1,
    3748        3,     7,     3,     7,     1,     1,     1,     2,     2,     2,
    3749        2,     2,     2,     4,     2,     4,     6,     1,     4,     4,
    3750        1,     1,     1,     1,     1,     1,     1,     4,     4,     1,
    3751        3,     3,     3,     1,     3,     3,     1,     3,     3,     1,
    3752        3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
    3753        3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
    3754        5,     1,     1,     3,     2,     0,     1,     1,     1,     1,
    3755        1,     1,     1,     1,     1,     1,     1,     1,     2,     5,
    3756        6,     7,     1,     3,     1,     3,     0,     1,     1,     1,
    3757        1,     1,     1,     1,     1,     1,     6,     4,     2,     7,
    3758        1,     3,     1,     2,     1,     2,     1,     2,     2,     5,
    3759        7,     5,     9,     5,     9,     1,     3,     1,     1,     3,
    3760        3,     2,     1,     2,     2,     0,     1,     2,     3,     0,
    3761        1,     2,     3,     3,     4,     0,     1,     1,     2,     5,
    3762        7,     6,     6,     4,     3,     4,     2,     3,     2,     3,
    3763        3,     3,     3,     5,     3,     3,     4,     1,     5,     6,
    3764        5,     6,     9,    10,     9,    10,     2,     1,     2,     2,
    3765        2,     1,     6,     8,    10,    12,    14,     0,     1,     0,
    3766        1,     1,     3,     4,     7,     0,     1,     3,     1,     3,
    3767        1,     1,     1,     3,     1,     1,     1,     3,     0,     1,
    3768        3,     4,     1,     3,     1,     1,     3,     3,     3,     3,
    3769        3,     2,     3,     6,     3,     3,     4,     1,     2,     2,
    3770        3,     5,     8,     7,     7,     5,     9,     2,     2,     5,
    3771        3,     5,     4,     3,     4,     4,     7,     3,     3,     3,
    3772        3,     4,     6,     1,     1,     1,     1,     1,     1,     1,
    3773        1,     0,     1,     1,     2,     1,     1,     1,     1,     1,
    3774        1,     1,     0,     5,     1,     2,     3,     1,     2,     1,
    3775        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    3776        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    3777        1,     2,     2,     3,     3,     1,     3,     1,     2,     2,
    3778        2,     4,     4,     4,     4,     1,     2,     2,     3,     1,
    3779        2,     2,     1,     2,     2,     3,     1,     2,     2,     1,
    3780        1,     4,     2,     0,     6,     7,     2,     2,     2,     0,
    3781        2,     2,     3,     2,     3,     1,     2,     3,     2,     2,
    3782        4,     0,     1,     2,     2,     1,     0,     1,     2,     2,
    3783        5,     2,     0,     7,     2,     4,     0,     2,     0,     1,
    3784        1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
    3785        5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
    3786        3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
    3787        3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
    3788        1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
    3789        2,     0,     2,     2,     1,     4,     0,     1,     2,     3,
    3790        4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
    3791        1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
    3792        0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
    3793       13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
    3794        1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
    3795        1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
    3796        1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
    3797        3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
    3798        1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
    3799        3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
    3800        2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    3801        3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
    3802        3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
    3803        3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
    3804        2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
    3805        6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
    3806        2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
    3807        2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
    3808        1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
    3809        4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
    3810        6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
    3811        1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
    3812        2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
    3813        2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
    3814        1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
    3815        3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
    3816        2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
    3817        2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
    3818        4,     2,     5,     5,     6,     6,     0,     1,     0,     2
    3819 };
    3820 
    3821 
    3822 #define yyerrok         (yyerrstatus = 0)
    3823 #define yyclearin       (yychar = YYEMPTY)
    3824 #define YYEMPTY         (-2)
    3825 #define YYEOF           0
    3826 
    3827 #define YYACCEPT        goto yyacceptlab
    3828 #define YYABORT         goto yyabortlab
    3829 #define YYERROR         goto yyerrorlab
    3830 
     4176#define yyerrok         (yyerrstatus = 0)
     4177#define yyclearin       (yychar = YYEMPTY)
     4178#define YYEMPTY         (-2)
     4179#define YYEOF           0
     4180
     4181#define YYACCEPT        goto yyacceptlab
     4182#define YYABORT         goto yyabortlab
     4183#define YYERROR         goto yyerrorlab
     4184
     4185
     4186/* Like YYERROR except do call yyerror.  This remains here temporarily
     4187   to ease the transition to the new meaning of YYERROR, for GCC.
     4188   Once GCC version 2 has supplanted version 1, this can go.  However,
     4189   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
     4190   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
     4191   discussed.  */
     4192
     4193#define YYFAIL          goto yyerrlab
     4194#if defined YYFAIL
     4195  /* This is here to suppress warnings from the GCC cpp's
     4196     -Wunused-macros.  Normally we don't worry about that warning, but
     4197     some users do, and we want to make it easy for users to remove
     4198     YYFAIL uses, which will produce warnings from Bison 2.5.  */
     4199#endif
    38314200
    38324201#define YYRECOVERING()  (!!yyerrstatus)
    38334202
    3834 #define YYBACKUP(Token, Value)                                  \
    3835 do                                                              \
    3836   if (yychar == YYEMPTY)                                        \
    3837     {                                                           \
    3838       yychar = (Token);                                         \
    3839       yylval = (Value);                                         \
    3840       YYPOPSTACK (yylen);                                       \
    3841       yystate = *yyssp;                                         \
    3842       goto yybackup;                                            \
    3843     }                                                           \
    3844   else                                                          \
    3845     {                                                           \
     4203#define YYBACKUP(Token, Value)                                  \
     4204do                                                              \
     4205  if (yychar == YYEMPTY && yylen == 1)                          \
     4206    {                                                           \
     4207      yychar = (Token);                                         \
     4208      yylval = (Value);                                         \
     4209      YYPOPSTACK (1);                                           \
     4210      goto yybackup;                                            \
     4211    }                                                           \
     4212  else                                                          \
     4213    {                                                           \
    38464214      yyerror (YY_("syntax error: cannot back up")); \
    3847       YYERROR;                                                  \
    3848     }                                                           \
    3849 while (0)
    3850 
    3851 /* Error token number */
    3852 #define YYTERROR        1
    3853 #define YYERRCODE       256
    3854 
    3855 
     4215      YYERROR;                                                  \
     4216    }                                                           \
     4217while (YYID (0))
     4218
     4219
     4220#define YYTERROR        1
     4221#define YYERRCODE       256
     4222
     4223
     4224/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
     4225   If N is 0, then set CURRENT to the empty location which ends
     4226   the previous symbol: RHS[0] (always defined).  */
     4227
     4228#define YYRHSLOC(Rhs, K) ((Rhs)[K])
     4229#ifndef YYLLOC_DEFAULT
     4230# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
     4231    do                                                                  \
     4232      if (YYID (N))                                                    \
     4233        {                                                               \
     4234          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
     4235          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
     4236          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
     4237          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
     4238        }                                                               \
     4239      else                                                              \
     4240        {                                                               \
     4241          (Current).first_line   = (Current).last_line   =              \
     4242            YYRHSLOC (Rhs, 0).last_line;                                \
     4243          (Current).first_column = (Current).last_column =              \
     4244            YYRHSLOC (Rhs, 0).last_column;                              \
     4245        }                                                               \
     4246    while (YYID (0))
     4247#endif
     4248
     4249
     4250/* This macro is provided for backward compatibility. */
     4251
     4252#ifndef YY_LOCATION_PRINT
     4253# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
     4254#endif
     4255
     4256
     4257/* YYLEX -- calling `yylex' with the right arguments.  */
     4258
     4259#ifdef YYLEX_PARAM
     4260# define YYLEX yylex (YYLEX_PARAM)
     4261#else
     4262# define YYLEX yylex ()
     4263#endif
    38564264
    38574265/* Enable debugging if requested.  */
     
    38634271# endif
    38644272
    3865 # define YYDPRINTF(Args)                        \
    3866 do {                                            \
    3867   if (yydebug)                                  \
    3868     YYFPRINTF Args;                             \
    3869 } while (0)
    3870 
    3871 /* This macro is provided for backward compatibility. */
    3872 #ifndef YY_LOCATION_PRINT
    3873 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    3874 #endif
    3875 
    3876 
    3877 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    3878 do {                                                                      \
    3879   if (yydebug)                                                            \
    3880     {                                                                     \
    3881       YYFPRINTF (stderr, "%s ", Title);                                   \
    3882       yy_symbol_print (stderr,                                            \
    3883                   Type, Value); \
    3884       YYFPRINTF (stderr, "\n");                                           \
    3885     }                                                                     \
    3886 } while (0)
    3887 
    3888 
    3889 /*----------------------------------------.
    3890 | Print this symbol's value on YYOUTPUT.  |
    3891 `----------------------------------------*/
    3892 
     4273# define YYDPRINTF(Args)                        \
     4274do {                                            \
     4275  if (yydebug)                                  \
     4276    YYFPRINTF Args;                             \
     4277} while (YYID (0))
     4278
     4279# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
     4280do {                                                                      \
     4281  if (yydebug)                                                            \
     4282    {                                                                     \
     4283      YYFPRINTF (stderr, "%s ", Title);                                   \
     4284      yy_symbol_print (stderr,                                            \
     4285                  Type, Value); \
     4286      YYFPRINTF (stderr, "\n");                                           \
     4287    }                                                                     \
     4288} while (YYID (0))
     4289
     4290
     4291/*--------------------------------.
     4292| Print this symbol on YYOUTPUT.  |
     4293`--------------------------------*/
     4294
     4295/*ARGSUSED*/
     4296#if (defined __STDC__ || defined __C99__FUNC__ \
     4297     || defined __cplusplus || defined _MSC_VER)
    38934298static void
    38944299yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
     4300#else
     4301static void
     4302yy_symbol_value_print (yyoutput, yytype, yyvaluep)
     4303    FILE *yyoutput;
     4304    int yytype;
     4305    YYSTYPE const * const yyvaluep;
     4306#endif
    38954307{
    3896   FILE *yyo = yyoutput;
    3897   YYUSE (yyo);
    38984308  if (!yyvaluep)
    38994309    return;
     
    39014311  if (yytype < YYNTOKENS)
    39024312    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
     4313# else
     4314  YYUSE (yyoutput);
    39034315# endif
    3904   YYUSE (yytype);
     4316  switch (yytype)
     4317    {
     4318      default:
     4319        break;
     4320    }
    39054321}
    39064322
     
    39104326`--------------------------------*/
    39114327
     4328#if (defined __STDC__ || defined __C99__FUNC__ \
     4329     || defined __cplusplus || defined _MSC_VER)
    39124330static void
    39134331yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
     4332#else
     4333static void
     4334yy_symbol_print (yyoutput, yytype, yyvaluep)
     4335    FILE *yyoutput;
     4336    int yytype;
     4337    YYSTYPE const * const yyvaluep;
     4338#endif
    39144339{
    3915   YYFPRINTF (yyoutput, "%s %s (",
    3916              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
     4340  if (yytype < YYNTOKENS)
     4341    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
     4342  else
     4343    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    39174344
    39184345  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
     
    39254352`------------------------------------------------------------------*/
    39264353
     4354#if (defined __STDC__ || defined __C99__FUNC__ \
     4355     || defined __cplusplus || defined _MSC_VER)
    39274356static void
    39284357yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
     4358#else
     4359static void
     4360yy_stack_print (yybottom, yytop)
     4361    yytype_int16 *yybottom;
     4362    yytype_int16 *yytop;
     4363#endif
    39294364{
    39304365  YYFPRINTF (stderr, "Stack now");
     
    39374372}
    39384373
    3939 # define YY_STACK_PRINT(Bottom, Top)                            \
    3940 do {                                                            \
    3941   if (yydebug)                                                  \
    3942     yy_stack_print ((Bottom), (Top));                           \
    3943 } while (0)
     4374# define YY_STACK_PRINT(Bottom, Top)                            \
     4375do {                                                            \
     4376  if (yydebug)                                                  \
     4377    yy_stack_print ((Bottom), (Top));                           \
     4378} while (YYID (0))
    39444379
    39454380
     
    39484383`------------------------------------------------*/
    39494384
     4385#if (defined __STDC__ || defined __C99__FUNC__ \
     4386     || defined __cplusplus || defined _MSC_VER)
    39504387static void
    3951 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
     4388yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
     4389#else
     4390static void
     4391yy_reduce_print (yyvsp, yyrule)
     4392    YYSTYPE *yyvsp;
     4393    int yyrule;
     4394#endif
    39524395{
    3953   unsigned long int yylno = yyrline[yyrule];
    39544396  int yynrhs = yyr2[yyrule];
    39554397  int yyi;
     4398  unsigned long int yylno = yyrline[yyrule];
    39564399  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    3957              yyrule - 1, yylno);
     4400             yyrule - 1, yylno);
    39584401  /* The symbols being reduced.  */
    39594402  for (yyi = 0; yyi < yynrhs; yyi++)
    39604403    {
    39614404      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    3962       yy_symbol_print (stderr,
    3963                        yystos[yyssp[yyi + 1 - yynrhs]],
    3964                        &(yyvsp[(yyi + 1) - (yynrhs)])
    3965                                               );
     4405      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
     4406                       &(yyvsp[(yyi + 1) - (yynrhs)])
     4407                                       );
    39664408      YYFPRINTF (stderr, "\n");
    39674409    }
    39684410}
    39694411
    3970 # define YY_REDUCE_PRINT(Rule)          \
    3971 do {                                    \
    3972   if (yydebug)                          \
    3973     yy_reduce_print (yyssp, yyvsp, Rule); \
    3974 } while (0)
     4412# define YY_REDUCE_PRINT(Rule)          \
     4413do {                                    \
     4414  if (yydebug)                          \
     4415    yy_reduce_print (yyvsp, Rule); \
     4416} while (YYID (0))
    39754417
    39764418/* Nonzero means print parse trace.  It is left uninitialized so that
     
    39864428
    39874429/* YYINITDEPTH -- initial size of the parser's stacks.  */
    3988 #ifndef YYINITDEPTH
     4430#ifndef YYINITDEPTH
    39894431# define YYINITDEPTH 200
    39904432#endif
     
    40094451#  else
    40104452/* Return the length of YYSTR.  */
     4453#if (defined __STDC__ || defined __C99__FUNC__ \
     4454     || defined __cplusplus || defined _MSC_VER)
    40114455static YYSIZE_T
    40124456yystrlen (const char *yystr)
     4457#else
     4458static YYSIZE_T
     4459yystrlen (yystr)
     4460    const char *yystr;
     4461#endif
    40134462{
    40144463  YYSIZE_T yylen;
     
    40264475/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    40274476   YYDEST.  */
     4477#if (defined __STDC__ || defined __C99__FUNC__ \
     4478     || defined __cplusplus || defined _MSC_VER)
    40284479static char *
    40294480yystpcpy (char *yydest, const char *yysrc)
     4481#else
     4482static char *
     4483yystpcpy (yydest, yysrc)
     4484    char *yydest;
     4485    const char *yysrc;
     4486#endif
    40304487{
    40314488  char *yyd = yydest;
     
    40574514
    40584515      for (;;)
    4059         switch (*++yyp)
    4060           {
    4061           case '\'':
    4062           case ',':
    4063             goto do_not_strip_quotes;
    4064 
    4065           case '\\':
    4066             if (*++yyp != '\\')
    4067               goto do_not_strip_quotes;
    4068             /* Fall through.  */
    4069           default:
    4070             if (yyres)
    4071               yyres[yyn] = *yyp;
    4072             yyn++;
    4073             break;
    4074 
    4075           case '"':
    4076             if (yyres)
    4077               yyres[yyn] = '\0';
    4078             return yyn;
    4079           }
     4516        switch (*++yyp)
     4517          {
     4518          case '\'':
     4519          case ',':
     4520            goto do_not_strip_quotes;
     4521
     4522          case '\\':
     4523            if (*++yyp != '\\')
     4524              goto do_not_strip_quotes;
     4525            /* Fall through.  */
     4526          default:
     4527            if (yyres)
     4528              yyres[yyn] = *yyp;
     4529            yyn++;
     4530            break;
     4531
     4532          case '"':
     4533            if (yyres)
     4534              yyres[yyn] = '\0';
     4535            return yyn;
     4536          }
    40804537    do_not_strip_quotes: ;
    40814538    }
     
    41004557                yytype_int16 *yyssp, int yytoken)
    41014558{
    4102   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
     4559  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
    41034560  YYSIZE_T yysize = yysize0;
     4561  YYSIZE_T yysize1;
    41044562  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    41054563  /* Internationalized format string. */
    4106   const char *yyformat = YY_NULLPTR;
     4564  const char *yyformat = 0;
    41074565  /* Arguments of yyformat. */
    41084566  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
     
    41124570
    41134571  /* There are many possibilities here to consider:
     4572     - Assume YYFAIL is not used.  It's too flawed to consider.  See
     4573       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
     4574       for details.  YYERROR is fine as it does not invoke this
     4575       function.
    41144576     - If this state is a consistent state with a default action, then
    41154577       the only way this function was invoked is if the default action
     
    41604622                  }
    41614623                yyarg[yycount++] = yytname[yyx];
    4162                 {
    4163                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
    4164                   if (! (yysize <= yysize1
    4165                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4166                     return 2;
    4167                   yysize = yysize1;
    4168                 }
     4624                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
     4625                if (! (yysize <= yysize1
     4626                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4627                  return 2;
     4628                yysize = yysize1;
    41694629              }
    41704630        }
     
    41864646    }
    41874647
    4188   {
    4189     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
    4190     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4191       return 2;
    4192     yysize = yysize1;
    4193   }
     4648  yysize1 = yysize + yystrlen (yyformat);
     4649  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4650    return 2;
     4651  yysize = yysize1;
    41944652
    41954653  if (*yymsg_alloc < yysize)
     
    42284686`-----------------------------------------------*/
    42294687
     4688/*ARGSUSED*/
     4689#if (defined __STDC__ || defined __C99__FUNC__ \
     4690     || defined __cplusplus || defined _MSC_VER)
    42304691static void
    42314692yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
     4693#else
     4694static void
     4695yydestruct (yymsg, yytype, yyvaluep)
     4696    const char *yymsg;
     4697    int yytype;
     4698    YYSTYPE *yyvaluep;
     4699#endif
    42324700{
    42334701  YYUSE (yyvaluep);
     4702
    42344703  if (!yymsg)
    42354704    yymsg = "Deleting";
    42364705  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    42374706
    4238   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    4239   YYUSE (yytype);
    4240   YY_IGNORE_MAYBE_UNINITIALIZED_END
     4707  switch (yytype)
     4708    {
     4709
     4710      default:
     4711        break;
     4712    }
    42414713}
    42424714
    42434715
     4716/* Prevent warnings from -Wmissing-prototypes.  */
     4717#ifdef YYPARSE_PARAM
     4718#if defined __STDC__ || defined __cplusplus
     4719int yyparse (void *YYPARSE_PARAM);
     4720#else
     4721int yyparse ();
     4722#endif
     4723#else /* ! YYPARSE_PARAM */
     4724#if defined __STDC__ || defined __cplusplus
     4725int yyparse (void);
     4726#else
     4727int yyparse ();
     4728#endif
     4729#endif /* ! YYPARSE_PARAM */
    42444730
    42454731
     
    42494735/* The semantic value of the lookahead symbol.  */
    42504736YYSTYPE yylval;
     4737
    42514738/* Number of syntax errors so far.  */
    42524739int yynerrs;
     
    42574744`----------*/
    42584745
     4746#ifdef YYPARSE_PARAM
     4747#if (defined __STDC__ || defined __C99__FUNC__ \
     4748     || defined __cplusplus || defined _MSC_VER)
     4749int
     4750yyparse (void *YYPARSE_PARAM)
     4751#else
     4752int
     4753yyparse (YYPARSE_PARAM)
     4754    void *YYPARSE_PARAM;
     4755#endif
     4756#else /* ! YYPARSE_PARAM */
     4757#if (defined __STDC__ || defined __C99__FUNC__ \
     4758     || defined __cplusplus || defined _MSC_VER)
    42594759int
    42604760yyparse (void)
     4761#else
     4762int
     4763yyparse ()
     4764
     4765#endif
     4766#endif
    42614767{
    42624768    int yystate;
     
    42654771
    42664772    /* The stacks and their tools:
    4267        'yyss': related to states.
    4268        'yyvs': related to semantic values.
    4269 
    4270        Refer to the stacks through separate pointers, to allow yyoverflow
     4773       `yyss': related to states.
     4774       `yyvs': related to semantic values.
     4775
     4776       Refer to the stacks thru separate pointers, to allow yyoverflow
    42714777       to reallocate them elsewhere.  */
    42724778
     
    42864792  int yyresult;
    42874793  /* Lookahead token as an internal (translated) token number.  */
    4288   int yytoken = 0;
     4794  int yytoken;
    42894795  /* The variables used to return semantic value and location from the
    42904796     action routines.  */
     
    43044810  int yylen = 0;
    43054811
    4306   yyssp = yyss = yyssa;
    4307   yyvsp = yyvs = yyvsa;
     4812  yytoken = 0;
     4813  yyss = yyssa;
     4814  yyvs = yyvsa;
    43084815  yystacksize = YYINITDEPTH;
    43094816
     
    43144821  yynerrs = 0;
    43154822  yychar = YYEMPTY; /* Cause a token to be read.  */
     4823
     4824  /* Initialize stack pointers.
     4825     Waste one element of value and location stack
     4826     so that they stay on the same level as the state stack.
     4827     The wasted elements are never initialized.  */
     4828  yyssp = yyss;
     4829  yyvsp = yyvs;
     4830
    43164831  goto yysetstate;
    43174832
     
    43344849#ifdef yyoverflow
    43354850      {
    4336         /* Give user a chance to reallocate the stack.  Use copies of
    4337            these so that the &'s don't force the real ones into
    4338            memory.  */
    4339         YYSTYPE *yyvs1 = yyvs;
    4340         yytype_int16 *yyss1 = yyss;
    4341 
    4342         /* Each stack pointer address is followed by the size of the
    4343            data in use in that stack, in bytes.  This used to be a
    4344            conditional around just the two extra args, but that might
    4345            be undefined if yyoverflow is a macro.  */
    4346         yyoverflow (YY_("memory exhausted"),
    4347                     &yyss1, yysize * sizeof (*yyssp),
    4348                     &yyvs1, yysize * sizeof (*yyvsp),
    4349                     &yystacksize);
    4350 
    4351         yyss = yyss1;
    4352         yyvs = yyvs1;
     4851        /* Give user a chance to reallocate the stack.  Use copies of
     4852           these so that the &'s don't force the real ones into
     4853           memory.  */
     4854        YYSTYPE *yyvs1 = yyvs;
     4855        yytype_int16 *yyss1 = yyss;
     4856
     4857        /* Each stack pointer address is followed by the size of the
     4858           data in use in that stack, in bytes.  This used to be a
     4859           conditional around just the two extra args, but that might
     4860           be undefined if yyoverflow is a macro.  */
     4861        yyoverflow (YY_("memory exhausted"),
     4862                    &yyss1, yysize * sizeof (*yyssp),
     4863                    &yyvs1, yysize * sizeof (*yyvsp),
     4864                    &yystacksize);
     4865
     4866        yyss = yyss1;
     4867        yyvs = yyvs1;
    43534868      }
    43544869#else /* no yyoverflow */
     
    43584873      /* Extend the stack our own way.  */
    43594874      if (YYMAXDEPTH <= yystacksize)
    4360         goto yyexhaustedlab;
     4875        goto yyexhaustedlab;
    43614876      yystacksize *= 2;
    43624877      if (YYMAXDEPTH < yystacksize)
    4363         yystacksize = YYMAXDEPTH;
     4878        yystacksize = YYMAXDEPTH;
    43644879
    43654880      {
    4366         yytype_int16 *yyss1 = yyss;
    4367         union yyalloc *yyptr =
    4368           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    4369         if (! yyptr)
    4370           goto yyexhaustedlab;
    4371         YYSTACK_RELOCATE (yyss_alloc, yyss);
    4372         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
     4881        yytype_int16 *yyss1 = yyss;
     4882        union yyalloc *yyptr =
     4883          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
     4884        if (! yyptr)
     4885          goto yyexhaustedlab;
     4886        YYSTACK_RELOCATE (yyss_alloc, yyss);
     4887        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    43734888#  undef YYSTACK_RELOCATE
    4374         if (yyss1 != yyssa)
    4375           YYSTACK_FREE (yyss1);
     4889        if (yyss1 != yyssa)
     4890          YYSTACK_FREE (yyss1);
    43764891      }
    43774892# endif
     
    43824897
    43834898      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4384                   (unsigned long int) yystacksize));
     4899                  (unsigned long int) yystacksize));
    43854900
    43864901      if (yyss + yystacksize - 1 <= yyssp)
    4387         YYABORT;
     4902        YYABORT;
    43884903    }
    43894904
     
    44144929    {
    44154930      YYDPRINTF ((stderr, "Reading a token: "));
    4416       yychar = yylex ();
     4931      yychar = YYLEX;
    44174932    }
    44184933
     
    44544969
    44554970  yystate = yyn;
    4456   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    44574971  *++yyvsp = yylval;
    4458   YY_IGNORE_MAYBE_UNINITIALIZED_END
    44594972
    44604973  goto yynewstate;
     
    44794992
    44804993  /* If YYLEN is nonzero, implement the default value of the action:
    4481      '$$ = $1'.
     4994     `$$ = $1'.
    44824995
    44834996     Otherwise, the following line sets YYVAL to garbage.
     
    44935006    {
    44945007        case 2:
    4495 #line 298 "parser.yy" /* yacc.c:1646  */
     5008
     5009/* Line 1806 of yacc.c  */
     5010#line 341 "parser.yy"
     5011    { typedefTable.enterScope(); }
     5012    break;
     5013
     5014  case 3:
     5015
     5016/* Line 1806 of yacc.c  */
     5017#line 345 "parser.yy"
     5018    { typedefTable.leaveScope(); }
     5019    break;
     5020
     5021  case 4:
     5022
     5023/* Line 1806 of yacc.c  */
     5024#line 352 "parser.yy"
     5025    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     5026    break;
     5027
     5028  case 5:
     5029
     5030/* Line 1806 of yacc.c  */
     5031#line 353 "parser.yy"
     5032    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     5033    break;
     5034
     5035  case 6:
     5036
     5037/* Line 1806 of yacc.c  */
     5038#line 354 "parser.yy"
     5039    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
     5040    break;
     5041
     5042  case 16:
     5043
     5044/* Line 1806 of yacc.c  */
     5045#line 379 "parser.yy"
     5046    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
     5047    break;
     5048
     5049  case 17:
     5050
     5051/* Line 1806 of yacc.c  */
     5052#line 383 "parser.yy"
     5053    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
     5054    break;
     5055
     5056  case 18:
     5057
     5058/* Line 1806 of yacc.c  */
     5059#line 385 "parser.yy"
    44965060    {
    4497                         typedefTable.enterScope();
     5061                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     5062                        delete (yyvsp[(2) - (2)].tok);                                                                  // allocated by lexer
     5063                        (yyval.str) = (yyvsp[(1) - (2)].str);                                                                   // conversion from tok to str
    44985064                }
    4499 #line 4500 "Parser/parser.cc" /* yacc.c:1646  */
    4500     break;
    4501 
    4502   case 3:
    4503 #line 304 "parser.yy" /* yacc.c:1646  */
    4504     {
    4505                         typedefTable.leaveScope();
    4506                 }
    4507 #line 4508 "Parser/parser.cc" /* yacc.c:1646  */
    4508     break;
    4509 
    4510   case 4:
    4511 #line 313 "parser.yy" /* yacc.c:1646  */
    4512     { (yyval.en) = new ExpressionNode( build_constantInteger( assign_strptr((yyvsp[0].tok)) ) ); }
    4513 #line 4514 "Parser/parser.cc" /* yacc.c:1646  */
    4514     break;
    4515 
    4516   case 5:
    4517 #line 314 "parser.yy" /* yacc.c:1646  */
    4518     { (yyval.en) = new ExpressionNode( build_constantFloat( assign_strptr((yyvsp[0].tok)) ) ); }
    4519 #line 4520 "Parser/parser.cc" /* yacc.c:1646  */
    4520     break;
    4521 
    4522   case 6:
    4523 #line 315 "parser.yy" /* yacc.c:1646  */
    4524     { (yyval.en) = new ExpressionNode( build_constantChar( assign_strptr((yyvsp[0].tok)) ) ); }
    4525 #line 4526 "Parser/parser.cc" /* yacc.c:1646  */
    4526     break;
    4527 
    4528   case 16:
    4529 #line 340 "parser.yy" /* yacc.c:1646  */
    4530     { (yyval.constant) = build_constantStr( assign_strptr((yyvsp[0].tok)) ); }
    4531 #line 4532 "Parser/parser.cc" /* yacc.c:1646  */
    4532     break;
    4533 
    4534   case 17:
    4535 #line 342 "parser.yy" /* yacc.c:1646  */
    4536     {
    4537                         appendStr( (yyvsp[-1].constant)->get_constant()->get_value(), (yyvsp[0].tok) );
    4538                         delete (yyvsp[0].tok);                                                                  // allocated by lexer
    4539                         (yyval.constant) = (yyvsp[-1].constant);
    4540                 }
    4541 #line 4542 "Parser/parser.cc" /* yacc.c:1646  */
    4542     break;
    4543 
    4544   case 18:
    4545 #line 353 "parser.yy" /* yacc.c:1646  */
    4546     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4547 #line 4548 "Parser/parser.cc" /* yacc.c:1646  */
    45485065    break;
    45495066
    45505067  case 19:
    4551 #line 355 "parser.yy" /* yacc.c:1646  */
    4552     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4553 #line 4554 "Parser/parser.cc" /* yacc.c:1646  */
     5068
     5069/* Line 1806 of yacc.c  */
     5070#line 396 "parser.yy"
     5071    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    45545072    break;
    45555073
    45565074  case 20:
    4557 #line 357 "parser.yy" /* yacc.c:1646  */
    4558     { (yyval.en) = (yyvsp[-1].en); }
    4559 #line 4560 "Parser/parser.cc" /* yacc.c:1646  */
     5075
     5076/* Line 1806 of yacc.c  */
     5077#line 398 "parser.yy"
     5078    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    45605079    break;
    45615080
    45625081  case 21:
    4563 #line 359 "parser.yy" /* yacc.c:1646  */
    4564     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); }
    4565 #line 4566 "Parser/parser.cc" /* yacc.c:1646  */
    4566     break;
    4567 
    4568   case 23:
    4569 #line 369 "parser.yy" /* yacc.c:1646  */
    4570     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); }
    4571 #line 4572 "Parser/parser.cc" /* yacc.c:1646  */
     5082
     5083/* Line 1806 of yacc.c  */
     5084#line 400 "parser.yy"
     5085    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5086    break;
     5087
     5088  case 22:
     5089
     5090/* Line 1806 of yacc.c  */
     5091#line 402 "parser.yy"
     5092    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    45725093    break;
    45735094
    45745095  case 24:
    4575 #line 371 "parser.yy" /* yacc.c:1646  */
    4576     { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); }
    4577 #line 4578 "Parser/parser.cc" /* yacc.c:1646  */
     5096
     5097/* Line 1806 of yacc.c  */
     5098#line 412 "parser.yy"
     5099    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    45785100    break;
    45795101
    45805102  case 25:
    4581 #line 375 "parser.yy" /* yacc.c:1646  */
    4582     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
    4583 #line 4584 "Parser/parser.cc" /* yacc.c:1646  */
    4584     break;
    4585 
    4586   case 27:
    4587 #line 378 "parser.yy" /* yacc.c:1646  */
    4588     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); }
    4589 #line 4590 "Parser/parser.cc" /* yacc.c:1646  */
    4590     break;
    4591 
    4592   case 29:
    4593 #line 381 "parser.yy" /* yacc.c:1646  */
    4594     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); }
    4595 #line 4596 "Parser/parser.cc" /* yacc.c:1646  */
     5103
     5104/* Line 1806 of yacc.c  */
     5105#line 414 "parser.yy"
     5106    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
     5107    break;
     5108
     5109  case 26:
     5110
     5111/* Line 1806 of yacc.c  */
     5112#line 418 "parser.yy"
     5113    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5114    break;
     5115
     5116  case 28:
     5117
     5118/* Line 1806 of yacc.c  */
     5119#line 421 "parser.yy"
     5120    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    45965121    break;
    45975122
    45985123  case 30:
    4599 #line 383 "parser.yy" /* yacc.c:1646  */
    4600     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); }
    4601 #line 4602 "Parser/parser.cc" /* yacc.c:1646  */
     5124
     5125/* Line 1806 of yacc.c  */
     5126#line 424 "parser.yy"
     5127    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    46025128    break;
    46035129
    46045130  case 31:
    4605 #line 385 "parser.yy" /* yacc.c:1646  */
    4606     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); }
    4607 #line 4608 "Parser/parser.cc" /* yacc.c:1646  */
     5131
     5132/* Line 1806 of yacc.c  */
     5133#line 426 "parser.yy"
     5134    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    46085135    break;
    46095136
    46105137  case 32:
    4611 #line 387 "parser.yy" /* yacc.c:1646  */
     5138
     5139/* Line 1806 of yacc.c  */
     5140#line 428 "parser.yy"
     5141    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
     5142    break;
     5143
     5144  case 33:
     5145
     5146/* Line 1806 of yacc.c  */
     5147#line 430 "parser.yy"
    46125148    {
    46135149                        Token fn;
    46145150                        fn.str = new std::string( "?{}" ); // location undefined
    4615                         (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) );
     5151                        (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );
    46165152                }
    4617 #line 4618 "Parser/parser.cc" /* yacc.c:1646  */
    4618     break;
    4619 
    4620   case 34:
    4621 #line 397 "parser.yy" /* yacc.c:1646  */
    4622     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
    4623 #line 4624 "Parser/parser.cc" /* yacc.c:1646  */
    46245153    break;
    46255154
    46265155  case 35:
    4627 #line 402 "parser.yy" /* yacc.c:1646  */
     5156
     5157/* Line 1806 of yacc.c  */
     5158#line 440 "parser.yy"
     5159    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5160    break;
     5161
     5162  case 36:
     5163
     5164/* Line 1806 of yacc.c  */
     5165#line 445 "parser.yy"
    46285166    { (yyval.en) = 0; }
    4629 #line 4630 "Parser/parser.cc" /* yacc.c:1646  */
    4630     break;
    4631 
    4632   case 38:
    4633 #line 408 "parser.yy" /* yacc.c:1646  */
    4634     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    4635 #line 4636 "Parser/parser.cc" /* yacc.c:1646  */
    46365167    break;
    46375168
    46385169  case 39:
    4639 #line 413 "parser.yy" /* yacc.c:1646  */
    4640     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    4641 #line 4642 "Parser/parser.cc" /* yacc.c:1646  */
     5170
     5171/* Line 1806 of yacc.c  */
     5172#line 451 "parser.yy"
     5173    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    46425174    break;
    46435175
    46445176  case 40:
    4645 #line 417 "parser.yy" /* yacc.c:1646  */
    4646     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
    4647 #line 4648 "Parser/parser.cc" /* yacc.c:1646  */
     5177
     5178/* Line 1806 of yacc.c  */
     5179#line 456 "parser.yy"
     5180    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    46485181    break;
    46495182
    46505183  case 41:
    4651 #line 419 "parser.yy" /* yacc.c:1646  */
    4652     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
    4653 #line 4654 "Parser/parser.cc" /* yacc.c:1646  */
     5184
     5185/* Line 1806 of yacc.c  */
     5186#line 460 "parser.yy"
     5187    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    46545188    break;
    46555189
    46565190  case 42:
    4657 #line 421 "parser.yy" /* yacc.c:1646  */
    4658     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); }
    4659 #line 4660 "Parser/parser.cc" /* yacc.c:1646  */
     5191
     5192/* Line 1806 of yacc.c  */
     5193#line 462 "parser.yy"
     5194    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    46605195    break;
    46615196
    46625197  case 43:
    4663 #line 423 "parser.yy" /* yacc.c:1646  */
    4664     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); }
    4665 #line 4666 "Parser/parser.cc" /* yacc.c:1646  */
    4666     break;
    4667 
    4668   case 45:
    4669 #line 431 "parser.yy" /* yacc.c:1646  */
    4670     { (yyval.en) = (yyvsp[0].en); }
    4671 #line 4672 "Parser/parser.cc" /* yacc.c:1646  */
     5198
     5199/* Line 1806 of yacc.c  */
     5200#line 464 "parser.yy"
     5201    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
     5202    break;
     5203
     5204  case 44:
     5205
     5206/* Line 1806 of yacc.c  */
     5207#line 466 "parser.yy"
     5208    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    46725209    break;
    46735210
    46745211  case 46:
    4675 #line 433 "parser.yy" /* yacc.c:1646  */
    4676     { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
    4677 #line 4678 "Parser/parser.cc" /* yacc.c:1646  */
     5212
     5213/* Line 1806 of yacc.c  */
     5214#line 474 "parser.yy"
     5215    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    46785216    break;
    46795217
    46805218  case 47:
    4681 #line 435 "parser.yy" /* yacc.c:1646  */
    4682     { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
    4683 #line 4684 "Parser/parser.cc" /* yacc.c:1646  */
     5219
     5220/* Line 1806 of yacc.c  */
     5221#line 476 "parser.yy"
     5222    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    46845223    break;
    46855224
    46865225  case 48:
    4687 #line 440 "parser.yy" /* yacc.c:1646  */
     5226
     5227/* Line 1806 of yacc.c  */
     5228#line 478 "parser.yy"
     5229    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     5230    break;
     5231
     5232  case 49:
     5233
     5234/* Line 1806 of yacc.c  */
     5235#line 483 "parser.yy"
    46885236    {
    4689                         switch ( (yyvsp[-1].op) ) {
     5237                        switch ( (yyvsp[(1) - (2)].op) ) {
    46905238                          case OperKinds::AddressOf:
    4691                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
     5239                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
    46925240                                break;
    46935241                          case OperKinds::PointTo:
    4694                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
     5242                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
    46955243                                break;
    46965244                          default:
     
    46985246                        }
    46995247                }
    4700 #line 4701 "Parser/parser.cc" /* yacc.c:1646  */
    4701     break;
    4702 
    4703   case 49:
    4704 #line 453 "parser.yy" /* yacc.c:1646  */
    4705     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); }
    4706 #line 4707 "Parser/parser.cc" /* yacc.c:1646  */
    47075248    break;
    47085249
    47095250  case 50:
    4710 #line 455 "parser.yy" /* yacc.c:1646  */
    4711     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); }
    4712 #line 4713 "Parser/parser.cc" /* yacc.c:1646  */
     5251
     5252/* Line 1806 of yacc.c  */
     5253#line 496 "parser.yy"
     5254    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    47135255    break;
    47145256
    47155257  case 51:
    4716 #line 457 "parser.yy" /* yacc.c:1646  */
    4717     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); }
    4718 #line 4719 "Parser/parser.cc" /* yacc.c:1646  */
     5258
     5259/* Line 1806 of yacc.c  */
     5260#line 498 "parser.yy"
     5261    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    47195262    break;
    47205263
    47215264  case 52:
    4722 #line 459 "parser.yy" /* yacc.c:1646  */
    4723     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
    4724 #line 4725 "Parser/parser.cc" /* yacc.c:1646  */
     5265
     5266/* Line 1806 of yacc.c  */
     5267#line 500 "parser.yy"
     5268    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    47255269    break;
    47265270
    47275271  case 53:
    4728 #line 461 "parser.yy" /* yacc.c:1646  */
    4729     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
    4730 #line 4731 "Parser/parser.cc" /* yacc.c:1646  */
     5272
     5273/* Line 1806 of yacc.c  */
     5274#line 502 "parser.yy"
     5275    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    47315276    break;
    47325277
    47335278  case 54:
    4734 #line 463 "parser.yy" /* yacc.c:1646  */
    4735     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
    4736 #line 4737 "Parser/parser.cc" /* yacc.c:1646  */
     5279
     5280/* Line 1806 of yacc.c  */
     5281#line 504 "parser.yy"
     5282    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    47375283    break;
    47385284
    47395285  case 55:
    4740 #line 465 "parser.yy" /* yacc.c:1646  */
    4741     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
    4742 #line 4743 "Parser/parser.cc" /* yacc.c:1646  */
     5286
     5287/* Line 1806 of yacc.c  */
     5288#line 506 "parser.yy"
     5289    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    47435290    break;
    47445291
    47455292  case 56:
    4746 #line 467 "parser.yy" /* yacc.c:1646  */
    4747     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); }
    4748 #line 4749 "Parser/parser.cc" /* yacc.c:1646  */
     5293
     5294/* Line 1806 of yacc.c  */
     5295#line 508 "parser.yy"
     5296    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    47495297    break;
    47505298
    47515299  case 57:
    4752 #line 469 "parser.yy" /* yacc.c:1646  */
    4753     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); }
    4754 #line 4755 "Parser/parser.cc" /* yacc.c:1646  */
     5300
     5301/* Line 1806 of yacc.c  */
     5302#line 510 "parser.yy"
     5303    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    47555304    break;
    47565305
    47575306  case 58:
    4758 #line 471 "parser.yy" /* yacc.c:1646  */
    4759     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); }
    4760 #line 4761 "Parser/parser.cc" /* yacc.c:1646  */
     5307
     5308/* Line 1806 of yacc.c  */
     5309#line 512 "parser.yy"
     5310    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    47615311    break;
    47625312
    47635313  case 59:
    4764 #line 473 "parser.yy" /* yacc.c:1646  */
    4765     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); }
    4766 #line 4767 "Parser/parser.cc" /* yacc.c:1646  */
     5314
     5315/* Line 1806 of yacc.c  */
     5316#line 514 "parser.yy"
     5317    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    47675318    break;
    47685319
    47695320  case 60:
    4770 #line 479 "parser.yy" /* yacc.c:1646  */
     5321
     5322/* Line 1806 of yacc.c  */
     5323#line 516 "parser.yy"
     5324    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     5325    break;
     5326
     5327  case 61:
     5328
     5329/* Line 1806 of yacc.c  */
     5330#line 522 "parser.yy"
    47715331    { (yyval.op) = OperKinds::PointTo; }
    4772 #line 4773 "Parser/parser.cc" /* yacc.c:1646  */
    4773     break;
    4774 
    4775   case 61:
    4776 #line 480 "parser.yy" /* yacc.c:1646  */
     5332    break;
     5333
     5334  case 62:
     5335
     5336/* Line 1806 of yacc.c  */
     5337#line 523 "parser.yy"
    47775338    { (yyval.op) = OperKinds::AddressOf; }
    4778 #line 4779 "Parser/parser.cc" /* yacc.c:1646  */
    4779     break;
    4780 
    4781   case 62:
    4782 #line 486 "parser.yy" /* yacc.c:1646  */
     5339    break;
     5340
     5341  case 63:
     5342
     5343/* Line 1806 of yacc.c  */
     5344#line 529 "parser.yy"
    47835345    { (yyval.op) = OperKinds::UnPlus; }
    4784 #line 4785 "Parser/parser.cc" /* yacc.c:1646  */
    4785     break;
    4786 
    4787   case 63:
    4788 #line 487 "parser.yy" /* yacc.c:1646  */
     5346    break;
     5347
     5348  case 64:
     5349
     5350/* Line 1806 of yacc.c  */
     5351#line 530 "parser.yy"
    47895352    { (yyval.op) = OperKinds::UnMinus; }
    4790 #line 4791 "Parser/parser.cc" /* yacc.c:1646  */
    4791     break;
    4792 
    4793   case 64:
    4794 #line 488 "parser.yy" /* yacc.c:1646  */
     5353    break;
     5354
     5355  case 65:
     5356
     5357/* Line 1806 of yacc.c  */
     5358#line 531 "parser.yy"
    47955359    { (yyval.op) = OperKinds::Neg; }
    4796 #line 4797 "Parser/parser.cc" /* yacc.c:1646  */
    4797     break;
    4798 
    4799   case 65:
    4800 #line 489 "parser.yy" /* yacc.c:1646  */
     5360    break;
     5361
     5362  case 66:
     5363
     5364/* Line 1806 of yacc.c  */
     5365#line 532 "parser.yy"
    48015366    { (yyval.op) = OperKinds::BitNeg; }
    4802 #line 4803 "Parser/parser.cc" /* yacc.c:1646  */
    4803     break;
    4804 
    4805   case 67:
    4806 #line 495 "parser.yy" /* yacc.c:1646  */
    4807     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
    4808 #line 4809 "Parser/parser.cc" /* yacc.c:1646  */
    48095367    break;
    48105368
    48115369  case 68:
    4812 #line 497 "parser.yy" /* yacc.c:1646  */
    4813     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
    4814 #line 4815 "Parser/parser.cc" /* yacc.c:1646  */
    4815     break;
    4816 
    4817   case 70:
    4818 #line 503 "parser.yy" /* yacc.c:1646  */
    4819     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4820 #line 4821 "Parser/parser.cc" /* yacc.c:1646  */
     5370
     5371/* Line 1806 of yacc.c  */
     5372#line 538 "parser.yy"
     5373    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     5374    break;
     5375
     5376  case 69:
     5377
     5378/* Line 1806 of yacc.c  */
     5379#line 540 "parser.yy"
     5380    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    48215381    break;
    48225382
    48235383  case 71:
    4824 #line 505 "parser.yy" /* yacc.c:1646  */
    4825     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4826 #line 4827 "Parser/parser.cc" /* yacc.c:1646  */
     5384
     5385/* Line 1806 of yacc.c  */
     5386#line 546 "parser.yy"
     5387    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48275388    break;
    48285389
    48295390  case 72:
    4830 #line 507 "parser.yy" /* yacc.c:1646  */
    4831     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4832 #line 4833 "Parser/parser.cc" /* yacc.c:1646  */
    4833     break;
    4834 
    4835   case 74:
    4836 #line 513 "parser.yy" /* yacc.c:1646  */
    4837     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4838 #line 4839 "Parser/parser.cc" /* yacc.c:1646  */
     5391
     5392/* Line 1806 of yacc.c  */
     5393#line 548 "parser.yy"
     5394    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5395    break;
     5396
     5397  case 73:
     5398
     5399/* Line 1806 of yacc.c  */
     5400#line 550 "parser.yy"
     5401    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48395402    break;
    48405403
    48415404  case 75:
    4842 #line 515 "parser.yy" /* yacc.c:1646  */
    4843     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4844 #line 4845 "Parser/parser.cc" /* yacc.c:1646  */
    4845     break;
    4846 
    4847   case 77:
    4848 #line 521 "parser.yy" /* yacc.c:1646  */
    4849     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4850 #line 4851 "Parser/parser.cc" /* yacc.c:1646  */
     5405
     5406/* Line 1806 of yacc.c  */
     5407#line 556 "parser.yy"
     5408    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5409    break;
     5410
     5411  case 76:
     5412
     5413/* Line 1806 of yacc.c  */
     5414#line 558 "parser.yy"
     5415    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48515416    break;
    48525417
    48535418  case 78:
    4854 #line 523 "parser.yy" /* yacc.c:1646  */
    4855     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4856 #line 4857 "Parser/parser.cc" /* yacc.c:1646  */
    4857     break;
    4858 
    4859   case 80:
    4860 #line 529 "parser.yy" /* yacc.c:1646  */
    4861     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4862 #line 4863 "Parser/parser.cc" /* yacc.c:1646  */
     5419
     5420/* Line 1806 of yacc.c  */
     5421#line 564 "parser.yy"
     5422    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5423    break;
     5424
     5425  case 79:
     5426
     5427/* Line 1806 of yacc.c  */
     5428#line 566 "parser.yy"
     5429    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48635430    break;
    48645431
    48655432  case 81:
    4866 #line 531 "parser.yy" /* yacc.c:1646  */
    4867     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4868 #line 4869 "Parser/parser.cc" /* yacc.c:1646  */
     5433
     5434/* Line 1806 of yacc.c  */
     5435#line 572 "parser.yy"
     5436    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48695437    break;
    48705438
    48715439  case 82:
    4872 #line 533 "parser.yy" /* yacc.c:1646  */
    4873     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4874 #line 4875 "Parser/parser.cc" /* yacc.c:1646  */
     5440
     5441/* Line 1806 of yacc.c  */
     5442#line 574 "parser.yy"
     5443    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48755444    break;
    48765445
    48775446  case 83:
    4878 #line 535 "parser.yy" /* yacc.c:1646  */
    4879     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4880 #line 4881 "Parser/parser.cc" /* yacc.c:1646  */
    4881     break;
    4882 
    4883   case 85:
    4884 #line 541 "parser.yy" /* yacc.c:1646  */
    4885     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4886 #line 4887 "Parser/parser.cc" /* yacc.c:1646  */
     5447
     5448/* Line 1806 of yacc.c  */
     5449#line 576 "parser.yy"
     5450    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5451    break;
     5452
     5453  case 84:
     5454
     5455/* Line 1806 of yacc.c  */
     5456#line 578 "parser.yy"
     5457    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    48875458    break;
    48885459
    48895460  case 86:
    4890 #line 543 "parser.yy" /* yacc.c:1646  */
    4891     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4892 #line 4893 "Parser/parser.cc" /* yacc.c:1646  */
    4893     break;
    4894 
    4895   case 88:
    4896 #line 549 "parser.yy" /* yacc.c:1646  */
    4897     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4898 #line 4899 "Parser/parser.cc" /* yacc.c:1646  */
    4899     break;
    4900 
    4901   case 90:
    4902 #line 555 "parser.yy" /* yacc.c:1646  */
    4903     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4904 #line 4905 "Parser/parser.cc" /* yacc.c:1646  */
    4905     break;
    4906 
    4907   case 92:
    4908 #line 561 "parser.yy" /* yacc.c:1646  */
    4909     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4910 #line 4911 "Parser/parser.cc" /* yacc.c:1646  */
    4911     break;
    4912 
    4913   case 94:
    4914 #line 567 "parser.yy" /* yacc.c:1646  */
    4915     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); }
    4916 #line 4917 "Parser/parser.cc" /* yacc.c:1646  */
    4917     break;
    4918 
    4919   case 96:
    4920 #line 573 "parser.yy" /* yacc.c:1646  */
    4921     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); }
    4922 #line 4923 "Parser/parser.cc" /* yacc.c:1646  */
    4923     break;
    4924 
    4925   case 98:
    4926 #line 579 "parser.yy" /* yacc.c:1646  */
    4927     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4928 #line 4929 "Parser/parser.cc" /* yacc.c:1646  */
     5461
     5462/* Line 1806 of yacc.c  */
     5463#line 584 "parser.yy"
     5464    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5465    break;
     5466
     5467  case 87:
     5468
     5469/* Line 1806 of yacc.c  */
     5470#line 586 "parser.yy"
     5471    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5472    break;
     5473
     5474  case 89:
     5475
     5476/* Line 1806 of yacc.c  */
     5477#line 592 "parser.yy"
     5478    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5479    break;
     5480
     5481  case 91:
     5482
     5483/* Line 1806 of yacc.c  */
     5484#line 598 "parser.yy"
     5485    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5486    break;
     5487
     5488  case 93:
     5489
     5490/* Line 1806 of yacc.c  */
     5491#line 604 "parser.yy"
     5492    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5493    break;
     5494
     5495  case 95:
     5496
     5497/* Line 1806 of yacc.c  */
     5498#line 610 "parser.yy"
     5499    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     5500    break;
     5501
     5502  case 97:
     5503
     5504/* Line 1806 of yacc.c  */
     5505#line 616 "parser.yy"
     5506    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    49295507    break;
    49305508
    49315509  case 99:
    4932 #line 582 "parser.yy" /* yacc.c:1646  */
    4933     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); }
    4934 #line 4935 "Parser/parser.cc" /* yacc.c:1646  */
     5510
     5511/* Line 1806 of yacc.c  */
     5512#line 622 "parser.yy"
     5513    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    49355514    break;
    49365515
    49375516  case 100:
    4938 #line 584 "parser.yy" /* yacc.c:1646  */
    4939     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4940 #line 4941 "Parser/parser.cc" /* yacc.c:1646  */
    4941     break;
    4942 
    4943   case 103:
    4944 #line 595 "parser.yy" /* yacc.c:1646  */
    4945     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    4946 #line 4947 "Parser/parser.cc" /* yacc.c:1646  */
     5517
     5518/* Line 1806 of yacc.c  */
     5519#line 625 "parser.yy"
     5520    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5521    break;
     5522
     5523  case 101:
     5524
     5525/* Line 1806 of yacc.c  */
     5526#line 627 "parser.yy"
     5527    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    49475528    break;
    49485529
    49495530  case 104:
    4950 #line 597 "parser.yy" /* yacc.c:1646  */
    4951     { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); }
    4952 #line 4953 "Parser/parser.cc" /* yacc.c:1646  */
     5531
     5532/* Line 1806 of yacc.c  */
     5533#line 638 "parser.yy"
     5534    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    49535535    break;
    49545536
    49555537  case 105:
    4956 #line 602 "parser.yy" /* yacc.c:1646  */
     5538
     5539/* Line 1806 of yacc.c  */
     5540#line 640 "parser.yy"
     5541    { (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) ) ); }
     5542    break;
     5543
     5544  case 106:
     5545
     5546/* Line 1806 of yacc.c  */
     5547#line 645 "parser.yy"
    49575548    { (yyval.en) = nullptr; }
    4958 #line 4959 "Parser/parser.cc" /* yacc.c:1646  */
    4959     break;
    4960 
    4961   case 107:
    4962 #line 607 "parser.yy" /* yacc.c:1646  */
     5549    break;
     5550
     5551  case 108:
     5552
     5553/* Line 1806 of yacc.c  */
     5554#line 650 "parser.yy"
    49635555    { (yyval.op) = OperKinds::Assign; }
    4964 #line 4965 "Parser/parser.cc" /* yacc.c:1646  */
    4965     break;
    4966 
    4967   case 108:
    4968 #line 608 "parser.yy" /* yacc.c:1646  */
     5556    break;
     5557
     5558  case 109:
     5559
     5560/* Line 1806 of yacc.c  */
     5561#line 651 "parser.yy"
    49695562    { (yyval.op) = OperKinds::MulAssn; }
    4970 #line 4971 "Parser/parser.cc" /* yacc.c:1646  */
    4971     break;
    4972 
    4973   case 109:
    4974 #line 609 "parser.yy" /* yacc.c:1646  */
     5563    break;
     5564
     5565  case 110:
     5566
     5567/* Line 1806 of yacc.c  */
     5568#line 652 "parser.yy"
    49755569    { (yyval.op) = OperKinds::DivAssn; }
    4976 #line 4977 "Parser/parser.cc" /* yacc.c:1646  */
    4977     break;
    4978 
    4979   case 110:
    4980 #line 610 "parser.yy" /* yacc.c:1646  */
     5570    break;
     5571
     5572  case 111:
     5573
     5574/* Line 1806 of yacc.c  */
     5575#line 653 "parser.yy"
    49815576    { (yyval.op) = OperKinds::ModAssn; }
    4982 #line 4983 "Parser/parser.cc" /* yacc.c:1646  */
    4983     break;
    4984 
    4985   case 111:
    4986 #line 611 "parser.yy" /* yacc.c:1646  */
     5577    break;
     5578
     5579  case 112:
     5580
     5581/* Line 1806 of yacc.c  */
     5582#line 654 "parser.yy"
    49875583    { (yyval.op) = OperKinds::PlusAssn; }
    4988 #line 4989 "Parser/parser.cc" /* yacc.c:1646  */
    4989     break;
    4990 
    4991   case 112:
    4992 #line 612 "parser.yy" /* yacc.c:1646  */
     5584    break;
     5585
     5586  case 113:
     5587
     5588/* Line 1806 of yacc.c  */
     5589#line 655 "parser.yy"
    49935590    { (yyval.op) = OperKinds::MinusAssn; }
    4994 #line 4995 "Parser/parser.cc" /* yacc.c:1646  */
    4995     break;
    4996 
    4997   case 113:
    4998 #line 613 "parser.yy" /* yacc.c:1646  */
     5591    break;
     5592
     5593  case 114:
     5594
     5595/* Line 1806 of yacc.c  */
     5596#line 656 "parser.yy"
    49995597    { (yyval.op) = OperKinds::LSAssn; }
    5000 #line 5001 "Parser/parser.cc" /* yacc.c:1646  */
    5001     break;
    5002 
    5003   case 114:
    5004 #line 614 "parser.yy" /* yacc.c:1646  */
     5598    break;
     5599
     5600  case 115:
     5601
     5602/* Line 1806 of yacc.c  */
     5603#line 657 "parser.yy"
    50055604    { (yyval.op) = OperKinds::RSAssn; }
    5006 #line 5007 "Parser/parser.cc" /* yacc.c:1646  */
    5007     break;
    5008 
    5009   case 115:
    5010 #line 615 "parser.yy" /* yacc.c:1646  */
     5605    break;
     5606
     5607  case 116:
     5608
     5609/* Line 1806 of yacc.c  */
     5610#line 658 "parser.yy"
    50115611    { (yyval.op) = OperKinds::AndAssn; }
    5012 #line 5013 "Parser/parser.cc" /* yacc.c:1646  */
    5013     break;
    5014 
    5015   case 116:
    5016 #line 616 "parser.yy" /* yacc.c:1646  */
     5612    break;
     5613
     5614  case 117:
     5615
     5616/* Line 1806 of yacc.c  */
     5617#line 659 "parser.yy"
    50175618    { (yyval.op) = OperKinds::ERAssn; }
    5018 #line 5019 "Parser/parser.cc" /* yacc.c:1646  */
    5019     break;
    5020 
    5021   case 117:
    5022 #line 617 "parser.yy" /* yacc.c:1646  */
     5619    break;
     5620
     5621  case 118:
     5622
     5623/* Line 1806 of yacc.c  */
     5624#line 660 "parser.yy"
    50235625    { (yyval.op) = OperKinds::OrAssn; }
    5024 #line 5025 "Parser/parser.cc" /* yacc.c:1646  */
    5025     break;
    5026 
    5027   case 118:
    5028 #line 624 "parser.yy" /* yacc.c:1646  */
     5626    break;
     5627
     5628  case 119:
     5629
     5630/* Line 1806 of yacc.c  */
     5631#line 667 "parser.yy"
    50295632    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    5030 #line 5031 "Parser/parser.cc" /* yacc.c:1646  */
    5031     break;
    5032 
    5033   case 119:
    5034 #line 626 "parser.yy" /* yacc.c:1646  */
    5035     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); }
    5036 #line 5037 "Parser/parser.cc" /* yacc.c:1646  */
    50375633    break;
    50385634
    50395635  case 120:
    5040 #line 628 "parser.yy" /* yacc.c:1646  */
    5041     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); }
    5042 #line 5043 "Parser/parser.cc" /* yacc.c:1646  */
     5636
     5637/* Line 1806 of yacc.c  */
     5638#line 669 "parser.yy"
     5639    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    50435640    break;
    50445641
    50455642  case 121:
    5046 #line 630 "parser.yy" /* yacc.c:1646  */
    5047     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); }
    5048 #line 5049 "Parser/parser.cc" /* yacc.c:1646  */
    5049     break;
    5050 
    5051   case 123:
    5052 #line 636 "parser.yy" /* yacc.c:1646  */
    5053     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    5054 #line 5055 "Parser/parser.cc" /* yacc.c:1646  */
    5055     break;
    5056 
    5057   case 125:
    5058 #line 642 "parser.yy" /* yacc.c:1646  */
    5059     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    5060 #line 5061 "Parser/parser.cc" /* yacc.c:1646  */
     5643
     5644/* Line 1806 of yacc.c  */
     5645#line 671 "parser.yy"
     5646    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5647    break;
     5648
     5649  case 122:
     5650
     5651/* Line 1806 of yacc.c  */
     5652#line 673 "parser.yy"
     5653    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5654    break;
     5655
     5656  case 124:
     5657
     5658/* Line 1806 of yacc.c  */
     5659#line 679 "parser.yy"
     5660    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    50615661    break;
    50625662
    50635663  case 126:
    5064 #line 647 "parser.yy" /* yacc.c:1646  */
     5664
     5665/* Line 1806 of yacc.c  */
     5666#line 685 "parser.yy"
     5667    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5668    break;
     5669
     5670  case 127:
     5671
     5672/* Line 1806 of yacc.c  */
     5673#line 690 "parser.yy"
    50655674    { (yyval.en) = 0; }
    5066 #line 5067 "Parser/parser.cc" /* yacc.c:1646  */
    5067     break;
    5068 
    5069   case 130:
    5070 #line 656 "parser.yy" /* yacc.c:1646  */
    5071     { (yyval.sn) = (yyvsp[0].sn); }
    5072 #line 5073 "Parser/parser.cc" /* yacc.c:1646  */
    5073     break;
    5074 
    5075   case 136:
    5076 #line 663 "parser.yy" /* yacc.c:1646  */
     5675    break;
     5676
     5677  case 131:
     5678
     5679/* Line 1806 of yacc.c  */
     5680#line 699 "parser.yy"
     5681    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     5682    break;
     5683
     5684  case 137:
     5685
     5686/* Line 1806 of yacc.c  */
     5687#line 706 "parser.yy"
    50775688    {
    50785689                        Token fn;
    50795690                        fn.str = new std::string( "^?{}" ); // location undefined
    5080                         (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );
     5691                        (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );
    50815692                }
    5082 #line 5083 "Parser/parser.cc" /* yacc.c:1646  */
    5083     break;
    5084 
    5085   case 137:
    5086 #line 673 "parser.yy" /* yacc.c:1646  */
     5693    break;
     5694
     5695  case 138:
     5696
     5697/* Line 1806 of yacc.c  */
     5698#line 716 "parser.yy"
    50875699    {
    5088                         (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
     5700                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
    50895701                }
    5090 #line 5091 "Parser/parser.cc" /* yacc.c:1646  */
    5091     break;
    5092 
    5093   case 138:
    5094 #line 680 "parser.yy" /* yacc.c:1646  */
     5702    break;
     5703
     5704  case 139:
     5705
     5706/* Line 1806 of yacc.c  */
     5707#line 723 "parser.yy"
    50955708    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    5096 #line 5097 "Parser/parser.cc" /* yacc.c:1646  */
    5097     break;
    5098 
    5099   case 139:
    5100 #line 687 "parser.yy" /* yacc.c:1646  */
    5101     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
    5102 #line 5103 "Parser/parser.cc" /* yacc.c:1646  */
    5103     break;
    5104 
    5105   case 141:
    5106 #line 693 "parser.yy" /* yacc.c:1646  */
    5107     { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } }
    5108 #line 5109 "Parser/parser.cc" /* yacc.c:1646  */
     5709    break;
     5710
     5711  case 140:
     5712
     5713/* Line 1806 of yacc.c  */
     5714#line 730 "parser.yy"
     5715    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    51095716    break;
    51105717
    51115718  case 142:
    5112 #line 698 "parser.yy" /* yacc.c:1646  */
    5113     { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
    5114 #line 5115 "Parser/parser.cc" /* yacc.c:1646  */
     5719
     5720/* Line 1806 of yacc.c  */
     5721#line 736 "parser.yy"
     5722    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    51155723    break;
    51165724
    51175725  case 143:
    5118 #line 700 "parser.yy" /* yacc.c:1646  */
     5726
     5727/* Line 1806 of yacc.c  */
     5728#line 741 "parser.yy"
     5729    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5730    break;
     5731
     5732  case 144:
     5733
     5734/* Line 1806 of yacc.c  */
     5735#line 743 "parser.yy"
    51195736    {   // mark all fields in list
    5120                         for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5737                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    51215738                                iter->set_extension( true );
    5122                         (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
     5739                        (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
    51235740                }
    5124 #line 5125 "Parser/parser.cc" /* yacc.c:1646  */
    5125     break;
    5126 
    5127   case 144:
    5128 #line 706 "parser.yy" /* yacc.c:1646  */
    5129     { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
    5130 #line 5131 "Parser/parser.cc" /* yacc.c:1646  */
    5131     break;
    5132 
    5133   case 147:
    5134 #line 713 "parser.yy" /* yacc.c:1646  */
    5135     { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } }
    5136 #line 5137 "Parser/parser.cc" /* yacc.c:1646  */
     5741    break;
     5742
     5743  case 145:
     5744
     5745/* Line 1806 of yacc.c  */
     5746#line 749 "parser.yy"
     5747    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    51375748    break;
    51385749
    51395750  case 148:
    5140 #line 718 "parser.yy" /* yacc.c:1646  */
    5141     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
    5142 #line 5143 "Parser/parser.cc" /* yacc.c:1646  */
     5751
     5752/* Line 1806 of yacc.c  */
     5753#line 756 "parser.yy"
     5754    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    51435755    break;
    51445756
    51455757  case 149:
    5146 #line 724 "parser.yy" /* yacc.c:1646  */
    5147     { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); }
    5148 #line 5149 "Parser/parser.cc" /* yacc.c:1646  */
     5758
     5759/* Line 1806 of yacc.c  */
     5760#line 761 "parser.yy"
     5761    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    51495762    break;
    51505763
    51515764  case 150:
    5152 #line 726 "parser.yy" /* yacc.c:1646  */
    5153     { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); }
    5154 #line 5155 "Parser/parser.cc" /* yacc.c:1646  */
     5765
     5766/* Line 1806 of yacc.c  */
     5767#line 767 "parser.yy"
     5768    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    51555769    break;
    51565770
    51575771  case 151:
    5158 #line 728 "parser.yy" /* yacc.c:1646  */
    5159     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5160 #line 5161 "Parser/parser.cc" /* yacc.c:1646  */
     5772
     5773/* Line 1806 of yacc.c  */
     5774#line 769 "parser.yy"
     5775    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    51615776    break;
    51625777
    51635778  case 152:
    5164 #line 730 "parser.yy" /* yacc.c:1646  */
     5779
     5780/* Line 1806 of yacc.c  */
     5781#line 771 "parser.yy"
     5782    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5783    break;
     5784
     5785  case 153:
     5786
     5787/* Line 1806 of yacc.c  */
     5788#line 773 "parser.yy"
    51655789    {
    5166                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
     5790                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    51675791                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    51685792                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    51705794                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    51715795                        // statement.
    5172                         (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
     5796                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
    51735797                }
    5174 #line 5175 "Parser/parser.cc" /* yacc.c:1646  */
    5175     break;
    5176 
    5177   case 153:
    5178 #line 740 "parser.yy" /* yacc.c:1646  */
    5179     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5180 #line 5181 "Parser/parser.cc" /* yacc.c:1646  */
    51815798    break;
    51825799
    51835800  case 154:
    5184 #line 742 "parser.yy" /* yacc.c:1646  */
     5801
     5802/* Line 1806 of yacc.c  */
     5803#line 783 "parser.yy"
     5804    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5805    break;
     5806
     5807  case 155:
     5808
     5809/* Line 1806 of yacc.c  */
     5810#line 785 "parser.yy"
    51855811    {
    5186                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    5187                         (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
     5812                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5813                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
    51885814                }
    5189 #line 5190 "Parser/parser.cc" /* yacc.c:1646  */
    5190     break;
    5191 
    5192   case 155:
    5193 #line 752 "parser.yy" /* yacc.c:1646  */
    5194     { (yyval.en) = (yyvsp[0].en); }
    5195 #line 5196 "Parser/parser.cc" /* yacc.c:1646  */
    51965815    break;
    51975816
    51985817  case 156:
    5199 #line 754 "parser.yy" /* yacc.c:1646  */
    5200     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    5201 #line 5202 "Parser/parser.cc" /* yacc.c:1646  */
    5202     break;
    5203 
    5204   case 158:
    5205 #line 759 "parser.yy" /* yacc.c:1646  */
    5206     { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
    5207 #line 5208 "Parser/parser.cc" /* yacc.c:1646  */
     5818
     5819/* Line 1806 of yacc.c  */
     5820#line 795 "parser.yy"
     5821    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5822    break;
     5823
     5824  case 157:
     5825
     5826/* Line 1806 of yacc.c  */
     5827#line 797 "parser.yy"
     5828    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52085829    break;
    52095830
    52105831  case 159:
    5211 #line 761 "parser.yy" /* yacc.c:1646  */
    5212     { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); }
    5213 #line 5214 "Parser/parser.cc" /* yacc.c:1646  */
     5832
     5833/* Line 1806 of yacc.c  */
     5834#line 802 "parser.yy"
     5835    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    52145836    break;
    52155837
    52165838  case 160:
    5217 #line 765 "parser.yy" /* yacc.c:1646  */
    5218     { (yyval.sn) = (yyvsp[-1].sn); }
    5219 #line 5220 "Parser/parser.cc" /* yacc.c:1646  */
     5839
     5840/* Line 1806 of yacc.c  */
     5841#line 804 "parser.yy"
     5842    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    52205843    break;
    52215844
    52225845  case 161:
    5223 #line 766 "parser.yy" /* yacc.c:1646  */
     5846
     5847/* Line 1806 of yacc.c  */
     5848#line 808 "parser.yy"
     5849    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5850    break;
     5851
     5852  case 162:
     5853
     5854/* Line 1806 of yacc.c  */
     5855#line 809 "parser.yy"
    52245856    { (yyval.sn) = new StatementNode( build_default() ); }
    5225 #line 5226 "Parser/parser.cc" /* yacc.c:1646  */
    5226     break;
    5227 
    5228   case 163:
    5229 #line 772 "parser.yy" /* yacc.c:1646  */
    5230     { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); }
    5231 #line 5232 "Parser/parser.cc" /* yacc.c:1646  */
    52325857    break;
    52335858
    52345859  case 164:
    5235 #line 776 "parser.yy" /* yacc.c:1646  */
    5236     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
    5237 #line 5238 "Parser/parser.cc" /* yacc.c:1646  */
     5860
     5861/* Line 1806 of yacc.c  */
     5862#line 815 "parser.yy"
     5863    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    52385864    break;
    52395865
    52405866  case 165:
    5241 #line 781 "parser.yy" /* yacc.c:1646  */
     5867
     5868/* Line 1806 of yacc.c  */
     5869#line 819 "parser.yy"
     5870    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5871    break;
     5872
     5873  case 166:
     5874
     5875/* Line 1806 of yacc.c  */
     5876#line 824 "parser.yy"
    52425877    { (yyval.sn) = 0; }
    5243 #line 5244 "Parser/parser.cc" /* yacc.c:1646  */
    5244     break;
    5245 
    5246   case 167:
    5247 #line 787 "parser.yy" /* yacc.c:1646  */
    5248     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
    5249 #line 5250 "Parser/parser.cc" /* yacc.c:1646  */
    52505878    break;
    52515879
    52525880  case 168:
    5253 #line 789 "parser.yy" /* yacc.c:1646  */
    5254     { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); }
    5255 #line 5256 "Parser/parser.cc" /* yacc.c:1646  */
     5881
     5882/* Line 1806 of yacc.c  */
     5883#line 830 "parser.yy"
     5884    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    52565885    break;
    52575886
    52585887  case 169:
    5259 #line 794 "parser.yy" /* yacc.c:1646  */
     5888
     5889/* Line 1806 of yacc.c  */
     5890#line 832 "parser.yy"
     5891    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5892    break;
     5893
     5894  case 170:
     5895
     5896/* Line 1806 of yacc.c  */
     5897#line 837 "parser.yy"
    52605898    { (yyval.sn) = 0; }
    5261 #line 5262 "Parser/parser.cc" /* yacc.c:1646  */
    5262     break;
    5263 
    5264   case 171:
    5265 #line 800 "parser.yy" /* yacc.c:1646  */
    5266     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); }
    5267 #line 5268 "Parser/parser.cc" /* yacc.c:1646  */
    52685899    break;
    52695900
    52705901  case 172:
    5271 #line 802 "parser.yy" /* yacc.c:1646  */
    5272     { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); }
    5273 #line 5274 "Parser/parser.cc" /* yacc.c:1646  */
     5902
     5903/* Line 1806 of yacc.c  */
     5904#line 843 "parser.yy"
     5905    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    52745906    break;
    52755907
    52765908  case 173:
    5277 #line 804 "parser.yy" /* yacc.c:1646  */
    5278     { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); }
    5279 #line 5280 "Parser/parser.cc" /* yacc.c:1646  */
     5909
     5910/* Line 1806 of yacc.c  */
     5911#line 845 "parser.yy"
     5912    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    52805913    break;
    52815914
    52825915  case 174:
    5283 #line 806 "parser.yy" /* yacc.c:1646  */
    5284     { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); }
    5285 #line 5286 "Parser/parser.cc" /* yacc.c:1646  */
     5916
     5917/* Line 1806 of yacc.c  */
     5918#line 847 "parser.yy"
     5919    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    52865920    break;
    52875921
    52885922  case 175:
    5289 #line 811 "parser.yy" /* yacc.c:1646  */
    5290     { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
    5291 #line 5292 "Parser/parser.cc" /* yacc.c:1646  */
    5292     break;
    5293 
    5294   case 177:
    5295 #line 817 "parser.yy" /* yacc.c:1646  */
     5923
     5924/* Line 1806 of yacc.c  */
     5925#line 849 "parser.yy"
     5926    { (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) ) ) ) ) ) ); }
     5927    break;
     5928
     5929  case 176:
     5930
     5931/* Line 1806 of yacc.c  */
     5932#line 854 "parser.yy"
     5933    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5934    break;
     5935
     5936  case 178:
     5937
     5938/* Line 1806 of yacc.c  */
     5939#line 860 "parser.yy"
    52965940    { (yyval.sn) = 0; }
    5297 #line 5298 "Parser/parser.cc" /* yacc.c:1646  */
    5298     break;
    5299 
    5300   case 178:
    5301 #line 819 "parser.yy" /* yacc.c:1646  */
     5941    break;
     5942
     5943  case 179:
     5944
     5945/* Line 1806 of yacc.c  */
     5946#line 862 "parser.yy"
    53025947    { (yyval.sn) = 0; }
    5303 #line 5304 "Parser/parser.cc" /* yacc.c:1646  */
    5304     break;
    5305 
    5306   case 179:
    5307 #line 824 "parser.yy" /* yacc.c:1646  */
    5308     { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
    5309 #line 5310 "Parser/parser.cc" /* yacc.c:1646  */
    53105948    break;
    53115949
    53125950  case 180:
    5313 #line 826 "parser.yy" /* yacc.c:1646  */
    5314     { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn) ) ); }
    5315 #line 5316 "Parser/parser.cc" /* yacc.c:1646  */
     5951
     5952/* Line 1806 of yacc.c  */
     5953#line 867 "parser.yy"
     5954    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    53165955    break;
    53175956
    53185957  case 181:
    5319 #line 828 "parser.yy" /* yacc.c:1646  */
    5320     { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); }
    5321 #line 5322 "Parser/parser.cc" /* yacc.c:1646  */
     5958
     5959/* Line 1806 of yacc.c  */
     5960#line 869 "parser.yy"
     5961    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
    53225962    break;
    53235963
    53245964  case 182:
    5325 #line 833 "parser.yy" /* yacc.c:1646  */
    5326     { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); }
    5327 #line 5328 "Parser/parser.cc" /* yacc.c:1646  */
     5965
     5966/* Line 1806 of yacc.c  */
     5967#line 871 "parser.yy"
     5968    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    53285969    break;
    53295970
    53305971  case 183:
    5331 #line 835 "parser.yy" /* yacc.c:1646  */
    5332     { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); }
    5333 #line 5334 "Parser/parser.cc" /* yacc.c:1646  */
     5972
     5973/* Line 1806 of yacc.c  */
     5974#line 876 "parser.yy"
     5975    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    53345976    break;
    53355977
    53365978  case 184:
    5337 #line 840 "parser.yy" /* yacc.c:1646  */
    5338     { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Goto ) ); }
    5339 #line 5340 "Parser/parser.cc" /* yacc.c:1646  */
     5979
     5980/* Line 1806 of yacc.c  */
     5981#line 878 "parser.yy"
     5982    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    53405983    break;
    53415984
    53425985  case 185:
    5343 #line 844 "parser.yy" /* yacc.c:1646  */
    5344     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
    5345 #line 5346 "Parser/parser.cc" /* yacc.c:1646  */
     5986
     5987/* Line 1806 of yacc.c  */
     5988#line 883 "parser.yy"
     5989    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    53465990    break;
    53475991
    53485992  case 186:
    5349 #line 847 "parser.yy" /* yacc.c:1646  */
    5350     { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Continue ) ); }
    5351 #line 5352 "Parser/parser.cc" /* yacc.c:1646  */
     5993
     5994/* Line 1806 of yacc.c  */
     5995#line 887 "parser.yy"
     5996    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    53525997    break;
    53535998
    53545999  case 187:
    5355 #line 851 "parser.yy" /* yacc.c:1646  */
    5356     { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Continue ) ); }
    5357 #line 5358 "Parser/parser.cc" /* yacc.c:1646  */
     6000
     6001/* Line 1806 of yacc.c  */
     6002#line 890 "parser.yy"
     6003    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    53586004    break;
    53596005
    53606006  case 188:
    5361 #line 854 "parser.yy" /* yacc.c:1646  */
    5362     { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
    5363 #line 5364 "Parser/parser.cc" /* yacc.c:1646  */
     6007
     6008/* Line 1806 of yacc.c  */
     6009#line 894 "parser.yy"
     6010    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    53646011    break;
    53656012
    53666013  case 189:
    5367 #line 858 "parser.yy" /* yacc.c:1646  */
    5368     { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Break ) ); }
    5369 #line 5370 "Parser/parser.cc" /* yacc.c:1646  */
     6014
     6015/* Line 1806 of yacc.c  */
     6016#line 897 "parser.yy"
     6017    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    53706018    break;
    53716019
    53726020  case 190:
    5373 #line 860 "parser.yy" /* yacc.c:1646  */
    5374     { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
    5375 #line 5376 "Parser/parser.cc" /* yacc.c:1646  */
     6021
     6022/* Line 1806 of yacc.c  */
     6023#line 901 "parser.yy"
     6024    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    53766025    break;
    53776026
    53786027  case 191:
    5379 #line 862 "parser.yy" /* yacc.c:1646  */
    5380     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
    5381 #line 5382 "Parser/parser.cc" /* yacc.c:1646  */
     6028
     6029/* Line 1806 of yacc.c  */
     6030#line 903 "parser.yy"
     6031    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    53826032    break;
    53836033
    53846034  case 192:
    5385 #line 864 "parser.yy" /* yacc.c:1646  */
    5386     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
    5387 #line 5388 "Parser/parser.cc" /* yacc.c:1646  */
     6035
     6036/* Line 1806 of yacc.c  */
     6037#line 905 "parser.yy"
     6038    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    53886039    break;
    53896040
    53906041  case 193:
    5391 #line 866 "parser.yy" /* yacc.c:1646  */
    5392     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
    5393 #line 5394 "Parser/parser.cc" /* yacc.c:1646  */
     6042
     6043/* Line 1806 of yacc.c  */
     6044#line 907 "parser.yy"
     6045    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    53946046    break;
    53956047
    53966048  case 194:
    5397 #line 871 "parser.yy" /* yacc.c:1646  */
    5398     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); }
    5399 #line 5400 "Parser/parser.cc" /* yacc.c:1646  */
     6049
     6050/* Line 1806 of yacc.c  */
     6051#line 909 "parser.yy"
     6052    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    54006053    break;
    54016054
    54026055  case 195:
    5403 #line 873 "parser.yy" /* yacc.c:1646  */
    5404     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); }
    5405 #line 5406 "Parser/parser.cc" /* yacc.c:1646  */
     6056
     6057/* Line 1806 of yacc.c  */
     6058#line 914 "parser.yy"
     6059    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    54066060    break;
    54076061
    54086062  case 196:
    5409 #line 875 "parser.yy" /* yacc.c:1646  */
    5410     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); }
    5411 #line 5412 "Parser/parser.cc" /* yacc.c:1646  */
    5412     break;
    5413 
    5414   case 198:
    5415 #line 882 "parser.yy" /* yacc.c:1646  */
    5416     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
    5417 #line 5418 "Parser/parser.cc" /* yacc.c:1646  */
     6063
     6064/* Line 1806 of yacc.c  */
     6065#line 916 "parser.yy"
     6066    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     6067    break;
     6068
     6069  case 197:
     6070
     6071/* Line 1806 of yacc.c  */
     6072#line 918 "parser.yy"
     6073    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    54186074    break;
    54196075
    54206076  case 199:
    5421 #line 884 "parser.yy" /* yacc.c:1646  */
    5422     { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
    5423 #line 5424 "Parser/parser.cc" /* yacc.c:1646  */
     6077
     6078/* Line 1806 of yacc.c  */
     6079#line 925 "parser.yy"
     6080    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    54246081    break;
    54256082
    54266083  case 200:
    5427 #line 886 "parser.yy" /* yacc.c:1646  */
    5428     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
    5429 #line 5430 "Parser/parser.cc" /* yacc.c:1646  */
     6084
     6085/* Line 1806 of yacc.c  */
     6086#line 927 "parser.yy"
     6087    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    54306088    break;
    54316089
    54326090  case 201:
    5433 #line 888 "parser.yy" /* yacc.c:1646  */
    5434     { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
    5435 #line 5436 "Parser/parser.cc" /* yacc.c:1646  */
     6091
     6092/* Line 1806 of yacc.c  */
     6093#line 929 "parser.yy"
     6094    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    54366095    break;
    54376096
    54386097  case 202:
    5439 #line 893 "parser.yy" /* yacc.c:1646  */
    5440     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
    5441 #line 5442 "Parser/parser.cc" /* yacc.c:1646  */
     6098
     6099/* Line 1806 of yacc.c  */
     6100#line 931 "parser.yy"
     6101    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    54426102    break;
    54436103
    54446104  case 203:
    5445 #line 895 "parser.yy" /* yacc.c:1646  */
    5446     { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
    5447 #line 5448 "Parser/parser.cc" /* yacc.c:1646  */
     6105
     6106/* Line 1806 of yacc.c  */
     6107#line 936 "parser.yy"
     6108    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    54486109    break;
    54496110
    54506111  case 204:
    5451 #line 897 "parser.yy" /* yacc.c:1646  */
    5452     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
    5453 #line 5454 "Parser/parser.cc" /* yacc.c:1646  */
     6112
     6113/* Line 1806 of yacc.c  */
     6114#line 938 "parser.yy"
     6115    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    54546116    break;
    54556117
    54566118  case 205:
    5457 #line 899 "parser.yy" /* yacc.c:1646  */
    5458     { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
    5459 #line 5460 "Parser/parser.cc" /* yacc.c:1646  */
     6119
     6120/* Line 1806 of yacc.c  */
     6121#line 940 "parser.yy"
     6122    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    54606123    break;
    54616124
    54626125  case 206:
    5463 #line 904 "parser.yy" /* yacc.c:1646  */
     6126
     6127/* Line 1806 of yacc.c  */
     6128#line 942 "parser.yy"
     6129    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6130    break;
     6131
     6132  case 207:
     6133
     6134/* Line 1806 of yacc.c  */
     6135#line 947 "parser.yy"
    54646136    {
    5465                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
     6137                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
    54666138                }
    5467 #line 5468 "Parser/parser.cc" /* yacc.c:1646  */
    5468     break;
    5469 
    5470   case 208:
    5471 #line 917 "parser.yy" /* yacc.c:1646  */
     6139    break;
     6140
     6141  case 209:
     6142
     6143/* Line 1806 of yacc.c  */
     6144#line 960 "parser.yy"
    54726145    {
    54736146                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5474                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
     6147                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
    54756148                }
    5476 #line 5477 "Parser/parser.cc" /* yacc.c:1646  */
    5477     break;
    5478 
    5479   case 209:
    5480 #line 922 "parser.yy" /* yacc.c:1646  */
    5481     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    5482 #line 5483 "Parser/parser.cc" /* yacc.c:1646  */
    54836149    break;
    54846150
    54856151  case 210:
    5486 #line 924 "parser.yy" /* yacc.c:1646  */
     6152
     6153/* Line 1806 of yacc.c  */
     6154#line 965 "parser.yy"
     6155    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6156    break;
     6157
     6158  case 211:
     6159
     6160/* Line 1806 of yacc.c  */
     6161#line 967 "parser.yy"
    54876162    {
    54886163                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5489                         (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
     6164                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
    54906165                }
    5491 #line 5492 "Parser/parser.cc" /* yacc.c:1646  */
    5492     break;
    5493 
    5494   case 212:
    5495 #line 933 "parser.yy" /* yacc.c:1646  */
    5496     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); }
    5497 #line 5498 "Parser/parser.cc" /* yacc.c:1646  */
    54986166    break;
    54996167
    55006168  case 213:
    5501 #line 935 "parser.yy" /* yacc.c:1646  */
    5502     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); }
    5503 #line 5504 "Parser/parser.cc" /* yacc.c:1646  */
     6169
     6170/* Line 1806 of yacc.c  */
     6171#line 976 "parser.yy"
     6172    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    55046173    break;
    55056174
    55066175  case 214:
    5507 #line 937 "parser.yy" /* yacc.c:1646  */
    5508     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    5509 #line 5510 "Parser/parser.cc" /* yacc.c:1646  */
     6176
     6177/* Line 1806 of yacc.c  */
     6178#line 978 "parser.yy"
     6179    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    55106180    break;
    55116181
    55126182  case 215:
    5513 #line 939 "parser.yy" /* yacc.c:1646  */
    5514     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    5515 #line 5516 "Parser/parser.cc" /* yacc.c:1646  */
     6183
     6184/* Line 1806 of yacc.c  */
     6185#line 980 "parser.yy"
     6186    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    55166187    break;
    55176188
    55186189  case 216:
    5519 #line 941 "parser.yy" /* yacc.c:1646  */
    5520     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); }
    5521 #line 5522 "Parser/parser.cc" /* yacc.c:1646  */
     6190
     6191/* Line 1806 of yacc.c  */
     6192#line 982 "parser.yy"
     6193    { (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) ) ); }
    55226194    break;
    55236195
    55246196  case 217:
    5525 #line 946 "parser.yy" /* yacc.c:1646  */
     6197
     6198/* Line 1806 of yacc.c  */
     6199#line 984 "parser.yy"
     6200    { (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) ) ); }
     6201    break;
     6202
     6203  case 218:
     6204
     6205/* Line 1806 of yacc.c  */
     6206#line 989 "parser.yy"
    55266207    { (yyval.flag) = false; }
    5527 #line 5528 "Parser/parser.cc" /* yacc.c:1646  */
    5528     break;
    5529 
    5530   case 218:
    5531 #line 948 "parser.yy" /* yacc.c:1646  */
     6208    break;
     6209
     6210  case 219:
     6211
     6212/* Line 1806 of yacc.c  */
     6213#line 991 "parser.yy"
    55326214    { (yyval.flag) = true; }
    5533 #line 5534 "Parser/parser.cc" /* yacc.c:1646  */
    5534     break;
    5535 
    5536   case 219:
    5537 #line 953 "parser.yy" /* yacc.c:1646  */
     6215    break;
     6216
     6217  case 220:
     6218
     6219/* Line 1806 of yacc.c  */
     6220#line 996 "parser.yy"
    55386221    { (yyval.en) = 0; }
    5539 #line 5540 "Parser/parser.cc" /* yacc.c:1646  */
    5540     break;
    5541 
    5542   case 222:
    5543 #line 960 "parser.yy" /* yacc.c:1646  */
    5544     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
    5545 #line 5546 "Parser/parser.cc" /* yacc.c:1646  */
    55466222    break;
    55476223
    55486224  case 223:
    5549 #line 965 "parser.yy" /* yacc.c:1646  */
    5550     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
    5551 #line 5552 "Parser/parser.cc" /* yacc.c:1646  */
     6225
     6226/* Line 1806 of yacc.c  */
     6227#line 1003 "parser.yy"
     6228    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    55526229    break;
    55536230
    55546231  case 224:
    5555 #line 967 "parser.yy" /* yacc.c:1646  */
    5556     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
    5557 #line 5558 "Parser/parser.cc" /* yacc.c:1646  */
     6232
     6233/* Line 1806 of yacc.c  */
     6234#line 1008 "parser.yy"
     6235    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    55586236    break;
    55596237
    55606238  case 225:
    5561 #line 972 "parser.yy" /* yacc.c:1646  */
     6239
     6240/* Line 1806 of yacc.c  */
     6241#line 1010 "parser.yy"
     6242    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6243    break;
     6244
     6245  case 226:
     6246
     6247/* Line 1806 of yacc.c  */
     6248#line 1015 "parser.yy"
    55626249    { (yyval.en) = 0; }
    5563 #line 5564 "Parser/parser.cc" /* yacc.c:1646  */
    5564     break;
    5565 
    5566   case 226:
    5567 #line 974 "parser.yy" /* yacc.c:1646  */
    5568     { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
    5569 #line 5570 "Parser/parser.cc" /* yacc.c:1646  */
    55706250    break;
    55716251
    55726252  case 227:
    5573 #line 976 "parser.yy" /* yacc.c:1646  */
    5574     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); }
    5575 #line 5576 "Parser/parser.cc" /* yacc.c:1646  */
     6253
     6254/* Line 1806 of yacc.c  */
     6255#line 1017 "parser.yy"
     6256    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    55766257    break;
    55776258
    55786259  case 228:
    5579 #line 981 "parser.yy" /* yacc.c:1646  */
    5580     { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); }
    5581 #line 5582 "Parser/parser.cc" /* yacc.c:1646  */
     6260
     6261/* Line 1806 of yacc.c  */
     6262#line 1019 "parser.yy"
     6263    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    55826264    break;
    55836265
    55846266  case 229:
    5585 #line 983 "parser.yy" /* yacc.c:1646  */
    5586     { (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); }
    5587 #line 5588 "Parser/parser.cc" /* yacc.c:1646  */
     6267
     6268/* Line 1806 of yacc.c  */
     6269#line 1024 "parser.yy"
     6270    {
     6271                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     6272                        delete (yyvsp[(1) - (1)].tok);                                                                  // allocated by lexer
     6273                }
    55886274    break;
    55896275
    55906276  case 230:
    5591 #line 990 "parser.yy" /* yacc.c:1646  */
     6277
     6278/* Line 1806 of yacc.c  */
     6279#line 1029 "parser.yy"
     6280    {
     6281                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     6282                        delete (yyvsp[(3) - (3)].tok);                                                                  // allocated by lexer
     6283                }
     6284    break;
     6285
     6286  case 231:
     6287
     6288/* Line 1806 of yacc.c  */
     6289#line 1039 "parser.yy"
    55926290    { (yyval.decl) = 0; }
    5593 #line 5594 "Parser/parser.cc" /* yacc.c:1646  */
    5594     break;
    5595 
    5596   case 233:
    5597 #line 997 "parser.yy" /* yacc.c:1646  */
    5598     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    5599 #line 5600 "Parser/parser.cc" /* yacc.c:1646  */
    56006291    break;
    56016292
    56026293  case 234:
    5603 #line 1002 "parser.yy" /* yacc.c:1646  */
     6294
     6295/* Line 1806 of yacc.c  */
     6296#line 1046 "parser.yy"
     6297    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6298    break;
     6299
     6300  case 235:
     6301
     6302/* Line 1806 of yacc.c  */
     6303#line 1051 "parser.yy"
    56046304    { (yyval.decl) = 0; }
    5605 #line 5606 "Parser/parser.cc" /* yacc.c:1646  */
    5606     break;
    5607 
    5608   case 237:
    5609 #line 1009 "parser.yy" /* yacc.c:1646  */
    5610     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    5611 #line 5612 "Parser/parser.cc" /* yacc.c:1646  */
    5612     break;
    5613 
    5614   case 242:
    5615 #line 1023 "parser.yy" /* yacc.c:1646  */
     6305    break;
     6306
     6307  case 238:
     6308
     6309/* Line 1806 of yacc.c  */
     6310#line 1058 "parser.yy"
     6311    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6312    break;
     6313
     6314  case 243:
     6315
     6316/* Line 1806 of yacc.c  */
     6317#line 1072 "parser.yy"
    56166318    {}
    5617 #line 5618 "Parser/parser.cc" /* yacc.c:1646  */
    5618     break;
    5619 
    5620   case 243:
    5621 #line 1024 "parser.yy" /* yacc.c:1646  */
     6319    break;
     6320
     6321  case 244:
     6322
     6323/* Line 1806 of yacc.c  */
     6324#line 1073 "parser.yy"
    56226325    {}
    5623 #line 5624 "Parser/parser.cc" /* yacc.c:1646  */
    5624     break;
    5625 
    5626   case 251:
    5627 #line 1053 "parser.yy" /* yacc.c:1646  */
     6326    break;
     6327
     6328  case 252:
     6329
     6330/* Line 1806 of yacc.c  */
     6331#line 1102 "parser.yy"
    56286332    {
    56296333                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5630                         (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
     6334                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
    56316335                }
    5632 #line 5633 "Parser/parser.cc" /* yacc.c:1646  */
    5633     break;
    5634 
    5635   case 252:
    5636 #line 1060 "parser.yy" /* yacc.c:1646  */
     6336    break;
     6337
     6338  case 253:
     6339
     6340/* Line 1806 of yacc.c  */
     6341#line 1109 "parser.yy"
    56376342    {
    56386343                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5639                         (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
     6344                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
    56406345                }
    5641 #line 5642 "Parser/parser.cc" /* yacc.c:1646  */
    5642     break;
    5643 
    5644   case 253:
    5645 #line 1065 "parser.yy" /* yacc.c:1646  */
     6346    break;
     6347
     6348  case 254:
     6349
     6350/* Line 1806 of yacc.c  */
     6351#line 1114 "parser.yy"
    56466352    {
    5647                         typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
    5648                         (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
     6353                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     6354                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
    56496355                }
    5650 #line 5651 "Parser/parser.cc" /* yacc.c:1646  */
    5651     break;
    5652 
    5653   case 254:
    5654 #line 1075 "parser.yy" /* yacc.c:1646  */
     6356    break;
     6357
     6358  case 255:
     6359
     6360/* Line 1806 of yacc.c  */
     6361#line 1124 "parser.yy"
    56556362    {
    5656                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5657                         (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
     6363                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     6364                        (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
    56586365                }
    5659 #line 5660 "Parser/parser.cc" /* yacc.c:1646  */
    5660     break;
    5661 
    5662   case 255:
    5663 #line 1080 "parser.yy" /* yacc.c:1646  */
     6366    break;
     6367
     6368  case 256:
     6369
     6370/* Line 1806 of yacc.c  */
     6371#line 1129 "parser.yy"
    56646372    {
    5665                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5666                         (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
     6373                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     6374                        (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
    56676375                }
    5668 #line 5669 "Parser/parser.cc" /* yacc.c:1646  */
    5669     break;
    5670 
    5671   case 256:
    5672 #line 1085 "parser.yy" /* yacc.c:1646  */
     6376    break;
     6377
     6378  case 257:
     6379
     6380/* Line 1806 of yacc.c  */
     6381#line 1134 "parser.yy"
    56736382    {
    5674                         typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
    5675                         (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
     6383                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     6384                        (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) );
    56766385                }
    5677 #line 5678 "Parser/parser.cc" /* yacc.c:1646  */
    5678     break;
    5679 
    5680   case 257:
    5681 #line 1093 "parser.yy" /* yacc.c:1646  */
     6386    break;
     6387
     6388  case 258:
     6389
     6390/* Line 1806 of yacc.c  */
     6391#line 1142 "parser.yy"
    56826392    {
    56836393                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5684                         (yyval.decl) = (yyvsp[0].decl);
     6394                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    56856395                }
    5686 #line 5687 "Parser/parser.cc" /* yacc.c:1646  */
    5687     break;
    5688 
    5689   case 258:
    5690 #line 1098 "parser.yy" /* yacc.c:1646  */
     6396    break;
     6397
     6398  case 259:
     6399
     6400/* Line 1806 of yacc.c  */
     6401#line 1147 "parser.yy"
    56916402    {
    56926403                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5693                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
     6404                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
    56946405                }
    5695 #line 5696 "Parser/parser.cc" /* yacc.c:1646  */
    5696     break;
    5697 
    5698   case 259:
    5699 #line 1103 "parser.yy" /* yacc.c:1646  */
     6406    break;
     6407
     6408  case 260:
     6409
     6410/* Line 1806 of yacc.c  */
     6411#line 1152 "parser.yy"
    57006412    {
    57016413                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5702                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
     6414                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
    57036415                }
    5704 #line 5705 "Parser/parser.cc" /* yacc.c:1646  */
    5705     break;
    5706 
    5707   case 260:
    5708 #line 1108 "parser.yy" /* yacc.c:1646  */
     6416    break;
     6417
     6418  case 261:
     6419
     6420/* Line 1806 of yacc.c  */
     6421#line 1157 "parser.yy"
    57096422    {
    57106423                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5711                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
     6424                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
    57126425                }
    5713 #line 5714 "Parser/parser.cc" /* yacc.c:1646  */
    5714     break;
    5715 
    5716   case 261:
    5717 #line 1113 "parser.yy" /* yacc.c:1646  */
     6426    break;
     6427
     6428  case 262:
     6429
     6430/* Line 1806 of yacc.c  */
     6431#line 1162 "parser.yy"
    57186432    {
    5719                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
    5720                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     6433                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     6434                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    57216435                }
    5722 #line 5723 "Parser/parser.cc" /* yacc.c:1646  */
    5723     break;
    5724 
    5725   case 262:
    5726 #line 1121 "parser.yy" /* yacc.c:1646  */
     6436    break;
     6437
     6438  case 263:
     6439
     6440/* Line 1806 of yacc.c  */
     6441#line 1170 "parser.yy"
    57276442    {
    5728                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );
     6443                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
    57296444                }
    5730 #line 5731 "Parser/parser.cc" /* yacc.c:1646  */
    5731     break;
    5732 
    5733   case 263:
    5734 #line 1144 "parser.yy" /* yacc.c:1646  */
     6445    break;
     6446
     6447  case 264:
     6448
     6449/* Line 1806 of yacc.c  */
     6450#line 1193 "parser.yy"
    57356451    {
    5736                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
     6452                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    57376453                }
    5738 #line 5739 "Parser/parser.cc" /* yacc.c:1646  */
    5739     break;
    5740 
    5741   case 264:
    5742 #line 1148 "parser.yy" /* yacc.c:1646  */
     6454    break;
     6455
     6456  case 265:
     6457
     6458/* Line 1806 of yacc.c  */
     6459#line 1197 "parser.yy"
    57436460    {
    5744                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
     6461                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    57456462                }
    5746 #line 5747 "Parser/parser.cc" /* yacc.c:1646  */
    5747     break;
    5748 
    5749   case 265:
    5750 #line 1155 "parser.yy" /* yacc.c:1646  */
    5751     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
    5752 #line 5753 "Parser/parser.cc" /* yacc.c:1646  */
    57536463    break;
    57546464
    57556465  case 266:
    5756 #line 1159 "parser.yy" /* yacc.c:1646  */
    5757     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); }
    5758 #line 5759 "Parser/parser.cc" /* yacc.c:1646  */
     6466
     6467/* Line 1806 of yacc.c  */
     6468#line 1204 "parser.yy"
     6469    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    57596470    break;
    57606471
    57616472  case 267:
    5762 #line 1164 "parser.yy" /* yacc.c:1646  */
     6473
     6474/* Line 1806 of yacc.c  */
     6475#line 1208 "parser.yy"
     6476    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     6477    break;
     6478
     6479  case 268:
     6480
     6481/* Line 1806 of yacc.c  */
     6482#line 1213 "parser.yy"
    57636483    {
    57646484                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5765                         (yyval.decl) = (yyvsp[0].decl)->addTypedef();
     6485                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
    57666486                }
    5767 #line 5768 "Parser/parser.cc" /* yacc.c:1646  */
    5768     break;
    5769 
    5770   case 268:
    5771 #line 1169 "parser.yy" /* yacc.c:1646  */
     6487    break;
     6488
     6489  case 269:
     6490
     6491/* Line 1806 of yacc.c  */
     6492#line 1218 "parser.yy"
    57726493    {
    57736494                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5774                         (yyval.decl) = (yyvsp[0].decl)->addTypedef();
     6495                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
    57756496                }
    5776 #line 5777 "Parser/parser.cc" /* yacc.c:1646  */
    5777     break;
    5778 
    5779   case 269:
    5780 #line 1174 "parser.yy" /* yacc.c:1646  */
     6497    break;
     6498
     6499  case 270:
     6500
     6501/* Line 1806 of yacc.c  */
     6502#line 1223 "parser.yy"
    57816503    {
    5782                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
    5783                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     6504                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     6505                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    57846506                }
    5785 #line 5786 "Parser/parser.cc" /* yacc.c:1646  */
    5786     break;
    5787 
    5788   case 270:
    5789 #line 1185 "parser.yy" /* yacc.c:1646  */
     6507    break;
     6508
     6509  case 271:
     6510
     6511/* Line 1806 of yacc.c  */
     6512#line 1234 "parser.yy"
    57906513    {
    57916514                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5792                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
     6515                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
    57936516                }
    5794 #line 5795 "Parser/parser.cc" /* yacc.c:1646  */
    5795     break;
    5796 
    5797   case 271:
    5798 #line 1190 "parser.yy" /* yacc.c:1646  */
     6517    break;
     6518
     6519  case 272:
     6520
     6521/* Line 1806 of yacc.c  */
     6522#line 1239 "parser.yy"
    57996523    {
    58006524                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5801                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
     6525                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
    58026526                }
    5803 #line 5804 "Parser/parser.cc" /* yacc.c:1646  */
    5804     break;
    5805 
    5806   case 272:
    5807 #line 1195 "parser.yy" /* yacc.c:1646  */
     6527    break;
     6528
     6529  case 273:
     6530
     6531/* Line 1806 of yacc.c  */
     6532#line 1244 "parser.yy"
    58086533    {
    58096534                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5810                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
     6535                        (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
    58116536                }
    5812 #line 5813 "Parser/parser.cc" /* yacc.c:1646  */
    5813     break;
    5814 
    5815   case 273:
    5816 #line 1200 "parser.yy" /* yacc.c:1646  */
     6537    break;
     6538
     6539  case 274:
     6540
     6541/* Line 1806 of yacc.c  */
     6542#line 1249 "parser.yy"
    58176543    {
    58186544                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5819                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
     6545                        (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
    58206546                }
    5821 #line 5822 "Parser/parser.cc" /* yacc.c:1646  */
    5822     break;
    5823 
    5824   case 274:
    5825 #line 1205 "parser.yy" /* yacc.c:1646  */
     6547    break;
     6548
     6549  case 275:
     6550
     6551/* Line 1806 of yacc.c  */
     6552#line 1254 "parser.yy"
    58266553    {
    58276554                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    5828                         (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
     6555                        (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
    58296556                }
    5830 #line 5831 "Parser/parser.cc" /* yacc.c:1646  */
    5831     break;
    5832 
    5833   case 275:
    5834 #line 1214 "parser.yy" /* yacc.c:1646  */
     6557    break;
     6558
     6559  case 276:
     6560
     6561/* Line 1806 of yacc.c  */
     6562#line 1263 "parser.yy"
    58356563    {
    5836                         typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
     6564                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
    58376565                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    58386566                }
    5839 #line 5840 "Parser/parser.cc" /* yacc.c:1646  */
    5840     break;
    5841 
    5842   case 276:
    5843 #line 1219 "parser.yy" /* yacc.c:1646  */
     6567    break;
     6568
     6569  case 277:
     6570
     6571/* Line 1806 of yacc.c  */
     6572#line 1268 "parser.yy"
    58446573    {
    5845                         typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
     6574                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
    58466575                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    58476576                }
    5848 #line 5849 "Parser/parser.cc" /* yacc.c:1646  */
    5849     break;
    5850 
    5851   case 281:
    5852 #line 1236 "parser.yy" /* yacc.c:1646  */
     6577    break;
     6578
     6579  case 282:
     6580
     6581/* Line 1806 of yacc.c  */
     6582#line 1285 "parser.yy"
    58536583    {
    58546584                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5855                         (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
     6585                        (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );
    58566586                }
    5857 #line 5858 "Parser/parser.cc" /* yacc.c:1646  */
    5858     break;
    5859 
    5860   case 282:
    5861 #line 1241 "parser.yy" /* yacc.c:1646  */
     6587    break;
     6588
     6589  case 283:
     6590
     6591/* Line 1806 of yacc.c  */
     6592#line 1290 "parser.yy"
    58626593    {
    58636594                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    5864                         (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
     6595                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
    58656596                }
    5866 #line 5867 "Parser/parser.cc" /* yacc.c:1646  */
    5867     break;
    5868 
    5869   case 291:
    5870 #line 1263 "parser.yy" /* yacc.c:1646  */
     6597    break;
     6598
     6599  case 292:
     6600
     6601/* Line 1806 of yacc.c  */
     6602#line 1312 "parser.yy"
    58716603    { (yyval.decl) = 0; }
    5872 #line 5873 "Parser/parser.cc" /* yacc.c:1646  */
    5873     break;
    5874 
    5875   case 294:
    5876 #line 1275 "parser.yy" /* yacc.c:1646  */
    5877     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5878 #line 5879 "Parser/parser.cc" /* yacc.c:1646  */
    5879     break;
    5880 
    5881   case 297:
    5882 #line 1286 "parser.yy" /* yacc.c:1646  */
     6604    break;
     6605
     6606  case 295:
     6607
     6608/* Line 1806 of yacc.c  */
     6609#line 1324 "parser.yy"
     6610    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6611    break;
     6612
     6613  case 298:
     6614
     6615/* Line 1806 of yacc.c  */
     6616#line 1335 "parser.yy"
    58836617    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    5884 #line 5885 "Parser/parser.cc" /* yacc.c:1646  */
    5885     break;
    5886 
    5887   case 298:
    5888 #line 1288 "parser.yy" /* yacc.c:1646  */
     6618    break;
     6619
     6620  case 299:
     6621
     6622/* Line 1806 of yacc.c  */
     6623#line 1337 "parser.yy"
    58896624    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    5890 #line 5891 "Parser/parser.cc" /* yacc.c:1646  */
    5891     break;
    5892 
    5893   case 299:
    5894 #line 1290 "parser.yy" /* yacc.c:1646  */
     6625    break;
     6626
     6627  case 300:
     6628
     6629/* Line 1806 of yacc.c  */
     6630#line 1339 "parser.yy"
    58956631    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    5896 #line 5897 "Parser/parser.cc" /* yacc.c:1646  */
    5897     break;
    5898 
    5899   case 300:
    5900 #line 1292 "parser.yy" /* yacc.c:1646  */
     6632    break;
     6633
     6634  case 301:
     6635
     6636/* Line 1806 of yacc.c  */
     6637#line 1341 "parser.yy"
    59016638    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    5902 #line 5903 "Parser/parser.cc" /* yacc.c:1646  */
    5903     break;
    5904 
    5905   case 301:
    5906 #line 1294 "parser.yy" /* yacc.c:1646  */
     6639    break;
     6640
     6641  case 302:
     6642
     6643/* Line 1806 of yacc.c  */
     6644#line 1343 "parser.yy"
    59076645    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    5908 #line 5909 "Parser/parser.cc" /* yacc.c:1646  */
    5909     break;
    5910 
    5911   case 302:
    5912 #line 1296 "parser.yy" /* yacc.c:1646  */
     6646    break;
     6647
     6648  case 303:
     6649
     6650/* Line 1806 of yacc.c  */
     6651#line 1345 "parser.yy"
    59136652    {
    59146653                        typedefTable.enterScope();
    59156654                }
    5916 #line 5917 "Parser/parser.cc" /* yacc.c:1646  */
    5917     break;
    5918 
    5919   case 303:
    5920 #line 1300 "parser.yy" /* yacc.c:1646  */
     6655    break;
     6656
     6657  case 304:
     6658
     6659/* Line 1806 of yacc.c  */
     6660#line 1349 "parser.yy"
    59216661    {
    59226662                        typedefTable.leaveScope();
    5923                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
     6663                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
    59246664                }
    5925 #line 5926 "Parser/parser.cc" /* yacc.c:1646  */
    5926     break;
    5927 
    5928   case 305:
    5929 #line 1309 "parser.yy" /* yacc.c:1646  */
    5930     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5931 #line 5932 "Parser/parser.cc" /* yacc.c:1646  */
    59326665    break;
    59336666
    59346667  case 306:
    5935 #line 1311 "parser.yy" /* yacc.c:1646  */
    5936     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    5937 #line 5938 "Parser/parser.cc" /* yacc.c:1646  */
    5938     break;
    5939 
    5940   case 308:
    5941 #line 1322 "parser.yy" /* yacc.c:1646  */
    5942     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    5943 #line 5944 "Parser/parser.cc" /* yacc.c:1646  */
     6668
     6669/* Line 1806 of yacc.c  */
     6670#line 1358 "parser.yy"
     6671    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6672    break;
     6673
     6674  case 307:
     6675
     6676/* Line 1806 of yacc.c  */
     6677#line 1360 "parser.yy"
     6678    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    59446679    break;
    59456680
    59466681  case 309:
    5947 #line 1327 "parser.yy" /* yacc.c:1646  */
     6682
     6683/* Line 1806 of yacc.c  */
     6684#line 1371 "parser.yy"
     6685    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6686    break;
     6687
     6688  case 310:
     6689
     6690/* Line 1806 of yacc.c  */
     6691#line 1376 "parser.yy"
    59486692    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    5949 #line 5950 "Parser/parser.cc" /* yacc.c:1646  */
    5950     break;
    5951 
    5952   case 310:
    5953 #line 1329 "parser.yy" /* yacc.c:1646  */
     6693    break;
     6694
     6695  case 311:
     6696
     6697/* Line 1806 of yacc.c  */
     6698#line 1378 "parser.yy"
    59546699    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    5955 #line 5956 "Parser/parser.cc" /* yacc.c:1646  */
    5956     break;
    5957 
    5958   case 311:
    5959 #line 1331 "parser.yy" /* yacc.c:1646  */
     6700    break;
     6701
     6702  case 312:
     6703
     6704/* Line 1806 of yacc.c  */
     6705#line 1380 "parser.yy"
    59606706    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    5961 #line 5962 "Parser/parser.cc" /* yacc.c:1646  */
    5962     break;
    5963 
    5964   case 312:
    5965 #line 1333 "parser.yy" /* yacc.c:1646  */
     6707    break;
     6708
     6709  case 313:
     6710
     6711/* Line 1806 of yacc.c  */
     6712#line 1382 "parser.yy"
    59666713    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    5967 #line 5968 "Parser/parser.cc" /* yacc.c:1646  */
    5968     break;
    5969 
    5970   case 313:
    5971 #line 1335 "parser.yy" /* yacc.c:1646  */
     6714    break;
     6715
     6716  case 314:
     6717
     6718/* Line 1806 of yacc.c  */
     6719#line 1384 "parser.yy"
    59726720    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    5973 #line 5974 "Parser/parser.cc" /* yacc.c:1646  */
    5974     break;
    5975 
    5976   case 314:
    5977 #line 1337 "parser.yy" /* yacc.c:1646  */
     6721    break;
     6722
     6723  case 315:
     6724
     6725/* Line 1806 of yacc.c  */
     6726#line 1386 "parser.yy"
    59786727    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    5979 #line 5980 "Parser/parser.cc" /* yacc.c:1646  */
    5980     break;
    5981 
    5982   case 315:
    5983 #line 1339 "parser.yy" /* yacc.c:1646  */
     6728    break;
     6729
     6730  case 316:
     6731
     6732/* Line 1806 of yacc.c  */
     6733#line 1388 "parser.yy"
    59846734    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    5985 #line 5986 "Parser/parser.cc" /* yacc.c:1646  */
    5986     break;
    5987 
    5988   case 316:
    5989 #line 1341 "parser.yy" /* yacc.c:1646  */
     6735    break;
     6736
     6737  case 317:
     6738
     6739/* Line 1806 of yacc.c  */
     6740#line 1390 "parser.yy"
    59906741    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    5991 #line 5992 "Parser/parser.cc" /* yacc.c:1646  */
    5992     break;
    5993 
    5994   case 317:
    5995 #line 1346 "parser.yy" /* yacc.c:1646  */
     6742    break;
     6743
     6744  case 318:
     6745
     6746/* Line 1806 of yacc.c  */
     6747#line 1395 "parser.yy"
    59966748    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    5997 #line 5998 "Parser/parser.cc" /* yacc.c:1646  */
    5998     break;
    5999 
    6000   case 318:
    6001 #line 1348 "parser.yy" /* yacc.c:1646  */
     6749    break;
     6750
     6751  case 319:
     6752
     6753/* Line 1806 of yacc.c  */
     6754#line 1397 "parser.yy"
    60026755    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6003 #line 6004 "Parser/parser.cc" /* yacc.c:1646  */
    6004     break;
    6005 
    6006   case 319:
    6007 #line 1350 "parser.yy" /* yacc.c:1646  */
     6756    break;
     6757
     6758  case 320:
     6759
     6760/* Line 1806 of yacc.c  */
     6761#line 1399 "parser.yy"
    60086762    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6009 #line 6010 "Parser/parser.cc" /* yacc.c:1646  */
    6010     break;
    6011 
    6012   case 320:
    6013 #line 1352 "parser.yy" /* yacc.c:1646  */
     6763    break;
     6764
     6765  case 321:
     6766
     6767/* Line 1806 of yacc.c  */
     6768#line 1401 "parser.yy"
    60146769    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6015 #line 6016 "Parser/parser.cc" /* yacc.c:1646  */
    6016     break;
    6017 
    6018   case 321:
    6019 #line 1354 "parser.yy" /* yacc.c:1646  */
     6770    break;
     6771
     6772  case 322:
     6773
     6774/* Line 1806 of yacc.c  */
     6775#line 1403 "parser.yy"
    60206776    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6021 #line 6022 "Parser/parser.cc" /* yacc.c:1646  */
    6022     break;
    6023 
    6024   case 322:
    6025 #line 1356 "parser.yy" /* yacc.c:1646  */
     6777    break;
     6778
     6779  case 323:
     6780
     6781/* Line 1806 of yacc.c  */
     6782#line 1405 "parser.yy"
    60266783    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6027 #line 6028 "Parser/parser.cc" /* yacc.c:1646  */
    6028     break;
    6029 
    6030   case 323:
    6031 #line 1358 "parser.yy" /* yacc.c:1646  */
     6784    break;
     6785
     6786  case 324:
     6787
     6788/* Line 1806 of yacc.c  */
     6789#line 1407 "parser.yy"
    60326790    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6033 #line 6034 "Parser/parser.cc" /* yacc.c:1646  */
    6034     break;
    6035 
    6036   case 324:
    6037 #line 1360 "parser.yy" /* yacc.c:1646  */
     6791    break;
     6792
     6793  case 325:
     6794
     6795/* Line 1806 of yacc.c  */
     6796#line 1409 "parser.yy"
    60386797    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6039 #line 6040 "Parser/parser.cc" /* yacc.c:1646  */
    6040     break;
    6041 
    6042   case 325:
    6043 #line 1362 "parser.yy" /* yacc.c:1646  */
     6798    break;
     6799
     6800  case 326:
     6801
     6802/* Line 1806 of yacc.c  */
     6803#line 1411 "parser.yy"
    60446804    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6045 #line 6046 "Parser/parser.cc" /* yacc.c:1646  */
    6046     break;
    6047 
    6048   case 326:
    6049 #line 1364 "parser.yy" /* yacc.c:1646  */
     6805    break;
     6806
     6807  case 327:
     6808
     6809/* Line 1806 of yacc.c  */
     6810#line 1413 "parser.yy"
    60506811    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6051 #line 6052 "Parser/parser.cc" /* yacc.c:1646  */
    6052     break;
    6053 
    6054   case 327:
    6055 #line 1366 "parser.yy" /* yacc.c:1646  */
     6812    break;
     6813
     6814  case 328:
     6815
     6816/* Line 1806 of yacc.c  */
     6817#line 1415 "parser.yy"
    60566818    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6057 #line 6058 "Parser/parser.cc" /* yacc.c:1646  */
    6058     break;
    6059 
    6060   case 328:
    6061 #line 1368 "parser.yy" /* yacc.c:1646  */
     6819    break;
     6820
     6821  case 329:
     6822
     6823/* Line 1806 of yacc.c  */
     6824#line 1417 "parser.yy"
    60626825    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6063 #line 6064 "Parser/parser.cc" /* yacc.c:1646  */
    6064     break;
    6065 
    6066   case 329:
    6067 #line 1370 "parser.yy" /* yacc.c:1646  */
     6826    break;
     6827
     6828  case 330:
     6829
     6830/* Line 1806 of yacc.c  */
     6831#line 1419 "parser.yy"
    60686832    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6069 #line 6070 "Parser/parser.cc" /* yacc.c:1646  */
    6070     break;
    6071 
    6072   case 331:
    6073 #line 1377 "parser.yy" /* yacc.c:1646  */
    6074     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6075 #line 6076 "Parser/parser.cc" /* yacc.c:1646  */
    60766833    break;
    60776834
    60786835  case 332:
    6079 #line 1379 "parser.yy" /* yacc.c:1646  */
    6080     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6081 #line 6082 "Parser/parser.cc" /* yacc.c:1646  */
     6836
     6837/* Line 1806 of yacc.c  */
     6838#line 1426 "parser.yy"
     6839    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    60826840    break;
    60836841
    60846842  case 333:
    6085 #line 1381 "parser.yy" /* yacc.c:1646  */
    6086     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6087 #line 6088 "Parser/parser.cc" /* yacc.c:1646  */
     6843
     6844/* Line 1806 of yacc.c  */
     6845#line 1428 "parser.yy"
     6846    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    60886847    break;
    60896848
    60906849  case 334:
    6091 #line 1383 "parser.yy" /* yacc.c:1646  */
    6092     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); }
    6093 #line 6094 "Parser/parser.cc" /* yacc.c:1646  */
    6094     break;
    6095 
    6096   case 336:
    6097 #line 1389 "parser.yy" /* yacc.c:1646  */
    6098     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6099 #line 6100 "Parser/parser.cc" /* yacc.c:1646  */
    6100     break;
    6101 
    6102   case 338:
    6103 #line 1396 "parser.yy" /* yacc.c:1646  */
    6104     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6105 #line 6106 "Parser/parser.cc" /* yacc.c:1646  */
     6850
     6851/* Line 1806 of yacc.c  */
     6852#line 1430 "parser.yy"
     6853    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6854    break;
     6855
     6856  case 335:
     6857
     6858/* Line 1806 of yacc.c  */
     6859#line 1432 "parser.yy"
     6860    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6861    break;
     6862
     6863  case 337:
     6864
     6865/* Line 1806 of yacc.c  */
     6866#line 1438 "parser.yy"
     6867    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    61066868    break;
    61076869
    61086870  case 339:
    6109 #line 1398 "parser.yy" /* yacc.c:1646  */
    6110     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6111 #line 6112 "Parser/parser.cc" /* yacc.c:1646  */
     6871
     6872/* Line 1806 of yacc.c  */
     6873#line 1445 "parser.yy"
     6874    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61126875    break;
    61136876
    61146877  case 340:
    6115 #line 1400 "parser.yy" /* yacc.c:1646  */
    6116     { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
    6117 #line 6118 "Parser/parser.cc" /* yacc.c:1646  */
     6878
     6879/* Line 1806 of yacc.c  */
     6880#line 1447 "parser.yy"
     6881    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61186882    break;
    61196883
    61206884  case 341:
    6121 #line 1405 "parser.yy" /* yacc.c:1646  */
    6122     { (yyval.decl) = (yyvsp[-1].decl); }
    6123 #line 6124 "Parser/parser.cc" /* yacc.c:1646  */
     6885
     6886/* Line 1806 of yacc.c  */
     6887#line 1449 "parser.yy"
     6888    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    61246889    break;
    61256890
    61266891  case 342:
    6127 #line 1407 "parser.yy" /* yacc.c:1646  */
    6128     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
    6129 #line 6130 "Parser/parser.cc" /* yacc.c:1646  */
     6892
     6893/* Line 1806 of yacc.c  */
     6894#line 1454 "parser.yy"
     6895    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    61306896    break;
    61316897
    61326898  case 343:
    6133 #line 1409 "parser.yy" /* yacc.c:1646  */
    6134     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); }
    6135 #line 6136 "Parser/parser.cc" /* yacc.c:1646  */
     6899
     6900/* Line 1806 of yacc.c  */
     6901#line 1456 "parser.yy"
     6902    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    61366903    break;
    61376904
    61386905  case 344:
    6139 #line 1411 "parser.yy" /* yacc.c:1646  */
    6140     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
    6141 #line 6142 "Parser/parser.cc" /* yacc.c:1646  */
    6142     break;
    6143 
    6144   case 346:
    6145 #line 1417 "parser.yy" /* yacc.c:1646  */
    6146     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6147 #line 6148 "Parser/parser.cc" /* yacc.c:1646  */
     6906
     6907/* Line 1806 of yacc.c  */
     6908#line 1458 "parser.yy"
     6909    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6910    break;
     6911
     6912  case 345:
     6913
     6914/* Line 1806 of yacc.c  */
     6915#line 1460 "parser.yy"
     6916    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    61486917    break;
    61496918
    61506919  case 347:
    6151 #line 1419 "parser.yy" /* yacc.c:1646  */
    6152     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6153 #line 6154 "Parser/parser.cc" /* yacc.c:1646  */
     6920
     6921/* Line 1806 of yacc.c  */
     6922#line 1466 "parser.yy"
     6923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61546924    break;
    61556925
    61566926  case 348:
    6157 #line 1421 "parser.yy" /* yacc.c:1646  */
    6158     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6159 #line 6160 "Parser/parser.cc" /* yacc.c:1646  */
    6160     break;
    6161 
    6162   case 350:
    6163 #line 1427 "parser.yy" /* yacc.c:1646  */
    6164     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6165 #line 6166 "Parser/parser.cc" /* yacc.c:1646  */
     6927
     6928/* Line 1806 of yacc.c  */
     6929#line 1468 "parser.yy"
     6930    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6931    break;
     6932
     6933  case 349:
     6934
     6935/* Line 1806 of yacc.c  */
     6936#line 1470 "parser.yy"
     6937    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    61666938    break;
    61676939
    61686940  case 351:
    6169 #line 1429 "parser.yy" /* yacc.c:1646  */
    6170     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6171 #line 6172 "Parser/parser.cc" /* yacc.c:1646  */
    6172     break;
    6173 
    6174   case 353:
    6175 #line 1435 "parser.yy" /* yacc.c:1646  */
    6176     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6177 #line 6178 "Parser/parser.cc" /* yacc.c:1646  */
     6941
     6942/* Line 1806 of yacc.c  */
     6943#line 1476 "parser.yy"
     6944    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6945    break;
     6946
     6947  case 352:
     6948
     6949/* Line 1806 of yacc.c  */
     6950#line 1478 "parser.yy"
     6951    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61786952    break;
    61796953
    61806954  case 354:
    6181 #line 1437 "parser.yy" /* yacc.c:1646  */
    6182     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6183 #line 6184 "Parser/parser.cc" /* yacc.c:1646  */
     6955
     6956/* Line 1806 of yacc.c  */
     6957#line 1484 "parser.yy"
     6958    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    61846959    break;
    61856960
    61866961  case 355:
    6187 #line 1439 "parser.yy" /* yacc.c:1646  */
    6188     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6189 #line 6190 "Parser/parser.cc" /* yacc.c:1646  */
     6962
     6963/* Line 1806 of yacc.c  */
     6964#line 1486 "parser.yy"
     6965    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    61906966    break;
    61916967
    61926968  case 356:
    6193 #line 1444 "parser.yy" /* yacc.c:1646  */
    6194     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); }
    6195 #line 6196 "Parser/parser.cc" /* yacc.c:1646  */
     6969
     6970/* Line 1806 of yacc.c  */
     6971#line 1488 "parser.yy"
     6972    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    61966973    break;
    61976974
    61986975  case 357:
    6199 #line 1446 "parser.yy" /* yacc.c:1646  */
    6200     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); }
    6201 #line 6202 "Parser/parser.cc" /* yacc.c:1646  */
     6976
     6977/* Line 1806 of yacc.c  */
     6978#line 1493 "parser.yy"
     6979    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    62026980    break;
    62036981
    62046982  case 358:
    6205 #line 1448 "parser.yy" /* yacc.c:1646  */
    6206     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6207 #line 6208 "Parser/parser.cc" /* yacc.c:1646  */
    6208     break;
    6209 
    6210   case 361:
    6211 #line 1458 "parser.yy" /* yacc.c:1646  */
    6212     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); }
    6213 #line 6214 "Parser/parser.cc" /* yacc.c:1646  */
     6983
     6984/* Line 1806 of yacc.c  */
     6985#line 1495 "parser.yy"
     6986    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6987    break;
     6988
     6989  case 359:
     6990
     6991/* Line 1806 of yacc.c  */
     6992#line 1497 "parser.yy"
     6993    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    62146994    break;
    62156995
    62166996  case 362:
    6217 #line 1460 "parser.yy" /* yacc.c:1646  */
     6997
     6998/* Line 1806 of yacc.c  */
     6999#line 1507 "parser.yy"
     7000    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
     7001    break;
     7002
     7003  case 363:
     7004
     7005/* Line 1806 of yacc.c  */
     7006#line 1509 "parser.yy"
    62187007    {
    6219                         typedefTable.makeTypedef( *(yyvsp[0].tok) );
    6220                         (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false );
     7008                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     7009                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false );
    62217010                }
    6222 #line 6223 "Parser/parser.cc" /* yacc.c:1646  */
    6223     break;
    6224 
    6225   case 363:
    6226 #line 1465 "parser.yy" /* yacc.c:1646  */
    6227     { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
    6228 #line 6229 "Parser/parser.cc" /* yacc.c:1646  */
    62297011    break;
    62307012
    62317013  case 364:
    6232 #line 1467 "parser.yy" /* yacc.c:1646  */
    6233     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); }
    6234 #line 6235 "Parser/parser.cc" /* yacc.c:1646  */
     7014
     7015/* Line 1806 of yacc.c  */
     7016#line 1514 "parser.yy"
     7017    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    62357018    break;
    62367019
    62377020  case 365:
    6238 #line 1469 "parser.yy" /* yacc.c:1646  */
    6239     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); }
    6240 #line 6241 "Parser/parser.cc" /* yacc.c:1646  */
     7021
     7022/* Line 1806 of yacc.c  */
     7023#line 1516 "parser.yy"
     7024    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
    62417025    break;
    62427026
    62437027  case 366:
    6244 #line 1471 "parser.yy" /* yacc.c:1646  */
    6245     { (yyval.decl) = (yyvsp[0].decl); }
    6246 #line 6247 "Parser/parser.cc" /* yacc.c:1646  */
     7028
     7029/* Line 1806 of yacc.c  */
     7030#line 1518 "parser.yy"
     7031    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    62477032    break;
    62487033
    62497034  case 367:
    6250 #line 1476 "parser.yy" /* yacc.c:1646  */
     7035
     7036/* Line 1806 of yacc.c  */
     7037#line 1520 "parser.yy"
     7038    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7039    break;
     7040
     7041  case 368:
     7042
     7043/* Line 1806 of yacc.c  */
     7044#line 1525 "parser.yy"
    62517045    { (yyval.aggKey) = DeclarationNode::Struct; }
    6252 #line 6253 "Parser/parser.cc" /* yacc.c:1646  */
    6253     break;
    6254 
    6255   case 368:
    6256 #line 1478 "parser.yy" /* yacc.c:1646  */
     7046    break;
     7047
     7048  case 369:
     7049
     7050/* Line 1806 of yacc.c  */
     7051#line 1527 "parser.yy"
    62577052    { (yyval.aggKey) = DeclarationNode::Union; }
    6258 #line 6259 "Parser/parser.cc" /* yacc.c:1646  */
    6259     break;
    6260 
    6261   case 369:
    6262 #line 1483 "parser.yy" /* yacc.c:1646  */
     7053    break;
     7054
     7055  case 370:
     7056
     7057/* Line 1806 of yacc.c  */
     7058#line 1532 "parser.yy"
    62637059    { (yyval.decl) = 0; }
    6264 #line 6265 "Parser/parser.cc" /* yacc.c:1646  */
    6265     break;
    6266 
    6267   case 370:
    6268 #line 1485 "parser.yy" /* yacc.c:1646  */
    6269     { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6270 #line 6271 "Parser/parser.cc" /* yacc.c:1646  */
    6271     break;
    6272 
    6273   case 372:
    6274 #line 1491 "parser.yy" /* yacc.c:1646  */
    6275     { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); }
    6276 #line 6277 "Parser/parser.cc" /* yacc.c:1646  */
    6277     break;
    6278 
    6279   case 374:
    6280 #line 1494 "parser.yy" /* yacc.c:1646  */
     7060    break;
     7061
     7062  case 371:
     7063
     7064/* Line 1806 of yacc.c  */
     7065#line 1534 "parser.yy"
     7066    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     7067    break;
     7068
     7069  case 373:
     7070
     7071/* Line 1806 of yacc.c  */
     7072#line 1540 "parser.yy"
     7073    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     7074    break;
     7075
     7076  case 375:
     7077
     7078/* Line 1806 of yacc.c  */
     7079#line 1543 "parser.yy"
    62817080    {   // mark all fields in list
    6282                         for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     7081                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    62837082                                iter->set_extension( true );
    6284                         (yyval.decl) = (yyvsp[-1].decl);
     7083                        (yyval.decl) = (yyvsp[(2) - (3)].decl);
    62857084                }
    6286 #line 6287 "Parser/parser.cc" /* yacc.c:1646  */
    6287     break;
    6288 
    6289   case 376:
    6290 #line 1504 "parser.yy" /* yacc.c:1646  */
    6291     { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); }
    6292 #line 6293 "Parser/parser.cc" /* yacc.c:1646  */
    62937085    break;
    62947086
    62957087  case 377:
    6296 #line 1506 "parser.yy" /* yacc.c:1646  */
    6297     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); }
    6298 #line 6299 "Parser/parser.cc" /* yacc.c:1646  */
     7088
     7089/* Line 1806 of yacc.c  */
     7090#line 1553 "parser.yy"
     7091    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    62997092    break;
    63007093
    63017094  case 378:
    6302 #line 1508 "parser.yy" /* yacc.c:1646  */
    6303     { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); }
    6304 #line 6305 "Parser/parser.cc" /* yacc.c:1646  */
     7095
     7096/* Line 1806 of yacc.c  */
     7097#line 1555 "parser.yy"
     7098    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    63057099    break;
    63067100
    63077101  case 379:
    6308 #line 1513 "parser.yy" /* yacc.c:1646  */
    6309     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6310 #line 6311 "Parser/parser.cc" /* yacc.c:1646  */
     7102
     7103/* Line 1806 of yacc.c  */
     7104#line 1557 "parser.yy"
     7105    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    63117106    break;
    63127107
    63137108  case 380:
    6314 #line 1515 "parser.yy" /* yacc.c:1646  */
    6315     { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); }
    6316 #line 6317 "Parser/parser.cc" /* yacc.c:1646  */
     7109
     7110/* Line 1806 of yacc.c  */
     7111#line 1562 "parser.yy"
     7112    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    63177113    break;
    63187114
    63197115  case 381:
    6320 #line 1520 "parser.yy" /* yacc.c:1646  */
     7116
     7117/* Line 1806 of yacc.c  */
     7118#line 1564 "parser.yy"
     7119    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7120    break;
     7121
     7122  case 382:
     7123
     7124/* Line 1806 of yacc.c  */
     7125#line 1569 "parser.yy"
    63217126    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    6322 #line 6323 "Parser/parser.cc" /* yacc.c:1646  */
    6323     break;
    6324 
    6325   case 382:
    6326 #line 1522 "parser.yy" /* yacc.c:1646  */
    6327     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); }
    6328 #line 6329 "Parser/parser.cc" /* yacc.c:1646  */
    63297127    break;
    63307128
    63317129  case 383:
    6332 #line 1525 "parser.yy" /* yacc.c:1646  */
    6333     { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
    6334 #line 6335 "Parser/parser.cc" /* yacc.c:1646  */
     7130
     7131/* Line 1806 of yacc.c  */
     7132#line 1571 "parser.yy"
     7133    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    63357134    break;
    63367135
    63377136  case 384:
    6338 #line 1528 "parser.yy" /* yacc.c:1646  */
    6339     { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
    6340 #line 6341 "Parser/parser.cc" /* yacc.c:1646  */
    6341     break;
    6342 
    6343   case 386:
    6344 #line 1534 "parser.yy" /* yacc.c:1646  */
     7137
     7138/* Line 1806 of yacc.c  */
     7139#line 1574 "parser.yy"
     7140    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7141    break;
     7142
     7143  case 385:
     7144
     7145/* Line 1806 of yacc.c  */
     7146#line 1577 "parser.yy"
     7147    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7148    break;
     7149
     7150  case 387:
     7151
     7152/* Line 1806 of yacc.c  */
     7153#line 1583 "parser.yy"
    63457154    { (yyval.en) = 0; }
    6346 #line 6347 "Parser/parser.cc" /* yacc.c:1646  */
    6347     break;
    6348 
    6349   case 387:
    6350 #line 1536 "parser.yy" /* yacc.c:1646  */
    6351     { (yyval.en) = (yyvsp[0].en); }
    6352 #line 6353 "Parser/parser.cc" /* yacc.c:1646  */
    63537155    break;
    63547156
    63557157  case 388:
    6356 #line 1541 "parser.yy" /* yacc.c:1646  */
    6357     { (yyval.en) = (yyvsp[0].en); }
    6358 #line 6359 "Parser/parser.cc" /* yacc.c:1646  */
    6359     break;
    6360 
    6361   case 390:
    6362 #line 1550 "parser.yy" /* yacc.c:1646  */
    6363     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); }
    6364 #line 6365 "Parser/parser.cc" /* yacc.c:1646  */
     7158
     7159/* Line 1806 of yacc.c  */
     7160#line 1585 "parser.yy"
     7161    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7162    break;
     7163
     7164  case 389:
     7165
     7166/* Line 1806 of yacc.c  */
     7167#line 1590 "parser.yy"
     7168    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    63657169    break;
    63667170
    63677171  case 391:
    6368 #line 1552 "parser.yy" /* yacc.c:1646  */
     7172
     7173/* Line 1806 of yacc.c  */
     7174#line 1599 "parser.yy"
     7175    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     7176    break;
     7177
     7178  case 392:
     7179
     7180/* Line 1806 of yacc.c  */
     7181#line 1601 "parser.yy"
    63697182    {
    6370                         typedefTable.makeTypedef( *(yyvsp[0].tok) );
    6371                         (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
     7183                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     7184                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
    63727185                }
    6373 #line 6374 "Parser/parser.cc" /* yacc.c:1646  */
    6374     break;
    6375 
    6376   case 392:
    6377 #line 1557 "parser.yy" /* yacc.c:1646  */
    6378     { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
    6379 #line 6380 "Parser/parser.cc" /* yacc.c:1646  */
    63807186    break;
    63817187
    63827188  case 393:
    6383 #line 1559 "parser.yy" /* yacc.c:1646  */
    6384     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); }
    6385 #line 6386 "Parser/parser.cc" /* yacc.c:1646  */
     7189
     7190/* Line 1806 of yacc.c  */
     7191#line 1606 "parser.yy"
     7192    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    63867193    break;
    63877194
    63887195  case 394:
    6389 #line 1564 "parser.yy" /* yacc.c:1646  */
    6390     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); }
    6391 #line 6392 "Parser/parser.cc" /* yacc.c:1646  */
     7196
     7197/* Line 1806 of yacc.c  */
     7198#line 1608 "parser.yy"
     7199    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    63927200    break;
    63937201
    63947202  case 395:
    6395 #line 1566 "parser.yy" /* yacc.c:1646  */
    6396     { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); }
    6397 #line 6398 "Parser/parser.cc" /* yacc.c:1646  */
     7203
     7204/* Line 1806 of yacc.c  */
     7205#line 1613 "parser.yy"
     7206    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    63987207    break;
    63997208
    64007209  case 396:
    6401 #line 1571 "parser.yy" /* yacc.c:1646  */
     7210
     7211/* Line 1806 of yacc.c  */
     7212#line 1615 "parser.yy"
     7213    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7214    break;
     7215
     7216  case 397:
     7217
     7218/* Line 1806 of yacc.c  */
     7219#line 1620 "parser.yy"
    64027220    { (yyval.en) = 0; }
    6403 #line 6404 "Parser/parser.cc" /* yacc.c:1646  */
    6404     break;
    6405 
    6406   case 397:
    6407 #line 1573 "parser.yy" /* yacc.c:1646  */
    6408     { (yyval.en) = (yyvsp[0].en); }
    6409 #line 6410 "Parser/parser.cc" /* yacc.c:1646  */
    64107221    break;
    64117222
    64127223  case 398:
    6413 #line 1580 "parser.yy" /* yacc.c:1646  */
     7224
     7225/* Line 1806 of yacc.c  */
     7226#line 1622 "parser.yy"
     7227    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7228    break;
     7229
     7230  case 399:
     7231
     7232/* Line 1806 of yacc.c  */
     7233#line 1629 "parser.yy"
    64147234    { (yyval.decl) = 0; }
    6415 #line 6416 "Parser/parser.cc" /* yacc.c:1646  */
    6416     break;
    6417 
    6418   case 402:
    6419 #line 1588 "parser.yy" /* yacc.c:1646  */
    6420     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6421 #line 6422 "Parser/parser.cc" /* yacc.c:1646  */
    64227235    break;
    64237236
    64247237  case 403:
    6425 #line 1590 "parser.yy" /* yacc.c:1646  */
    6426     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6427 #line 6428 "Parser/parser.cc" /* yacc.c:1646  */
     7238
     7239/* Line 1806 of yacc.c  */
     7240#line 1637 "parser.yy"
     7241    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64287242    break;
    64297243
    64307244  case 404:
    6431 #line 1592 "parser.yy" /* yacc.c:1646  */
    6432     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6433 #line 6434 "Parser/parser.cc" /* yacc.c:1646  */
    6434     break;
    6435 
    6436   case 406:
    6437 #line 1600 "parser.yy" /* yacc.c:1646  */
    6438     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6439 #line 6440 "Parser/parser.cc" /* yacc.c:1646  */
     7245
     7246/* Line 1806 of yacc.c  */
     7247#line 1639 "parser.yy"
     7248    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7249    break;
     7250
     7251  case 405:
     7252
     7253/* Line 1806 of yacc.c  */
     7254#line 1641 "parser.yy"
     7255    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    64407256    break;
    64417257
    64427258  case 407:
    6443 #line 1602 "parser.yy" /* yacc.c:1646  */
    6444     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6445 #line 6446 "Parser/parser.cc" /* yacc.c:1646  */
     7259
     7260/* Line 1806 of yacc.c  */
     7261#line 1649 "parser.yy"
     7262    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64467263    break;
    64477264
    64487265  case 408:
    6449 #line 1604 "parser.yy" /* yacc.c:1646  */
    6450     { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); }
    6451 #line 6452 "Parser/parser.cc" /* yacc.c:1646  */
    6452     break;
    6453 
    6454   case 410:
    6455 #line 1610 "parser.yy" /* yacc.c:1646  */
    6456     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6457 #line 6458 "Parser/parser.cc" /* yacc.c:1646  */
     7266
     7267/* Line 1806 of yacc.c  */
     7268#line 1651 "parser.yy"
     7269    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7270    break;
     7271
     7272  case 409:
     7273
     7274/* Line 1806 of yacc.c  */
     7275#line 1653 "parser.yy"
     7276    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    64587277    break;
    64597278
    64607279  case 411:
    6461 #line 1615 "parser.yy" /* yacc.c:1646  */
     7280
     7281/* Line 1806 of yacc.c  */
     7282#line 1659 "parser.yy"
     7283    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7284    break;
     7285
     7286  case 412:
     7287
     7288/* Line 1806 of yacc.c  */
     7289#line 1664 "parser.yy"
    64627290    { (yyval.decl) = 0; }
    6463 #line 6464 "Parser/parser.cc" /* yacc.c:1646  */
    6464     break;
    6465 
    6466   case 414:
    6467 #line 1622 "parser.yy" /* yacc.c:1646  */
    6468     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
    6469 #line 6470 "Parser/parser.cc" /* yacc.c:1646  */
    6470     break;
    6471 
    6472   case 417:
    6473 #line 1629 "parser.yy" /* yacc.c:1646  */
    6474     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6475 #line 6476 "Parser/parser.cc" /* yacc.c:1646  */
     7291    break;
     7292
     7293  case 415:
     7294
     7295/* Line 1806 of yacc.c  */
     7296#line 1671 "parser.yy"
     7297    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    64767298    break;
    64777299
    64787300  case 418:
    6479 #line 1631 "parser.yy" /* yacc.c:1646  */
    6480     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
    6481 #line 6482 "Parser/parser.cc" /* yacc.c:1646  */
    6482     break;
    6483 
    6484   case 420:
    6485 #line 1640 "parser.yy" /* yacc.c:1646  */
    6486     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
    6487 #line 6488 "Parser/parser.cc" /* yacc.c:1646  */
     7301
     7302/* Line 1806 of yacc.c  */
     7303#line 1678 "parser.yy"
     7304    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7305    break;
     7306
     7307  case 419:
     7308
     7309/* Line 1806 of yacc.c  */
     7310#line 1680 "parser.yy"
     7311    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    64887312    break;
    64897313
    64907314  case 421:
    6491 #line 1643 "parser.yy" /* yacc.c:1646  */
    6492     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
    6493 #line 6494 "Parser/parser.cc" /* yacc.c:1646  */
     7315
     7316/* Line 1806 of yacc.c  */
     7317#line 1689 "parser.yy"
     7318    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    64947319    break;
    64957320
    64967321  case 422:
    6497 #line 1645 "parser.yy" /* yacc.c:1646  */
    6498     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); }
    6499 #line 6500 "Parser/parser.cc" /* yacc.c:1646  */
    6500     break;
    6501 
    6502   case 427:
    6503 #line 1655 "parser.yy" /* yacc.c:1646  */
    6504     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6505 #line 6506 "Parser/parser.cc" /* yacc.c:1646  */
    6506     break;
    6507 
    6508   case 429:
    6509 #line 1661 "parser.yy" /* yacc.c:1646  */
     7322
     7323/* Line 1806 of yacc.c  */
     7324#line 1692 "parser.yy"
     7325    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7326    break;
     7327
     7328  case 423:
     7329
     7330/* Line 1806 of yacc.c  */
     7331#line 1694 "parser.yy"
     7332    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     7333    break;
     7334
     7335  case 428:
     7336
     7337/* Line 1806 of yacc.c  */
     7338#line 1704 "parser.yy"
     7339    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7340    break;
     7341
     7342  case 430:
     7343
     7344/* Line 1806 of yacc.c  */
     7345#line 1710 "parser.yy"
    65107346    {
    65117347                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6512                         (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
     7348                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
    65137349                }
    6514 #line 6515 "Parser/parser.cc" /* yacc.c:1646  */
    6515     break;
    6516 
    6517   case 430:
    6518 #line 1666 "parser.yy" /* yacc.c:1646  */
     7350    break;
     7351
     7352  case 431:
     7353
     7354/* Line 1806 of yacc.c  */
     7355#line 1715 "parser.yy"
    65197356    {
    65207357                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6521                         (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
     7358                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
    65227359                }
    6523 #line 6524 "Parser/parser.cc" /* yacc.c:1646  */
    6524     break;
    6525 
    6526   case 432:
    6527 #line 1675 "parser.yy" /* yacc.c:1646  */
    6528     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6529 #line 6530 "Parser/parser.cc" /* yacc.c:1646  */
    65307360    break;
    65317361
    65327362  case 433:
    6533 #line 1684 "parser.yy" /* yacc.c:1646  */
    6534     { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); }
    6535 #line 6536 "Parser/parser.cc" /* yacc.c:1646  */
     7363
     7364/* Line 1806 of yacc.c  */
     7365#line 1724 "parser.yy"
     7366    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    65367367    break;
    65377368
    65387369  case 434:
    6539 #line 1686 "parser.yy" /* yacc.c:1646  */
    6540     { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); }
    6541 #line 6542 "Parser/parser.cc" /* yacc.c:1646  */
    6542     break;
    6543 
    6544   case 446:
    6545 #line 1711 "parser.yy" /* yacc.c:1646  */
    6546     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6547 #line 6548 "Parser/parser.cc" /* yacc.c:1646  */
    6548     break;
    6549 
    6550   case 450:
    6551 #line 1719 "parser.yy" /* yacc.c:1646  */
    6552     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
    6553 #line 6554 "Parser/parser.cc" /* yacc.c:1646  */
     7370
     7371/* Line 1806 of yacc.c  */
     7372#line 1733 "parser.yy"
     7373    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7374    break;
     7375
     7376  case 435:
     7377
     7378/* Line 1806 of yacc.c  */
     7379#line 1735 "parser.yy"
     7380    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7381    break;
     7382
     7383  case 447:
     7384
     7385/* Line 1806 of yacc.c  */
     7386#line 1760 "parser.yy"
     7387    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    65547388    break;
    65557389
    65567390  case 451:
    6557 #line 1724 "parser.yy" /* yacc.c:1646  */
     7391
     7392/* Line 1806 of yacc.c  */
     7393#line 1768 "parser.yy"
     7394    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7395    break;
     7396
     7397  case 452:
     7398
     7399/* Line 1806 of yacc.c  */
     7400#line 1773 "parser.yy"
    65587401    { (yyval.in) = 0; }
    6559 #line 6560 "Parser/parser.cc" /* yacc.c:1646  */
    6560     break;
    6561 
    6562   case 452:
    6563 #line 1726 "parser.yy" /* yacc.c:1646  */
    6564     { (yyval.in) = (yyvsp[0].in); }
    6565 #line 6566 "Parser/parser.cc" /* yacc.c:1646  */
    65667402    break;
    65677403
    65687404  case 453:
    6569 #line 1728 "parser.yy" /* yacc.c:1646  */
    6570     { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); }
    6571 #line 6572 "Parser/parser.cc" /* yacc.c:1646  */
     7405
     7406/* Line 1806 of yacc.c  */
     7407#line 1775 "parser.yy"
     7408    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    65727409    break;
    65737410
    65747411  case 454:
    6575 #line 1732 "parser.yy" /* yacc.c:1646  */
    6576     { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); }
    6577 #line 6578 "Parser/parser.cc" /* yacc.c:1646  */
     7412
     7413/* Line 1806 of yacc.c  */
     7414#line 1777 "parser.yy"
     7415    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    65787416    break;
    65797417
    65807418  case 455:
    6581 #line 1733 "parser.yy" /* yacc.c:1646  */
    6582     { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); }
    6583 #line 6584 "Parser/parser.cc" /* yacc.c:1646  */
     7419
     7420/* Line 1806 of yacc.c  */
     7421#line 1781 "parser.yy"
     7422    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    65847423    break;
    65857424
    65867425  case 456:
    6587 #line 1738 "parser.yy" /* yacc.c:1646  */
     7426
     7427/* Line 1806 of yacc.c  */
     7428#line 1782 "parser.yy"
     7429    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7430    break;
     7431
     7432  case 457:
     7433
     7434/* Line 1806 of yacc.c  */
     7435#line 1787 "parser.yy"
    65887436    { (yyval.in) = 0; }
    6589 #line 6590 "Parser/parser.cc" /* yacc.c:1646  */
    6590     break;
    6591 
    6592   case 458:
    6593 #line 1740 "parser.yy" /* yacc.c:1646  */
    6594     { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); }
    6595 #line 6596 "Parser/parser.cc" /* yacc.c:1646  */
    65967437    break;
    65977438
    65987439  case 459:
    6599 #line 1741 "parser.yy" /* yacc.c:1646  */
    6600     { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); }
    6601 #line 6602 "Parser/parser.cc" /* yacc.c:1646  */
     7440
     7441/* Line 1806 of yacc.c  */
     7442#line 1789 "parser.yy"
     7443    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    66027444    break;
    66037445
    66047446  case 460:
    6605 #line 1743 "parser.yy" /* yacc.c:1646  */
    6606     { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); }
    6607 #line 6608 "Parser/parser.cc" /* yacc.c:1646  */
    6608     break;
    6609 
    6610   case 462:
    6611 #line 1759 "parser.yy" /* yacc.c:1646  */
    6612     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); }
    6613 #line 6614 "Parser/parser.cc" /* yacc.c:1646  */
    6614     break;
    6615 
    6616   case 464:
    6617 #line 1765 "parser.yy" /* yacc.c:1646  */
    6618     { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); }
    6619 #line 6620 "Parser/parser.cc" /* yacc.c:1646  */
     7447
     7448/* Line 1806 of yacc.c  */
     7449#line 1790 "parser.yy"
     7450    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7451    break;
     7452
     7453  case 461:
     7454
     7455/* Line 1806 of yacc.c  */
     7456#line 1792 "parser.yy"
     7457    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7458    break;
     7459
     7460  case 463:
     7461
     7462/* Line 1806 of yacc.c  */
     7463#line 1808 "parser.yy"
     7464    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    66207465    break;
    66217466
    66227467  case 465:
    6623 #line 1771 "parser.yy" /* yacc.c:1646  */
    6624     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
    6625 #line 6626 "Parser/parser.cc" /* yacc.c:1646  */
     7468
     7469/* Line 1806 of yacc.c  */
     7470#line 1814 "parser.yy"
     7471    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    66267472    break;
    66277473
    66287474  case 466:
    6629 #line 1774 "parser.yy" /* yacc.c:1646  */
    6630     { (yyval.en) = (yyvsp[-2].en); }
    6631 #line 6632 "Parser/parser.cc" /* yacc.c:1646  */
     7475
     7476/* Line 1806 of yacc.c  */
     7477#line 1820 "parser.yy"
     7478    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    66327479    break;
    66337480
    66347481  case 467:
    6635 #line 1776 "parser.yy" /* yacc.c:1646  */
    6636     { (yyval.en) = (yyvsp[-2].en); }
    6637 #line 6638 "Parser/parser.cc" /* yacc.c:1646  */
     7482
     7483/* Line 1806 of yacc.c  */
     7484#line 1823 "parser.yy"
     7485    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    66387486    break;
    66397487
    66407488  case 468:
    6641 #line 1778 "parser.yy" /* yacc.c:1646  */
    6642     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
    6643 #line 6644 "Parser/parser.cc" /* yacc.c:1646  */
     7489
     7490/* Line 1806 of yacc.c  */
     7491#line 1825 "parser.yy"
     7492    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    66447493    break;
    66457494
    66467495  case 469:
    6647 #line 1780 "parser.yy" /* yacc.c:1646  */
    6648     { (yyval.en) = (yyvsp[-2].en); }
    6649 #line 6650 "Parser/parser.cc" /* yacc.c:1646  */
    6650     break;
    6651 
    6652   case 471:
    6653 #line 1804 "parser.yy" /* yacc.c:1646  */
    6654     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6655 #line 6656 "Parser/parser.cc" /* yacc.c:1646  */
     7496
     7497/* Line 1806 of yacc.c  */
     7498#line 1827 "parser.yy"
     7499    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     7500    break;
     7501
     7502  case 470:
     7503
     7504/* Line 1806 of yacc.c  */
     7505#line 1829 "parser.yy"
     7506    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    66567507    break;
    66577508
    66587509  case 472:
    6659 #line 1806 "parser.yy" /* yacc.c:1646  */
    6660     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6661 #line 6662 "Parser/parser.cc" /* yacc.c:1646  */
     7510
     7511/* Line 1806 of yacc.c  */
     7512#line 1853 "parser.yy"
     7513    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66627514    break;
    66637515
    66647516  case 473:
    6665 #line 1808 "parser.yy" /* yacc.c:1646  */
    6666     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
    6667 #line 6668 "Parser/parser.cc" /* yacc.c:1646  */
    6668     break;
    6669 
    6670   case 475:
    6671 #line 1814 "parser.yy" /* yacc.c:1646  */
    6672     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    6673 #line 6674 "Parser/parser.cc" /* yacc.c:1646  */
     7517
     7518/* Line 1806 of yacc.c  */
     7519#line 1855 "parser.yy"
     7520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7521    break;
     7522
     7523  case 474:
     7524
     7525/* Line 1806 of yacc.c  */
     7526#line 1857 "parser.yy"
     7527    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66747528    break;
    66757529
    66767530  case 476:
    6677 #line 1816 "parser.yy" /* yacc.c:1646  */
    6678     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    6679 #line 6680 "Parser/parser.cc" /* yacc.c:1646  */
     7531
     7532/* Line 1806 of yacc.c  */
     7533#line 1863 "parser.yy"
     7534    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66807535    break;
    66817536
    66827537  case 477:
    6683 #line 1821 "parser.yy" /* yacc.c:1646  */
    6684     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
    6685 #line 6686 "Parser/parser.cc" /* yacc.c:1646  */
    6686     break;
    6687 
    6688   case 479:
    6689 #line 1827 "parser.yy" /* yacc.c:1646  */
    6690     { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); }
    6691 #line 6692 "Parser/parser.cc" /* yacc.c:1646  */
     7538
     7539/* Line 1806 of yacc.c  */
     7540#line 1865 "parser.yy"
     7541    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7542    break;
     7543
     7544  case 478:
     7545
     7546/* Line 1806 of yacc.c  */
     7547#line 1870 "parser.yy"
     7548    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    66927549    break;
    66937550
    66947551  case 480:
    6695 #line 1832 "parser.yy" /* yacc.c:1646  */
    6696     { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); }
    6697 #line 6698 "Parser/parser.cc" /* yacc.c:1646  */
     7552
     7553/* Line 1806 of yacc.c  */
     7554#line 1876 "parser.yy"
     7555    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    66987556    break;
    66997557
    67007558  case 481:
    6701 #line 1834 "parser.yy" /* yacc.c:1646  */
    6702     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); }
    6703 #line 6704 "Parser/parser.cc" /* yacc.c:1646  */
    6704     break;
    6705 
    6706   case 483:
    6707 #line 1840 "parser.yy" /* yacc.c:1646  */
     7559
     7560/* Line 1806 of yacc.c  */
     7561#line 1881 "parser.yy"
     7562    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7563    break;
     7564
     7565  case 482:
     7566
     7567/* Line 1806 of yacc.c  */
     7568#line 1883 "parser.yy"
     7569    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7570    break;
     7571
     7572  case 484:
     7573
     7574/* Line 1806 of yacc.c  */
     7575#line 1889 "parser.yy"
    67087576    { (yyval.tclass) = DeclarationNode::Type; }
    6709 #line 6710 "Parser/parser.cc" /* yacc.c:1646  */
    6710     break;
    6711 
    6712   case 484:
    6713 #line 1842 "parser.yy" /* yacc.c:1646  */
     7577    break;
     7578
     7579  case 485:
     7580
     7581/* Line 1806 of yacc.c  */
     7582#line 1891 "parser.yy"
    67147583    { (yyval.tclass) = DeclarationNode::Ftype; }
    6715 #line 6716 "Parser/parser.cc" /* yacc.c:1646  */
    6716     break;
    6717 
    6718   case 485:
    6719 #line 1844 "parser.yy" /* yacc.c:1646  */
     7584    break;
     7585
     7586  case 486:
     7587
     7588/* Line 1806 of yacc.c  */
     7589#line 1893 "parser.yy"
    67207590    { (yyval.tclass) = DeclarationNode::Dtype; }
    6721 #line 6722 "Parser/parser.cc" /* yacc.c:1646  */
    6722     break;
    6723 
    6724   case 486:
    6725 #line 1849 "parser.yy" /* yacc.c:1646  */
     7591    break;
     7592
     7593  case 487:
     7594
     7595/* Line 1806 of yacc.c  */
     7596#line 1898 "parser.yy"
    67267597    { (yyval.decl) = 0; }
    6727 #line 6728 "Parser/parser.cc" /* yacc.c:1646  */
    6728     break;
    6729 
    6730   case 487:
    6731 #line 1851 "parser.yy" /* yacc.c:1646  */
    6732     { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6733 #line 6734 "Parser/parser.cc" /* yacc.c:1646  */
    67347598    break;
    67357599
    67367600  case 488:
    6737 #line 1856 "parser.yy" /* yacc.c:1646  */
     7601
     7602/* Line 1806 of yacc.c  */
     7603#line 1900 "parser.yy"
     7604    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     7605    break;
     7606
     7607  case 489:
     7608
     7609/* Line 1806 of yacc.c  */
     7610#line 1905 "parser.yy"
    67387611    {
    6739                         typedefTable.openTrait( *(yyvsp[-3].tok) );
    6740                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
     7612                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     7613                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
    67417614                }
    6742 #line 6743 "Parser/parser.cc" /* yacc.c:1646  */
    6743     break;
    6744 
    6745   case 489:
    6746 #line 1861 "parser.yy" /* yacc.c:1646  */
    6747     { (yyval.decl) = (yyvsp[-1].decl); }
    6748 #line 6749 "Parser/parser.cc" /* yacc.c:1646  */
    67497615    break;
    67507616
    67517617  case 490:
    6752 #line 1863 "parser.yy" /* yacc.c:1646  */
     7618
     7619/* Line 1806 of yacc.c  */
     7620#line 1910 "parser.yy"
     7621    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7622    break;
     7623
     7624  case 491:
     7625
     7626/* Line 1806 of yacc.c  */
     7627#line 1912 "parser.yy"
    67537628    { (yyval.decl) = 0; }
    6754 #line 6755 "Parser/parser.cc" /* yacc.c:1646  */
    6755     break;
    6756 
    6757   case 491:
    6758 #line 1868 "parser.yy" /* yacc.c:1646  */
    6759     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); }
    6760 #line 6761 "Parser/parser.cc" /* yacc.c:1646  */
    6761     break;
    6762 
    6763   case 493:
    6764 #line 1871 "parser.yy" /* yacc.c:1646  */
    6765     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); }
    6766 #line 6767 "Parser/parser.cc" /* yacc.c:1646  */
     7629    break;
     7630
     7631  case 492:
     7632
     7633/* Line 1806 of yacc.c  */
     7634#line 1917 "parser.yy"
     7635    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    67677636    break;
    67687637
    67697638  case 494:
    6770 #line 1873 "parser.yy" /* yacc.c:1646  */
    6771     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
    6772 #line 6773 "Parser/parser.cc" /* yacc.c:1646  */
     7639
     7640/* Line 1806 of yacc.c  */
     7641#line 1920 "parser.yy"
     7642    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    67737643    break;
    67747644
    67757645  case 495:
    6776 #line 1878 "parser.yy" /* yacc.c:1646  */
    6777     { (yyval.decl) = (yyvsp[0].decl); }
    6778 #line 6779 "Parser/parser.cc" /* yacc.c:1646  */
     7646
     7647/* Line 1806 of yacc.c  */
     7648#line 1922 "parser.yy"
     7649    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    67797650    break;
    67807651
    67817652  case 496:
    6782 #line 1880 "parser.yy" /* yacc.c:1646  */
    6783     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); }
    6784 #line 6785 "Parser/parser.cc" /* yacc.c:1646  */
     7653
     7654/* Line 1806 of yacc.c  */
     7655#line 1927 "parser.yy"
     7656    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    67857657    break;
    67867658
    67877659  case 497:
    6788 #line 1882 "parser.yy" /* yacc.c:1646  */
    6789     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); }
    6790 #line 6791 "Parser/parser.cc" /* yacc.c:1646  */
     7660
     7661/* Line 1806 of yacc.c  */
     7662#line 1929 "parser.yy"
     7663    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    67917664    break;
    67927665
    67937666  case 498:
    6794 #line 1887 "parser.yy" /* yacc.c:1646  */
    6795     { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); }
    6796 #line 6797 "Parser/parser.cc" /* yacc.c:1646  */
     7667
     7668/* Line 1806 of yacc.c  */
     7669#line 1931 "parser.yy"
     7670    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    67977671    break;
    67987672
    67997673  case 499:
    6800 #line 1889 "parser.yy" /* yacc.c:1646  */
    6801     { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); }
    6802 #line 6803 "Parser/parser.cc" /* yacc.c:1646  */
     7674
     7675/* Line 1806 of yacc.c  */
     7676#line 1936 "parser.yy"
     7677    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    68037678    break;
    68047679
    68057680  case 500:
    6806 #line 1894 "parser.yy" /* yacc.c:1646  */
     7681
     7682/* Line 1806 of yacc.c  */
     7683#line 1938 "parser.yy"
     7684    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     7685    break;
     7686
     7687  case 501:
     7688
     7689/* Line 1806 of yacc.c  */
     7690#line 1943 "parser.yy"
    68077691    {
    6808                         typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
    6809                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
     7692                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     7693                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
    68107694                }
    6811 #line 6812 "Parser/parser.cc" /* yacc.c:1646  */
    6812     break;
    6813 
    6814   case 501:
    6815 #line 1899 "parser.yy" /* yacc.c:1646  */
     7695    break;
     7696
     7697  case 502:
     7698
     7699/* Line 1806 of yacc.c  */
     7700#line 1948 "parser.yy"
    68167701    {
    6817                         typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
    6818                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
     7702                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     7703                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
    68197704                }
    6820 #line 6821 "Parser/parser.cc" /* yacc.c:1646  */
    6821     break;
    6822 
    6823   case 502:
    6824 #line 1907 "parser.yy" /* yacc.c:1646  */
     7705    break;
     7706
     7707  case 503:
     7708
     7709/* Line 1806 of yacc.c  */
     7710#line 1956 "parser.yy"
    68257711    {
    6826                         typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
    6827                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
     7712                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     7713                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
    68287714                }
    6829 #line 6830 "Parser/parser.cc" /* yacc.c:1646  */
    6830     break;
    6831 
    6832   case 503:
    6833 #line 1912 "parser.yy" /* yacc.c:1646  */
     7715    break;
     7716
     7717  case 504:
     7718
     7719/* Line 1806 of yacc.c  */
     7720#line 1961 "parser.yy"
    68347721    {
    6835                         typedefTable.enterTrait( *(yyvsp[-6].tok) );
     7722                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
    68367723                        typedefTable.enterScope();
    68377724                }
    6838 #line 6839 "Parser/parser.cc" /* yacc.c:1646  */
    6839     break;
    6840 
    6841   case 504:
    6842 #line 1917 "parser.yy" /* yacc.c:1646  */
     7725    break;
     7726
     7727  case 505:
     7728
     7729/* Line 1806 of yacc.c  */
     7730#line 1966 "parser.yy"
    68437731    {
    68447732                        typedefTable.leaveTrait();
    6845                         typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID );
    6846                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
     7733                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
     7734                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
    68477735                }
    6848 #line 6849 "Parser/parser.cc" /* yacc.c:1646  */
    6849     break;
    6850 
    6851   case 506:
    6852 #line 1927 "parser.yy" /* yacc.c:1646  */
    6853     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
    6854 #line 6855 "Parser/parser.cc" /* yacc.c:1646  */
    6855     break;
    6856 
    6857   case 509:
    6858 #line 1937 "parser.yy" /* yacc.c:1646  */
     7736    break;
     7737
     7738  case 507:
     7739
     7740/* Line 1806 of yacc.c  */
     7741#line 1976 "parser.yy"
     7742    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     7743    break;
     7744
     7745  case 510:
     7746
     7747/* Line 1806 of yacc.c  */
     7748#line 1986 "parser.yy"
    68597749    {
    68607750                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6861                         (yyval.decl) = (yyvsp[0].decl);
     7751                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    68627752                }
    6863 #line 6864 "Parser/parser.cc" /* yacc.c:1646  */
    6864     break;
    6865 
    6866   case 510:
    6867 #line 1942 "parser.yy" /* yacc.c:1646  */
     7753    break;
     7754
     7755  case 511:
     7756
     7757/* Line 1806 of yacc.c  */
     7758#line 1991 "parser.yy"
    68687759    {
    68697760                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6870                         (yyval.decl) = (yyvsp[0].decl);
     7761                        (yyval.decl) = (yyvsp[(1) - (1)].decl);
    68717762                }
    6872 #line 6873 "Parser/parser.cc" /* yacc.c:1646  */
    6873     break;
    6874 
    6875   case 511:
    6876 #line 1947 "parser.yy" /* yacc.c:1646  */
     7763    break;
     7764
     7765  case 512:
     7766
     7767/* Line 1806 of yacc.c  */
     7768#line 1996 "parser.yy"
    68777769    {
    6878                         typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
    6879                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     7770                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     7771                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
    68807772                }
    6881 #line 6882 "Parser/parser.cc" /* yacc.c:1646  */
    6882     break;
    6883 
    6884   case 512:
    6885 #line 1955 "parser.yy" /* yacc.c:1646  */
     7773    break;
     7774
     7775  case 513:
     7776
     7777/* Line 1806 of yacc.c  */
     7778#line 2004 "parser.yy"
    68867779    {
    68877780                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6888                         (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
     7781                        (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
    68897782                }
    6890 #line 6891 "Parser/parser.cc" /* yacc.c:1646  */
    6891     break;
    6892 
    6893   case 513:
    6894 #line 1960 "parser.yy" /* yacc.c:1646  */
     7783    break;
     7784
     7785  case 514:
     7786
     7787/* Line 1806 of yacc.c  */
     7788#line 2009 "parser.yy"
    68957789    {
    68967790                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    6897                         (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
     7791                        (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
    68987792                }
    6899 #line 6900 "Parser/parser.cc" /* yacc.c:1646  */
    6900     break;
    6901 
    6902   case 514:
    6903 #line 1970 "parser.yy" /* yacc.c:1646  */
     7793    break;
     7794
     7795  case 515:
     7796
     7797/* Line 1806 of yacc.c  */
     7798#line 2019 "parser.yy"
    69047799    {}
    6905 #line 6906 "Parser/parser.cc" /* yacc.c:1646  */
    6906     break;
    6907 
    6908   case 515:
    6909 #line 1972 "parser.yy" /* yacc.c:1646  */
    6910     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl);    }
    6911 #line 6912 "Parser/parser.cc" /* yacc.c:1646  */
    6912     break;
    6913 
    6914   case 517:
    6915 #line 1978 "parser.yy" /* yacc.c:1646  */
    6916     { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
    6917 #line 6918 "Parser/parser.cc" /* yacc.c:1646  */
     7800    break;
     7801
     7802  case 516:
     7803
     7804/* Line 1806 of yacc.c  */
     7805#line 2021 "parser.yy"
     7806    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    69187807    break;
    69197808
    69207809  case 518:
    6921 #line 1983 "parser.yy" /* yacc.c:1646  */
     7810
     7811/* Line 1806 of yacc.c  */
     7812#line 2027 "parser.yy"
     7813    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7814    break;
     7815
     7816  case 519:
     7817
     7818/* Line 1806 of yacc.c  */
     7819#line 2032 "parser.yy"
    69227820    { (yyval.decl) = 0; }
    6923 #line 6924 "Parser/parser.cc" /* yacc.c:1646  */
    6924     break;
    6925 
    6926   case 522:
    6927 #line 1991 "parser.yy" /* yacc.c:1646  */
     7821    break;
     7822
     7823  case 523:
     7824
     7825/* Line 1806 of yacc.c  */
     7826#line 2040 "parser.yy"
    69287827    {}
    6929 #line 6930 "Parser/parser.cc" /* yacc.c:1646  */
    6930     break;
    6931 
    6932   case 523:
    6933 #line 1993 "parser.yy" /* yacc.c:1646  */
     7828    break;
     7829
     7830  case 524:
     7831
     7832/* Line 1806 of yacc.c  */
     7833#line 2042 "parser.yy"
    69347834    {
    69357835                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    6936                         linkage = LinkageSpec::fromString( assign_strptr((yyvsp[0].tok)) );
     7836                        linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
    69377837                }
    6938 #line 6939 "Parser/parser.cc" /* yacc.c:1646  */
    6939     break;
    6940 
    6941   case 524:
    6942 #line 1998 "parser.yy" /* yacc.c:1646  */
     7838    break;
     7839
     7840  case 525:
     7841
     7842/* Line 1806 of yacc.c  */
     7843#line 2047 "parser.yy"
    69437844    {
    69447845                        linkage = linkageStack.top();
    69457846                        linkageStack.pop();
    6946                         (yyval.decl) = (yyvsp[-1].decl);
     7847                        (yyval.decl) = (yyvsp[(5) - (6)].decl);
    69477848                }
    6948 #line 6949 "Parser/parser.cc" /* yacc.c:1646  */
    6949     break;
    6950 
    6951   case 525:
    6952 #line 2004 "parser.yy" /* yacc.c:1646  */
     7849    break;
     7850
     7851  case 526:
     7852
     7853/* Line 1806 of yacc.c  */
     7854#line 2053 "parser.yy"
    69537855    {   // mark all fields in list
    6954                         for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     7856                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    69557857                                iter->set_extension( true );
    6956                         (yyval.decl) = (yyvsp[0].decl);
     7858                        (yyval.decl) = (yyvsp[(2) - (2)].decl);
    69577859                }
    6958 #line 6959 "Parser/parser.cc" /* yacc.c:1646  */
    6959     break;
    6960 
    6961   case 527:
    6962 #line 2019 "parser.yy" /* yacc.c:1646  */
     7860    break;
     7861
     7862  case 528:
     7863
     7864/* Line 1806 of yacc.c  */
     7865#line 2068 "parser.yy"
    69637866    {
    69647867                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69657868                        typedefTable.leaveScope();
    6966                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
     7869                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
    69677870                }
    6968 #line 6969 "Parser/parser.cc" /* yacc.c:1646  */
    6969     break;
    6970 
    6971   case 528:
    6972 #line 2025 "parser.yy" /* yacc.c:1646  */
     7871    break;
     7872
     7873  case 529:
     7874
     7875/* Line 1806 of yacc.c  */
     7876#line 2074 "parser.yy"
    69737877    {
    69747878                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69757879                        typedefTable.leaveScope();
    6976                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
     7880                        (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
    69777881                }
    6978 #line 6979 "Parser/parser.cc" /* yacc.c:1646  */
    6979     break;
    6980 
    6981   case 529:
    6982 #line 2034 "parser.yy" /* yacc.c:1646  */
     7882    break;
     7883
     7884  case 530:
     7885
     7886/* Line 1806 of yacc.c  */
     7887#line 2083 "parser.yy"
    69837888    {
    69847889                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69857890                        typedefTable.leaveScope();
    6986                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
     7891                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
    69877892                }
    6988 #line 6989 "Parser/parser.cc" /* yacc.c:1646  */
    6989     break;
    6990 
    6991   case 530:
    6992 #line 2040 "parser.yy" /* yacc.c:1646  */
     7893    break;
     7894
     7895  case 531:
     7896
     7897/* Line 1806 of yacc.c  */
     7898#line 2089 "parser.yy"
    69937899    {
    69947900                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    69957901                        typedefTable.leaveScope();
    6996                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
     7902                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
    69977903                }
    6998 #line 6999 "Parser/parser.cc" /* yacc.c:1646  */
    6999     break;
    7000 
    7001   case 531:
    7002 #line 2046 "parser.yy" /* yacc.c:1646  */
     7904    break;
     7905
     7906  case 532:
     7907
     7908/* Line 1806 of yacc.c  */
     7909#line 2095 "parser.yy"
    70037910    {
    70047911                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70057912                        typedefTable.leaveScope();
    7006                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
     7913                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
    70077914                }
    7008 #line 7009 "Parser/parser.cc" /* yacc.c:1646  */
    7009     break;
    7010 
    7011   case 532:
    7012 #line 2052 "parser.yy" /* yacc.c:1646  */
     7915    break;
     7916
     7917  case 533:
     7918
     7919/* Line 1806 of yacc.c  */
     7920#line 2101 "parser.yy"
    70137921    {
    70147922                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70157923                        typedefTable.leaveScope();
    7016                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
     7924                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
    70177925                }
    7018 #line 7019 "Parser/parser.cc" /* yacc.c:1646  */
    7019     break;
    7020 
    7021   case 533:
    7022 #line 2058 "parser.yy" /* yacc.c:1646  */
     7926    break;
     7927
     7928  case 534:
     7929
     7930/* Line 1806 of yacc.c  */
     7931#line 2107 "parser.yy"
    70237932    {
    70247933                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70257934                        typedefTable.leaveScope();
    7026                         (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
     7935                        (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
    70277936                }
    7028 #line 7029 "Parser/parser.cc" /* yacc.c:1646  */
    7029     break;
    7030 
    7031   case 534:
    7032 #line 2066 "parser.yy" /* yacc.c:1646  */
     7937    break;
     7938
     7939  case 535:
     7940
     7941/* Line 1806 of yacc.c  */
     7942#line 2115 "parser.yy"
    70337943    {
    70347944                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70357945                        typedefTable.leaveScope();
    7036                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
     7946                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
    70377947                }
    7038 #line 7039 "Parser/parser.cc" /* yacc.c:1646  */
    7039     break;
    7040 
    7041   case 535:
    7042 #line 2072 "parser.yy" /* yacc.c:1646  */
     7948    break;
     7949
     7950  case 536:
     7951
     7952/* Line 1806 of yacc.c  */
     7953#line 2121 "parser.yy"
    70437954    {
    70447955                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70457956                        typedefTable.leaveScope();
    7046                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
     7957                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
    70477958                }
    7048 #line 7049 "Parser/parser.cc" /* yacc.c:1646  */
    7049     break;
    7050 
    7051   case 536:
    7052 #line 2080 "parser.yy" /* yacc.c:1646  */
     7959    break;
     7960
     7961  case 537:
     7962
     7963/* Line 1806 of yacc.c  */
     7964#line 2129 "parser.yy"
    70537965    {
    70547966                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70557967                        typedefTable.leaveScope();
    7056                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
     7968                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
    70577969                }
    7058 #line 7059 "Parser/parser.cc" /* yacc.c:1646  */
    7059     break;
    7060 
    7061   case 537:
    7062 #line 2086 "parser.yy" /* yacc.c:1646  */
     7970    break;
     7971
     7972  case 538:
     7973
     7974/* Line 1806 of yacc.c  */
     7975#line 2135 "parser.yy"
    70637976    {
    70647977                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    70657978                        typedefTable.leaveScope();
    7066                         (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
     7979                        (yyval.decl) = (yyvsp[(3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) );
    70677980                }
    7068 #line 7069 "Parser/parser.cc" /* yacc.c:1646  */
    7069     break;
    7070 
    7071   case 541:
    7072 #line 2101 "parser.yy" /* yacc.c:1646  */
    7073     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
    7074 #line 7075 "Parser/parser.cc" /* yacc.c:1646  */
    7075     break;
    7076 
    7077   case 544:
    7078 #line 2111 "parser.yy" /* yacc.c:1646  */
     7981    break;
     7982
     7983  case 542:
     7984
     7985/* Line 1806 of yacc.c  */
     7986#line 2150 "parser.yy"
     7987    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7988    break;
     7989
     7990  case 545:
     7991
     7992/* Line 1806 of yacc.c  */
     7993#line 2160 "parser.yy"
    70797994    { (yyval.decl) = 0; }
    7080 #line 7081 "Parser/parser.cc" /* yacc.c:1646  */
    7081     break;
    7082 
    7083   case 547:
    7084 #line 2118 "parser.yy" /* yacc.c:1646  */
    7085     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    7086 #line 7087 "Parser/parser.cc" /* yacc.c:1646  */
    70877995    break;
    70887996
    70897997  case 548:
    7090 #line 2124 "parser.yy" /* yacc.c:1646  */
     7998
     7999/* Line 1806 of yacc.c  */
     8000#line 2167 "parser.yy"
     8001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8002    break;
     8003
     8004  case 549:
     8005
     8006/* Line 1806 of yacc.c  */
     8007#line 2173 "parser.yy"
    70918008    { (yyval.decl) = 0; }
    7092 #line 7093 "Parser/parser.cc" /* yacc.c:1646  */
    7093     break;
    7094 
    7095   case 554:
    7096 #line 2139 "parser.yy" /* yacc.c:1646  */
    7097     { delete (yyvsp[0].tok); }
    7098 #line 7099 "Parser/parser.cc" /* yacc.c:1646  */
    70998009    break;
    71008010
    71018011  case 555:
    7102 #line 2140 "parser.yy" /* yacc.c:1646  */
    7103     { delete (yyvsp[0].decl); }
    7104 #line 7105 "Parser/parser.cc" /* yacc.c:1646  */
     8012
     8013/* Line 1806 of yacc.c  */
     8014#line 2188 "parser.yy"
     8015    { delete (yyvsp[(1) - (1)].tok); }
    71058016    break;
    71068017
    71078018  case 556:
    7108 #line 2141 "parser.yy" /* yacc.c:1646  */
    7109     { delete (yyvsp[0].decl); }
    7110 #line 7111 "Parser/parser.cc" /* yacc.c:1646  */
     8019
     8020/* Line 1806 of yacc.c  */
     8021#line 2189 "parser.yy"
     8022    { delete (yyvsp[(1) - (1)].decl); }
    71118023    break;
    71128024
    71138025  case 557:
    7114 #line 2142 "parser.yy" /* yacc.c:1646  */
    7115     { delete (yyvsp[0].decl); }
    7116 #line 7117 "Parser/parser.cc" /* yacc.c:1646  */
     8026
     8027/* Line 1806 of yacc.c  */
     8028#line 2190 "parser.yy"
     8029    { delete (yyvsp[(1) - (1)].decl); }
    71178030    break;
    71188031
    71198032  case 558:
    7120 #line 2177 "parser.yy" /* yacc.c:1646  */
    7121     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7122 #line 7123 "Parser/parser.cc" /* yacc.c:1646  */
    7123     break;
    7124 
    7125   case 560:
    7126 #line 2180 "parser.yy" /* yacc.c:1646  */
    7127     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7128 #line 7129 "Parser/parser.cc" /* yacc.c:1646  */
     8033
     8034/* Line 1806 of yacc.c  */
     8035#line 2191 "parser.yy"
     8036    { delete (yyvsp[(1) - (1)].decl); }
     8037    break;
     8038
     8039  case 559:
     8040
     8041/* Line 1806 of yacc.c  */
     8042#line 2226 "parser.yy"
     8043    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71298044    break;
    71308045
    71318046  case 561:
    7132 #line 2182 "parser.yy" /* yacc.c:1646  */
    7133     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7134 #line 7135 "Parser/parser.cc" /* yacc.c:1646  */
     8047
     8048/* Line 1806 of yacc.c  */
     8049#line 2229 "parser.yy"
     8050    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71358051    break;
    71368052
    71378053  case 562:
    7138 #line 2187 "parser.yy" /* yacc.c:1646  */
     8054
     8055/* Line 1806 of yacc.c  */
     8056#line 2231 "parser.yy"
     8057    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8058    break;
     8059
     8060  case 563:
     8061
     8062/* Line 1806 of yacc.c  */
     8063#line 2236 "parser.yy"
    71398064    {
    7140                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7141                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8065                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8066                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    71428067                }
    7143 #line 7144 "Parser/parser.cc" /* yacc.c:1646  */
    7144     break;
    7145 
    7146   case 563:
    7147 #line 2192 "parser.yy" /* yacc.c:1646  */
    7148     { (yyval.decl) = (yyvsp[-1].decl); }
    7149 #line 7150 "Parser/parser.cc" /* yacc.c:1646  */
    71508068    break;
    71518069
    71528070  case 564:
    7153 #line 2197 "parser.yy" /* yacc.c:1646  */
    7154     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7155 #line 7156 "Parser/parser.cc" /* yacc.c:1646  */
     8071
     8072/* Line 1806 of yacc.c  */
     8073#line 2241 "parser.yy"
     8074    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71568075    break;
    71578076
    71588077  case 565:
    7159 #line 2199 "parser.yy" /* yacc.c:1646  */
    7160     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7161 #line 7162 "Parser/parser.cc" /* yacc.c:1646  */
     8078
     8079/* Line 1806 of yacc.c  */
     8080#line 2246 "parser.yy"
     8081    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    71628082    break;
    71638083
    71648084  case 566:
    7165 #line 2201 "parser.yy" /* yacc.c:1646  */
    7166     { (yyval.decl) = (yyvsp[-1].decl); }
    7167 #line 7168 "Parser/parser.cc" /* yacc.c:1646  */
     8085
     8086/* Line 1806 of yacc.c  */
     8087#line 2248 "parser.yy"
     8088    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    71688089    break;
    71698090
    71708091  case 567:
    7171 #line 2206 "parser.yy" /* yacc.c:1646  */
    7172     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7173 #line 7174 "Parser/parser.cc" /* yacc.c:1646  */
     8092
     8093/* Line 1806 of yacc.c  */
     8094#line 2250 "parser.yy"
     8095    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71748096    break;
    71758097
    71768098  case 568:
    7177 #line 2208 "parser.yy" /* yacc.c:1646  */
    7178     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7179 #line 7180 "Parser/parser.cc" /* yacc.c:1646  */
     8099
     8100/* Line 1806 of yacc.c  */
     8101#line 2255 "parser.yy"
     8102    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    71808103    break;
    71818104
    71828105  case 569:
    7183 #line 2210 "parser.yy" /* yacc.c:1646  */
    7184     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7185 #line 7186 "Parser/parser.cc" /* yacc.c:1646  */
     8106
     8107/* Line 1806 of yacc.c  */
     8108#line 2257 "parser.yy"
     8109    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    71868110    break;
    71878111
    71888112  case 570:
    7189 #line 2212 "parser.yy" /* yacc.c:1646  */
    7190     { (yyval.decl) = (yyvsp[-1].decl); }
    7191 #line 7192 "Parser/parser.cc" /* yacc.c:1646  */
     8113
     8114/* Line 1806 of yacc.c  */
     8115#line 2259 "parser.yy"
     8116    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    71928117    break;
    71938118
    71948119  case 571:
    7195 #line 2217 "parser.yy" /* yacc.c:1646  */
    7196     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7197 #line 7198 "Parser/parser.cc" /* yacc.c:1646  */
     8120
     8121/* Line 1806 of yacc.c  */
     8122#line 2261 "parser.yy"
     8123    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71988124    break;
    71998125
    72008126  case 572:
    7201 #line 2219 "parser.yy" /* yacc.c:1646  */
    7202     { (yyval.decl) = (yyvsp[-1].decl); }
    7203 #line 7204 "Parser/parser.cc" /* yacc.c:1646  */
     8127
     8128/* Line 1806 of yacc.c  */
     8129#line 2266 "parser.yy"
     8130    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    72048131    break;
    72058132
    72068133  case 573:
    7207 #line 2228 "parser.yy" /* yacc.c:1646  */
    7208     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7209 #line 7210 "Parser/parser.cc" /* yacc.c:1646  */
    7210     break;
    7211 
    7212   case 575:
    7213 #line 2231 "parser.yy" /* yacc.c:1646  */
    7214     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7215 #line 7216 "Parser/parser.cc" /* yacc.c:1646  */
     8134
     8135/* Line 1806 of yacc.c  */
     8136#line 2268 "parser.yy"
     8137    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8138    break;
     8139
     8140  case 574:
     8141
     8142/* Line 1806 of yacc.c  */
     8143#line 2277 "parser.yy"
     8144    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72168145    break;
    72178146
    72188147  case 576:
    7219 #line 2236 "parser.yy" /* yacc.c:1646  */
    7220     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7221 #line 7222 "Parser/parser.cc" /* yacc.c:1646  */
     8148
     8149/* Line 1806 of yacc.c  */
     8150#line 2280 "parser.yy"
     8151    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72228152    break;
    72238153
    72248154  case 577:
    7225 #line 2238 "parser.yy" /* yacc.c:1646  */
    7226     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7227 #line 7228 "Parser/parser.cc" /* yacc.c:1646  */
     8155
     8156/* Line 1806 of yacc.c  */
     8157#line 2285 "parser.yy"
     8158    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    72288159    break;
    72298160
    72308161  case 578:
    7231 #line 2240 "parser.yy" /* yacc.c:1646  */
    7232     { (yyval.decl) = (yyvsp[-1].decl); }
    7233 #line 7234 "Parser/parser.cc" /* yacc.c:1646  */
     8162
     8163/* Line 1806 of yacc.c  */
     8164#line 2287 "parser.yy"
     8165    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    72348166    break;
    72358167
    72368168  case 579:
    7237 #line 2245 "parser.yy" /* yacc.c:1646  */
    7238     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7239 #line 7240 "Parser/parser.cc" /* yacc.c:1646  */
     8169
     8170/* Line 1806 of yacc.c  */
     8171#line 2289 "parser.yy"
     8172    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72408173    break;
    72418174
    72428175  case 580:
    7243 #line 2247 "parser.yy" /* yacc.c:1646  */
    7244     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7245 #line 7246 "Parser/parser.cc" /* yacc.c:1646  */
     8176
     8177/* Line 1806 of yacc.c  */
     8178#line 2294 "parser.yy"
     8179    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    72468180    break;
    72478181
    72488182  case 581:
    7249 #line 2249 "parser.yy" /* yacc.c:1646  */
    7250     { (yyval.decl) = (yyvsp[-1].decl); }
    7251 #line 7252 "Parser/parser.cc" /* yacc.c:1646  */
     8183
     8184/* Line 1806 of yacc.c  */
     8185#line 2296 "parser.yy"
     8186    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    72528187    break;
    72538188
    72548189  case 582:
    7255 #line 2254 "parser.yy" /* yacc.c:1646  */
    7256     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7257 #line 7258 "Parser/parser.cc" /* yacc.c:1646  */
     8190
     8191/* Line 1806 of yacc.c  */
     8192#line 2298 "parser.yy"
     8193    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72588194    break;
    72598195
    72608196  case 583:
    7261 #line 2256 "parser.yy" /* yacc.c:1646  */
    7262     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7263 #line 7264 "Parser/parser.cc" /* yacc.c:1646  */
     8197
     8198/* Line 1806 of yacc.c  */
     8199#line 2303 "parser.yy"
     8200    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    72648201    break;
    72658202
    72668203  case 584:
    7267 #line 2258 "parser.yy" /* yacc.c:1646  */
    7268     { (yyval.decl) = (yyvsp[-1].decl); }
    7269 #line 7270 "Parser/parser.cc" /* yacc.c:1646  */
    7270     break;
    7271 
    7272   case 588:
    7273 #line 2273 "parser.yy" /* yacc.c:1646  */
    7274     { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); }
    7275 #line 7276 "Parser/parser.cc" /* yacc.c:1646  */
     8204
     8205/* Line 1806 of yacc.c  */
     8206#line 2305 "parser.yy"
     8207    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8208    break;
     8209
     8210  case 585:
     8211
     8212/* Line 1806 of yacc.c  */
     8213#line 2307 "parser.yy"
     8214    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72768215    break;
    72778216
    72788217  case 589:
    7279 #line 2275 "parser.yy" /* yacc.c:1646  */
    7280     { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); }
    7281 #line 7282 "Parser/parser.cc" /* yacc.c:1646  */
     8218
     8219/* Line 1806 of yacc.c  */
     8220#line 2322 "parser.yy"
     8221    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    72828222    break;
    72838223
    72848224  case 590:
    7285 #line 2277 "parser.yy" /* yacc.c:1646  */
    7286     { (yyval.decl) = (yyvsp[-1].decl); }
    7287 #line 7288 "Parser/parser.cc" /* yacc.c:1646  */
     8225
     8226/* Line 1806 of yacc.c  */
     8227#line 2324 "parser.yy"
     8228    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    72888229    break;
    72898230
    72908231  case 591:
    7291 #line 2282 "parser.yy" /* yacc.c:1646  */
    7292     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7293 #line 7294 "Parser/parser.cc" /* yacc.c:1646  */
     8232
     8233/* Line 1806 of yacc.c  */
     8234#line 2326 "parser.yy"
     8235    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    72948236    break;
    72958237
    72968238  case 592:
    7297 #line 2284 "parser.yy" /* yacc.c:1646  */
    7298     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7299 #line 7300 "Parser/parser.cc" /* yacc.c:1646  */
     8239
     8240/* Line 1806 of yacc.c  */
     8241#line 2331 "parser.yy"
     8242    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    73008243    break;
    73018244
    73028245  case 593:
    7303 #line 2286 "parser.yy" /* yacc.c:1646  */
    7304     { (yyval.decl) = (yyvsp[-1].decl); }
    7305 #line 7306 "Parser/parser.cc" /* yacc.c:1646  */
     8246
     8247/* Line 1806 of yacc.c  */
     8248#line 2333 "parser.yy"
     8249    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    73068250    break;
    73078251
    73088252  case 594:
    7309 #line 2291 "parser.yy" /* yacc.c:1646  */
    7310     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7311 #line 7312 "Parser/parser.cc" /* yacc.c:1646  */
     8253
     8254/* Line 1806 of yacc.c  */
     8255#line 2335 "parser.yy"
     8256    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73128257    break;
    73138258
    73148259  case 595:
    7315 #line 2293 "parser.yy" /* yacc.c:1646  */
    7316     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7317 #line 7318 "Parser/parser.cc" /* yacc.c:1646  */
     8260
     8261/* Line 1806 of yacc.c  */
     8262#line 2340 "parser.yy"
     8263    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73188264    break;
    73198265
    73208266  case 596:
    7321 #line 2295 "parser.yy" /* yacc.c:1646  */
    7322     { (yyval.decl) = (yyvsp[-1].decl); }
    7323 #line 7324 "Parser/parser.cc" /* yacc.c:1646  */
     8267
     8268/* Line 1806 of yacc.c  */
     8269#line 2342 "parser.yy"
     8270    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73248271    break;
    73258272
    73268273  case 597:
    7327 #line 2310 "parser.yy" /* yacc.c:1646  */
    7328     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7329 #line 7330 "Parser/parser.cc" /* yacc.c:1646  */
    7330     break;
    7331 
    7332   case 599:
    7333 #line 2313 "parser.yy" /* yacc.c:1646  */
    7334     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7335 #line 7336 "Parser/parser.cc" /* yacc.c:1646  */
     8274
     8275/* Line 1806 of yacc.c  */
     8276#line 2344 "parser.yy"
     8277    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8278    break;
     8279
     8280  case 598:
     8281
     8282/* Line 1806 of yacc.c  */
     8283#line 2359 "parser.yy"
     8284    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73368285    break;
    73378286
    73388287  case 600:
    7339 #line 2315 "parser.yy" /* yacc.c:1646  */
    7340     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7341 #line 7342 "Parser/parser.cc" /* yacc.c:1646  */
    7342     break;
    7343 
    7344   case 602:
    7345 #line 2321 "parser.yy" /* yacc.c:1646  */
    7346     { (yyval.decl) = (yyvsp[-1].decl); }
    7347 #line 7348 "Parser/parser.cc" /* yacc.c:1646  */
     8288
     8289/* Line 1806 of yacc.c  */
     8290#line 2362 "parser.yy"
     8291    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8292    break;
     8293
     8294  case 601:
     8295
     8296/* Line 1806 of yacc.c  */
     8297#line 2364 "parser.yy"
     8298    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73488299    break;
    73498300
    73508301  case 603:
    7351 #line 2326 "parser.yy" /* yacc.c:1646  */
    7352     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7353 #line 7354 "Parser/parser.cc" /* yacc.c:1646  */
     8302
     8303/* Line 1806 of yacc.c  */
     8304#line 2370 "parser.yy"
     8305    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73548306    break;
    73558307
    73568308  case 604:
    7357 #line 2328 "parser.yy" /* yacc.c:1646  */
    7358     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7359 #line 7360 "Parser/parser.cc" /* yacc.c:1646  */
     8309
     8310/* Line 1806 of yacc.c  */
     8311#line 2375 "parser.yy"
     8312    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    73608313    break;
    73618314
    73628315  case 605:
    7363 #line 2330 "parser.yy" /* yacc.c:1646  */
    7364     { (yyval.decl) = (yyvsp[-1].decl); }
    7365 #line 7366 "Parser/parser.cc" /* yacc.c:1646  */
     8316
     8317/* Line 1806 of yacc.c  */
     8318#line 2377 "parser.yy"
     8319    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    73668320    break;
    73678321
    73688322  case 606:
    7369 #line 2335 "parser.yy" /* yacc.c:1646  */
    7370     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7371 #line 7372 "Parser/parser.cc" /* yacc.c:1646  */
     8323
     8324/* Line 1806 of yacc.c  */
     8325#line 2379 "parser.yy"
     8326    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73728327    break;
    73738328
    73748329  case 607:
    7375 #line 2337 "parser.yy" /* yacc.c:1646  */
    7376     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7377 #line 7378 "Parser/parser.cc" /* yacc.c:1646  */
     8330
     8331/* Line 1806 of yacc.c  */
     8332#line 2384 "parser.yy"
     8333    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    73788334    break;
    73798335
    73808336  case 608:
    7381 #line 2339 "parser.yy" /* yacc.c:1646  */
    7382     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7383 #line 7384 "Parser/parser.cc" /* yacc.c:1646  */
     8337
     8338/* Line 1806 of yacc.c  */
     8339#line 2386 "parser.yy"
     8340    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73848341    break;
    73858342
    73868343  case 609:
    7387 #line 2341 "parser.yy" /* yacc.c:1646  */
    7388     { (yyval.decl) = (yyvsp[-1].decl); }
    7389 #line 7390 "Parser/parser.cc" /* yacc.c:1646  */
     8344
     8345/* Line 1806 of yacc.c  */
     8346#line 2388 "parser.yy"
     8347    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    73908348    break;
    73918349
    73928350  case 610:
    7393 #line 2346 "parser.yy" /* yacc.c:1646  */
    7394     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7395 #line 7396 "Parser/parser.cc" /* yacc.c:1646  */
     8351
     8352/* Line 1806 of yacc.c  */
     8353#line 2390 "parser.yy"
     8354    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    73968355    break;
    73978356
    73988357  case 611:
    7399 #line 2348 "parser.yy" /* yacc.c:1646  */
    7400     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7401 #line 7402 "Parser/parser.cc" /* yacc.c:1646  */
     8358
     8359/* Line 1806 of yacc.c  */
     8360#line 2395 "parser.yy"
     8361    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    74028362    break;
    74038363
    74048364  case 612:
    7405 #line 2350 "parser.yy" /* yacc.c:1646  */
    7406     { (yyval.decl) = (yyvsp[-1].decl); }
    7407 #line 7408 "Parser/parser.cc" /* yacc.c:1646  */
     8365
     8366/* Line 1806 of yacc.c  */
     8367#line 2397 "parser.yy"
     8368    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    74088369    break;
    74098370
    74108371  case 613:
    7411 #line 2360 "parser.yy" /* yacc.c:1646  */
    7412     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7413 #line 7414 "Parser/parser.cc" /* yacc.c:1646  */
    7414     break;
    7415 
    7416   case 615:
    7417 #line 2363 "parser.yy" /* yacc.c:1646  */
    7418     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7419 #line 7420 "Parser/parser.cc" /* yacc.c:1646  */
     8372
     8373/* Line 1806 of yacc.c  */
     8374#line 2399 "parser.yy"
     8375    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8376    break;
     8377
     8378  case 614:
     8379
     8380/* Line 1806 of yacc.c  */
     8381#line 2409 "parser.yy"
     8382    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74208383    break;
    74218384
    74228385  case 616:
    7423 #line 2365 "parser.yy" /* yacc.c:1646  */
    7424     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7425 #line 7426 "Parser/parser.cc" /* yacc.c:1646  */
     8386
     8387/* Line 1806 of yacc.c  */
     8388#line 2412 "parser.yy"
     8389    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74268390    break;
    74278391
    74288392  case 617:
    7429 #line 2370 "parser.yy" /* yacc.c:1646  */
    7430     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7431 #line 7432 "Parser/parser.cc" /* yacc.c:1646  */
     8393
     8394/* Line 1806 of yacc.c  */
     8395#line 2414 "parser.yy"
     8396    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74328397    break;
    74338398
    74348399  case 618:
    7435 #line 2372 "parser.yy" /* yacc.c:1646  */
    7436     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7437 #line 7438 "Parser/parser.cc" /* yacc.c:1646  */
     8400
     8401/* Line 1806 of yacc.c  */
     8402#line 2419 "parser.yy"
     8403    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    74388404    break;
    74398405
    74408406  case 619:
    7441 #line 2374 "parser.yy" /* yacc.c:1646  */
    7442     { (yyval.decl) = (yyvsp[-1].decl); }
    7443 #line 7444 "Parser/parser.cc" /* yacc.c:1646  */
     8407
     8408/* Line 1806 of yacc.c  */
     8409#line 2421 "parser.yy"
     8410    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    74448411    break;
    74458412
    74468413  case 620:
    7447 #line 2379 "parser.yy" /* yacc.c:1646  */
    7448     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7449 #line 7450 "Parser/parser.cc" /* yacc.c:1646  */
     8414
     8415/* Line 1806 of yacc.c  */
     8416#line 2423 "parser.yy"
     8417    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74508418    break;
    74518419
    74528420  case 621:
    7453 #line 2381 "parser.yy" /* yacc.c:1646  */
    7454     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7455 #line 7456 "Parser/parser.cc" /* yacc.c:1646  */
     8421
     8422/* Line 1806 of yacc.c  */
     8423#line 2428 "parser.yy"
     8424    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    74568425    break;
    74578426
    74588427  case 622:
    7459 #line 2383 "parser.yy" /* yacc.c:1646  */
    7460     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7461 #line 7462 "Parser/parser.cc" /* yacc.c:1646  */
     8428
     8429/* Line 1806 of yacc.c  */
     8430#line 2430 "parser.yy"
     8431    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    74628432    break;
    74638433
    74648434  case 623:
    7465 #line 2385 "parser.yy" /* yacc.c:1646  */
    7466     { (yyval.decl) = (yyvsp[-1].decl); }
    7467 #line 7468 "Parser/parser.cc" /* yacc.c:1646  */
     8435
     8436/* Line 1806 of yacc.c  */
     8437#line 2432 "parser.yy"
     8438    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    74688439    break;
    74698440
    74708441  case 624:
    7471 #line 2390 "parser.yy" /* yacc.c:1646  */
    7472     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7473 #line 7474 "Parser/parser.cc" /* yacc.c:1646  */
     8442
     8443/* Line 1806 of yacc.c  */
     8444#line 2434 "parser.yy"
     8445    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    74748446    break;
    74758447
    74768448  case 625:
    7477 #line 2392 "parser.yy" /* yacc.c:1646  */
    7478     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7479 #line 7480 "Parser/parser.cc" /* yacc.c:1646  */
     8449
     8450/* Line 1806 of yacc.c  */
     8451#line 2439 "parser.yy"
     8452    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    74808453    break;
    74818454
    74828455  case 626:
    7483 #line 2394 "parser.yy" /* yacc.c:1646  */
    7484     { (yyval.decl) = (yyvsp[-1].decl); }
    7485 #line 7486 "Parser/parser.cc" /* yacc.c:1646  */
     8456
     8457/* Line 1806 of yacc.c  */
     8458#line 2441 "parser.yy"
     8459    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    74868460    break;
    74878461
    74888462  case 627:
    7489 #line 2425 "parser.yy" /* yacc.c:1646  */
    7490     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7491 #line 7492 "Parser/parser.cc" /* yacc.c:1646  */
    7492     break;
    7493 
    7494   case 629:
    7495 #line 2428 "parser.yy" /* yacc.c:1646  */
    7496     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7497 #line 7498 "Parser/parser.cc" /* yacc.c:1646  */
     8463
     8464/* Line 1806 of yacc.c  */
     8465#line 2443 "parser.yy"
     8466    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8467    break;
     8468
     8469  case 628:
     8470
     8471/* Line 1806 of yacc.c  */
     8472#line 2474 "parser.yy"
     8473    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74988474    break;
    74998475
    75008476  case 630:
    7501 #line 2430 "parser.yy" /* yacc.c:1646  */
    7502     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7503 #line 7504 "Parser/parser.cc" /* yacc.c:1646  */
     8477
     8478/* Line 1806 of yacc.c  */
     8479#line 2477 "parser.yy"
     8480    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75048481    break;
    75058482
    75068483  case 631:
    7507 #line 2435 "parser.yy" /* yacc.c:1646  */
     8484
     8485/* Line 1806 of yacc.c  */
     8486#line 2479 "parser.yy"
     8487    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8488    break;
     8489
     8490  case 632:
     8491
     8492/* Line 1806 of yacc.c  */
     8493#line 2484 "parser.yy"
    75088494    {
    7509                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7510                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8496                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    75118497                }
    7512 #line 7513 "Parser/parser.cc" /* yacc.c:1646  */
    7513     break;
    7514 
    7515   case 632:
    7516 #line 2440 "parser.yy" /* yacc.c:1646  */
     8498    break;
     8499
     8500  case 633:
     8501
     8502/* Line 1806 of yacc.c  */
     8503#line 2489 "parser.yy"
    75178504    {
    7518                         typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
    7519                         (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     8505                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     8506                        (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    75208507                }
    7521 #line 7522 "Parser/parser.cc" /* yacc.c:1646  */
    7522     break;
    7523 
    7524   case 633:
    7525 #line 2448 "parser.yy" /* yacc.c:1646  */
    7526     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7527 #line 7528 "Parser/parser.cc" /* yacc.c:1646  */
    75288508    break;
    75298509
    75308510  case 634:
    7531 #line 2450 "parser.yy" /* yacc.c:1646  */
    7532     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7533 #line 7534 "Parser/parser.cc" /* yacc.c:1646  */
     8511
     8512/* Line 1806 of yacc.c  */
     8513#line 2497 "parser.yy"
     8514    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    75348515    break;
    75358516
    75368517  case 635:
    7537 #line 2452 "parser.yy" /* yacc.c:1646  */
    7538     { (yyval.decl) = (yyvsp[-1].decl); }
    7539 #line 7540 "Parser/parser.cc" /* yacc.c:1646  */
     8518
     8519/* Line 1806 of yacc.c  */
     8520#line 2499 "parser.yy"
     8521    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    75408522    break;
    75418523
    75428524  case 636:
    7543 #line 2457 "parser.yy" /* yacc.c:1646  */
    7544     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7545 #line 7546 "Parser/parser.cc" /* yacc.c:1646  */
     8525
     8526/* Line 1806 of yacc.c  */
     8527#line 2501 "parser.yy"
     8528    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    75468529    break;
    75478530
    75488531  case 637:
    7549 #line 2459 "parser.yy" /* yacc.c:1646  */
    7550     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7551 #line 7552 "Parser/parser.cc" /* yacc.c:1646  */
     8532
     8533/* Line 1806 of yacc.c  */
     8534#line 2506 "parser.yy"
     8535    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    75528536    break;
    75538537
    75548538  case 638:
    7555 #line 2464 "parser.yy" /* yacc.c:1646  */
    7556     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
    7557 #line 7558 "Parser/parser.cc" /* yacc.c:1646  */
     8539
     8540/* Line 1806 of yacc.c  */
     8541#line 2508 "parser.yy"
     8542    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    75588543    break;
    75598544
    75608545  case 639:
    7561 #line 2466 "parser.yy" /* yacc.c:1646  */
    7562     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7563 #line 7564 "Parser/parser.cc" /* yacc.c:1646  */
    7564     break;
    7565 
    7566   case 641:
    7567 #line 2481 "parser.yy" /* yacc.c:1646  */
    7568     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7569 #line 7570 "Parser/parser.cc" /* yacc.c:1646  */
     8546
     8547/* Line 1806 of yacc.c  */
     8548#line 2513 "parser.yy"
     8549    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8550    break;
     8551
     8552  case 640:
     8553
     8554/* Line 1806 of yacc.c  */
     8555#line 2515 "parser.yy"
     8556    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    75708557    break;
    75718558
    75728559  case 642:
    7573 #line 2483 "parser.yy" /* yacc.c:1646  */
    7574     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7575 #line 7576 "Parser/parser.cc" /* yacc.c:1646  */
     8560
     8561/* Line 1806 of yacc.c  */
     8562#line 2530 "parser.yy"
     8563    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75768564    break;
    75778565
    75788566  case 643:
    7579 #line 2488 "parser.yy" /* yacc.c:1646  */
     8567
     8568/* Line 1806 of yacc.c  */
     8569#line 2532 "parser.yy"
     8570    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8571    break;
     8572
     8573  case 644:
     8574
     8575/* Line 1806 of yacc.c  */
     8576#line 2537 "parser.yy"
    75808577    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7581 #line 7582 "Parser/parser.cc" /* yacc.c:1646  */
    7582     break;
    7583 
    7584   case 644:
    7585 #line 2490 "parser.yy" /* yacc.c:1646  */
    7586     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7587 #line 7588 "Parser/parser.cc" /* yacc.c:1646  */
    75888578    break;
    75898579
    75908580  case 645:
    7591 #line 2492 "parser.yy" /* yacc.c:1646  */
    7592     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7593 #line 7594 "Parser/parser.cc" /* yacc.c:1646  */
     8581
     8582/* Line 1806 of yacc.c  */
     8583#line 2539 "parser.yy"
     8584    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    75948585    break;
    75958586
    75968587  case 646:
    7597 #line 2494 "parser.yy" /* yacc.c:1646  */
    7598     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7599 #line 7600 "Parser/parser.cc" /* yacc.c:1646  */
     8588
     8589/* Line 1806 of yacc.c  */
     8590#line 2541 "parser.yy"
     8591    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    76008592    break;
    76018593
    76028594  case 647:
    7603 #line 2496 "parser.yy" /* yacc.c:1646  */
    7604     { (yyval.decl) = (yyvsp[-1].decl); }
    7605 #line 7606 "Parser/parser.cc" /* yacc.c:1646  */
    7606     break;
    7607 
    7608   case 649:
    7609 #line 2502 "parser.yy" /* yacc.c:1646  */
    7610     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7611 #line 7612 "Parser/parser.cc" /* yacc.c:1646  */
     8595
     8596/* Line 1806 of yacc.c  */
     8597#line 2543 "parser.yy"
     8598    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8599    break;
     8600
     8601  case 648:
     8602
     8603/* Line 1806 of yacc.c  */
     8604#line 2545 "parser.yy"
     8605    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    76128606    break;
    76138607
    76148608  case 650:
    7615 #line 2504 "parser.yy" /* yacc.c:1646  */
    7616     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7617 #line 7618 "Parser/parser.cc" /* yacc.c:1646  */
     8609
     8610/* Line 1806 of yacc.c  */
     8611#line 2551 "parser.yy"
     8612    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    76188613    break;
    76198614
    76208615  case 651:
    7621 #line 2506 "parser.yy" /* yacc.c:1646  */
    7622     { (yyval.decl) = (yyvsp[-1].decl); }
    7623 #line 7624 "Parser/parser.cc" /* yacc.c:1646  */
     8616
     8617/* Line 1806 of yacc.c  */
     8618#line 2553 "parser.yy"
     8619    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    76248620    break;
    76258621
    76268622  case 652:
    7627 #line 2511 "parser.yy" /* yacc.c:1646  */
    7628     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
    7629 #line 7630 "Parser/parser.cc" /* yacc.c:1646  */
     8623
     8624/* Line 1806 of yacc.c  */
     8625#line 2555 "parser.yy"
     8626    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    76308627    break;
    76318628
    76328629  case 653:
    7633 #line 2513 "parser.yy" /* yacc.c:1646  */
    7634     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7635 #line 7636 "Parser/parser.cc" /* yacc.c:1646  */
     8630
     8631/* Line 1806 of yacc.c  */
     8632#line 2560 "parser.yy"
     8633    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    76368634    break;
    76378635
    76388636  case 654:
    7639 #line 2515 "parser.yy" /* yacc.c:1646  */
    7640     { (yyval.decl) = (yyvsp[-1].decl); }
    7641 #line 7642 "Parser/parser.cc" /* yacc.c:1646  */
     8637
     8638/* Line 1806 of yacc.c  */
     8639#line 2562 "parser.yy"
     8640    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    76428641    break;
    76438642
    76448643  case 655:
    7645 #line 2521 "parser.yy" /* yacc.c:1646  */
     8644
     8645/* Line 1806 of yacc.c  */
     8646#line 2564 "parser.yy"
     8647    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8648    break;
     8649
     8650  case 656:
     8651
     8652/* Line 1806 of yacc.c  */
     8653#line 2570 "parser.yy"
    76468654    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    7647 #line 7648 "Parser/parser.cc" /* yacc.c:1646  */
    7648     break;
    7649 
    7650   case 656:
    7651 #line 2523 "parser.yy" /* yacc.c:1646  */
    7652     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); }
    7653 #line 7654 "Parser/parser.cc" /* yacc.c:1646  */
    7654     break;
    7655 
    7656   case 658:
    7657 #line 2529 "parser.yy" /* yacc.c:1646  */
    7658     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); }
    7659 #line 7660 "Parser/parser.cc" /* yacc.c:1646  */
     8655    break;
     8656
     8657  case 657:
     8658
     8659/* Line 1806 of yacc.c  */
     8660#line 2572 "parser.yy"
     8661    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    76608662    break;
    76618663
    76628664  case 659:
    7663 #line 2531 "parser.yy" /* yacc.c:1646  */
     8665
     8666/* Line 1806 of yacc.c  */
     8667#line 2578 "parser.yy"
     8668    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8669    break;
     8670
     8671  case 660:
     8672
     8673/* Line 1806 of yacc.c  */
     8674#line 2580 "parser.yy"
    76648675    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    7665 #line 7666 "Parser/parser.cc" /* yacc.c:1646  */
    7666     break;
    7667 
    7668   case 660:
    7669 #line 2533 "parser.yy" /* yacc.c:1646  */
    7670     { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); }
    7671 #line 7672 "Parser/parser.cc" /* yacc.c:1646  */
    76728676    break;
    76738677
    76748678  case 661:
    7675 #line 2535 "parser.yy" /* yacc.c:1646  */
    7676     { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    7677 #line 7678 "Parser/parser.cc" /* yacc.c:1646  */
    7678     break;
    7679 
    7680   case 663:
    7681 #line 2550 "parser.yy" /* yacc.c:1646  */
    7682     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7683 #line 7684 "Parser/parser.cc" /* yacc.c:1646  */
     8679
     8680/* Line 1806 of yacc.c  */
     8681#line 2582 "parser.yy"
     8682    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8683    break;
     8684
     8685  case 662:
     8686
     8687/* Line 1806 of yacc.c  */
     8688#line 2584 "parser.yy"
     8689    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    76848690    break;
    76858691
    76868692  case 664:
    7687 #line 2552 "parser.yy" /* yacc.c:1646  */
    7688     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7689 #line 7690 "Parser/parser.cc" /* yacc.c:1646  */
     8693
     8694/* Line 1806 of yacc.c  */
     8695#line 2599 "parser.yy"
     8696    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    76908697    break;
    76918698
    76928699  case 665:
    7693 #line 2557 "parser.yy" /* yacc.c:1646  */
     8700
     8701/* Line 1806 of yacc.c  */
     8702#line 2601 "parser.yy"
     8703    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8704    break;
     8705
     8706  case 666:
     8707
     8708/* Line 1806 of yacc.c  */
     8709#line 2606 "parser.yy"
    76948710    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7695 #line 7696 "Parser/parser.cc" /* yacc.c:1646  */
    7696     break;
    7697 
    7698   case 666:
    7699 #line 2559 "parser.yy" /* yacc.c:1646  */
    7700     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7701 #line 7702 "Parser/parser.cc" /* yacc.c:1646  */
    77028711    break;
    77038712
    77048713  case 667:
    7705 #line 2561 "parser.yy" /* yacc.c:1646  */
    7706     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7707 #line 7708 "Parser/parser.cc" /* yacc.c:1646  */
     8714
     8715/* Line 1806 of yacc.c  */
     8716#line 2608 "parser.yy"
     8717    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    77088718    break;
    77098719
    77108720  case 668:
    7711 #line 2563 "parser.yy" /* yacc.c:1646  */
    7712     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7713 #line 7714 "Parser/parser.cc" /* yacc.c:1646  */
     8721
     8722/* Line 1806 of yacc.c  */
     8723#line 2610 "parser.yy"
     8724    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    77148725    break;
    77158726
    77168727  case 669:
    7717 #line 2565 "parser.yy" /* yacc.c:1646  */
    7718     { (yyval.decl) = (yyvsp[-1].decl); }
    7719 #line 7720 "Parser/parser.cc" /* yacc.c:1646  */
    7720     break;
    7721 
    7722   case 671:
    7723 #line 2571 "parser.yy" /* yacc.c:1646  */
    7724     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7725 #line 7726 "Parser/parser.cc" /* yacc.c:1646  */
     8728
     8729/* Line 1806 of yacc.c  */
     8730#line 2612 "parser.yy"
     8731    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8732    break;
     8733
     8734  case 670:
     8735
     8736/* Line 1806 of yacc.c  */
     8737#line 2614 "parser.yy"
     8738    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    77268739    break;
    77278740
    77288741  case 672:
    7729 #line 2573 "parser.yy" /* yacc.c:1646  */
    7730     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7731 #line 7732 "Parser/parser.cc" /* yacc.c:1646  */
     8742
     8743/* Line 1806 of yacc.c  */
     8744#line 2620 "parser.yy"
     8745    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    77328746    break;
    77338747
    77348748  case 673:
    7735 #line 2575 "parser.yy" /* yacc.c:1646  */
    7736     { (yyval.decl) = (yyvsp[-1].decl); }
    7737 #line 7738 "Parser/parser.cc" /* yacc.c:1646  */
     8749
     8750/* Line 1806 of yacc.c  */
     8751#line 2622 "parser.yy"
     8752    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    77388753    break;
    77398754
    77408755  case 674:
    7741 #line 2580 "parser.yy" /* yacc.c:1646  */
    7742     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
    7743 #line 7744 "Parser/parser.cc" /* yacc.c:1646  */
     8756
     8757/* Line 1806 of yacc.c  */
     8758#line 2624 "parser.yy"
     8759    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    77448760    break;
    77458761
    77468762  case 675:
    7747 #line 2582 "parser.yy" /* yacc.c:1646  */
    7748     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7749 #line 7750 "Parser/parser.cc" /* yacc.c:1646  */
     8763
     8764/* Line 1806 of yacc.c  */
     8765#line 2629 "parser.yy"
     8766    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    77508767    break;
    77518768
    77528769  case 676:
    7753 #line 2584 "parser.yy" /* yacc.c:1646  */
    7754     { (yyval.decl) = (yyvsp[-1].decl); }
    7755 #line 7756 "Parser/parser.cc" /* yacc.c:1646  */
    7756     break;
    7757 
    7758   case 678:
    7759 #line 2591 "parser.yy" /* yacc.c:1646  */
    7760     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
    7761 #line 7762 "Parser/parser.cc" /* yacc.c:1646  */
    7762     break;
    7763 
    7764   case 680:
    7765 #line 2602 "parser.yy" /* yacc.c:1646  */
     8770
     8771/* Line 1806 of yacc.c  */
     8772#line 2631 "parser.yy"
     8773    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8774    break;
     8775
     8776  case 677:
     8777
     8778/* Line 1806 of yacc.c  */
     8779#line 2633 "parser.yy"
     8780    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8781    break;
     8782
     8783  case 679:
     8784
     8785/* Line 1806 of yacc.c  */
     8786#line 2640 "parser.yy"
     8787    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8788    break;
     8789
     8790  case 681:
     8791
     8792/* Line 1806 of yacc.c  */
     8793#line 2651 "parser.yy"
    77668794    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    7767 #line 7768 "Parser/parser.cc" /* yacc.c:1646  */
    7768     break;
    7769 
    7770   case 681:
    7771 #line 2605 "parser.yy" /* yacc.c:1646  */
    7772     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
    7773 #line 7774 "Parser/parser.cc" /* yacc.c:1646  */
    77748795    break;
    77758796
    77768797  case 682:
    7777 #line 2607 "parser.yy" /* yacc.c:1646  */
    7778     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); }
    7779 #line 7780 "Parser/parser.cc" /* yacc.c:1646  */
     8798
     8799/* Line 1806 of yacc.c  */
     8800#line 2654 "parser.yy"
     8801    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    77808802    break;
    77818803
    77828804  case 683:
    7783 #line 2610 "parser.yy" /* yacc.c:1646  */
    7784     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
    7785 #line 7786 "Parser/parser.cc" /* yacc.c:1646  */
     8805
     8806/* Line 1806 of yacc.c  */
     8807#line 2656 "parser.yy"
     8808    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    77868809    break;
    77878810
    77888811  case 684:
    7789 #line 2612 "parser.yy" /* yacc.c:1646  */
    7790     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
    7791 #line 7792 "Parser/parser.cc" /* yacc.c:1646  */
     8812
     8813/* Line 1806 of yacc.c  */
     8814#line 2659 "parser.yy"
     8815    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    77928816    break;
    77938817
    77948818  case 685:
    7795 #line 2614 "parser.yy" /* yacc.c:1646  */
    7796     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); }
    7797 #line 7798 "Parser/parser.cc" /* yacc.c:1646  */
    7798     break;
    7799 
    7800   case 687:
    7801 #line 2628 "parser.yy" /* yacc.c:1646  */
    7802     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7803 #line 7804 "Parser/parser.cc" /* yacc.c:1646  */
     8819
     8820/* Line 1806 of yacc.c  */
     8821#line 2661 "parser.yy"
     8822    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8823    break;
     8824
     8825  case 686:
     8826
     8827/* Line 1806 of yacc.c  */
     8828#line 2663 "parser.yy"
     8829    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    78048830    break;
    78058831
    78068832  case 688:
    7807 #line 2630 "parser.yy" /* yacc.c:1646  */
    7808     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
    7809 #line 7810 "Parser/parser.cc" /* yacc.c:1646  */
     8833
     8834/* Line 1806 of yacc.c  */
     8835#line 2677 "parser.yy"
     8836    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78108837    break;
    78118838
    78128839  case 689:
    7813 #line 2635 "parser.yy" /* yacc.c:1646  */
     8840
     8841/* Line 1806 of yacc.c  */
     8842#line 2679 "parser.yy"
     8843    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8844    break;
     8845
     8846  case 690:
     8847
     8848/* Line 1806 of yacc.c  */
     8849#line 2684 "parser.yy"
    78148850    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    7815 #line 7816 "Parser/parser.cc" /* yacc.c:1646  */
    7816     break;
    7817 
    7818   case 690:
    7819 #line 2637 "parser.yy" /* yacc.c:1646  */
    7820     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
    7821 #line 7822 "Parser/parser.cc" /* yacc.c:1646  */
    78228851    break;
    78238852
    78248853  case 691:
    7825 #line 2639 "parser.yy" /* yacc.c:1646  */
    7826     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7827 #line 7828 "Parser/parser.cc" /* yacc.c:1646  */
     8854
     8855/* Line 1806 of yacc.c  */
     8856#line 2686 "parser.yy"
     8857    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    78288858    break;
    78298859
    78308860  case 692:
    7831 #line 2641 "parser.yy" /* yacc.c:1646  */
    7832     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
    7833 #line 7834 "Parser/parser.cc" /* yacc.c:1646  */
     8861
     8862/* Line 1806 of yacc.c  */
     8863#line 2688 "parser.yy"
     8864    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    78348865    break;
    78358866
    78368867  case 693:
    7837 #line 2643 "parser.yy" /* yacc.c:1646  */
    7838     { (yyval.decl) = (yyvsp[-1].decl); }
    7839 #line 7840 "Parser/parser.cc" /* yacc.c:1646  */
    7840     break;
    7841 
    7842   case 695:
    7843 #line 2649 "parser.yy" /* yacc.c:1646  */
    7844     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7845 #line 7846 "Parser/parser.cc" /* yacc.c:1646  */
     8868
     8869/* Line 1806 of yacc.c  */
     8870#line 2690 "parser.yy"
     8871    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8872    break;
     8873
     8874  case 694:
     8875
     8876/* Line 1806 of yacc.c  */
     8877#line 2692 "parser.yy"
     8878    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78468879    break;
    78478880
    78488881  case 696:
    7849 #line 2651 "parser.yy" /* yacc.c:1646  */
    7850     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
    7851 #line 7852 "Parser/parser.cc" /* yacc.c:1646  */
     8882
     8883/* Line 1806 of yacc.c  */
     8884#line 2698 "parser.yy"
     8885    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    78528886    break;
    78538887
    78548888  case 697:
    7855 #line 2653 "parser.yy" /* yacc.c:1646  */
    7856     { (yyval.decl) = (yyvsp[-1].decl); }
    7857 #line 7858 "Parser/parser.cc" /* yacc.c:1646  */
     8889
     8890/* Line 1806 of yacc.c  */
     8891#line 2700 "parser.yy"
     8892    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    78588893    break;
    78598894
    78608895  case 698:
    7861 #line 2658 "parser.yy" /* yacc.c:1646  */
    7862     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
    7863 #line 7864 "Parser/parser.cc" /* yacc.c:1646  */
     8896
     8897/* Line 1806 of yacc.c  */
     8898#line 2702 "parser.yy"
     8899    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78648900    break;
    78658901
    78668902  case 699:
    7867 #line 2660 "parser.yy" /* yacc.c:1646  */
    7868     { (yyval.decl) = (yyvsp[-1].decl); }
    7869 #line 7870 "Parser/parser.cc" /* yacc.c:1646  */
    7870     break;
    7871 
    7872   case 702:
    7873 #line 2670 "parser.yy" /* yacc.c:1646  */
    7874     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    7875 #line 7876 "Parser/parser.cc" /* yacc.c:1646  */
    7876     break;
    7877 
    7878   case 705:
    7879 #line 2680 "parser.yy" /* yacc.c:1646  */
    7880     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7881 #line 7882 "Parser/parser.cc" /* yacc.c:1646  */
     8903
     8904/* Line 1806 of yacc.c  */
     8905#line 2707 "parser.yy"
     8906    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8907    break;
     8908
     8909  case 700:
     8910
     8911/* Line 1806 of yacc.c  */
     8912#line 2709 "parser.yy"
     8913    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8914    break;
     8915
     8916  case 703:
     8917
     8918/* Line 1806 of yacc.c  */
     8919#line 2719 "parser.yy"
     8920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78828921    break;
    78838922
    78848923  case 706:
    7885 #line 2682 "parser.yy" /* yacc.c:1646  */
    7886     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7887 #line 7888 "Parser/parser.cc" /* yacc.c:1646  */
     8924
     8925/* Line 1806 of yacc.c  */
     8926#line 2729 "parser.yy"
     8927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    78888928    break;
    78898929
    78908930  case 707:
    7891 #line 2684 "parser.yy" /* yacc.c:1646  */
    7892     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7893 #line 7894 "Parser/parser.cc" /* yacc.c:1646  */
     8931
     8932/* Line 1806 of yacc.c  */
     8933#line 2731 "parser.yy"
     8934    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    78948935    break;
    78958936
    78968937  case 708:
    7897 #line 2686 "parser.yy" /* yacc.c:1646  */
    7898     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7899 #line 7900 "Parser/parser.cc" /* yacc.c:1646  */
     8938
     8939/* Line 1806 of yacc.c  */
     8940#line 2733 "parser.yy"
     8941    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    79008942    break;
    79018943
    79028944  case 709:
    7903 #line 2688 "parser.yy" /* yacc.c:1646  */
    7904     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    7905 #line 7906 "Parser/parser.cc" /* yacc.c:1646  */
     8945
     8946/* Line 1806 of yacc.c  */
     8947#line 2735 "parser.yy"
     8948    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    79068949    break;
    79078950
    79088951  case 710:
    7909 #line 2690 "parser.yy" /* yacc.c:1646  */
    7910     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    7911 #line 7912 "Parser/parser.cc" /* yacc.c:1646  */
     8952
     8953/* Line 1806 of yacc.c  */
     8954#line 2737 "parser.yy"
     8955    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    79128956    break;
    79138957
    79148958  case 711:
    7915 #line 2697 "parser.yy" /* yacc.c:1646  */
    7916     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7917 #line 7918 "Parser/parser.cc" /* yacc.c:1646  */
     8959
     8960/* Line 1806 of yacc.c  */
     8961#line 2739 "parser.yy"
     8962    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    79188963    break;
    79198964
    79208965  case 712:
    7921 #line 2699 "parser.yy" /* yacc.c:1646  */
    7922     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7923 #line 7924 "Parser/parser.cc" /* yacc.c:1646  */
     8966
     8967/* Line 1806 of yacc.c  */
     8968#line 2746 "parser.yy"
     8969    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79248970    break;
    79258971
    79268972  case 713:
    7927 #line 2701 "parser.yy" /* yacc.c:1646  */
    7928     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7929 #line 7930 "Parser/parser.cc" /* yacc.c:1646  */
     8973
     8974/* Line 1806 of yacc.c  */
     8975#line 2748 "parser.yy"
     8976    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79308977    break;
    79318978
    79328979  case 714:
    7933 #line 2703 "parser.yy" /* yacc.c:1646  */
    7934     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
    7935 #line 7936 "Parser/parser.cc" /* yacc.c:1646  */
     8980
     8981/* Line 1806 of yacc.c  */
     8982#line 2750 "parser.yy"
     8983    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79368984    break;
    79378985
    79388986  case 715:
    7939 #line 2705 "parser.yy" /* yacc.c:1646  */
    7940     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7941 #line 7942 "Parser/parser.cc" /* yacc.c:1646  */
     8987
     8988/* Line 1806 of yacc.c  */
     8989#line 2752 "parser.yy"
     8990    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    79428991    break;
    79438992
    79448993  case 716:
    7945 #line 2707 "parser.yy" /* yacc.c:1646  */
    7946     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7947 #line 7948 "Parser/parser.cc" /* yacc.c:1646  */
     8994
     8995/* Line 1806 of yacc.c  */
     8996#line 2754 "parser.yy"
     8997    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79488998    break;
    79498999
    79509000  case 717:
    7951 #line 2709 "parser.yy" /* yacc.c:1646  */
    7952     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7953 #line 7954 "Parser/parser.cc" /* yacc.c:1646  */
     9001
     9002/* Line 1806 of yacc.c  */
     9003#line 2756 "parser.yy"
     9004    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79549005    break;
    79559006
    79569007  case 718:
    7957 #line 2711 "parser.yy" /* yacc.c:1646  */
    7958     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    7959 #line 7960 "Parser/parser.cc" /* yacc.c:1646  */
     9008
     9009/* Line 1806 of yacc.c  */
     9010#line 2758 "parser.yy"
     9011    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79609012    break;
    79619013
    79629014  case 719:
    7963 #line 2713 "parser.yy" /* yacc.c:1646  */
    7964     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
    7965 #line 7966 "Parser/parser.cc" /* yacc.c:1646  */
     9015
     9016/* Line 1806 of yacc.c  */
     9017#line 2760 "parser.yy"
     9018    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    79669019    break;
    79679020
    79689021  case 720:
    7969 #line 2715 "parser.yy" /* yacc.c:1646  */
    7970     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    7971 #line 7972 "Parser/parser.cc" /* yacc.c:1646  */
     9022
     9023/* Line 1806 of yacc.c  */
     9024#line 2762 "parser.yy"
     9025    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    79729026    break;
    79739027
    79749028  case 721:
    7975 #line 2720 "parser.yy" /* yacc.c:1646  */
    7976     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
    7977 #line 7978 "Parser/parser.cc" /* yacc.c:1646  */
     9029
     9030/* Line 1806 of yacc.c  */
     9031#line 2764 "parser.yy"
     9032    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    79789033    break;
    79799034
    79809035  case 722:
    7981 #line 2722 "parser.yy" /* yacc.c:1646  */
    7982     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
    7983 #line 7984 "Parser/parser.cc" /* yacc.c:1646  */
     9036
     9037/* Line 1806 of yacc.c  */
     9038#line 2769 "parser.yy"
     9039    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    79849040    break;
    79859041
    79869042  case 723:
    7987 #line 2727 "parser.yy" /* yacc.c:1646  */
    7988     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
    7989 #line 7990 "Parser/parser.cc" /* yacc.c:1646  */
     9043
     9044/* Line 1806 of yacc.c  */
     9045#line 2771 "parser.yy"
     9046    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    79909047    break;
    79919048
    79929049  case 724:
    7993 #line 2729 "parser.yy" /* yacc.c:1646  */
    7994     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); }
    7995 #line 7996 "Parser/parser.cc" /* yacc.c:1646  */
    7996     break;
    7997 
    7998   case 726:
    7999 #line 2756 "parser.yy" /* yacc.c:1646  */
    8000     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
    8001 #line 8002 "Parser/parser.cc" /* yacc.c:1646  */
    8002     break;
    8003 
    8004   case 730:
    8005 #line 2767 "parser.yy" /* yacc.c:1646  */
    8006     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8007 #line 8008 "Parser/parser.cc" /* yacc.c:1646  */
     9050
     9051/* Line 1806 of yacc.c  */
     9052#line 2776 "parser.yy"
     9053    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9054    break;
     9055
     9056  case 725:
     9057
     9058/* Line 1806 of yacc.c  */
     9059#line 2778 "parser.yy"
     9060    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9061    break;
     9062
     9063  case 727:
     9064
     9065/* Line 1806 of yacc.c  */
     9066#line 2805 "parser.yy"
     9067    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    80089068    break;
    80099069
    80109070  case 731:
    8011 #line 2769 "parser.yy" /* yacc.c:1646  */
    8012     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8013 #line 8014 "Parser/parser.cc" /* yacc.c:1646  */
     9071
     9072/* Line 1806 of yacc.c  */
     9073#line 2816 "parser.yy"
     9074    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80149075    break;
    80159076
    80169077  case 732:
    8017 #line 2771 "parser.yy" /* yacc.c:1646  */
    8018     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8019 #line 8020 "Parser/parser.cc" /* yacc.c:1646  */
     9078
     9079/* Line 1806 of yacc.c  */
     9080#line 2818 "parser.yy"
     9081    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80209082    break;
    80219083
    80229084  case 733:
    8023 #line 2773 "parser.yy" /* yacc.c:1646  */
    8024     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8025 #line 8026 "Parser/parser.cc" /* yacc.c:1646  */
     9085
     9086/* Line 1806 of yacc.c  */
     9087#line 2820 "parser.yy"
     9088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80269089    break;
    80279090
    80289091  case 734:
    8029 #line 2775 "parser.yy" /* yacc.c:1646  */
    8030     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8031 #line 8032 "Parser/parser.cc" /* yacc.c:1646  */
     9092
     9093/* Line 1806 of yacc.c  */
     9094#line 2822 "parser.yy"
     9095    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80329096    break;
    80339097
    80349098  case 735:
    8035 #line 2777 "parser.yy" /* yacc.c:1646  */
    8036     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
    8037 #line 8038 "Parser/parser.cc" /* yacc.c:1646  */
     9099
     9100/* Line 1806 of yacc.c  */
     9101#line 2824 "parser.yy"
     9102    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    80389103    break;
    80399104
    80409105  case 736:
    8041 #line 2784 "parser.yy" /* yacc.c:1646  */
    8042     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8043 #line 8044 "Parser/parser.cc" /* yacc.c:1646  */
     9106
     9107/* Line 1806 of yacc.c  */
     9108#line 2826 "parser.yy"
     9109    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    80449110    break;
    80459111
    80469112  case 737:
    8047 #line 2786 "parser.yy" /* yacc.c:1646  */
    8048     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8049 #line 8050 "Parser/parser.cc" /* yacc.c:1646  */
     9113
     9114/* Line 1806 of yacc.c  */
     9115#line 2833 "parser.yy"
     9116    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    80509117    break;
    80519118
    80529119  case 738:
    8053 #line 2788 "parser.yy" /* yacc.c:1646  */
    8054     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    8055 #line 8056 "Parser/parser.cc" /* yacc.c:1646  */
     9120
     9121/* Line 1806 of yacc.c  */
     9122#line 2835 "parser.yy"
     9123    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    80569124    break;
    80579125
    80589126  case 739:
    8059 #line 2790 "parser.yy" /* yacc.c:1646  */
    8060     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8061 #line 8062 "Parser/parser.cc" /* yacc.c:1646  */
     9127
     9128/* Line 1806 of yacc.c  */
     9129#line 2837 "parser.yy"
     9130    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    80629131    break;
    80639132
    80649133  case 740:
    8065 #line 2792 "parser.yy" /* yacc.c:1646  */
    8066     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8067 #line 8068 "Parser/parser.cc" /* yacc.c:1646  */
     9134
     9135/* Line 1806 of yacc.c  */
     9136#line 2839 "parser.yy"
     9137    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    80689138    break;
    80699139
    80709140  case 741:
    8071 #line 2794 "parser.yy" /* yacc.c:1646  */
    8072     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
    8073 #line 8074 "Parser/parser.cc" /* yacc.c:1646  */
     9141
     9142/* Line 1806 of yacc.c  */
     9143#line 2841 "parser.yy"
     9144    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    80749145    break;
    80759146
    80769147  case 742:
    8077 #line 2799 "parser.yy" /* yacc.c:1646  */
    8078     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
    8079 #line 8080 "Parser/parser.cc" /* yacc.c:1646  */
     9148
     9149/* Line 1806 of yacc.c  */
     9150#line 2843 "parser.yy"
     9151    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    80809152    break;
    80819153
    80829154  case 743:
    8083 #line 2804 "parser.yy" /* yacc.c:1646  */
    8084     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); }
    8085 #line 8086 "Parser/parser.cc" /* yacc.c:1646  */
     9155
     9156/* Line 1806 of yacc.c  */
     9157#line 2848 "parser.yy"
     9158    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    80869159    break;
    80879160
    80889161  case 744:
    8089 #line 2806 "parser.yy" /* yacc.c:1646  */
    8090     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
    8091 #line 8092 "Parser/parser.cc" /* yacc.c:1646  */
     9162
     9163/* Line 1806 of yacc.c  */
     9164#line 2853 "parser.yy"
     9165    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    80929166    break;
    80939167
    80949168  case 745:
    8095 #line 2808 "parser.yy" /* yacc.c:1646  */
    8096     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
    8097 #line 8098 "Parser/parser.cc" /* yacc.c:1646  */
    8098     break;
    8099 
    8100   case 748:
    8101 #line 2832 "parser.yy" /* yacc.c:1646  */
     9169
     9170/* Line 1806 of yacc.c  */
     9171#line 2855 "parser.yy"
     9172    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9173    break;
     9174
     9175  case 746:
     9176
     9177/* Line 1806 of yacc.c  */
     9178#line 2857 "parser.yy"
     9179    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9180    break;
     9181
     9182  case 749:
     9183
     9184/* Line 1806 of yacc.c  */
     9185#line 2881 "parser.yy"
    81029186    { (yyval.en) = 0; }
    8103 #line 8104 "Parser/parser.cc" /* yacc.c:1646  */
    8104     break;
    8105 
    8106   case 749:
    8107 #line 2834 "parser.yy" /* yacc.c:1646  */
    8108     { (yyval.en) = (yyvsp[0].en); }
    8109 #line 8110 "Parser/parser.cc" /* yacc.c:1646  */
    8110     break;
    8111 
    8112 
    8113 #line 8114 "Parser/parser.cc" /* yacc.c:1646  */
     9187    break;
     9188
     9189  case 750:
     9190
     9191/* Line 1806 of yacc.c  */
     9192#line 2883 "parser.yy"
     9193    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     9194    break;
     9195
     9196
     9197
     9198/* Line 1806 of yacc.c  */
     9199#line 9200 "Parser/parser.cc"
    81149200      default: break;
    81159201    }
     
    81339219  *++yyvsp = yyval;
    81349220
    8135   /* Now 'shift' the result of the reduction.  Determine what state
     9221  /* Now `shift' the result of the reduction.  Determine what state
    81369222     that goes to, based on the state we popped back to and the rule
    81379223     number reduced by.  */
     
    81489234
    81499235
    8150 /*--------------------------------------.
    8151 | yyerrlab -- here on detecting error. |
    8152 `--------------------------------------*/
     9236/*------------------------------------.
     9237| yyerrlab -- here on detecting error |
     9238`------------------------------------*/
    81539239yyerrlab:
    81549240  /* Make sure we have latest lookahead translation.  See comments at
     
    82019287    {
    82029288      /* If just tried and failed to reuse lookahead token after an
    8203         error, discard it.  */
     9289        error, discard it.  */
    82049290
    82059291      if (yychar <= YYEOF)
    8206         {
    8207           /* Return failure if at end of input.  */
    8208           if (yychar == YYEOF)
    8209             YYABORT;
    8210         }
     9292        {
     9293          /* Return failure if at end of input.  */
     9294          if (yychar == YYEOF)
     9295            YYABORT;
     9296        }
    82119297      else
    8212         {
    8213           yydestruct ("Error: discarding",
    8214                       yytoken, &yylval);
    8215           yychar = YYEMPTY;
    8216         }
     9298        {
     9299          yydestruct ("Error: discarding",
     9300                      yytoken, &yylval);
     9301          yychar = YYEMPTY;
     9302        }
    82179303    }
    82189304
     
    82339319     goto yyerrorlab;
    82349320
    8235   /* Do not reclaim the symbols of the rule whose action triggered
     9321  /* Do not reclaim the symbols of the rule which action triggered
    82369322     this YYERROR.  */
    82379323  YYPOPSTACK (yylen);
     
    82469332`-------------------------------------------------------------*/
    82479333yyerrlab1:
    8248   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
     9334  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    82499335
    82509336  for (;;)
     
    82529338      yyn = yypact[yystate];
    82539339      if (!yypact_value_is_default (yyn))
    8254         {
    8255           yyn += YYTERROR;
    8256           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    8257             {
    8258               yyn = yytable[yyn];
    8259               if (0 < yyn)
    8260                 break;
    8261             }
    8262         }
     9340        {
     9341          yyn += YYTERROR;
     9342          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
     9343            {
     9344              yyn = yytable[yyn];
     9345              if (0 < yyn)
     9346                break;
     9347            }
     9348        }
    82639349
    82649350      /* Pop the current state because it cannot handle the error token.  */
    82659351      if (yyssp == yyss)
    8266         YYABORT;
     9352        YYABORT;
    82679353
    82689354
    82699355      yydestruct ("Error: popping",
    8270                   yystos[yystate], yyvsp);
     9356                  yystos[yystate], yyvsp);
    82719357      YYPOPSTACK (1);
    82729358      yystate = *yyssp;
     
    82749360    }
    82759361
    8276   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    82779362  *++yyvsp = yylval;
    8278   YY_IGNORE_MAYBE_UNINITIALIZED_END
    82799363
    82809364
     
    83009384  goto yyreturn;
    83019385
    8302 #if !defined yyoverflow || YYERROR_VERBOSE
     9386#if !defined(yyoverflow) || YYERROR_VERBOSE
    83039387/*-------------------------------------------------.
    83049388| yyexhaustedlab -- memory exhaustion comes here.  |
     
    83199403                  yytoken, &yylval);
    83209404    }
    8321   /* Do not reclaim the symbols of the rule whose action triggered
     9405  /* Do not reclaim the symbols of the rule which action triggered
    83229406     this YYABORT or YYACCEPT.  */
    83239407  YYPOPSTACK (yylen);
     
    83269410    {
    83279411      yydestruct ("Cleanup: popping",
    8328                   yystos[*yyssp], yyvsp);
     9412                  yystos[*yyssp], yyvsp);
    83299413      YYPOPSTACK (1);
    83309414    }
     
    83379421    YYSTACK_FREE (yymsg);
    83389422#endif
    8339   return yyresult;
     9423  /* Make sure YYID is used.  */
     9424  return YYID (yyresult);
    83409425}
    8341 #line 2837 "parser.yy" /* yacc.c:1906  */
     9426
     9427
     9428
     9429/* Line 2067 of yacc.c  */
     9430#line 2886 "parser.yy"
    83429431
    83439432// ----end of grammar----
     
    83589447// compile-command: "make install" //
    83599448// End: //
     9449
  • src/Parser/parser.h

    r80722d0 rab57786  
    1 /* A Bison parser, made by GNU Bison 3.0.2.  */
     1/* A Bison parser, made by GNU Bison 2.5.  */
    22
    33/* Bison interface for Yacc-like parsers in C
    4 
    5    Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
    6 
     4   
     5      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
     6   
    77   This program is free software: you can redistribute it and/or modify
    88   it under the terms of the GNU General Public License as published by
    99   the Free Software Foundation, either version 3 of the License, or
    1010   (at your option) any later version.
    11 
     11   
    1212   This program is distributed in the hope that it will be useful,
    1313   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1414   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1515   GNU General Public License for more details.
    16 
     16   
    1717   You should have received a copy of the GNU General Public License
    1818   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     
    2727   Bison output files to be licensed under the GNU General Public
    2828   License without this special exception.
    29 
     29   
    3030   This special exception was added by the Free Software Foundation in
    3131   version 2.2 of Bison.  */
    3232
    33 #ifndef YY_YY_PARSER_PARSER_H_INCLUDED
    34 # define YY_YY_PARSER_PARSER_H_INCLUDED
    35 /* Debug traces.  */
    36 #ifndef YYDEBUG
    37 # define YYDEBUG 1
    38 #endif
    39 #if YYDEBUG
    40 extern int yydebug;
    41 #endif
    42 
    43 /* Token type.  */
     33
     34/* Tokens.  */
    4435#ifndef YYTOKENTYPE
    4536# define YYTOKENTYPE
    46   enum yytokentype
    47   {
    48     TYPEDEF = 258,
    49     AUTO = 259,
    50     EXTERN = 260,
    51     REGISTER = 261,
    52     STATIC = 262,
    53     INLINE = 263,
    54     FORTRAN = 264,
    55     CONST = 265,
    56     VOLATILE = 266,
    57     RESTRICT = 267,
    58     FORALL = 268,
    59     LVALUE = 269,
    60     VOID = 270,
    61     CHAR = 271,
    62     SHORT = 272,
    63     INT = 273,
    64     LONG = 274,
    65     FLOAT = 275,
    66     DOUBLE = 276,
    67     SIGNED = 277,
    68     UNSIGNED = 278,
    69     VALIST = 279,
    70     BOOL = 280,
    71     COMPLEX = 281,
    72     IMAGINARY = 282,
    73     TYPEOF = 283,
    74     LABEL = 284,
    75     ENUM = 285,
    76     STRUCT = 286,
    77     UNION = 287,
    78     OTYPE = 288,
    79     FTYPE = 289,
    80     DTYPE = 290,
    81     TRAIT = 291,
    82     SIZEOF = 292,
    83     OFFSETOF = 293,
    84     ATTRIBUTE = 294,
    85     EXTENSION = 295,
    86     IF = 296,
    87     ELSE = 297,
    88     SWITCH = 298,
    89     CASE = 299,
    90     DEFAULT = 300,
    91     DO = 301,
    92     WHILE = 302,
    93     FOR = 303,
    94     BREAK = 304,
    95     CONTINUE = 305,
    96     GOTO = 306,
    97     RETURN = 307,
    98     CHOOSE = 308,
    99     DISABLE = 309,
    100     ENABLE = 310,
    101     FALLTHRU = 311,
    102     TRY = 312,
    103     CATCH = 313,
    104     CATCHRESUME = 314,
    105     FINALLY = 315,
    106     THROW = 316,
    107     THROWRESUME = 317,
    108     AT = 318,
    109     ASM = 319,
    110     ALIGNAS = 320,
    111     ALIGNOF = 321,
    112     ATOMIC = 322,
    113     GENERIC = 323,
    114     NORETURN = 324,
    115     STATICASSERT = 325,
    116     THREADLOCAL = 326,
    117     IDENTIFIER = 327,
    118     QUOTED_IDENTIFIER = 328,
    119     TYPEDEFname = 329,
    120     TYPEGENname = 330,
    121     ATTR_IDENTIFIER = 331,
    122     ATTR_TYPEDEFname = 332,
    123     ATTR_TYPEGENname = 333,
    124     INTEGERconstant = 334,
    125     FLOATINGconstant = 335,
    126     CHARACTERconstant = 336,
    127     STRINGliteral = 337,
    128     ZERO = 338,
    129     ONE = 339,
    130     ARROW = 340,
    131     ICR = 341,
    132     DECR = 342,
    133     LS = 343,
    134     RS = 344,
    135     LE = 345,
    136     GE = 346,
    137     EQ = 347,
    138     NE = 348,
    139     ANDAND = 349,
    140     OROR = 350,
    141     ELLIPSIS = 351,
    142     MULTassign = 352,
    143     DIVassign = 353,
    144     MODassign = 354,
    145     PLUSassign = 355,
    146     MINUSassign = 356,
    147     LSassign = 357,
    148     RSassign = 358,
    149     ANDassign = 359,
    150     ERassign = 360,
    151     ORassign = 361,
    152     ATassign = 362,
    153     THEN = 363
    154   };
     37   /* Put the tokens into the symbol table, so that GDB and other debuggers
     38      know about them.  */
     39   enum yytokentype {
     40     TYPEDEF = 258,
     41     AUTO = 259,
     42     EXTERN = 260,
     43     REGISTER = 261,
     44     STATIC = 262,
     45     INLINE = 263,
     46     FORTRAN = 264,
     47     CONST = 265,
     48     VOLATILE = 266,
     49     RESTRICT = 267,
     50     FORALL = 268,
     51     LVALUE = 269,
     52     VOID = 270,
     53     CHAR = 271,
     54     SHORT = 272,
     55     INT = 273,
     56     LONG = 274,
     57     FLOAT = 275,
     58     DOUBLE = 276,
     59     SIGNED = 277,
     60     UNSIGNED = 278,
     61     VALIST = 279,
     62     BOOL = 280,
     63     COMPLEX = 281,
     64     IMAGINARY = 282,
     65     TYPEOF = 283,
     66     LABEL = 284,
     67     ENUM = 285,
     68     STRUCT = 286,
     69     UNION = 287,
     70     OTYPE = 288,
     71     FTYPE = 289,
     72     DTYPE = 290,
     73     TRAIT = 291,
     74     SIZEOF = 292,
     75     OFFSETOF = 293,
     76     ATTRIBUTE = 294,
     77     EXTENSION = 295,
     78     IF = 296,
     79     ELSE = 297,
     80     SWITCH = 298,
     81     CASE = 299,
     82     DEFAULT = 300,
     83     DO = 301,
     84     WHILE = 302,
     85     FOR = 303,
     86     BREAK = 304,
     87     CONTINUE = 305,
     88     GOTO = 306,
     89     RETURN = 307,
     90     CHOOSE = 308,
     91     DISABLE = 309,
     92     ENABLE = 310,
     93     FALLTHRU = 311,
     94     TRY = 312,
     95     CATCH = 313,
     96     CATCHRESUME = 314,
     97     FINALLY = 315,
     98     THROW = 316,
     99     THROWRESUME = 317,
     100     AT = 318,
     101     ASM = 319,
     102     ALIGNAS = 320,
     103     ALIGNOF = 321,
     104     ATOMIC = 322,
     105     GENERIC = 323,
     106     NORETURN = 324,
     107     STATICASSERT = 325,
     108     THREADLOCAL = 326,
     109     IDENTIFIER = 327,
     110     QUOTED_IDENTIFIER = 328,
     111     TYPEDEFname = 329,
     112     TYPEGENname = 330,
     113     ATTR_IDENTIFIER = 331,
     114     ATTR_TYPEDEFname = 332,
     115     ATTR_TYPEGENname = 333,
     116     INTEGERconstant = 334,
     117     FLOATINGconstant = 335,
     118     CHARACTERconstant = 336,
     119     STRINGliteral = 337,
     120     ZERO = 338,
     121     ONE = 339,
     122     ARROW = 340,
     123     ICR = 341,
     124     DECR = 342,
     125     LS = 343,
     126     RS = 344,
     127     LE = 345,
     128     GE = 346,
     129     EQ = 347,
     130     NE = 348,
     131     ANDAND = 349,
     132     OROR = 350,
     133     ELLIPSIS = 351,
     134     MULTassign = 352,
     135     DIVassign = 353,
     136     MODassign = 354,
     137     PLUSassign = 355,
     138     MINUSassign = 356,
     139     LSassign = 357,
     140     RSassign = 358,
     141     ANDassign = 359,
     142     ERassign = 360,
     143     ORassign = 361,
     144     ATassign = 362,
     145     THEN = 363
     146   };
    155147#endif
    156148/* Tokens.  */
     
    262254#define THEN 363
    263255
    264 /* Value type.  */
     256
     257
     258
    265259#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    266 typedef union YYSTYPE YYSTYPE;
    267 union YYSTYPE
     260typedef union YYSTYPE
    268261{
    269 #line 115 "parser.yy" /* yacc.c:1909  */
     262
     263/* Line 2068 of yacc.c  */
     264#line 156 "parser.yy"
    270265
    271266        Token tok;
     
    281276        InitializerNode *in;
    282277        OperKinds op;
     278        std::string *str;
    283279        bool flag;
    284280
    285 #line 286 "Parser/parser.h" /* yacc.c:1909  */
    286 };
     281
     282
     283/* Line 2068 of yacc.c  */
     284#line 285 "Parser/parser.h"
     285} YYSTYPE;
    287286# define YYSTYPE_IS_TRIVIAL 1
     287# define yystype YYSTYPE /* obsolescent; will be withdrawn */
    288288# define YYSTYPE_IS_DECLARED 1
    289289#endif
    290290
    291 
    292291extern YYSTYPE yylval;
    293292
    294 int yyparse (void);
    295 
    296 #endif /* !YY_YY_PARSER_PARSER_H_INCLUDED  */
     293
  • src/Parser/parser.yy

    r80722d0 rab57786  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:49:10 2016
    13 // Update Count     : 1909
     12// Last Modified On : Mon Aug 22 14:15:15 2016
     13// Update Count     : 1943
    1414//
    1515
     
    5555#include "LinkageSpec.h"
    5656
     57union DeclQualifiers {
     58        unsigned int value;                                                                     // assume 32-bits
     59        struct {
     60                bool Extern : 1;
     61                bool Static : 1;
     62                bool Auto : 1;
     63                bool Register : 1;
     64                bool Inline : 1;
     65                bool Fortran : 1;
     66                bool Noreturn : 1;
     67                bool Threadlocal : 1;
     68                bool Extension : 1;
     69                bool Lvalue : 1;
     70                bool Const : 1;
     71                bool Volatile : 1;
     72                bool Restrict : 1;
     73                bool Atomic : 1;
     74        } qual;
     75}; // DeclQualifiers
     76DeclQualifiers declQualifiers = { 0 };
     77
     78union DeclType {
     79        unsigned int value;                                                                     // assume 32-bits
     80        struct {
     81                bool Char : 1;
     82                bool Bool : 1;
     83                bool Short : 1;
     84                bool Int : 1;
     85                bool Float : 1;
     86                bool Double : 1;
     87                bool Long : 1;
     88                bool Signed : 1;
     89                bool Unsigned : 1;
     90                bool Void : 1;
     91                bool Complex : 1;
     92                bool Imaginary : 1;
     93                bool Valist : 1;
     94        } type;
     95}; // DeclType
     96DeclType declTypes = { 0 };
     97
    5798extern DeclarationNode * parseTree;
    5899extern LinkageSpec::Spec linkage;
     
    61102std::stack< LinkageSpec::Spec > linkageStack;
    62103
    63 void appendStr( std::string &to, std::string *from ) {
     104void appendStr( std::string *to, std::string *from ) {
    64105        // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
    65         to.insert( to.length() - 1, from->substr( 1, from->length() - 2 ) );
     106        to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) );
    66107} // appendStr
    67108%}
     
    126167        InitializerNode *in;
    127168        OperKinds op;
     169        std::string *str;
    128170        bool flag;
    129171}
     
    131173%type<tok> identifier  no_01_identifier  no_attr_identifier zero_one
    132174%type<tok> identifier_or_type_name  no_attr_identifier_or_type_name  no_01_identifier_or_type_name
    133 %type<constant> string_literal_list
     175%type<constant> string_literal
     176%type<str> string_literal_list
    134177
    135178// expressions
     
    296339
    297340push:
    298                 {
    299                         typedefTable.enterScope();
    300                 }
     341                { typedefTable.enterScope(); }
    301342        ;
    302343
    303344pop:
    304                 {
    305                         typedefTable.leaveScope();
    306                 }
     345                { typedefTable.leaveScope(); }
    307346        ;
    308347
     
    311350constant:
    312351                // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant".
    313         INTEGERconstant                                                                 { $$ = new ExpressionNode( build_constantInteger( assign_strptr($1) ) ); }
    314         | FLOATINGconstant                                                      { $$ = new ExpressionNode( build_constantFloat( assign_strptr($1) ) ); }
    315         | CHARACTERconstant                                                     { $$ = new ExpressionNode( build_constantChar( assign_strptr($1) ) ); }
     352        INTEGERconstant                                                         { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
     353        | FLOATINGconstant                                                      { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
     354        | CHARACTERconstant                                                     { $$ = new ExpressionNode( build_constantChar( *$1 ) ); }
    316355        ;
    317356
     
    337376        ;
    338377
     378string_literal:
     379        string_literal_list                                                     { $$ = build_constantStr( *$1 ); }
     380        ;
     381
    339382string_literal_list:                                                                    // juxtaposed strings are concatenated
    340         STRINGliteral                                                           { $$ = build_constantStr( assign_strptr($1) ); }
     383        STRINGliteral                                                           { $$ = $1; } // conversion from tok to str
    341384        | string_literal_list STRINGliteral
    342385                {
    343                         appendStr( $1->get_constant()->get_value(), $2 );
     386                        appendStr( $1, $2 );                                            // append 2nd juxtaposed string to 1st
    344387                        delete $2;                                                                      // allocated by lexer
    345                         $$ = $1;
     388                        $$ = $1;                                                                        // conversion from tok to str
    346389                }
    347390        ;
     
    370413        | postfix_expression '(' argument_expression_list ')'
    371414                { $$ = new ExpressionNode( build_func( $1, $3 ) ); }
    372         // ambiguity with .0 so space required after field-selection, e.g.
     415                // ambiguity with .0 so space required after field-selection, e.g.
    373416                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    374417        | postfix_expression '.' no_attr_identifier
     
    412455        no_attr_identifier
    413456                { $$ = new ExpressionNode( build_varref( $1 ) ); }
    414         // ambiguity with .0 so space required after field-selection, e.g.
     457                // ambiguity with .0 so space required after field-selection, e.g.
    415458                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    416459        | no_attr_identifier '.' field
     
    430473        | constant
    431474                { $$ = $1; }
    432         | string_literal_list
     475        | string_literal
    433476                { $$ = new ExpressionNode( $1 ); }
    434477        | EXTENSION cast_expression                                                     // GCC
     
    809852fall_through_opt:                                                                               // CFA
    810853        // empty
    811                 { $$ = new StatementNode( build_branch( "", BranchStmt::Break ) ); } // insert implicit break
     854                { $$ = new StatementNode( build_branch( BranchStmt::Break ) ); } // insert implicit break
    812855        | fall_through
    813856        ;
     
    838881jump_statement:
    839882        GOTO IDENTIFIER ';'
    840                 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Goto ) ); }
     883                { $$ = new StatementNode( build_branch( $2, BranchStmt::Goto ) ); }
    841884        | GOTO '*' comma_expression ';'                                         // GCC, computed goto
    842885                // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3);
     
    845888        | CONTINUE ';'
    846889                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    847                 { $$ = new StatementNode( build_branch( "", BranchStmt::Continue ) ); }
     890                { $$ = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    848891        | CONTINUE IDENTIFIER ';'                                                       // CFA, multi-level continue
    849892                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    850893                // the target of the transfer appears only at the start of an iteration statement.
    851                 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Continue ) ); }
     894                { $$ = new StatementNode( build_branch( $2, BranchStmt::Continue ) ); }
    852895        | BREAK ';'
    853896                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    854                 { $$ = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
     897                { $$ = new StatementNode( build_branch( BranchStmt::Break ) ); }
    855898        | BREAK IDENTIFIER ';'                                                          // CFA, multi-level exit
    856899                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    857900                // the target of the transfer appears only at the start of an iteration statement.
    858                 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Break ) ); }
     901                { $$ = new StatementNode( build_branch( $2, BranchStmt::Break ) ); }
    859902        | RETURN comma_expression_opt ';'
    860903                { $$ = new StatementNode( build_return( $2 ) ); }
     
    930973
    931974asm_statement:
    932         ASM asm_volatile_opt '(' string_literal_list ')' ';'
     975        ASM asm_volatile_opt '(' string_literal ')' ';'
    933976                { $$ = new StatementNode( build_asmstmt( $2, $4, 0 ) ); }
    934         | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ')' ';' // remaining GCC
     977        | ASM asm_volatile_opt '(' string_literal ':' asm_operands_opt ')' ';' // remaining GCC
    935978                { $$ = new StatementNode( build_asmstmt( $2, $4, $6 ) ); }
    936         | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ')' ';'
     979        | ASM asm_volatile_opt '(' string_literal ':' asm_operands_opt ':' asm_operands_opt ')' ';'
    937980                { $$ = new StatementNode( build_asmstmt( $2, $4, $6, $8 ) ); }
    938         | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list_opt ')' ';'
     981        | ASM asm_volatile_opt '(' string_literal ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list_opt ')' ';'
    939982                { $$ = new StatementNode( build_asmstmt( $2, $4, $6, $8, $10 ) ); }
    940         | ASM asm_volatile_opt GOTO '(' string_literal_list ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';'
     983        | ASM asm_volatile_opt GOTO '(' string_literal ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';'
    941984                { $$ = new StatementNode( build_asmstmt( $2, $5, 0, $8, $10, $12 ) ); }
    942985        ;
     
    9621005
    9631006asm_operand:                                                                                    // GCC
    964         string_literal_list '(' constant_expression ')'
     1007        string_literal '(' constant_expression ')'
    9651008                { $$ = new ExpressionNode( build_asmexpr( 0, $1, $3 ) ); }
    966         | '[' constant_expression ']' string_literal_list '(' constant_expression ')'
     1009        | '[' constant_expression ']' string_literal '(' constant_expression ')'
    9671010        { $$ = new ExpressionNode( build_asmexpr( $2, $4, $6 ) ); }
    9681011        ;
     
    9711014        // empty
    9721015                { $$ = 0; }                                                                             // use default argument
    973         | string_literal_list
     1016        | string_literal
    9741017                { $$ = new ExpressionNode( $1 ); }
    975         | asm_clobbers_list_opt ',' string_literal_list
     1018        | asm_clobbers_list_opt ',' string_literal
    9761019                { $$ = (ExpressionNode *)$1->set_last( new ExpressionNode( $3 ) ); }
    9771020        ;
     
    9791022label_list:
    9801023        no_attr_identifier
    981                 { $$ = new LabelNode(); $$->labels.push_back( assign_strptr($1) ); }
     1024                {
     1025                        $$ = new LabelNode(); $$->labels.push_back( *$1 );
     1026                        delete $1;                                                                      // allocated by lexer
     1027                }
    9821028        | label_list ',' no_attr_identifier
    983                 { $$ = $1; $1->labels.push_back( assign_strptr($3) ); }
     1029                {
     1030                        $$ = $1; $1->labels.push_back( *$3 );
     1031                        delete $3;                                                                      // allocated by lexer
     1032                }
    9841033        ;
    9851034
     
    19932042                {
    19942043                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    1995                         linkage = LinkageSpec::fromString( assign_strptr($2) );
     2044                        linkage = LinkageSpec::fromString( *$2 );
    19962045                }
    19972046          '{' external_definition_list_opt '}'                          // C++-style linkage specifier
     
    21042153asm_name_opt:                                                                                   // GCC
    21052154        // empty
    2106         | ASM '(' string_literal_list ')' attribute_list_opt
     2155        | ASM '(' string_literal ')' attribute_list_opt
    21072156        ;
    21082157
Note: See TracChangeset for help on using the changeset viewer.