Changes in / [bd9f8be:03b812d2]


Ignore:
Location:
src/Parser
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    rbd9f8be r03b812d2  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Aug 21 09:43:31 2016
    13 // Update Count     : 501
     12// Last Modified On : Tue Aug 16 00:09:20 2016
     13// Update Count     : 495
    1414//
    1515
     
    120120        } // if
    121121
    122         Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ) );
    123         delete &str;                                                                            // created by lex
    124         return ret;
     122        return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ) );
    125123} // build_constantInteger
    126124
     
    152150        } // if
    153151
    154         Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ) );
    155         delete &str;                                                                            // created by lex
    156         return ret;
     152        return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ) );
    157153} // build_constantFloat
    158154
    159155Expression *build_constantChar( const std::string & str ) {
    160         Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) );
    161         delete &str;                                                                            // created by lex
    162         return ret;
     156        return new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) );
    163157} // build_constantChar
    164158
     
    169163                                                                                        toString( str.size()+1-2 ) ) ),  // +1 for '\0' and -2 for '"'
    170164                                                                   false, false );
    171         ConstantExpr * ret = new ConstantExpr( Constant( at, str ) );
    172         delete &str;                                                                            // created by lex
    173         return ret;
     165        return new ConstantExpr( Constant( at, str ) );
    174166} // build_constantStr
    175167
  • src/Parser/LinkageSpec.cc

    rbd9f8be r03b812d2  
    1010// Created On       : Sat May 16 13:22:09 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Aug 21 12:32:53 2016
    13 // Update Count     : 17
     12// Last Modified On : Thu Aug 18 23:47:14 2016
     13// Update Count     : 12
    1414//
    1515
     
    2020#include "Common/SemanticError.h"
    2121
    22 LinkageSpec::Spec LinkageSpec::fromString( const std::string &spec ) {
    23         if ( spec == "\"Cforall\"" ) {
     22LinkageSpec::Spec LinkageSpec::fromString( const std::string &stringSpec ) {
     23        if ( stringSpec == "\"Cforall\"" ) {
    2424                return Cforall;
    25         } else if ( spec == "\"C\"" ) {
     25        } else if ( stringSpec == "\"C\"" ) {
    2626                return C;
    2727        } else {
    28                 throw SemanticError( "Invalid linkage specifier " + spec );
    29         } // if
    30         delete &spec;                                                                           // allocated by lexer
     28                throw SemanticError( "Invalid linkage specifier " + stringSpec );
     29        }
    3130}
    3231
     
    3837}
    3938
    40 bool LinkageSpec::isDecoratable( Spec spec ) {
     39bool LinkageSpec::isDecoratable( Spec t ) {
    4140        static bool decoratable[LinkageSpec::NoOfSpecs] = {
    4241                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    4342                        true,           true,           false,  true,           false,
    4443        };
    45         return decoratable[spec];
     44        return decoratable[t];
    4645}
    4746
    48 bool LinkageSpec::isGeneratable( Spec spec ) {
     47bool LinkageSpec::isGeneratable( Spec t ) {
    4948        static bool generatable[LinkageSpec::NoOfSpecs] = {
    5049                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    5150                        true,           true,           true,   true,           false,
    5251        };
    53         return generatable[spec];
     52        return generatable[t];
    5453}
    5554
    56 bool LinkageSpec::isOverridable( Spec spec ) {
     55bool LinkageSpec::isOverloadable( Spec t ) {
     56        return isDecoratable( t );
     57}
     58
     59
     60bool LinkageSpec::isOverridable( Spec t ) {
    5761        static bool overridable[LinkageSpec::NoOfSpecs] = {
    5862                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    5963                        true,           false,          false,  true,           false,
    6064        };
    61         return overridable[spec];
     65        return overridable[t];
    6266}
    6367
    64 bool LinkageSpec::isBuiltin( Spec spec ) {
     68bool LinkageSpec::isBuiltin( Spec t ) {
    6569        static bool builtin[LinkageSpec::NoOfSpecs] = {
    6670                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    6771                        true,           false,          false,  false,          true,
    6872        };
    69         return builtin[spec];
     73        return builtin[t];
    7074}
    7175
  • src/Parser/LinkageSpec.h

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

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

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

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

    rbd9f8be r03b812d2  
    1 /* A Bison parser, made by GNU Bison 2.5.  */
     1/* A Bison parser, made by GNU Bison 3.0.2.  */
    22
    33/* Bison implementation for Yacc-like parsers in C
    4    
    5       Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    6    
     4
     5   Copyright (C) 1984, 1989-1990, 2000-2013 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 "2.5"
     47#define YYBISON_VERSION "3.0.2"
    4848
    4949/* Skeleton name.  */
     
    5959#define YYPULL 1
    6060
    61 /* Using locations.  */
    62 #define YYLSP_NEEDED 0
    6361
    6462
    6563
    6664/* Copy the first part of user declarations.  */
    67 
    68 /* Line 268 of yacc.c  */
    69 #line 42 "parser.yy"
     65#line 42 "parser.yy" /* yacc.c:339  */
    7066
    7167#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
     
    8379#include "LinkageSpec.h"
    8480
    85 union 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
    104 DeclQualifiers declQualifiers = { 0 };
    105 
    106 union 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
    124 DeclType declTypes = { 0 };
    125 
    12681extern DeclarationNode * parseTree;
    12782extern LinkageSpec::Spec linkage;
     
    13085std::stack< LinkageSpec::Spec > linkageStack;
    13186
    132 void appendStr( std::string *to, std::string *from ) {
     87void appendStr( std::string &to, std::string *from ) {
    13388        // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
    134         to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) );
     89        to.insert( to.length() - 1, from->substr( 1, from->length() - 2 ) );
    13590} // appendStr
    13691
    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
     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
    145101
    146102/* Enabling verbose error messages.  */
     
    152108#endif
    153109
    154 /* Enabling the token table.  */
    155 #ifndef YYTOKEN_TABLE
    156 # define YYTOKEN_TABLE 0
     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
    157117#endif
    158 
    159 
    160 /* Tokens.  */
     118#if YYDEBUG
     119extern int yydebug;
     120#endif
     121
     122/* Token type.  */
    161123#ifndef YYTOKENTYPE
    162124# define YYTOKENTYPE
    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    };
     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  };
    273234#endif
    274235/* Tokens.  */
     
    380341#define THEN 363
    381342
    382 
    383 
    384 
     343/* Value type.  */
    385344#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    386 typedef union YYSTYPE
     345typedef union YYSTYPE YYSTYPE;
     346union YYSTYPE
    387347{
    388 
    389 /* Line 293 of yacc.c  */
    390 #line 156 "parser.yy"
     348#line 115 "parser.yy" /* yacc.c:355  */
    391349
    392350        Token tok;
     
    402360        InitializerNode *in;
    403361        OperKinds op;
    404         std::string *str;
    405362        bool flag;
    406363
    407 
    408 
    409 /* Line 293 of yacc.c  */
    410 #line 411 "Parser/parser.cc"
    411 } YYSTYPE;
     364#line 365 "Parser/parser.cc" /* yacc.c:355  */
     365};
    412366# define YYSTYPE_IS_TRIVIAL 1
    413 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    414367# define YYSTYPE_IS_DECLARED 1
    415368#endif
    416369
    417370
     371extern YYSTYPE yylval;
     372
     373int yyparse (void);
     374
     375#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
     376
    418377/* Copy the second part of user declarations.  */
    419378
    420 
    421 /* Line 343 of yacc.c  */
    422 #line 423 "Parser/parser.cc"
     379#line 380 "Parser/parser.cc" /* yacc.c:358  */
    423380
    424381#ifdef short
     
    434391#ifdef YYTYPE_INT8
    435392typedef YYTYPE_INT8 yytype_int8;
    436 #elif (defined __STDC__ || defined __C99__FUNC__ \
    437      || defined __cplusplus || defined _MSC_VER)
     393#else
    438394typedef signed char yytype_int8;
    439 #else
    440 typedef short int yytype_int8;
    441395#endif
    442396
     
    458412# elif defined size_t
    459413#  define YYSIZE_T size_t
    460 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    461      || defined __cplusplus || defined _MSC_VER)
     414# elif ! defined YYSIZE_T
    462415#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    463416#  define YYSIZE_T size_t
     
    473426#  if ENABLE_NLS
    474427#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    475 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
     428#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
    476429#  endif
    477430# endif
    478431# ifndef YY_
    479 #  define YY_(msgid) msgid
     432#  define YY_(Msgid) Msgid
    480433# endif
    481434#endif
    482435
     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
    483463/* Suppress unused-variable warnings by "using" E.  */
    484464#if ! defined lint || defined __GNUC__
    485 # define YYUSE(e) ((void) (e))
     465# define YYUSE(E) ((void) (E))
    486466#else
    487 # define YYUSE(e) /* empty */
     467# define YYUSE(E) /* empty */
    488468#endif
    489469
    490 /* Identity function, used to suppress warnings about constant conditions.  */
    491 #ifndef lint
    492 # define YYID(n) (n)
     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")
    493478#else
    494 #if (defined __STDC__ || defined __C99__FUNC__ \
    495      || defined __cplusplus || defined _MSC_VER)
    496 static int
    497 YYID (int yyi)
    498 #else
    499 static int
    500 YYID (yyi)
    501     int yyi;
     479# define YY_INITIAL_VALUE(Value) Value
    502480#endif
    503 {
    504   return yyi;
    505 }
     481#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     482# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     483# define YY_IGNORE_MAYBE_UNINITIALIZED_END
    506484#endif
     485#ifndef YY_INITIAL_VALUE
     486# define YY_INITIAL_VALUE(Value) /* Nothing. */
     487#endif
     488
    507489
    508490#if ! defined yyoverflow || YYERROR_VERBOSE
     
    523505#   else
    524506#    define YYSTACK_ALLOC alloca
    525 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    526      || defined __cplusplus || defined _MSC_VER)
     507#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
    527508#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     509      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
    528510#     ifndef EXIT_SUCCESS
    529511#      define EXIT_SUCCESS 0
     
    535517
    536518# ifdef YYSTACK_ALLOC
    537    /* Pacify GCC's `empty if-body' warning.  */
    538 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
     519   /* Pacify GCC's 'empty if-body' warning.  */
     520#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
    539521#  ifndef YYSTACK_ALLOC_MAXIMUM
    540522    /* The OS might guarantee only one guard page at the bottom of the stack,
     
    552534#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
    553535       && ! ((defined YYMALLOC || defined malloc) \
    554              && (defined YYFREE || defined free)))
     536             && (defined YYFREE || defined free)))
    555537#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    556538#   ifndef EXIT_SUCCESS
     
    560542#  ifndef YYMALLOC
    561543#   define YYMALLOC malloc
    562 #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    563      || defined __cplusplus || defined _MSC_VER)
     544#   if ! defined malloc && ! defined EXIT_SUCCESS
    564545void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    565546#   endif
     
    567548#  ifndef YYFREE
    568549#   define YYFREE free
    569 #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
    570      || defined __cplusplus || defined _MSC_VER)
     550#   if ! defined free && ! defined EXIT_SUCCESS
    571551void free (void *); /* INFRINGES ON USER NAME SPACE */
    572552#   endif
     
    578558#if (! defined yyoverflow \
    579559     && (! defined __cplusplus \
    580         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     560        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    581561
    582562/* A type that is properly aligned for any stack member.  */
     
    603583   stack.  Advance YYPTR to a properly aligned location for the next
    604584   stack.  */
    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))
     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)
    615595
    616596#endif
    617597
    618598#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
    619 /* Copy COUNT objects from FROM to TO.  The source and destination do
     599/* Copy COUNT objects from SRC to DST.  The source and destination do
    620600   not overlap.  */
    621601# ifndef YYCOPY
    622602#  if defined __GNUC__ && 1 < __GNUC__
    623 #   define YYCOPY(To, From, Count) \
    624       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
     603#   define YYCOPY(Dst, Src, Count) \
     604      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
    625605#  else
    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))
     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)
    634614#  endif
    635615# endif
     
    639619#define YYFINAL  250
    640620/* YYLAST -- Last index in YYTABLE.  */
    641 #define YYLAST   10841
     621#define YYLAST   10977
    642622
    643623/* YYNTOKENS -- Number of terminals.  */
    644624#define YYNTOKENS  133
    645625/* YYNNTS -- Number of nonterminals.  */
    646 #define YYNNTS  241
     626#define YYNNTS  240
    647627/* YYNRULES -- Number of rules.  */
    648 #define YYNRULES  750
    649 /* YYNRULES -- Number of states.  */
    650 #define YYNSTATES  1554
    651 
    652 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     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.  */
    653634#define YYUNDEFTOK  2
    654635#define YYMAXUTOK   363
    655636
    656 #define YYTRANSLATE(YYX)                                                \
     637#define YYTRANSLATE(YYX)                                                \
    657638  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    658639
    659 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
     640/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
     641   as returned by yylex, without out-of-bounds checking.  */
    660642static const yytype_uint8 yytranslate[] =
    661643{
     
    700682
    701683#if YYDEBUG
    702 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    703    YYRHS.  */
    704 static 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.  */
    785 static 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,   142,   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.  */
     684  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
    1062685static const yytype_uint16 yyrline[] =
    1063686{
    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,  2161,  2162,  2166,  2167,  2172,
    1119     2178,  2179,  2182,  2184,  2185,  2190,  2191,  2192,  2193,  2227,
    1120     2229,  2230,  2232,  2237,  2242,  2247,  2249,  2251,  2256,  2258,
    1121     2260,  2262,  2267,  2269,  2278,  2280,  2281,  2286,  2288,  2290,
    1122     2295,  2297,  2299,  2304,  2306,  2308,  2317,  2318,  2319,  2323,
    1123     2325,  2327,  2332,  2334,  2336,  2341,  2343,  2345,  2360,  2362,
    1124     2363,  2365,  2370,  2371,  2376,  2378,  2380,  2385,  2387,  2389,
    1125     2391,  2396,  2398,  2400,  2410,  2412,  2413,  2415,  2420,  2422,
    1126     2424,  2429,  2431,  2433,  2435,  2440,  2442,  2444,  2475,  2477,
    1127     2478,  2480,  2485,  2490,  2498,  2500,  2502,  2507,  2509,  2514,
    1128     2516,  2530,  2531,  2533,  2538,  2540,  2542,  2544,  2546,  2551,
    1129     2552,  2554,  2556,  2561,  2563,  2565,  2571,  2573,  2575,  2579,
    1130     2581,  2583,  2585,  2599,  2600,  2602,  2607,  2609,  2611,  2613,
    1131     2615,  2620,  2621,  2623,  2625,  2630,  2632,  2634,  2640,  2641,
    1132     2643,  2652,  2655,  2657,  2660,  2662,  2664,  2677,  2678,  2680,
    1133     2685,  2687,  2689,  2691,  2693,  2698,  2699,  2701,  2703,  2708,
    1134     2710,  2718,  2719,  2720,  2725,  2726,  2730,  2732,  2734,  2736,
    1135     2738,  2740,  2747,  2749,  2751,  2753,  2755,  2757,  2759,  2761,
    1136     2763,  2765,  2770,  2772,  2774,  2779,  2805,  2806,  2808,  2812,
    1137     2813,  2817,  2819,  2821,  2823,  2825,  2827,  2834,  2836,  2838,
    1138     2840,  2842,  2844,  2849,  2854,  2856,  2858,  2876,  2878,  2883,
    1139     2884
     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,  2112,  2113,  2117,  2118,  2123,  2129,
     742    2130,  2133,  2135,  2136,  2141,  2142,  2143,  2144,  2178,  2180,
     743    2181,  2183,  2188,  2193,  2198,  2200,  2202,  2207,  2209,  2211,
     744    2213,  2218,  2220,  2229,  2231,  2232,  2237,  2239,  2241,  2246,
     745    2248,  2250,  2255,  2257,  2259,  2268,  2269,  2270,  2274,  2276,
     746    2278,  2283,  2285,  2287,  2292,  2294,  2296,  2311,  2313,  2314,
     747    2316,  2321,  2322,  2327,  2329,  2331,  2336,  2338,  2340,  2342,
     748    2347,  2349,  2351,  2361,  2363,  2364,  2366,  2371,  2373,  2375,
     749    2380,  2382,  2384,  2386,  2391,  2393,  2395,  2426,  2428,  2429,
     750    2431,  2436,  2441,  2449,  2451,  2453,  2458,  2460,  2465,  2467,
     751    2481,  2482,  2484,  2489,  2491,  2493,  2495,  2497,  2502,  2503,
     752    2505,  2507,  2512,  2514,  2516,  2522,  2524,  2526,  2530,  2532,
     753    2534,  2536,  2550,  2551,  2553,  2558,  2560,  2562,  2564,  2566,
     754    2571,  2572,  2574,  2576,  2581,  2583,  2585,  2591,  2592,  2594,
     755    2603,  2606,  2608,  2611,  2613,  2615,  2628,  2629,  2631,  2636,
     756    2638,  2640,  2642,  2644,  2649,  2650,  2652,  2654,  2659,  2661,
     757    2669,  2670,  2671,  2676,  2677,  2681,  2683,  2685,  2687,  2689,
     758    2691,  2698,  2700,  2702,  2704,  2706,  2708,  2710,  2712,  2714,
     759    2716,  2721,  2723,  2725,  2730,  2756,  2757,  2759,  2763,  2764,
     760    2768,  2770,  2772,  2774,  2776,  2778,  2785,  2787,  2789,  2791,
     761    2793,  2795,  2800,  2805,  2807,  2809,  2827,  2829,  2834,  2835
    1140762};
    1141763#endif
    1142764
    1143 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
     765#if YYDEBUG || YYERROR_VERBOSE || 0
    1144766/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    1145767   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
     
    1167789  "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
    1168790  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
    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",
     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",
    1195816  "new_function_declaration", "new_function_specifier",
    1196817  "new_function_return", "new_typedef_declaration", "typedef_declaration",
     
    1250871  "new_abstract_declarator_no_tuple", "new_abstract_ptr",
    1251872  "new_abstract_array", "new_abstract_tuple", "new_abstract_function",
    1252   "comma_opt", "assignment_opt", 0
     873  "comma_opt", "assignment_opt", YY_NULLPTR
    1253874};
    1254875#endif
    1255876
    1256877# ifdef YYPRINT
    1257 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    1258    token YYLEX-NUM.  */
     878/* YYTOKNUM[NUM] -- (External) token number corresponding to the
     879   (internal) symbol number NUM (which must be that of a token).  */
    1259880static const yytype_uint16 yytoknum[] =
    1260881{
     
    1276897# endif
    1277898
    1278 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    1279 static const yytype_uint16 yyr1[] =
     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.  */
     911static const yytype_int16 yypact[] =
    1280912{
    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
     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
    13571069};
    13581070
    1359 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    1360 static 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.  */
     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.  */
    14431074static const yytype_uint16 yydefact[] =
    14441075{
    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,
     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,
    15001131       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
     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
    16011232};
    16021233
    1603 /* YYDEFGOTO[NTERM-NUM].  */
     1234  /* YYPGOTO[NTERM-NUM].  */
     1235static const yytype_int16 yypgoto[] =
     1236{
     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
     1261};
     1262
     1263  /* YYDEFGOTO[NTERM-NUM].  */
    16041264static const yytype_int16 yydefgoto[] =
    16051265{
    1606       -1,   813,   468,   300,    47,   133,   134,   301,   302,   303,
    1607      304,   305,   761,   762,  1133,  1134,   306,   381,   308,   309,
     1266      -1,   812,   467,   300,    47,   133,   134,   301,   302,   303,
     1267     304,   760,   761,  1132,  1133,   305,   380,   307,   308,   309,
    16081268     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
     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
    16311290};
    16321291
    1633 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    1634    STATE-NUM.  */
    1635 #define YYPACT_NINF -1282
    1636 static const yytype_int16 yypact[] =
    1637 {
    1638     7429,  6461, -1282,    36, -1282, -1282, -1282, -1282, -1282, -1282,
    1639    -1282,    83, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1640    -1282, -1282, -1282, -1282, -1282, -1282,   131,   131,   131,  1844,
    1641      994,   124,  7661,   230, -1282, -1282, -1282, -1282, -1282,   175,
    1642    -1282, -1282, -1282,   965,   193, -1282, -1282, -1282, -1282,  5932,
    1643    -1282, -1282, -1282, -1282,   122,   216, -1282,  1880, -1282, -1282,
    1644    -1282, -1282,   251,  1298,   387,    61,  7777, -1282, -1282,  9536,
    1645     1247, -1282, -1282,   557,   425,  3682,   886,   409,   557,  1203,
    1646    -1282, -1282,   744,   941, -1282,   557,  1708, -1282,   342, -1282,
    1647      478,   483, -1282, -1282, -1282, -1282,   384,   216,   131, -1282,
    1648      131, -1282, -1282, -1282, -1282,  2963,  1880, -1282, -1282,  1880,
    1649    -1282,   381, -1282,  8264, -1282, -1282,  1830,  9075, -1282,   713,
    1650      713,   713, -1282, -1282, -1282,   131, -1282, -1282, -1282,   410,
    1651      433,   443, -1282, -1282, -1282,   470, -1282, -1282, -1282, -1282,
    1652    -1282,   487,   492, -1282, -1282,    90,  9044,  2201,   567,   421,
    1653      477,   513,   520,   554,   575,  5546,  6949,   504,   495, -1282,
    1654     9574, -1282, -1282, -1282, -1282,   558, -1282,   116,  4885,  4885,
    1655    -1282,   577,   253, -1282, -1282, -1282, -1282,   613,   284,   302,
    1656      335,   131,   616, -1282, -1282,  1298,  2031,   692, -1282,    65,
    1657    -1282,   131,   131,   216, -1282, -1282,   103, -1282,   131,   131,
    1658    -1282,  3459,   673,   678,   713,  6742, -1282, -1282,   702,  5932,
    1659    -1282, -1282,   557, -1282, -1282, -1282,   216, -1282,  1880,   122,
    1660    -1282,  8115, -1282,   713,   713,   713,   216, -1282,  1844, -1282,
    1661     4853, -1282, -1282,   627,   713, -1282,   713, -1282,   175,  9044,
    1662    -1282,   738, -1282,   994,   742,   713, -1282,  1844,   706,   717,
    1663    -1282,  7661,   598, -1282, -1282, -1282,  9503, -1282, -1282,  5769,
    1664    -1282,   692,    43, 10287,  9075,  1830,  3459, -1282,   197, -1282,
    1665    -1282,  8264,  1880,   745,  7808, -1282, -1282,   441, -1282, 10539,
    1666      754,   784,  3526,   766,  3896,  4720, -1282,   770, -1282, -1282,
    1667    -1282, -1282, 10420, 10420,  8818,   772, -1282, -1282, -1282, -1282,
    1668    -1282, -1282, -1282,   805, -1282,  1317,  2104,  9157,  3896, -1282,
    1669      619,   651,   733,   206,   860,   791,   775,   785,   823,   -65,
    1670    -1282, -1282,   794,   596, -1282,   337, -1282, -1282,  2201, -1282,
    1671    -1282,   290,   810, -1282,   298,   810,   819,   175, -1282, -1282,
    1672      836,  2963, -1282,   844,   858,  9270, -1282, -1282,  1515,  1616,
    1673     8533,  6742,   557, -1282,   557,   713,   713, -1282, -1282, -1282,
    1674    -1282, -1282, -1282,   713,  2963,  1880, -1282, -1282,  9188,  1765,
    1675    -1282,  4463, -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,
    1676     6164,  3896, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1677    -1282, -1282, -1282, -1282, -1282, -1282,  1830, -1282,   592,   881,
    1678      887,   907,   977,   913,   918,   926,  2031, -1282, -1282,   917,
    1679      122,   952, -1282, -1282,   968, -1282, -1282, -1282,  9503, -1282,
    1680    -1282, -1282, -1282, -1282,  3459, -1282,  9044,  9044, -1282,   713,
    1681     1830,  6861,  1880,  8606, -1282, -1282, -1282, -1282,  9503,    43,
    1682    -1282, -1282,   557,   216, -1282, -1282,  9503, -1282,  5584, -1282,
    1683    -1282,   713,   713,   429,  4617,   967,   975,   972,   982,   713,
    1684    -1282, -1282, -1282, -1282,  9803, -1282,   430,  6623, -1282,   216,
    1685      991, -1282,  1830, 10621, 10344, -1282, -1282, -1282, -1282,   984,
    1686     3459, -1282,  8679,   692,  7545, -1282, -1282, -1282,  1025,   534,
    1687      794,   994,  7808,  1044,  8264, -1282,  7808, -1282, -1282, -1282,
    1688    -1282,   539, -1282,   997,   784,    70,  8818, -1282,  9301, -1282,
    1689    -1282,  8818, -1282,  8931,  8818, -1282, -1282,   999, -1282,   564,
    1690     1000,   689,  1003, -1282, -1282,  9650,  6592, -1282,   291, -1282,
    1691    -1282, 10287, -1282,   331, 10287, -1282, -1282, -1282, -1282, -1282,
    1692    -1282, -1282, -1282, -1282, -1282, -1282, 10287, -1282, -1282,  3896,
    1693     3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,
    1694     3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1282,
    1695      596,  1665, -1282, -1282,   131,   131, -1282, -1282,  9044, -1282,
    1696    -1282,   968,   598, -1282,   968, 10363, -1282, -1282, -1282,  5001,
    1697     6592,  1005,  1011, -1282,  9075, -1282, -1282,   558, -1282,  1017,
    1698      501,  1020,  3131,   211,   794, -1282,   131,   131,   794,   231,
    1699    -1282,   131,   131,   968, -1282, -1282,   131,   131, -1282,   810,
    1700     9421,  1880, 10766,    79,   605,  9421, -1282,  5769, -1282,   794,
    1701    -1282,  2963, -1282,   183,  8230,  8230,  8230,  1880, -1282, 10173,
    1702     1006,   869,   840,  1015,  1018, -1282,  1008,  4885,   242, -1282,
    1703     1104,  1880,  8230,   598,  1830,   598,   692,   448,   810, -1282,
    1704    -1282,   771,   810, -1282, -1282, -1282,   784, -1282,   810,   216,
    1705     9803, -1282,   637,  1041,   647,  1049, -1282,  1023,   216, -1282,
    1706    -1282,  9503,   216,  1046,  9301,  1053, -1282,   759, -1282,   357,
    1707      422,   994, -1282,   994,  1051,  3896, -1282,   994, 10766, -1282,
    1708    -1282,  1057, -1282, -1282, -1282,   598, -1282, 10694,   858, -1282,
    1709     8230,   851,  8533, -1282, -1282,   558,  1055,  1056,  1025,  2498,
    1710    -1282, -1282,  7808, -1282, -1282,  1062, -1282, -1282,  1070, -1282,
    1711     1062,  1072, 10539, 10287,  1060,  1061,   100,  1073,  1071,  1088,
    1712     1090, -1282,  1094,  1095,  9688,  6711, -1282, 10287, -1282,   689,
    1713     1753, -1282, -1282, -1282,   131,   131, 10230, 10287,  1080, -1282,
    1714    -1282,   650, -1282, 10287, -1282, -1282,   885, -1282, -1282, -1282,
    1715    -1282,   619,   619,   651,   651,   733,   733,   733,   733,   206,
    1716      206,   860,   791,   775,   785,   823,  3896,    14, -1282,  9803,
    1717     1099,  1100,  1102,  1665, -1282, -1282, -1282, -1282, -1282,  9803,
    1718      657,  8230, -1282,  2963, -1282,  7068,  9383, -1282,  4463,  6949,
    1719    -1282, -1282,   501,  9803,  1030,  1108,  1109,  1110,  1111,  1112,
    1720     1114,  1117, -1282,  3725,  3131, -1282, -1282, -1282, -1282, -1282,
    1721    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1722    -1282, -1282,   968, -1282, -1282, -1282,   794, -1282, -1282, -1282,
    1723    -1282, -1282, -1282, -1282, -1282,  1118, -1282,  1120,  1122, -1282,
    1724    -1282,   122,  1080, 10173, -1282, -1282, -1282,  6164,  1123, -1282,
    1725    -1282, -1282, -1282,   994,  6295,  1204, -1282, -1282, -1282, -1282,
    1726     1116,   122, -1282, -1282,   968, -1282, -1282,   968,   125,   968,
    1727    -1282, -1282, -1282, -1282, -1282, -1282,  9612, -1282,   216, -1282,
    1728    -1282,   460,   467,  9188,  7187,  1951,  3896,  3145, -1282, -1282,
    1729     1105,    87,  1105, -1282,   994, -1282,   131, -1282, -1282,  8451,
    1730      972, -1282, -1282, -1282,   975,  1133,  1129, -1282, -1282,  1137,
    1731     1146, -1282,   851,  1870, -1282,   683, -1282,  2498,   794, -1282,
    1732     1149,  7808,  9721,  9044,  1151, -1282, -1282,  1150,  1152,  1138,
    1733    -1282,  3896,  1158,   250,  1153, -1282,  1157,   598,  1157, -1282,
    1734    -1282,  1157,  1160, -1282,  1166,  1169,  1172,  1753, -1282, -1282,
    1735    -1282,  6164, -1282, -1282, -1282, -1282,  1168, 10287,  1175,   598,
    1736    -1282, 10287, -1282,   598, -1282, -1282, 10287, -1282,   809,   810,
    1737    -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,   858,  9270,
    1738    -1282, -1282,  7306,  1180, -1282,   829,   810, -1282,   854,   868,
    1739      810, -1282,   713,  4154, -1282, -1282, -1282,  9803,  9803, -1282,
    1740     8606,  8606, -1282,  1176,  1181,  1183,  1189, -1282,  1179,   724,
    1741      -22,  1080, -1282,   598, -1282,  4885, -1282, 10287,   475, -1282,
    1742     6430,  1191,  1192, 10116,  1193,  1195,    21,    55,   195, 10287,
    1743     1196,   216, 10287, 10287,  1182,  1205,   579,  1209, -1282, -1282,
    1744    -1282,  1200, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1745    -1282,   994,  1213, 10287, -1282,  9803,  9803,   131,  1214, -1282,
    1746     8962, -1282, -1282,   893, -1282,  3145, -1282, -1282, -1282, -1282,
    1747      759, -1282, -1282,  1218, -1282, -1282, -1282, -1282,  1227,  1870,
    1748    -1282, -1282,  1215, -1282,  1062, -1282, -1282,  1830,  1231, -1282,
    1749    -1282, -1282,   669,  1234, -1282,   100,  1237,  3896,  1220,   100,
    1750      100,  1248,  9650,   876,   810, -1282, -1282,  1008, 10287,  1251,
    1751     1168,   563,   204,  1250, -1282, -1282,  1255,  1250, -1282, -1282,
    1752     1258, -1282, -1282,   968,  1259,  1261,  6830,  1263,  1265,  1267,
    1753    -1282, -1282,  1273, -1282, -1282,   968, -1282, -1282, -1282, -1282,
    1754      968, 10287, 10287,   858,  1275, -1282, -1282, -1282, -1282, -1282,
    1755    -1282, -1282, -1282, -1282, -1282, -1282, -1282,  3896,  3896,  1278,
    1756     1279,  1250, -1282, -1282,   994, -1282, -1282, -1282,  8042,  9721,
    1757    10287, 10287,  1345, 10287, -1282,  1266, -1282,  1268, -1282,  1276,
    1758    10287,  1282, 10287,  1096,  1293,    49,   131,  5155,  1347, -1282,
    1759    -1282,  6295,  1280,   482, -1282, -1282, -1282, -1282, -1282, -1282,
    1760    -1282, -1282, -1282,  9936, -1282,  8679,  1287, -1282, -1282,  9721,
    1761      490,   497, -1282,  1290,  1281,   784,  1319, -1282,   334, -1282,
    1762    -1282, -1282, -1282,   968,  1323, -1282, -1282,  1327,   444,   549,
    1763      598,  1332, -1282,  1333, -1282,  9803, -1282, -1282, -1282, -1282,
    1764    -1282,  1334, -1282,  9803,  9803,  9803, -1282, -1282,  1335, -1282,
    1765     1337,  1341,  1343,   735,  8303,  8418, -1282, -1282,   248, -1282,
    1766     1351,  1356, -1282,  8752,   676,   686,  1350,   707,  6096, -1282,
    1767    -1282, -1282,   537, -1282,   716,  1365,  1367,   216,  1419,   951,
    1768    -1282, -1282, 10287, -1282, 10116, 10287, -1282, -1282, -1282,  1370,
    1769     1372, -1282, -1282, -1282,  1369, -1282, -1282, -1282, -1282, -1282,
    1770    -1282,  9721,   784,  1375, -1282,  1353,   784,  9803, -1282, -1282,
    1771    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1772    -1282, -1282,  1378,  1379, -1282, -1282, -1282, -1282, -1282, -1282,
    1773    -1282,  1377, -1282,  1382, -1282, -1282, 10116,   104, 10287, 10116,
    1774    -1282,  1387, 10287, -1282,   243,  1402,  1405, -1282, -1282,  1393,
    1775     1394,  1388, -1282,   916, -1282, -1282, -1282,  1880,  1830,  1389,
    1776    -1282,   246,  3896, -1282,   729, -1282,   598,   598,  1399,  1400,
    1777     1404,  1409, -1282, -1282,  8606,  1407, -1282,  1479,  3896,  1395,
    1778    -1282, -1282, 10028, -1282,   757, -1282,  1401, 10116,  1403, -1282,
    1779    -1282,  1416, -1282,  1417, -1282,  1436,  1440, -1282,  1408,  9721,
    1780    -1282, -1282, -1282,   784,   598,  1429,  1411,  1431,  1250,  1250,
    1781    -1282, -1282, -1282, -1282, -1282, 10116,    10, -1282,   370, -1282,
    1782    -1282,  7893, -1282, -1282,  1412, 10287, -1282, 10287,  7893,   216,
    1783     9301,   216,  9301,  1437, -1282,  1438, -1282, -1282,  1434, -1282,
    1784    -1282,   790, -1282, -1282, -1282,  1441,  1442, -1282,  3896,  3896,
    1785    -1282, -1282,   998,    93, -1282, -1282,  1424, -1282,   998, -1282,
    1786    -1282,  2145,   598, -1282, -1282,   216,  9301,   216,  9301,  1446,
    1787     1425,   598, -1282, -1282, -1282, -1282, 10028,  1443,   998,  7969,
    1788    10287,  9940,  1455,   998,  1463,  2145,  3286, -1282, -1282, -1282,
    1789     1465, -1282, -1282, -1282, -1282,  9044, -1282, -1282, -1282,  9807,
    1790    -1282, 10028, -1282, -1282,  1453,  5404, -1282, -1282,  9940,   216,
    1791     3286,   216,  1476,  1478,   831, -1282,  9807, -1282, -1282, -1282,
    1792     5404, -1282, -1282, -1282,   216,   216, -1282, -1282, -1282, -1282,
    1793    -1282, -1282, -1282, -1282
    1794 };
    1795 
    1796 /* YYPGOTO[NTERM-NUM].  */
    1797 static const yytype_int16 yypgoto[] =
    1798 {
    1799    -1282,  4519,  3402, -1282,   393, -1282,   353,   929,  -255,   927,
    1800    -1282,   536,  -524,  -496,  -864,   -86,  4763,     0, -1282,  1012,
    1801      494,   506,   417,   512,  1032,  1034,  1040,  1042,  1039, -1282,
    1802     -348,  -520,  3026,  -967, -1282,  -684,   629,   -16,  -590,   453,
    1803    -1282,   172, -1282,   397, -1192, -1282, -1282,   141, -1282, -1281,
    1804    -1043,   247, -1282, -1282, -1282, -1282,    72, -1149, -1282, -1282,
    1805    -1282, -1282, -1282, -1282,   315,  -843,    50, -1282,  -384, -1282,
    1806      498,   288, -1282,   167, -1282,  -343, -1282, -1282, -1282,   546,
    1807     -651, -1282, -1282,     8, -1002,    97,  1423, -1282, -1282, -1282,
    1808     -125, -1282,    23,  1201,  -202,  1925,  4332, -1282, -1282,    52,
    1809      224,   459,  1086, -1282,  1865, -1282, -1282,    25,  2362, -1282,
    1810     2640,  1529, -1282, -1282, -1282,  -646, -1282,   935,   945,   535,
    1811      718,    78, -1282, -1282, -1282,   934,   722,  -464, -1282,   -94,
    1812      -89,   313, -1282, -1282,  -870,  -942,   -24,  1177,  1054,   368,
    1813    -1282,  1732,   548,  -317,  -213,  -127,   662,   776, -1282,   990,
    1814    -1282,  3077,  1178,  -438,   923, -1282, -1282,   710, -1282,  -234,
    1815    -1282,    99, -1282, -1282, -1282, -1240,   423, -1282, -1282, -1282,
    1816     1170, -1282,   -20, -1282, -1282,  -853,  -105, -1239,  -126,  2286,
    1817    -1282,  2146, -1282,   921, -1282,  -146,    59,  -177,  -171,  -166,
    1818        7,   -40,   -28,   -27,   725,     4,    28,    37,   -63,  -154,
    1819     -151,  -150,  -141,  -271,  -540,  -513,  -508,  -569,  -320,  -517,
    1820    -1282, -1282,  -518,  1092,  1093,  1097,  1371,  5065,  -582,  -555,
    1821     -549,  -535,  -441, -1282,  -497,  -722,  -721,  -701,  -607,  -309,
    1822     -346, -1282, -1282,   185,   133,   -15, -1282,  3702,   -45,  -609,
    1823     -238
    1824 };
    1825 
    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
     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.  */
    18301295static const yytype_int16 yytable[] =
    18311296{
    1832       49,   113,   428,   149,   166,   453,   440,    97,   399,   114,
    1833      766,   267,   143,   844,   400,   150,   151,   740,   628,   401,
    1834      827,  1070,   632,    63,   752,    76,   505,   964,   965,   609,
    1835      566,   402,    49,   826,   403,   404,   596,   868,  1187,    97,
    1836      407,   383,   384,   147,   405,   819,   919,   152,   966,    49,
    1837       50,   820,    69,   794,   725,    63,   161,    76,   730,    96,
    1838      815,   410,   357,   186,   567,   821,   209,   358,   166,    49,
    1839      193,   153,   973,   216,  1177,   669,   226,   219,   604,  1171,
    1840      154,  1379,    50,   818,    69,  1204,  1205,   816,   399,   202,
    1841      260,    96,   817,  1195,   400,   678,   425,    56,   115,   401,
    1842     1178,   327,   148,   682,    31,   113,  1468,   409,    96,   673,
    1843      675,   402,  1302,   113,   403,   404,   266,   271,   122,  1137,
    1844      407,  1443,   189,   408,   405,    96,    31,  1197,    96,    56,
    1845      747,   471,  1178,   106,   106,   475,   477,  -232,  -232,   203,
    1846      342,   280,    31,   948,   986,   149,   307,   147,  1398,  1399,
    1847     1169,  1170,   476,  1196,   161,   113,   345,   150,   151,  1439,
    1848      209,  1245,   830,   210,   436,   106,   220,   373,   837,  1181,
    1849       31,   859,   860,   714,   252,   923,   411,   729,   815,  1458,
    1850      735,  1303,   291,   964,   965,   186,   186,  1198,   877,   152,
    1851      913,   847,   123,   161,   327,   848,   742,   667,   411,   281,
    1852      736,   266,   106,   408,   966,   816,    96,   527,  -232,    49,
    1853      817,   951,   419,   153,   411,  1443,   161,   720,  1400,    96,
    1854     1443,   209,   154,  1069,    70,   149,   436,   173,   443,   168,
    1855     1439,   463,   377,   142,   163,  1077,    31,   150,   151,   307,
    1856     1443,   144,  1016,   804,   398,   189,   931,  1443,   378,   734,
    1857       31,    49,   723,   169,  1080,  1015,    70,   819,    97,   271,
    1858      664,   798,   166,   820,   271,   266,   266,  1199,    96,   253,
    1859       31,   113,   815,   161,    63,   991,    76,   821,   519,   472,
    1860       96,    76,   609,  1171,   146,   853,  1187,  1398,  1399,  1248,
    1861      212,   656,   476,   471,   307,  1003,   556,   557,   163,   816,
    1862      598,    50,  1139,    69,   817,   155,   481,   307,   411,  1525,
    1863       96,   596,  1200,   471,   568,  1093,   596,  1249,   441,   671,
    1864      828,   471,   601,   571,   479,   676,   588,   447,   147,  1536,
    1865      171,   558,   559,  1171,   664,   373,  1540,   994,   898,   357,
    1866      835,   113,   601,   665,   358,   345,   460,   922,    56,   602,
    1867      620,   827,  1526,   870,   111,   642,   342,  1409,  1070,  -467,
    1868     1118,  -467,  1423,   110,   625,   417,   831,   181,   625,   387,
    1869      834,   113,   871,   830,    41,    42,  1424,   819,  -467,  1541,
    1870     1119,   327,   327,   820,   106,   388,  1084,    96,   437,  1186,
    1871      201,   851,   844,   713,   435,   854,   266,   821,   445,   579,
    1872      390,   411,   759,   110,  1169,  1170,   186,   582,   603,   411,
    1873      672,   674,  -289,   373,    41,    42,   391,   665,   392,     8,
    1874        9,    10,    11,    12,   266,   177,   307,   307,  -288,  1496,
    1875      266,  1116,   357,   625,   393,  1501,   714,   358,   985,  1187,
    1876      702,   472,   764,    76,  1325,   442,  1187,   577,    31,   327,
    1877      176,   394,  1171,   578,   113,  1521,   435,   996,   247,  1201,
    1878     1528,   472,   804,    76,  1326,   189,   520,   395,   327,   472,
    1879     1126,    76,   266,   914,   261,    70,    34,   262,   250,   523,
    1880      266,   952,   625,  -516,    49,  1135,  1469,   373,   719,   915,
    1881      519,    97,   163,   252,   113,   519,   357,  1187,   519,   176,
    1882     1470,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
    1883      342,   307,   263,   307,   307,  1029,   110,  1016,  1244,   -10,
    1884      869,   750,  1428,  1429,  1434,   113,   345,    41,    42,   229,
    1885      881,   330,   230,   327,    50,   234,    69,   236,   916,   683,
    1886      704,   910,  -440,    96,   245,   578,   705,   603,   176,   879,
    1887      804,   787,  -441,  1014,   917,  1330,   471,   882,   922,   411,
    1888     1069,     2,   206,     4,     5,     6,     7,  1157,  1159,   493,
    1889      571,   571,   494,    37,   212,   845,   914,    40,   307,   276,
    1890      598,    56,   928,   916,    41,    42,   439,   331,  1126,   625,
    1891      345,  1184,  1081,   913,   620,   714,   278,  1236,  1184,  1082,
    1892      602,   279,   602,   922,   372,   465,  1316,  1185,  1019,  1484,
    1893      812,   176,   601,  1318,  1308,   680,   371,   106,    45,    46,
    1894      625,   110,  1317,   332,   912,   625,    35,   620,    36,  1319,
    1895      333,   625,    41,    42,   625,   625,   625,  1362,  1138,   691,
    1896      483,   706,   806,  1512,   721,  1514,   702,   500,  1027,   731,
    1897      722,   286,   625,   747,   266,   732,   713,  1276,  1277,   814,
    1898     1332,   603,    41,    42,   334,   176,  1014,   376,  1074,  1363,
    1899      110,   229,   176,  -120,   746,  -120,   252,   329,   520,  -120,
    1900      747,    41,    42,   520,   113,   335,   520,   907,   514,  1029,
    1901      596,   523,   385,   523,  -120,  -120,   523,   212,  1360,   523,
    1902     1101,   252,   329,   411,   472,   570,    76,   411,    70,  1112,
    1903      625,   933,   620,    45,    46,   357,   177,   849,   719,   719,
    1904      358,   850,   389,     8,     9,    10,    11,    12,   399,   342,
    1905      472,  1234,    76,   629,   400,  1238,   549,   633,   498,   401,
    1906     1034,   176,   550,   551,   113,   345,   911,   892,   397,   750,
    1907      750,   402,    31,   747,   403,   404,   409,   894,   176,   450,
    1908      980,   407,   176,   747,   405,   702,   981,   993,   711,   922,
    1909      552,   553,  1408,   705,   162,   702,   804,   814,   603,  1232,
    1910       34,  1373,   426,   964,   965,   578,  1356,   427,   194,   702,
    1911     1474,   217,   747,   571,   227,   849,  1357,  1474,   749,  1100,
    1912      411,   625,   747,   625,   966,   999,    45,    46,   625,   345,
    1913     1161,   229,   602,   234,   432,   713,   110,  1359,   139,   238,
    1914      111,   554,   555,   747,   602,   176,  1364,    41,    42,   922,
    1915      922,    37,   747,   183,   184,    40,  -103,   714,   461,  1426,
    1916     -103,   890,    41,    42,   408,  1423,   442,  1348,  1522,   462,
    1917      897,  1349,  -364,   239,   899,  1476,  -393,  1477,   240,   484,
    1918      952,   806,  1425,   504,   952,   952,   291,  1444,   905,   691,
    1919      411,   814,   162,   747,   307,   508,    45,    46,  1436,   513,
    1920      885,   760,   411,   603,   525,   374,   765,   527,   342,   906,
    1921        2,   206,     4,     5,     6,     7,   625,    63,   327,    76,
    1922     1490,   229,   563,   113,   345,   907,  1491,   907,  1182,   562,
    1923     1523,   162,   110,   564,   139,   140,   714,   565,  1141,   113,
    1924      411,   338,   212,    41,    42,   568,    69,   711,  -437,    48,
    1925      112,  1168,   933,   933,   162,   465,   212,   719,  1153,   664,
    1926      411,  1546,   113,   307,   910,   586,   444,   578,  1494,  1436,
    1927     1105,   864,   560,   561,   845,    35,   589,    36,   112,   112,
    1928      932,    48,   601,  1156,  1083,   601,   911,   750,    45,    46,
    1929       -3,    56,    48,   775,   776,   777,   778,  1158,    48,   601,
    1930     1323,   638,   176,   891,  1508,  1241,    48,   411,  1087,   846,
    1931     1087,   657,    48,   702,   702,    48,   603,   658,    48,   345,
    1932      984,   981,  1227,   329,   411,   861,   878,   106,   880,  1369,
    1933     1370,   112,   112,   110,   176,   139,   140,   659,    -3,   876,
    1934      625,   625,   665,   661,    41,    42,   666,   912,   662,   212,
    1935      176,  1418,   981,  1126,   922,    48,   663,    37,    48,  1106,
    1936      307,    40,  1398,  1399,   176,    48,   771,   772,    41,    42,
    1937      922,   702,   702,   374,   737,   243,   738,   713,   927,   739,
    1938      773,   774,   743,   472,   668,    76,   110,  1380,   139,   140,
    1939     1079,  1380,   779,   780,    43,   106,    48,    41,    42,   257,
    1940      113,   692,    45,    46,    48,   907,   419,   660,   411,    48,
    1941      907,   693,  1189,   481,   329,   411,   697,    37,    70,   933,
    1942      500,    40,   987,   695,   691,  -236,   733,   266,    41,    42,
    1943      748,   744,   992,   756,    48,    48,   110,   807,   139,   140,
    1944      922,   922,   625,   808,   867,   176,  1004,    41,    42,   811,
    1945       48,   374,   822,   873,   718,   896,   -12,    56,    48,   828,
    1946      329,   601,    45,    46,   911,   -13,   345,    48,   866,   911,
    1947       48,   893,   213,   726,  1295,  1296,  1297,   112,   727,   895,
    1948      900,   232,  1331,  1333,  1334,   903,   921,  -414,  1459,   711,
    1949     -520,   936,   112,   106,  1284,  1285,   112,  1287,   722,   943,
    1950       48,   112,   945,   956,  1292,  1351,  1294,   957,   271,   113,
    1951      949,   498,   342,   950,    48,    48,   977,   219,   958,  1312,
    1952      959,    48,   116,   213,   960,   961,  -290,   113,    48,   988,
    1953      989,   307,   990,     8,     9,    10,    11,    12,  1005,  1006,
    1954     1007,  1008,  1009,  1203,  1010,   625,   442,  1011,  1022,   113,
    1955     -402,   702,  -401,  1071,    63,   906,    76,  1105,  1036,   702,
    1956      702,   702,    31,  1094,   215,  1095,   213,  1073,   711,  1096,
    1957      159,     2,   206,     4,     5,     6,     7,    48,  1097,  1103,
    1958      242,  1113,  1114,    69,    70,   691,   747,  1117,  1115,  1120,
    1959       34,   971,  1122,  1421,   625,   625,  1123,    48,    48,  1124,
    1960      228,  1534,  1125,   271,  1128,   210,   220,  1131,   307,   176,
    1961     1151,  1176,  1172,  1174,    48,   215,   510,  1173,    48,  1175,
    1962     1190,  1191,  1193,   702,  1194,  1202,   258,   213,    56,   643,
    1963     1121,   472,  1206,    76,   159,    -3,    35,  1207,    36,   547,
    1964      548,   113,   106,  1214,  1219,    48,  1106,  1058,   399,  1105,
    1965     1166,  1167,  1132,  1222,   400,    48,  1132,  1224,   215,   401,
    1966     1189,  1209,  1404,   493,   106,   213,  1228,   323,  1233,  1235,
    1967      213,   402,  1237,    48,   403,   404,   339,   547,  1240,    48,
    1968      407,    48,   106,  1246,   405,   499,  1250,  1252,  1254,  1256,
    1969       37,  1257,   183,   184,    40,  1258,  1507,  1259,   266,  1260,
    1970      441,    41,    42,  1262,   664,    56,  1132,  1269,  1216,  1217,
    1971     1278,  1279,  1286,   547,   625,  1307,   112,  1314,  1289,   215,
    1972     1290,    48,   528,   529,   530,  1320,   430,   185,  1291,    48,
    1973      434,  1322,   212,    48,  1293,    45,    46,    48,  1106,   113,
    1974      112,   106,   112,    57,    57,  1301,   531,  1105,   532,  1324,
    1975      533,   534,   528,   529,   530,    70,   213,   215,  1328,  1329,
    1976      323,   113,   215,   408,  1335,  1336,  1338,  1344,   113,  1345,
    1977      113,  1346,   113,  1347,   106,    57,   531,   112,   532,  1358,
    1978      533,  1305,   112,  1354,   472,   149,    76,   665,  1355,  1367,
    1979      327,   472,   434,    76,  1365,   488,  1366,   150,   151,  1297,
    1980     1374,  1506,  1375,  1376,  1382,  1383,   113,  -403,   113,    57,
    1981     1392,  1393,    57,  1189,  1396,   521,  1192,  1407,  1411,   113,
    1982     1189,  1413,  1415,  1416,  1422,  1506,  1506,   442,   159,  1430,
    1983     1431,   112,    70,   161,  1432,   307,  1106,   213,    48,  1433,
    1984     1417,  1435,   472,  1349,    76,  1440,  1449,  1451,   215,    48,
    1985     1506,    48,  1453,  1445,   213,  1447,  1455,   373,    56,  1462,
    1986     1457,  1464,   587,  1463,  1475,    56,   593,  1485,  1487,  1489,
    1987       48,  1189,   106,  1492,  1493,  1515,  1500,  1516,  1520,   213,
    1988      413,   768,   769,   770,   479,   626,    48,   421,  1337,   630,
    1989     1527,   112,   339,  1529,   106,  1531,  1339,  1340,  1341,   348,
    1990       48,   106,   112,    48,   112,  1537,  1544,    37,  1545,   174,
    1991      175,    40,  1208,   888,   781,   214,    56,   782,    41,    42,
    1992      176,  1132,  1132,  1132,   783,   785,  1130,   784,  1306,   215,
    1993     1495,  1410,  1547,  1368,  1384,  1478,    48,  1213,  1239,   901,
    1994      112,  1479,   112,  1483,   372,  1221,   112,   323,   323,   902,
    1995     1088,   924,   106,  1127,   112,  1482,   800,  1482,   872,   413,
    1996     1385,   703,  1092,  1035,    57,   938,   214,    48,    48,  1102,
    1997        0,   215,  1315,   946,   716,   687,     0,  1511,     0,  1513,
    1998        0,    48,   790,   791,  1058,    70,     0,   792,   116,     0,
    1999        0,  1482,    70,  1482,    57,     8,     9,    10,    11,    12,
    2000      213,     0,     0,     0,     0,     0,     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        0,  -291,   521,   213,   323,   521,  1550,  1551,     8,     9,
    2004       10,    11,    12,    70,     0,   600,   339,   601,     0,     0,
    2005        0,     0,    34,    45,    46,     0,     0,     0,     0,  1132,
    2006     1132,    48,     0,     0,     0,  1420,     0,    31,     0,     0,
    2007      214,     0,     0,    48,     0,     0,     0,  1372,     0,     0,
    2008        0,     0,   141,     8,     9,    10,    11,    12,   972,   413,
    2009      176,     0,   215,   421,   570,    34,   411,  1460,     0,   323,
    2010        0,     0,    45,    46,   213,     0,     0,     0,   214,     0,
    2011      802,     0,    31,   214,     0,     0,   643,     0,   213,     0,
    2012      215,     0,   112,     0,     0,   215,     0,     0,     0,  1397,
    2013        0,     0,  1405,     0,   241,   244,     0,     0,   499,     0,
    2014       34,   843,     0,     0,     0,    48,   593,     0,     0,     0,
    2015        0,     0,   852,     0,    48,  1509,    48,    37,     0,   174,
    2016      175,    40,     0,   112,  1517,     0,     0,   703,    41,    42,
    2017      413,     0,     0,     0,     0,  1442,   348,     0,     0,     0,
    2018     1446,     0,   749,     0,   411,    74,    48,     0,     0,     0,
    2019       45,    46,     0,     0,   376,     0,   215,     0,     0,   214,
    2020        8,     9,    10,    11,    12,   687,   112,     0,  1467,     0,
    2021      215,   213,     0,     0,     0,     0,     0,    74,     0,     0,
    2022      643,     0,    37,     0,   183,   184,    40,    57,   112,    31,
    2023        0,     0,   112,    41,    42,     0,   129,     0,   130,   131,
    2024      132,     0,     0,   488,     0,    66,   117,    41,    42,     0,
    2025        0,     0,     0,     0,   222,     0,     0,    34,     0,   265,
    2026        0,   576,   576,     0,     0,   339,     0,    45,    46,   348,
    2027        0,     0,    37,     0,   174,   175,    40,    66,     0,     0,
    2028      214,     0,   112,    41,    42,     0,   703,     0,     0,     0,
    2029        0,     0,  1535,     0,   160,   457,   703,     0,  1535,   932,
    2030        0,   601,     0,   215,     0,     0,     0,    45,    46,  1535,
    2031      703,     0,     0,  1535,   221,     0,     0,     0,     0,     0,
    2032      112,     0,   214,     0,   995,     0,     0,     0,     0,   802,
    2033        0,   547,     0,   348,    48,     0,     0,     0,     0,    48,
    2034        0,   353,     0,    37,     0,   183,   184,    40,   883,     0,
    2035      259,     0,   886,     0,    41,    42,    48,     0,     0,     0,
    2036        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2037        0,     0,   510,     0,     0,     0,     0,   348,   348,   348,
    2038      905,     0,   411,     0,     0,     0,     0,     0,    45,    46,
    2039       31,     0,   328,     0,     0,   348,     0,     0,     0,     0,
    2040      259,   350,     0,     0,     0,     0,     0,     0,   213,     0,
    2041        0,     0,     0,     0,     0,   449,     0,   802,    34,     0,
    2042        0,     0,     0,    37,   339,   183,   184,    40,     0,     0,
    2043        0,   406,   644,   112,    41,    42,    74,     0,     0,     0,
    2044      687,    74,     0,   214,     0,     0,   424,     0,     0,   429,
    2045      431,     0,     0,   348,   160,     0,    48,     0,     0,     0,
    2046      185,     0,   488,  1107,   323,     0,     0,     0,    45,    46,
    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,     0,     0,     0,     0,     0,     0,     0,
    2051        0,   480,     0,     0,   703,   703,     0,     0,     0,   431,
    2052      843,   535,   536,   537,   538,   539,   540,   541,   542,   543,
    2053      544,     8,     9,    10,    11,    12,   222,    37,     0,   183,
    2054      184,    40,     0,   724,   348,   728,     0,   214,    41,    42,
    2055        0,     0,   348,     0,     0,   545,     0,     0,     0,     0,
    2056       31,   214,     0,     0,   126,     0,   126,     0,     0,     0,
    2057        0,     0,   703,   703,  1505,     0,   411,     0,     0,     0,
    2058        0,     0,    45,    46,     0,     0,   259,     0,    34,     0,
    2059      594,   275,     0,    37,   213,     0,   622,    40,     0,     0,
    2060        0,   687,   413,    74,    41,    42,     0,     0,     0,   627,
    2061        0,     0,     0,   627,     0,     0,   259,    57,   353,     0,
    2062        0,     0,     0,    74,     0,     0,    48,    48,     0,     0,
    2063       43,    74,   124,   127,   128,   112,   112,     0,    45,    46,
    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     1313,     0,     0,     0,     0,     0,     0,   712,   339,    66,
    2073       48,   112,     0,     0,   126,     0,     0,   431,     0,     0,
    2074      112,   431,     0,   918,     0,   920,     0,     0,     0,   457,
    2075     1107,   223,   703,     0,    48,    48,     0,     0,     0,     0,
    2076      703,   703,   703,   348,   348,     0,     0,     0,     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,   703,     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,   718,     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,
     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,
    21091558       0,     0,     0,     0,     0,     0,     0,     0,     0,     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,     0,     0,     0,     0,     0,     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,     0,   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,     0,
    2123        0,     0,     0,     0,     0,     0,  1282,     0,     0,     0,
    2124        0,     0,    57,     0,   594,     0,     0,     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,     0,   355,     0,     0,     0,     0,     0,     0,     0,
    2128        0,     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,
     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,
    21341603       0,     0,     0,     0,     0,     0,     0,     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      600,     0,   601,     0,     0,     0,   117,     0,    45,    46,
    2157        0,     0,   698,     0,   905,     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,  1505,     0,   411,     0,     0,
    2172        0,     0,    77,    45,    46,     0,   382,     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,
    21731620       0,     0,     0,     0,     0,     0,     0,     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,
     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,
    21801624       0,     0,     0,     0,     0,     0,     0,     0,     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,
     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,
     1640       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,
     1653      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,
     1717       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,
     1726       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,
    21961761       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,
    2201        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     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,
    22021781      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2203        0,   363,   363,   363,     0,   356,   356,     0,     0,     0,
    2204        0,    31,     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,    34,
    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,
     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,
    22461794       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,
     1795       0,     0,     0,   630,   862,     0,   340,     0,     0,     0,
     1796       0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
     1797       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,
     1812       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,
    22551899     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    22561900     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,
    22631901       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,
     1902       0,     0,     0,   294,     0,  1054,     0,     0,   171,     0,
     1903       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,
    22741907       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,
     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,
    22801913      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,
    2349       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    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,
    2369        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
    2374        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
     1914      25,     0,     0,    26,    27,    28,    29,     0,     0,    30,
     1915     282,   283,    31,   284,     8,     9,    10,    11,    12,    13,
    23921916      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,
    2427       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2428        0,   803,    26,    27,    28,     0,     0,     0,   341,   364,
    2429      414,    31,   414,  1486,     0,  1488,   414,  1229,     0,     0,
    2430        0,     0,     0,     0,     0,     0,     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,
    2434        0,     0,     0,     0,     0,     0,     0,     0,     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,
     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,
    24421927       2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    24431928      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    24441929      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,
     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,
    24491934      38,    39,   287,     0,     0,   288,   289,   290,   291,    41,
    2450       42,     0,   292,   293,     0,     0,     0,   803,   414,  1243,
    2451        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
     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,
     1939     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     1940      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,
     1946      39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     1947       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,
    24561958     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    24571959     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2458        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2459        0,     0,   341,   294,     0,   641,     0,   642,   380,     0,
    2460        0,    45,    46,   296,   297,   298,   299,     0,     0,     0,
    2461      364,     0,     0,     0,     0,     0,     0,     0,     1,     2,
    2462      206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2463       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    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,
    2469       39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2470        0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    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,
     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,
    24921975       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    24931976      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    24941977       0,     0,    26,    27,    28,     0,     0,     0,     0,   282,
    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,
     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,
    24991982       0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    25001983       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2501       34,     0,     0,     0,     0,   110,     0,    38,    39,     0,
    2502        0,   294,     0,   343,     0,     0,    41,    42,   757,   344,
     1984       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1985       0,   294,     0,   342,     0,     0,     0,     0,     0,   343,
    25031986      46,   296,   297,   298,   299,     2,   206,     4,     5,     6,
    25041987       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    25051988      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    25061989       0,    26,    27,    28,     0,     0,     0,     0,   282,   283,
    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,
     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,
    25111994     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    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,
     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,
    25151998     296,   297,   298,   299,     2,   206,     4,     5,     6,     7,
    25161999       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    25172000      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    25182001      26,    27,    28,     0,     0,     0,     0,   282,   283,    31,
    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,
     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,
    25232006     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    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,
     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,
    25272010     297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
    25282011       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     
    25322015       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25332016       0,     0,     0,     0,     0,   285,    34,     0,    35,     0,
    2534       36,   286,     0,    38,    39,   287,     0,     0,   288,   289,
     2017      36,   286,     0,   207,    39,   287,     0,     0,   288,   289,
    25352018     290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
    25362019       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25372020       0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2538      343,     0,     0,     0,     0,     0,   344,    46,   296,   297,
    2539      298,   299,     2,   206,     4,     5,     6,     7,     8,     9,
     2021     378,     0,     0,     0,     0,     0,    45,    46,   296,   297,
     2022     298,   299,  -514,     0,     0,     1,     2,     3,     4,     5,
     2023       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2024      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,
     2027       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,
    25402035      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    25412036      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2542       28,     0,     0,     0,     0,   282,   283,    31,   284,     0,
     2037      28,    29,     0,     0,    30,     0,     0,    31,    32,     0,
    25432038       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25442039       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,
     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,
    25482043       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,
     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,
    25552061       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25562062       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,
    2637        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2638       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2639        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2640       44,    31,     0,     0,     0,     0,    45,    46,     0,     0,
    2641        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2642        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2643        0,    35,     0,    36,     0,     0,   207,    39,     0,     2,
     2063       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2064       0,    36,     0,     0,    38,    39,     0,     0,  -291,     2,
    26442065     206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    26452066      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26462067      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2647        0,     0,     0,   208,    31,     0,     0,     0,     0,    45,
    2648       46,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2068       0,    44,     0,     0,    31,     0,     0,    45,    46,     0,
     2069       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26492070       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26502071       0,     0,    34,     0,    35,     0,    36,    37,     0,   207,
     
    26642085      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    26652086      25,    34,     0,    26,    27,    28,     0,     0,    38,    39,
    2666     -399,   677,    31,     0,     0,     0,     0,    45,    46,     0,
     2087    -398,   676,    31,     0,     0,     0,     0,    45,    46,     0,
    26672088       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26682089       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2669       34,     0,    35,     0,    36,   157,     0,    38,    39,     0,
     2090      34,     0,    35,   633,    36,   337,     0,    38,    39,     0,
    26702091       0,    45,    46,     0,     0,     0,     0,     0,     0,     0,
    2671        0,     0,     0,     0,     0,     0,     0,     0,     0,  1350,
     2092       0,     0,     0,     0,     0,     0,     0,     0,     0,  1349,
    26722093       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2673        0,     0,     0,     0,   677,     0,     0,     0,     0,     0,
     2094       0,     0,     0,     0,   676,     0,     0,     0,     0,     0,
    26742095      45,    46,     2,   206,     4,     5,     6,     7,     8,     9,
    26752096      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     
    26792100      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    26802101       0,    26,    27,    28,     0,    34,     0,    35,     0,    36,
    2681       31,   684,    38,    39,     0,     0,     0,     0,     0,     0,
     2102      31,   683,    38,    39,     0,     0,     0,     0,     0,     0,
    26822103       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2683        0,     0,     0,     0,  1352,     0,     0,     0,    34,     0,
    2684        0,     0,     0,     0,     0,    38,    39,     0,     0,   677,
     2104       0,     0,     0,     0,  1351,     0,     0,     0,    34,     0,
     2105       0,     0,     0,     0,     0,    38,    39,     0,     0,   676,
    26852106       0,     0,     0,     0,     0,    45,    46,     2,   206,     4,
    26862107       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    26872108      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2688       25,     0,   685,    26,    27,    28,  1091,     0,    45,    46,
     2109      25,     0,   684,    26,    27,    28,   685,     0,    45,    46,
    26892110       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    26902111       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    27012122       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    27022123      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2703       27,    28,     0,     0,     0,     0,     0,   677,    31,     0,
     2124      27,    28,     0,     0,     0,     0,     0,   676,    31,     0,
    27042125       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    27052126       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    27092130      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    27102131       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2711      592,    31,     0,     0,     0,     0,    45,    46,     0,     0,
     2132     591,    31,     0,     0,     0,     0,    45,    46,     0,     0,
    27122133       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    27132134       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     
    27222143     291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    27232144       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2724        0,     0,     0,     0,     0,     0,     0,   294,     0,   517,
     2145       0,     0,     0,     0,     0,     0,     0,   294,     0,   516,
    27252146       0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
    27262147     299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     
    27302151      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    27312152       0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
    2732        0,    31,   684,   286,     0,    38,    39,   287,     0,     0,
     2153       0,    31,     0,   286,     0,    38,    39,   287,     0,     0,
    27332154     288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    27342155       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2735        0,     0,     0,     0,     0,     0,    38,    39,     0,     0,
    2736      294,   -36,   295,     0,     0,     0,     0,     0,    45,    46,
     2156       0,     0,     0,     0,    37,     0,   335,   336,    40,     0,
     2157     294,   -35,   295,     0,     0,    41,    42,     0,    45,    46,
    27372158     296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
    27382159      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2739       24,    25,     0,   685,    26,    27,    28,  1220,     0,    45,
     2160      24,    25,     0,   337,    26,    27,    28,     0,     0,    45,
    27402161      46,   282,   283,    31,   284,     8,     9,    10,    11,    12,
    27412162      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    27442165     287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    27452166     292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2746        0,     0,    34,     0,     0,     0,     0,     0,     0,   207,
    2747       39,     0,     0,   294,     0,   295,     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,
    27482169       0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
    27492170      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2750       21,    22,    23,    24,    25,     0,   270,    26,    27,    28,
     2171      21,    22,    23,    24,    25,     0,    44,    26,    27,    28,
    27512172       0,     0,    45,    46,   282,   283,    31,   284,     8,     9,
    27522173      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    27532174      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2754       28,     0,     0,   285,    34,     0,     0,    31,     0,   286,
     2175      28,     0,     0,   285,    34,     0,     0,    31,   683,   286,
    27552176       0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    27562177      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     
    27592180       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
    27602181       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2761       18,    19,    20,    21,    22,    23,    24,    25,     0,   338,
    2762       26,    27,    28,     0,     0,    45,    46,   282,   283,    31,
     2182      18,    19,    20,    21,    22,    23,    24,    25,     0,   684,
     2183      26,    27,    28,  1090,     0,    45,    46,   282,   283,    31,
    27632184     284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    27642185      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    27652186       0,    26,    27,    28,     0,     0,   285,    34,     0,     0,
    2766       31,     0,   286,     0,    38,    39,   287,     0,     0,   288,
     2187      31,   683,   286,     0,    38,    39,   287,     0,     0,   288,
    27672188     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    27682189       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    27692190       0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
    2770        0,   592,     0,     0,     0,     0,     0,    45,    46,   296,
     2191       0,   591,     0,     0,     0,     0,     0,    45,    46,   296,
    27712192     297,   298,   299,     8,     9,    10,    11,    12,    13,    14,
    27722193      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    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,
     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,
    27792200     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,
     2207      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,
     2235      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,
    27802246       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,
     2247       0,     0,     0,   257,     0,    38,    39,     0,     0,    45,
     2248      46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2249      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,
     2259       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,
     2281       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2282       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,
     2288       0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
     2289      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,
    27832303       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    27842304      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,
    2791       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    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,
    2795       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    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,
    2805       46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2806       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2807        0,    26,    27,    28,     0,    34,     0,     0,     0,   634,
    2808       31,   338,    38,    39,     0,     0,  -292,    45,    46,     0,
     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,
    28092312       0,     0,     0,     0,     0,     0,     0,     0,     0,     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,
     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,
    28222321       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,
    2844        0,     0,     0,     0,     0,     0,     0,     0,     0,     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,
    2851        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2852       42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    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,
     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,
    28572328       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    28582329     293,     0,     0,     0,     0,     0,     0,   282,   283,     0,
    28592330     284,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2860        0,     0,   294,     0,   379,     0,     0,     0,     0,   757,
     2331       0,     0,   294,     0,   378,     0,     0,   171,     0,     0,
    28612332      45,    46,   296,   297,   298,   299,   285,     0,     0,     0,
    2862        0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
     2333    1055,     0,   286,     0,     0,     0,   287,     0,     0,   288,
    28632334     289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    28642335       0,     0,     0,     0,   282,   283,     0,   284,     0,     0,
    28652336       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
    2866        0,   379,     0,     0,   971,     0,     0,    45,    46,   296,
     2337       0,   378,     0,     0,   970,     0,     0,    45,    46,   296,
    28672338     297,   298,   299,   285,     0,     0,     0,     0,     0,   286,
    28682339       0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    28692340      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    28702341       0,   282,   283,     0,   284,     0,     0,     0,     0,     0,
    2871        0,     0,     0,     0,     0,     0,   294,     0,   379,     0,
     2342       0,     0,     0,     0,     0,     0,   294,     0,   378,     0,
    28722343     282,   283,     0,   284,    45,    46,   296,   297,   298,   299,
    28732344     285,     0,     0,     0,     0,     0,   286,     0,     0,     0,
     
    28752346     292,   293,     0,     0,     0,   286,     0,     0,     0,   287,
    28762347       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    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,
     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,
    28812352       0,     0,   286,     0,     0,     0,   287,     0,     0,   288,
    2882      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
     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,
    28832362       0,     0,     0,     0,     0,     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,
     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,
    28902369       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28912370       0,     0,     0,     0,     0,     0,     0,     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,
     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,
    29062377       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    29072378       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
     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,
    29132384       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    29142385       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2915        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2916      207,    39
     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
    29172395};
    2918 
    2919 #define yypact_value_is_default(yystate) \
    2920   ((yystate) == (-1282))
    2921 
    2922 #define yytable_value_is_error(yytable_value) \
    2923   YYID (0)
    29242396
    29252397static const yytype_int16 yycheck[] =
    29262398{
    2927        0,     1,   204,    43,    49,   239,   219,     0,   185,     1,
    2928      534,   116,    32,   620,   185,    43,    43,   513,   364,   185,
    2929      602,   874,   368,     0,   521,     0,   281,   749,   749,   349,
    2930       95,   185,    32,   602,   185,   185,   345,   646,  1040,    32,
    2931      186,   168,   169,    43,   185,   600,   692,    43,   749,    49,
    2932        0,   600,     0,   571,   492,    32,    49,    32,   496,     0,
    2933      600,   187,   156,    63,   129,   600,    66,   156,   113,    69,
    2934       63,    43,   756,    66,    96,   418,    69,    69,   349,  1021,
    2935       43,  1321,    32,   600,    32,  1052,  1053,   600,   265,    28,
    2936      105,    32,   600,    72,   265,   438,   201,     0,     1,   265,
    2937      122,   146,    43,   446,    39,   105,    96,    64,    49,   426,
    2938      427,   265,    63,   113,   265,   265,   116,   117,    82,   983,
    2939      266,  1402,    63,   186,   265,    66,    39,    72,    69,    32,
    2940      116,   256,   122,     0,     1,   261,   262,    44,    45,    78,
    2941      155,    51,    39,   733,   130,   185,   146,   147,    44,    45,
    2942     1020,  1021,   109,   132,   147,   155,   156,   185,   185,  1398,
    2943      160,  1128,   603,    66,   209,    32,    69,   160,   609,  1033,
    2944       39,   635,   636,   482,   109,   695,   111,   494,   718,  1419,
    2945      110,   132,    82,   905,   905,   185,   186,   132,   652,   185,
    2946      687,   112,   109,   186,   239,   116,   513,   410,   111,   109,
    2947      130,   201,    69,   266,   905,   718,   147,    82,   115,   209,
    2948      718,   111,   109,   185,   111,  1496,   209,   488,   114,   160,
    2949     1501,   221,   185,   874,     0,   265,   271,    55,   221,   107,
    2950     1469,   251,   116,   109,    49,   110,    39,   265,   265,   239,
    2951     1521,    11,   824,   589,   185,   186,   710,  1528,   132,   504,
    2952       39,   251,   490,   131,   900,   824,    32,   812,   251,   259,
    2953      406,   578,   307,   812,   264,   265,   266,    72,   209,    97,
    2954       39,   271,   812,   266,   251,   793,   251,   812,   294,   256,
    2955      221,   256,   602,  1225,   109,   631,  1288,    44,    45,    85,
    2956       66,   396,   109,   418,   294,   812,    90,    91,   113,   812,
    2957      345,   251,   986,   251,   812,   112,   109,   307,   111,  1501,
    2958      251,   620,   117,   438,   131,   924,   625,   113,   221,   424,
    2959      109,   446,   111,   323,   265,   430,   341,   228,   328,  1521,
    2960      114,   125,   126,  1275,   480,   328,  1528,   801,   681,   433,
    2961      109,   341,   111,   406,   433,   345,   247,   695,   251,   349,
    2962      350,   933,  1501,   111,     1,   113,   371,   114,  1211,   111,
    2963      110,   113,   116,    72,   364,   193,   604,   116,   368,   116,
    2964      608,   371,   130,   814,    83,    84,   130,   932,   130,  1528,
    2965      130,   426,   427,   932,   251,   132,   906,   328,   216,  1040,
    2966        3,   629,   999,   482,   209,   633,   396,   932,   226,   109,
    2967      116,   111,   111,    72,  1274,  1275,   406,   109,   349,   111,
    2968      426,   427,     3,   406,    83,    84,   132,   480,   116,    10,
    2969       11,    12,    13,    14,   424,    57,   426,   427,     3,  1472,
    2970      430,   951,   526,   433,   132,  1478,   745,   526,   786,  1441,
    2971      464,   418,   111,   418,   110,   221,  1448,   110,    39,   494,
    2972       57,   116,  1394,   116,   454,  1498,   271,   803,   116,  1049,
    2973     1503,   438,   808,   438,   130,   406,   294,   132,   513,   446,
    2974      967,   446,   472,   116,   106,   251,    67,   109,     0,   294,
    2975      480,   736,   482,     0,   484,   981,   116,   480,   488,   132,
    2976      506,   484,   307,   109,   494,   511,   590,  1499,   514,   106,
    2977      130,   590,   109,   941,   824,   482,   506,   484,   508,   484,
    2978      525,   511,   131,   513,   514,   863,    72,  1099,  1127,   109,
    2979      647,   521,  1386,  1387,  1394,   525,   526,    83,    84,    70,
    2980      656,   110,    73,   578,   484,    76,   484,    78,   116,   110,
    2981      110,   687,   109,   484,    85,   116,   116,   488,   155,   654,
    2982      896,   567,   109,   824,   132,   111,   681,   109,   906,   111,
    2983     1211,     4,     5,     6,     7,     8,     9,  1008,  1009,   128,
    2984      570,   571,   131,    72,   350,   620,   116,    76,   578,   109,
    2985      625,   484,   707,   116,    83,    84,   218,   110,  1085,   589,
    2986      590,   116,   132,  1090,   594,   904,   109,  1117,   116,   132,
    2987      600,   109,   602,   951,   109,   252,   116,   132,   846,  1452,
    2988      109,   218,   111,   116,   132,   443,   112,   484,   117,   118,
    2989      620,    72,   132,   110,   687,   625,    69,   627,    71,   132,
    2990      110,   631,    83,    84,   634,   635,   636,  1288,   986,   454,
    2991      272,   469,   590,  1486,   110,  1488,   670,   279,   861,   110,
    2992      116,    72,   652,   116,   654,   116,   745,  1177,  1178,   600,
    2993      111,   602,    83,    84,   110,   272,   937,   109,   881,   132,
    2994       72,   212,   279,   110,   110,   112,   109,   110,   506,   116,
    2995      116,    83,    84,   511,   684,   110,   514,   687,   109,  1037,
    2996      999,   506,   115,   508,   131,   132,   511,   473,  1288,   514,
    2997      938,   109,   110,   111,   681,   109,   681,   111,   484,   943,
    2998      710,   711,   712,   117,   118,   809,   348,   112,   718,   719,
    2999      809,   116,   109,    10,    11,    12,    13,    14,   905,   744,
    3000      707,  1115,   707,   365,   905,  1119,   117,   369,   279,   905,
    3001      867,   348,   123,   124,   744,   745,   687,   110,   132,   749,
    3002      750,   905,    39,   116,   905,   905,    64,   110,   365,   132,
    3003      110,   907,   369,   116,   905,   789,   116,   110,   745,  1117,
    3004      119,   120,  1362,   116,    49,   799,  1122,   718,   719,   110,
    3005       67,  1305,   109,  1505,  1505,   116,   110,   109,    63,   813,
    3006     1441,    66,   116,   793,    69,   112,   110,  1448,   109,   116,
    3007      111,   801,   116,   803,  1505,   805,   117,   118,   808,   809,
    3008     1012,   352,   812,   354,   112,   904,    72,   110,    74,    75,
    3009      467,    88,    89,   116,   824,   432,   110,    83,    84,  1177,
    3010     1178,    72,   116,    74,    75,    76,   112,  1146,   132,   110,
    3011      116,   669,    83,    84,   907,   116,   622,   112,  1499,   132,
    3012      678,   116,   114,   109,   682,  1445,   114,  1447,   114,   114,
    3013     1115,   809,  1382,   109,  1119,  1120,    82,   110,   109,   684,
    3014      111,   812,   147,   116,   874,   109,   117,   118,  1398,   109,
    3015      109,   528,   111,   824,   112,   160,   533,    82,   903,   130,
    3016        4,     5,     6,     7,     8,     9,   896,   874,   943,   874,
    3017      110,   442,   127,   903,   904,   905,   116,   907,  1035,   118,
    3018     1500,   186,    72,   128,    74,    75,  1225,    94,   109,   919,
    3019      111,   111,   698,    83,    84,   131,   874,   904,   109,     0,
    3020        1,  1020,   932,   933,   209,   582,   712,   937,   109,  1085,
    3021      111,   110,   942,   943,  1090,   109,   221,   116,  1468,  1469,
    3022      942,   111,    92,    93,   999,    69,   112,    71,    29,    30,
    3023      109,    32,   111,   109,   905,   111,   907,   967,   117,   118,
    3024      112,   874,    43,   556,   557,   558,   559,   109,    49,   111,
    3025     1235,   112,   589,   670,  1481,   109,    57,   111,   910,   621,
    3026      912,   110,    63,  1017,  1018,    66,   937,   110,    69,   999,
    3027      115,   116,  1107,   110,   111,   637,   653,   874,   655,    58,
    3028       59,    82,    83,    72,   621,    74,    75,   110,   132,   651,
    3029     1020,  1021,  1085,   110,    83,    84,   109,  1090,   110,   805,
    3030      637,   115,   116,  1530,  1382,   106,   110,    72,   109,   942,
    3031     1040,    76,    44,    45,   651,   116,   552,   553,    83,    84,
    3032     1398,  1075,  1076,   328,   506,   114,   508,  1146,   705,   511,
    3033      554,   555,   514,  1040,   112,  1040,    72,  1322,    74,    75,
    3034      898,  1326,   560,   561,   109,   942,   147,    83,    84,   111,
    3035     1080,   114,   117,   118,   155,  1085,   109,   110,   111,   160,
    3036     1090,   116,  1040,   109,   110,   111,   114,    72,   874,  1099,
    3037      732,    76,   789,   131,   919,   114,   109,  1107,    83,    84,
    3038      110,   112,   799,   110,   185,   186,    72,   112,    74,    75,
    3039     1468,  1469,  1122,   112,   116,   732,   813,    83,    84,   112,
    3040      201,   406,   112,    29,   109,   112,   130,  1040,   209,   109,
    3041      110,   111,   117,   118,  1085,   130,  1146,   218,   130,  1090,
    3042      221,   110,    66,   109,    58,    59,    60,   228,   114,   110,
    3043      114,    75,  1248,  1249,  1250,   112,   115,   110,  1423,  1146,
    3044      115,   115,   243,  1040,  1190,  1191,   247,  1193,   116,   109,
    3045      251,   252,   110,   110,  1200,  1274,  1202,   116,  1188,  1189,
    3046      130,   732,  1207,   132,   265,   266,   116,  1189,   110,  1223,
    3047      110,   272,     1,   117,   110,   110,     3,  1207,   279,   110,
    3048      110,  1211,   110,    10,    11,    12,    13,    14,   110,   110,
    3049      110,   110,   110,  1051,   110,  1225,  1002,   110,   110,  1229,
    3050      110,  1255,   110,    29,  1211,   130,  1211,  1229,   115,  1263,
    3051     1264,  1265,    39,   110,    66,   116,   160,   131,  1225,   112,
    3052       49,     4,     5,     6,     7,     8,     9,   328,   112,   110,
    3053       82,   110,   110,  1211,  1040,  1080,   116,   109,   130,   116,
    3054       67,   114,   112,  1378,  1274,  1275,   110,   348,   349,   110,
    3055       33,  1515,   110,  1283,   116,  1188,  1189,   112,  1288,   896,
    3056      110,   112,   116,   110,   365,   117,   284,   116,   369,   110,
    3057      109,   109,   109,  1327,   109,   109,   105,   221,  1211,   380,
    3058      957,  1288,   130,  1288,   113,   115,    69,   112,    71,   307,
    3059      308,  1321,  1189,   110,   110,   396,  1229,   874,  1505,  1321,
    3060     1017,  1018,   979,   115,  1505,   406,   983,   110,   160,  1505,
    3061     1288,   132,  1358,   128,  1211,   259,   115,   146,   114,   112,
    3062      264,  1505,   132,   424,  1505,  1505,   155,   345,   110,   430,
    3063     1506,   432,  1229,   112,  1505,   279,   116,   112,   110,   110,
    3064       72,   110,    74,    75,    76,   112,  1481,   112,  1378,   112,
    3065     1283,    83,    84,   110,  1530,  1288,  1033,   112,  1075,  1076,
    3066      112,   112,    47,   381,  1394,   115,   467,   110,   132,   221,
    3067      132,   472,    85,    86,    87,   115,   205,   109,   132,   480,
    3068      209,   130,  1188,   484,   132,   117,   118,   488,  1321,  1419,
    3069      491,  1288,   493,     0,     1,   132,   109,  1419,   111,   110,
    3070      113,   114,    85,    86,    87,  1211,   350,   259,   115,   112,
    3071      239,  1441,   264,  1506,   112,   112,   112,   112,  1448,   112,
    3072     1450,   110,  1452,   110,  1321,    32,   109,   528,   111,   109,
    3073      113,   114,   533,   112,  1441,  1505,  1441,  1530,   112,  1297,
    3074     1515,  1448,   271,  1448,   109,   274,   109,  1505,  1505,    60,
    3075      110,  1481,   110,   114,   109,   132,  1486,   110,  1488,    66,
    3076      112,   112,    69,  1441,   112,   294,  1043,   110,    96,  1499,
    3077     1448,    96,   109,   109,   115,  1505,  1506,  1283,   307,   110,
    3078      110,   582,  1288,  1506,   110,  1515,  1419,   431,   589,   110,
    3079      132,    42,  1499,   116,  1499,   130,   110,   110,   350,   600,
    3080     1530,   602,    96,   132,   448,   132,    96,  1530,  1441,   110,
    3081      132,   110,   341,   132,   132,  1448,   345,   110,   110,   115,
    3082      621,  1499,  1419,   112,   112,   109,   132,   132,   115,   473,
    3083      189,   549,   550,   551,  1505,   364,   637,   196,  1255,   368,
    3084      115,   642,   371,   110,  1441,   110,  1263,  1264,  1265,   156,
    3085      651,  1448,   653,   654,   655,   132,   110,    72,   110,    74,
    3086       75,    76,  1056,   666,   562,    66,  1499,   563,    83,    84,
    3087     1207,  1248,  1249,  1250,   564,   566,   977,   565,  1211,   431,
    3088     1469,  1364,  1540,  1298,  1326,  1448,   687,  1071,  1120,   684,
    3089      691,  1449,   693,  1451,   109,  1090,   697,   426,   427,   684,
    3090      912,   697,  1499,   971,   705,  1450,   582,  1452,   648,   268,
    3091     1327,   464,   920,   867,   221,   722,   117,   718,   719,   939,
    3092       -1,   473,  1229,   732,   484,   454,    -1,  1485,    -1,  1487,
    3093       -1,   732,   570,   570,  1211,  1441,    -1,   570,   467,    -1,
    3094       -1,  1486,  1448,  1488,   251,    10,    11,    12,    13,    14,
    3095      594,    -1,    -1,    -1,    -1,    -1,    -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       -1,     3,   511,   627,   513,   514,  1544,  1545,    10,    11,
    3099       12,    13,    14,  1499,    -1,   109,   525,   111,    -1,    -1,
    3100       -1,    -1,    67,   117,   118,    -1,    -1,    -1,    -1,  1386,
    3101     1387,   812,    -1,    -1,    -1,  1377,    -1,    39,    -1,    -1,
    3102      221,    -1,    -1,   824,    -1,    -1,    -1,  1304,    -1,    -1,
    3103       -1,    -1,    30,    10,    11,    12,    13,    14,   756,   398,
    3104     1377,    -1,   594,   402,   109,    67,   111,  1424,    -1,   578,
    3105       -1,    -1,   117,   118,   698,    -1,    -1,    -1,   259,    -1,
    3106      589,    -1,    39,   264,    -1,    -1,   867,    -1,   712,    -1,
    3107      622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,  1356,
    3108       -1,    -1,  1359,    -1,    82,    83,    -1,    -1,   732,    -1,
    3109       67,   620,    -1,    -1,    -1,   896,   625,    -1,    -1,    -1,
    3110       -1,    -1,   631,    -1,   905,  1482,   907,    72,    -1,    74,
    3111       75,    76,    -1,   914,  1491,    -1,    -1,   670,    83,    84,
    3112      479,    -1,    -1,    -1,    -1,  1402,   433,    -1,    -1,    -1,
    3113     1407,    -1,   109,    -1,   111,     0,   937,    -1,    -1,    -1,
    3114      117,   118,    -1,    -1,   109,    -1,   698,    -1,    -1,   350,
    3115       10,    11,    12,    13,    14,   684,   957,    -1,  1435,    -1,
    3116      712,   805,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
    3117      971,    -1,    72,    -1,    74,    75,    76,   484,   979,    39,
    3118       -1,    -1,   983,    83,    84,    -1,    72,    -1,    74,    75,
    3119       76,    -1,    -1,   722,    -1,     0,     1,    83,    84,    -1,
    3120       -1,    -1,    -1,    -1,    69,    -1,    -1,    67,    -1,   109,
    3121       -1,   570,   571,    -1,    -1,   744,    -1,   117,   118,   526,
    3122       -1,    -1,    72,    -1,    74,    75,    76,    32,    -1,    -1,
    3123      431,    -1,  1033,    83,    84,    -1,   789,    -1,    -1,    -1,
    3124       -1,    -1,  1519,    -1,    49,   243,   799,    -1,  1525,   109,
    3125       -1,   111,    -1,   805,    -1,    -1,    -1,   117,   118,  1536,
    3126      813,    -1,    -1,  1540,    69,    -1,    -1,    -1,    -1,    -1,
    3127     1071,    -1,   473,    -1,   803,    -1,    -1,    -1,    -1,   808,
    3128       -1,   999,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
    3129       -1,   156,    -1,    72,    -1,    74,    75,    76,   657,    -1,
    3130      105,    -1,   661,    -1,    83,    84,  1107,    -1,    -1,    -1,
    3131       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3132       -1,    -1,  1040,    -1,    -1,    -1,    -1,   634,   635,   636,
    3133      109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    3134       39,    -1,   147,    -1,    -1,   652,    -1,    -1,    -1,    -1,
    3135      155,   156,    -1,    -1,    -1,    -1,    -1,    -1,  1002,    -1,
    3136       -1,    -1,    -1,    -1,    -1,   230,    -1,   896,    67,    -1,
    3137       -1,    -1,    -1,    72,   903,    74,    75,    76,    -1,    -1,
    3138       -1,   186,   380,  1184,    83,    84,   251,    -1,    -1,    -1,
    3139      919,   256,    -1,   594,    -1,    -1,   201,    -1,    -1,   204,
    3140      205,    -1,    -1,   710,   209,    -1,  1207,    -1,    -1,    -1,
    3141      109,    -1,   941,   942,   943,    -1,    -1,    -1,   117,   118,
    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,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3146       -1,   266,    -1,    -1,  1017,  1018,    -1,    -1,    -1,   274,
    3147      999,    97,    98,    99,   100,   101,   102,   103,   104,   105,
    3148      106,    10,    11,    12,    13,    14,   351,    72,    -1,    74,
    3149       75,    76,    -1,   491,   801,   493,    -1,   698,    83,    84,
    3150       -1,    -1,   809,    -1,    -1,   131,    -1,    -1,    -1,    -1,
    3151       39,   712,    -1,    -1,    98,    -1,   100,    -1,    -1,    -1,
    3152       -1,    -1,  1075,  1076,   109,    -1,   111,    -1,    -1,    -1,
    3153       -1,    -1,   117,   118,    -1,    -1,   341,    -1,    67,    -1,
    3154      345,   125,    -1,    72,  1188,    -1,   351,    76,    -1,    -1,
    3155       -1,  1080,   911,   418,    83,    84,    -1,    -1,    -1,   364,
    3156       -1,    -1,    -1,   368,    -1,    -1,   371,   874,   433,    -1,
    3157       -1,    -1,    -1,   438,    -1,    -1,  1377,  1378,    -1,    -1,
    3158      109,   446,    26,    27,    28,  1386,  1387,    -1,   117,   118,
    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     1223,    -1,    -1,    -1,    -1,    -1,    -1,   482,  1207,   484,
    3168     1481,  1482,    -1,    -1,   268,    -1,    -1,   492,    -1,    -1,
    3169     1491,   496,    -1,   691,    -1,   693,    -1,    -1,    -1,   697,
    3170     1229,    69,  1255,    -1,  1505,  1506,    -1,    -1,    -1,    -1,
    3171     1263,  1264,  1265,  1020,  1021,    -1,    -1,    -1,    -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,  1327,    -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,
     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,
    32042660      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,    -1,    -1,    -1,    -1,    -1,    -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,    -1,  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,    -1,
    3218       -1,    -1,    -1,    -1,    -1,    -1,  1184,    -1,    -1,    -1,
    3219       -1,    -1,  1499,    -1,   999,    -1,    -1,    -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,    -1,   590,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3223       -1,    -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,
     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,
    32292705      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,   111,    -1,    -1,
    3267       -1,    -1,  1040,   117,   118,    -1,   380,    -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,
    32682722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
     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,
    32752726      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
     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,
     2742      -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,
     2755      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,
     2819      -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,
     2828      -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,
    32912863      -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,
    3296       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     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,
    32972883      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3298       -1,   634,   635,   636,    -1,  1075,  1076,    -1,    -1,    -1,
    3299       -1,    39,    -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,    67,
    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,
     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,
    33412896      -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,
     2897      -1,    -1,    -1,   367,   640,    -1,   370,    -1,    -1,    -1,
     2898      -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     2899      -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,
     2914      -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,
    33503001      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    33513002      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,
    33583003      -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,
     3004      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
     3005      -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,
    33693009      -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,
     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,
    33753015      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,
    3444       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    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,
    3464       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
    3469       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
     3016      27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,
     3017      37,    38,    39,    40,    10,    11,    12,    13,    14,    15,
    34873018      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,
    3522       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3523       -1,   896,    30,    31,    32,    -1,    -1,    -1,   903,   904,
    3524      905,    39,   907,  1454,    -1,  1456,   911,  1458,    -1,    -1,
    3525       -1,    -1,    -1,    -1,    -1,    -1,    -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,
    3529       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
     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,
    35373029       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    35383030      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    35393031      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,
     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,
    35443036      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3545       84,    -1,    86,    87,    -1,    -1,    -1,  1122,  1123,  1124,
    3546       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
     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,
     3041       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3042      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,
     3048      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3049      -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,
    35513060      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    35523061      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3553       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3554       -1,    -1,  1207,   109,    -1,   111,    -1,   113,   114,    -1,
    3555       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3556     1225,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
    3557        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3558       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    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,
    3564       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3565       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
     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,
    35873077       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    35883078      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    35893079      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
    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,
     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,
    35943084      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    35953085      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3596       67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,
    3597       -1,   109,    -1,   111,    -1,    -1,    83,    84,   116,   117,
     3086      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3087      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
    35983088     118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    35993089       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    36003090      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    36013091      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,
    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,
     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,
    36063096      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    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,
     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,
    36103100     119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
    36113101      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    36123102      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    36133103      30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,
    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,
     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,
    36183108      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    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,
     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,
    36223112     120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
    36233113      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     
    36323122      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    36333123     111,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
    3634      121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3124     121,   122,     0,    -1,    -1,     3,     4,     5,     6,     7,
     3125       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3126      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,
     3129      -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,
    36353137      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    36363138      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3637       32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     3139      32,    33,    -1,    -1,    36,    -1,    -1,    39,    40,    -1,
    36383140      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36393141      -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,
     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,
    36433145      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36443146      -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,
     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,
    36503163      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36513164      -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,
    3732        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3733       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3734       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3735      111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
    3736       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3737       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3738       -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,     4,
     3165      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3166      -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,     4,
    37393167       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    37403168      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37413169      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3742       -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,   117,
    3743      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3170      -1,   111,    -1,    -1,    39,    -1,    -1,   117,   118,    -1,
     3171      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37443172      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37453173      -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,
     
    37623190      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37633191      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3764       67,    -1,    69,    -1,    71,   111,    -1,    74,    75,    -1,
     3192      67,    -1,    69,   109,    71,   111,    -1,    74,    75,    -1,
    37653193      -1,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37663194      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,
     
    38253253      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    38263254      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
    3827       -1,    39,    40,    72,    -1,    74,    75,    76,    -1,    -1,
     3255      -1,    39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    38283256      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    38293257      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3830       -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,
    3831      109,   110,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3258      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
     3259     109,   110,   111,    -1,    -1,    83,    84,    -1,   117,   118,
    38323260     119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
    38333261      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3834       26,    27,    -1,   111,    30,    31,    32,   115,    -1,   117,
     3262      26,    27,    -1,   111,    30,    31,    32,    -1,    -1,   117,
    38353263     118,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    38363264      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    38393267      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    38403268      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3841       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3842       75,    -1,    -1,   109,    -1,   111,    -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,
    38433271      -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
    38443272      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     
    38473275      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    38483276      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3849       32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,    72,
     3277      32,    -1,    -1,    66,    67,    -1,    -1,    39,    40,    72,
    38503278      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    38513279      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     
    38553283      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    38563284      20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3857       30,    31,    32,    -1,    -1,   117,   118,    37,    38,    39,
     3285      30,    31,    32,   115,    -1,   117,   118,    37,    38,    39,
    38583286      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    38593287      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    38603288      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,
    3861       39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3289      39,    40,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    38623290      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    38633291      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     
    38663294     120,   121,   122,    10,    11,    12,    13,    14,    15,    16,
    38673295      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    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,
     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,
    38743302      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,
     3309      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,
     3337      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,
    38753348      -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,
     3349      -1,    -1,    -1,   111,    -1,    74,    75,    -1,    -1,   117,
     3350     118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3351      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,
     3361      -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,
     3383      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3384      -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,
     3387      -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,
     3390      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3391      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3392      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3393      -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,
    38783405       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    38793406      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,
    3886       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    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,
    3890       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    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,
    3900      118,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3901       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3902       -1,    30,    31,    32,    -1,    67,    -1,    -1,    -1,   109,
    3903       39,   111,    74,    75,    -1,    -1,    78,   117,   118,    -1,
    3904       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
     3407      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    39113408      -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,
     3409      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
     3410      53,    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,
    39143411      67,    64,    69,    66,    71,    -1,    -1,    74,    75,    72,
    39153412      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3916       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3413      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    96,
    39173414      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3918       -1,    -1,    -1,   110,    -1,    -1,   109,    -1,   111,    -1,
     3415      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    39193416      -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,
     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,
    39393423      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
    3943       -1,    -1,    46,    47,    48,    49,    50,    51,    52,    53,
    3944       -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,
    3945       64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
    3946       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3947       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3948       37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
    3949       -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3950      114,    -1,    -1,   117,   118,   119,   120,   121,   122,    66,
    3951       -1,    -1,    -1,   127,    -1,    72,    -1,    -1,    -1,    76,
     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,
    39523430      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    39533431      87,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,
    39543432      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3955       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,
     3433      -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
    39563434     117,   118,   119,   120,   121,   122,    66,    -1,    -1,    -1,
    3957       -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3435     127,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    39583436      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    39593437      -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
     
    39723450      87,    -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,
    39733451      40,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3974       -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3452      -1,    -1,   109,    -1,   111,    -1,    37,    38,    -1,    40,
    39753453     117,   118,   119,   120,   121,   122,    66,    -1,    -1,    -1,
    39763454      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
    3977       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     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,
    39783464      -1,    -1,    -1,    -1,    -1,    -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,
     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,
    39853471      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39863472      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
     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,
    40013479      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40023480      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
     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,
    40083486      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    40093487      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4010       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    4011       74,    75
     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
    40123497};
    40133498
    4014 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    4015    symbol of state STATE-NUM.  */
     3499  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
     3500     symbol of state STATE-NUM.  */
    40163501static const yytype_uint16 yystos[] =
    40173502{
     
    40203505      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    40213506      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    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,
     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,
    40463531      51,   109,    37,    38,    40,    66,    72,    76,    79,    80,
    40473532      81,    82,    86,    87,   109,   111,   119,   120,   121,   122,
    4048      136,   140,   141,   142,   143,   144,   149,   150,   151,   152,
     3533     136,   140,   141,   142,   143,   148,   149,   150,   151,   152,
    40493534     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
    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,   142,   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
     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
    41743659};
    41753660
    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
     3661  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
     3662static 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.  */
     3742static 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
    42003831
    42013832#define YYRECOVERING()  (!!yyerrstatus)
    42023833
    4203 #define YYBACKUP(Token, Value)                                  \
    4204 do                                                              \
    4205   if (yychar == YYEMPTY && yylen == 1)                          \
    4206     {                                                           \
    4207       yychar = (Token);                                         \
    4208       yylval = (Value);                                         \
    4209       YYPOPSTACK (1);                                           \
    4210       goto yybackup;                                            \
    4211     }                                                           \
    4212   else                                                          \
    4213     {                                                           \
     3834#define YYBACKUP(Token, Value)                                  \
     3835do                                                              \
     3836  if (yychar == YYEMPTY)                                        \
     3837    {                                                           \
     3838      yychar = (Token);                                         \
     3839      yylval = (Value);                                         \
     3840      YYPOPSTACK (yylen);                                       \
     3841      yystate = *yyssp;                                         \
     3842      goto yybackup;                                            \
     3843    }                                                           \
     3844  else                                                          \
     3845    {                                                           \
    42143846      yyerror (YY_("syntax error: cannot back up")); \
    4215       YYERROR;                                                  \
    4216     }                                                           \
    4217 while (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
     3847      YYERROR;                                                  \
     3848    }                                                           \
     3849while (0)
     3850
     3851/* Error token number */
     3852#define YYTERROR        1
     3853#define YYERRCODE       256
     3854
     3855
    42643856
    42653857/* Enable debugging if requested.  */
     
    42713863# endif
    42723864
    4273 # define YYDPRINTF(Args)                        \
    4274 do {                                            \
    4275   if (yydebug)                                  \
    4276     YYFPRINTF Args;                             \
    4277 } while (YYID (0))
    4278 
    4279 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    4280 do {                                                                      \
    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)
     3865# define YYDPRINTF(Args)                        \
     3866do {                                            \
     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)                    \
     3878do {                                                                      \
     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
    42983893static void
    42993894yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4300 #else
    4301 static void
    4302 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    4303     FILE *yyoutput;
    4304     int yytype;
    4305     YYSTYPE const * const yyvaluep;
    4306 #endif
    43073895{
     3896  FILE *yyo = yyoutput;
     3897  YYUSE (yyo);
    43083898  if (!yyvaluep)
    43093899    return;
     
    43113901  if (yytype < YYNTOKENS)
    43123902    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    4313 # else
    4314   YYUSE (yyoutput);
    43153903# endif
    4316   switch (yytype)
    4317     {
    4318       default:
    4319         break;
    4320     }
     3904  YYUSE (yytype);
    43213905}
    43223906
     
    43263910`--------------------------------*/
    43273911
    4328 #if (defined __STDC__ || defined __C99__FUNC__ \
    4329      || defined __cplusplus || defined _MSC_VER)
    43303912static void
    43313913yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4332 #else
    4333 static void
    4334 yy_symbol_print (yyoutput, yytype, yyvaluep)
    4335     FILE *yyoutput;
    4336     int yytype;
    4337     YYSTYPE const * const yyvaluep;
    4338 #endif
    43393914{
    4340   if (yytype < YYNTOKENS)
    4341     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    4342   else
    4343     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
     3915  YYFPRINTF (yyoutput, "%s %s (",
     3916             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
    43443917
    43453918  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
     
    43523925`------------------------------------------------------------------*/
    43533926
    4354 #if (defined __STDC__ || defined __C99__FUNC__ \
    4355      || defined __cplusplus || defined _MSC_VER)
    43563927static void
    43573928yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    4358 #else
    4359 static void
    4360 yy_stack_print (yybottom, yytop)
    4361     yytype_int16 *yybottom;
    4362     yytype_int16 *yytop;
    4363 #endif
    43643929{
    43653930  YYFPRINTF (stderr, "Stack now");
     
    43723937}
    43733938
    4374 # define YY_STACK_PRINT(Bottom, Top)                            \
    4375 do {                                                            \
    4376   if (yydebug)                                                  \
    4377     yy_stack_print ((Bottom), (Top));                           \
    4378 } while (YYID (0))
     3939# define YY_STACK_PRINT(Bottom, Top)                            \
     3940do {                                                            \
     3941  if (yydebug)                                                  \
     3942    yy_stack_print ((Bottom), (Top));                           \
     3943} while (0)
    43793944
    43803945
     
    43833948`------------------------------------------------*/
    43843949
    4385 #if (defined __STDC__ || defined __C99__FUNC__ \
    4386      || defined __cplusplus || defined _MSC_VER)
    43873950static void
    4388 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    4389 #else
    4390 static void
    4391 yy_reduce_print (yyvsp, yyrule)
    4392     YYSTYPE *yyvsp;
    4393     int yyrule;
    4394 #endif
     3951yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
    43953952{
     3953  unsigned long int yylno = yyrline[yyrule];
    43963954  int yynrhs = yyr2[yyrule];
    43973955  int yyi;
    4398   unsigned long int yylno = yyrline[yyrule];
    43993956  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    4400              yyrule - 1, yylno);
     3957             yyrule - 1, yylno);
    44013958  /* The symbols being reduced.  */
    44023959  for (yyi = 0; yyi < yynrhs; yyi++)
    44033960    {
    44043961      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    4405       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    4406                        &(yyvsp[(yyi + 1) - (yynrhs)])
    4407                                        );
     3962      yy_symbol_print (stderr,
     3963                       yystos[yyssp[yyi + 1 - yynrhs]],
     3964                       &(yyvsp[(yyi + 1) - (yynrhs)])
     3965                                              );
    44083966      YYFPRINTF (stderr, "\n");
    44093967    }
    44103968}
    44113969
    4412 # define YY_REDUCE_PRINT(Rule)          \
    4413 do {                                    \
    4414   if (yydebug)                          \
    4415     yy_reduce_print (yyvsp, Rule); \
    4416 } while (YYID (0))
     3970# define YY_REDUCE_PRINT(Rule)          \
     3971do {                                    \
     3972  if (yydebug)                          \
     3973    yy_reduce_print (yyssp, yyvsp, Rule); \
     3974} while (0)
    44173975
    44183976/* Nonzero means print parse trace.  It is left uninitialized so that
     
    44283986
    44293987/* YYINITDEPTH -- initial size of the parser's stacks.  */
    4430 #ifndef YYINITDEPTH
     3988#ifndef YYINITDEPTH
    44313989# define YYINITDEPTH 200
    44323990#endif
     
    44514009#  else
    44524010/* Return the length of YYSTR.  */
    4453 #if (defined __STDC__ || defined __C99__FUNC__ \
    4454      || defined __cplusplus || defined _MSC_VER)
    44554011static YYSIZE_T
    44564012yystrlen (const char *yystr)
    4457 #else
    4458 static YYSIZE_T
    4459 yystrlen (yystr)
    4460     const char *yystr;
    4461 #endif
    44624013{
    44634014  YYSIZE_T yylen;
     
    44754026/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    44764027   YYDEST.  */
    4477 #if (defined __STDC__ || defined __C99__FUNC__ \
    4478      || defined __cplusplus || defined _MSC_VER)
    44794028static char *
    44804029yystpcpy (char *yydest, const char *yysrc)
    4481 #else
    4482 static char *
    4483 yystpcpy (yydest, yysrc)
    4484     char *yydest;
    4485     const char *yysrc;
    4486 #endif
    44874030{
    44884031  char *yyd = yydest;
     
    45144057
    45154058      for (;;)
    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           }
     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          }
    45374080    do_not_strip_quotes: ;
    45384081    }
     
    45574100                yytype_int16 *yyssp, int yytoken)
    45584101{
    4559   YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
     4102  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
    45604103  YYSIZE_T yysize = yysize0;
    4561   YYSIZE_T yysize1;
    45624104  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    45634105  /* Internationalized format string. */
    4564   const char *yyformat = 0;
     4106  const char *yyformat = YY_NULLPTR;
    45654107  /* Arguments of yyformat. */
    45664108  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
     
    45704112
    45714113  /* 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.
    45764114     - If this state is a consistent state with a default action, then
    45774115       the only way this function was invoked is if the default action
     
    46224160                  }
    46234161                yyarg[yycount++] = yytname[yyx];
    4624                 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    4625                 if (! (yysize <= yysize1
    4626                        && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4627                   return 2;
    4628                 yysize = yysize1;
     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                }
    46294169              }
    46304170        }
     
    46464186    }
    46474187
    4648   yysize1 = yysize + yystrlen (yyformat);
    4649   if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4650     return 2;
    4651   yysize = yysize1;
     4188  {
     4189    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
     4190    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
     4191      return 2;
     4192    yysize = yysize1;
     4193  }
    46524194
    46534195  if (*yymsg_alloc < yysize)
     
    46864228`-----------------------------------------------*/
    46874229
    4688 /*ARGSUSED*/
    4689 #if (defined __STDC__ || defined __C99__FUNC__ \
    4690      || defined __cplusplus || defined _MSC_VER)
    46914230static void
    46924231yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
    4693 #else
    4694 static void
    4695 yydestruct (yymsg, yytype, yyvaluep)
    4696     const char *yymsg;
    4697     int yytype;
    4698     YYSTYPE *yyvaluep;
    4699 #endif
    47004232{
    47014233  YYUSE (yyvaluep);
    4702 
    47034234  if (!yymsg)
    47044235    yymsg = "Deleting";
    47054236  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    47064237
    4707   switch (yytype)
    4708     {
    4709 
    4710       default:
    4711         break;
    4712     }
     4238  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
     4239  YYUSE (yytype);
     4240  YY_IGNORE_MAYBE_UNINITIALIZED_END
    47134241}
    47144242
    47154243
    4716 /* Prevent warnings from -Wmissing-prototypes.  */
    4717 #ifdef YYPARSE_PARAM
    4718 #if defined __STDC__ || defined __cplusplus
    4719 int yyparse (void *YYPARSE_PARAM);
    4720 #else
    4721 int yyparse ();
    4722 #endif
    4723 #else /* ! YYPARSE_PARAM */
    4724 #if defined __STDC__ || defined __cplusplus
    4725 int yyparse (void);
    4726 #else
    4727 int yyparse ();
    4728 #endif
    4729 #endif /* ! YYPARSE_PARAM */
    47304244
    47314245
     
    47354249/* The semantic value of the lookahead symbol.  */
    47364250YYSTYPE yylval;
    4737 
    47384251/* Number of syntax errors so far.  */
    47394252int yynerrs;
     
    47444257`----------*/
    47454258
    4746 #ifdef YYPARSE_PARAM
    4747 #if (defined __STDC__ || defined __C99__FUNC__ \
    4748      || defined __cplusplus || defined _MSC_VER)
    4749 int
    4750 yyparse (void *YYPARSE_PARAM)
    4751 #else
    4752 int
    4753 yyparse (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)
    47594259int
    47604260yyparse (void)
    4761 #else
    4762 int
    4763 yyparse ()
    4764 
    4765 #endif
    4766 #endif
    47674261{
    47684262    int yystate;
     
    47714265
    47724266    /* The stacks and their tools:
    4773        `yyss': related to states.
    4774        `yyvs': related to semantic values.
    4775 
    4776        Refer to the stacks thru separate pointers, to allow yyoverflow
     4267       'yyss': related to states.
     4268       'yyvs': related to semantic values.
     4269
     4270       Refer to the stacks through separate pointers, to allow yyoverflow
    47774271       to reallocate them elsewhere.  */
    47784272
     
    47924286  int yyresult;
    47934287  /* Lookahead token as an internal (translated) token number.  */
    4794   int yytoken;
     4288  int yytoken = 0;
    47954289  /* The variables used to return semantic value and location from the
    47964290     action routines.  */
     
    48104304  int yylen = 0;
    48114305
    4812   yytoken = 0;
    4813   yyss = yyssa;
    4814   yyvs = yyvsa;
     4306  yyssp = yyss = yyssa;
     4307  yyvsp = yyvs = yyvsa;
    48154308  yystacksize = YYINITDEPTH;
    48164309
     
    48214314  yynerrs = 0;
    48224315  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 
    48314316  goto yysetstate;
    48324317
     
    48494334#ifdef yyoverflow
    48504335      {
    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;
     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;
    48684353      }
    48694354#else /* no yyoverflow */
     
    48734358      /* Extend the stack our own way.  */
    48744359      if (YYMAXDEPTH <= yystacksize)
    4875         goto yyexhaustedlab;
     4360        goto yyexhaustedlab;
    48764361      yystacksize *= 2;
    48774362      if (YYMAXDEPTH < yystacksize)
    4878         yystacksize = YYMAXDEPTH;
     4363        yystacksize = YYMAXDEPTH;
    48794364
    48804365      {
    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);
     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);
    48884373#  undef YYSTACK_RELOCATE
    4889         if (yyss1 != yyssa)
    4890           YYSTACK_FREE (yyss1);
     4374        if (yyss1 != yyssa)
     4375          YYSTACK_FREE (yyss1);
    48914376      }
    48924377# endif
     
    48974382
    48984383      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4899                   (unsigned long int) yystacksize));
     4384                  (unsigned long int) yystacksize));
    49004385
    49014386      if (yyss + yystacksize - 1 <= yyssp)
    4902         YYABORT;
     4387        YYABORT;
    49034388    }
    49044389
     
    49294414    {
    49304415      YYDPRINTF ((stderr, "Reading a token: "));
    4931       yychar = YYLEX;
     4416      yychar = yylex ();
    49324417    }
    49334418
     
    49694454
    49704455  yystate = yyn;
     4456  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    49714457  *++yyvsp = yylval;
     4458  YY_IGNORE_MAYBE_UNINITIALIZED_END
    49724459
    49734460  goto yynewstate;
     
    49924479
    49934480  /* If YYLEN is nonzero, implement the default value of the action:
    4994      `$$ = $1'.
     4481     '$$ = $1'.
    49954482
    49964483     Otherwise, the following line sets YYVAL to garbage.
     
    50064493    {
    50074494        case 2:
    5008 
    5009 /* Line 1806 of yacc.c  */
    5010 #line 341 "parser.yy"
    5011     { typedefTable.enterScope(); }
     4495#line 298 "parser.yy" /* yacc.c:1646  */
     4496    {
     4497                        typedefTable.enterScope();
     4498                }
     4499#line 4500 "Parser/parser.cc" /* yacc.c:1646  */
    50124500    break;
    50134501
    50144502  case 3:
    5015 
    5016 /* Line 1806 of yacc.c  */
    5017 #line 345 "parser.yy"
    5018     { typedefTable.leaveScope(); }
     4503#line 304 "parser.yy" /* yacc.c:1646  */
     4504    {
     4505                        typedefTable.leaveScope();
     4506                }
     4507#line 4508 "Parser/parser.cc" /* yacc.c:1646  */
    50194508    break;
    50204509
    50214510  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) ) ); }
     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  */
    50264514    break;
    50274515
    50284516  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) ) ); }
     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  */
    50334520    break;
    50344521
    50354522  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) ) ); }
     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  */
    50404526    break;
    50414527
    50424528  case 16:
    5043 
    5044 /* Line 1806 of yacc.c  */
    5045 #line 379 "parser.yy"
    5046     { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
     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  */
    50474532    break;
    50484533
    50494534  case 17:
    5050 
    5051 /* Line 1806 of yacc.c  */
    5052 #line 383 "parser.yy"
    5053     { (yyval.str) = (yyvsp[(1) - (1)].tok); }
     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  */
    50544542    break;
    50554543
    50564544  case 18:
    5057 
    5058 /* Line 1806 of yacc.c  */
    5059 #line 385 "parser.yy"
    5060     {
    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
    5064                 }
     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  */
    50654548    break;
    50664549
    50674550  case 19:
    5068 
    5069 /* Line 1806 of yacc.c  */
    5070 #line 396 "parser.yy"
    5071     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     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  */
    50724554    break;
    50734555
    50744556  case 20:
    5075 
    5076 /* Line 1806 of yacc.c  */
    5077 #line 398 "parser.yy"
    5078     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     4557#line 357 "parser.yy" /* yacc.c:1646  */
     4558    { (yyval.en) = (yyvsp[-1].en); }
     4559#line 4560 "Parser/parser.cc" /* yacc.c:1646  */
    50794560    break;
    50804561
    50814562  case 21:
    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) ) ); }
     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  */
    50934572    break;
    50944573
    50954574  case 24:
    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) ) ); }
     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  */
    51004578    break;
    51014579
    51024580  case 25:
    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) ) ) ); }
     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  */
    51214596    break;
    51224597
    51234598  case 30:
    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) ) ); }
     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  */
    51284602    break;
    51294603
    51304604  case 31:
    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) ) ); }
     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  */
    51354608    break;
    51364609
    51374610  case 32:
    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"
     4611#line 387 "parser.yy" /* yacc.c:1646  */
    51484612    {
    51494613                        Token fn;
    51504614                        fn.str = new std::string( "?{}" ); // location undefined
    5151                         (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );
     4615                        (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) );
    51524616                }
     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  */
    51534624    break;
    51544625
    51554626  case 35:
    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"
     4627#line 402 "parser.yy" /* yacc.c:1646  */
    51664628    { (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  */
    51674636    break;
    51684637
    51694638  case 39:
    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) ); }
     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  */
    51744642    break;
    51754643
    51764644  case 40:
    5177 
    5178 /* Line 1806 of yacc.c  */
    5179 #line 456 "parser.yy"
    5180     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     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  */
    51814648    break;
    51824649
    51834650  case 41:
    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) ) ) ); }
     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  */
    51884654    break;
    51894655
    51904656  case 42:
    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) ) ) ); }
     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  */
    51954660    break;
    51964661
    51974662  case 43:
    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) ) ) ); }
     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  */
    52094672    break;
    52104673
    52114674  case 46:
    5212 
    5213 /* Line 1806 of yacc.c  */
    5214 #line 474 "parser.yy"
    5215     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     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  */
    52164678    break;
    52174679
    52184680  case 47:
    5219 
    5220 /* Line 1806 of yacc.c  */
    5221 #line 476 "parser.yy"
    5222     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     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  */
    52234684    break;
    52244685
    52254686  case 48:
    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"
    5236     {
    5237                         switch ( (yyvsp[(1) - (2)].op) ) {
     4687#line 440 "parser.yy" /* yacc.c:1646  */
     4688    {
     4689                        switch ( (yyvsp[-1].op) ) {
    52384690                          case OperKinds::AddressOf:
    5239                                 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
     4691                                (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) );
    52404692                                break;
    52414693                          case OperKinds::PointTo:
    5242                                 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
     4694                                (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) );
    52434695                                break;
    52444696                          default:
     
    52464698                        }
    52474699                }
     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  */
    52484707    break;
    52494708
    52504709  case 50:
    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) ) ); }
     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  */
    52554713    break;
    52564714
    52574715  case 51:
    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) ) ); }
     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  */
    52624719    break;
    52634720
    52644721  case 52:
    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) ) ); }
     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  */
    52694725    break;
    52704726
    52714727  case 53:
    5272 
    5273 /* Line 1806 of yacc.c  */
    5274 #line 502 "parser.yy"
    5275     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     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  */
    52764731    break;
    52774732
    52784733  case 54:
    5279 
    5280 /* Line 1806 of yacc.c  */
    5281 #line 504 "parser.yy"
    5282     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     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  */
    52834737    break;
    52844738
    52854739  case 55:
    5286 
    5287 /* Line 1806 of yacc.c  */
    5288 #line 506 "parser.yy"
    5289     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     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  */
    52904743    break;
    52914744
    52924745  case 56:
    5293 
    5294 /* Line 1806 of yacc.c  */
    5295 #line 508 "parser.yy"
    5296     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     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  */
    52974749    break;
    52984750
    52994751  case 57:
    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) ) ) ); }
     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  */
    53044755    break;
    53054756
    53064757  case 58:
    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 ) ); }
     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  */
    53114761    break;
    53124762
    53134763  case 59:
    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) ) ); }
     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  */
    53184767    break;
    53194768
    53204769  case 60:
    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) ) ); }
     4770#line 479 "parser.yy" /* yacc.c:1646  */
     4771    { (yyval.op) = OperKinds::PointTo; }
     4772#line 4773 "Parser/parser.cc" /* yacc.c:1646  */
    53254773    break;
    53264774
    53274775  case 61:
    5328 
    5329 /* Line 1806 of yacc.c  */
    5330 #line 522 "parser.yy"
    5331     { (yyval.op) = OperKinds::PointTo; }
     4776#line 480 "parser.yy" /* yacc.c:1646  */
     4777    { (yyval.op) = OperKinds::AddressOf; }
     4778#line 4779 "Parser/parser.cc" /* yacc.c:1646  */
    53324779    break;
    53334780
    53344781  case 62:
    5335 
    5336 /* Line 1806 of yacc.c  */
    5337 #line 523 "parser.yy"
    5338     { (yyval.op) = OperKinds::AddressOf; }
     4782#line 486 "parser.yy" /* yacc.c:1646  */
     4783    { (yyval.op) = OperKinds::UnPlus; }
     4784#line 4785 "Parser/parser.cc" /* yacc.c:1646  */
    53394785    break;
    53404786
    53414787  case 63:
    5342 
    5343 /* Line 1806 of yacc.c  */
    5344 #line 529 "parser.yy"
    5345     { (yyval.op) = OperKinds::UnPlus; }
     4788#line 487 "parser.yy" /* yacc.c:1646  */
     4789    { (yyval.op) = OperKinds::UnMinus; }
     4790#line 4791 "Parser/parser.cc" /* yacc.c:1646  */
    53464791    break;
    53474792
    53484793  case 64:
    5349 
    5350 /* Line 1806 of yacc.c  */
    5351 #line 530 "parser.yy"
    5352     { (yyval.op) = OperKinds::UnMinus; }
     4794#line 488 "parser.yy" /* yacc.c:1646  */
     4795    { (yyval.op) = OperKinds::Neg; }
     4796#line 4797 "Parser/parser.cc" /* yacc.c:1646  */
    53534797    break;
    53544798
    53554799  case 65:
    5356 
    5357 /* Line 1806 of yacc.c  */
    5358 #line 531 "parser.yy"
    5359     { (yyval.op) = OperKinds::Neg; }
    5360     break;
    5361 
    5362   case 66:
    5363 
    5364 /* Line 1806 of yacc.c  */
    5365 #line 532 "parser.yy"
     4800#line 489 "parser.yy" /* yacc.c:1646  */
    53664801    { (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  */
    53674809    break;
    53684810
    53694811  case 68:
    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) ) ); }
     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  */
    53814821    break;
    53824822
    53834823  case 71:
    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) ) ); }
     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  */
    53884827    break;
    53894828
    53904829  case 72:
    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) ) ); }
     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  */
    54024839    break;
    54034840
    54044841  case 75:
    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) ) ); }
     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  */
    54164851    break;
    54174852
    54184853  case 78:
    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) ) ); }
     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  */
    54304863    break;
    54314864
    54324865  case 81:
    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) ) ); }
     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  */
    54374869    break;
    54384870
    54394871  case 82:
    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) ) ); }
     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  */
    54444875    break;
    54454876
    54464877  case 83:
    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) ) ); }
     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  */
    54584887    break;
    54594888
    54604889  case 86:
    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 ) ); }
     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  */
    55074929    break;
    55084930
    55094931  case 99:
    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) ) ); }
     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  */
    55144935    break;
    55154936
    55164937  case 100:
    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) ) ); }
     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  */
    55284947    break;
    55294948
    55304949  case 104:
    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) ) ); }
     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  */
    55354953    break;
    55364954
    55374955  case 105:
    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"
     4956#line 602 "parser.yy" /* yacc.c:1646  */
    55484957    { (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  */
     4963    { (yyval.op) = OperKinds::Assign; }
     4964#line 4965 "Parser/parser.cc" /* yacc.c:1646  */
    55494965    break;
    55504966
    55514967  case 108:
    5552 
    5553 /* Line 1806 of yacc.c  */
    5554 #line 650 "parser.yy"
    5555     { (yyval.op) = OperKinds::Assign; }
     4968#line 608 "parser.yy" /* yacc.c:1646  */
     4969    { (yyval.op) = OperKinds::MulAssn; }
     4970#line 4971 "Parser/parser.cc" /* yacc.c:1646  */
    55564971    break;
    55574972
    55584973  case 109:
    5559 
    5560 /* Line 1806 of yacc.c  */
    5561 #line 651 "parser.yy"
    5562     { (yyval.op) = OperKinds::MulAssn; }
     4974#line 609 "parser.yy" /* yacc.c:1646  */
     4975    { (yyval.op) = OperKinds::DivAssn; }
     4976#line 4977 "Parser/parser.cc" /* yacc.c:1646  */
    55634977    break;
    55644978
    55654979  case 110:
    5566 
    5567 /* Line 1806 of yacc.c  */
    5568 #line 652 "parser.yy"
    5569     { (yyval.op) = OperKinds::DivAssn; }
     4980#line 610 "parser.yy" /* yacc.c:1646  */
     4981    { (yyval.op) = OperKinds::ModAssn; }
     4982#line 4983 "Parser/parser.cc" /* yacc.c:1646  */
    55704983    break;
    55714984
    55724985  case 111:
    5573 
    5574 /* Line 1806 of yacc.c  */
    5575 #line 653 "parser.yy"
    5576     { (yyval.op) = OperKinds::ModAssn; }
     4986#line 611 "parser.yy" /* yacc.c:1646  */
     4987    { (yyval.op) = OperKinds::PlusAssn; }
     4988#line 4989 "Parser/parser.cc" /* yacc.c:1646  */
    55774989    break;
    55784990
    55794991  case 112:
    5580 
    5581 /* Line 1806 of yacc.c  */
    5582 #line 654 "parser.yy"
    5583     { (yyval.op) = OperKinds::PlusAssn; }
     4992#line 612 "parser.yy" /* yacc.c:1646  */
     4993    { (yyval.op) = OperKinds::MinusAssn; }
     4994#line 4995 "Parser/parser.cc" /* yacc.c:1646  */
    55844995    break;
    55854996
    55864997  case 113:
    5587 
    5588 /* Line 1806 of yacc.c  */
    5589 #line 655 "parser.yy"
    5590     { (yyval.op) = OperKinds::MinusAssn; }
     4998#line 613 "parser.yy" /* yacc.c:1646  */
     4999    { (yyval.op) = OperKinds::LSAssn; }
     5000#line 5001 "Parser/parser.cc" /* yacc.c:1646  */
    55915001    break;
    55925002
    55935003  case 114:
    5594 
    5595 /* Line 1806 of yacc.c  */
    5596 #line 656 "parser.yy"
    5597     { (yyval.op) = OperKinds::LSAssn; }
     5004#line 614 "parser.yy" /* yacc.c:1646  */
     5005    { (yyval.op) = OperKinds::RSAssn; }
     5006#line 5007 "Parser/parser.cc" /* yacc.c:1646  */
    55985007    break;
    55995008
    56005009  case 115:
    5601 
    5602 /* Line 1806 of yacc.c  */
    5603 #line 657 "parser.yy"
    5604     { (yyval.op) = OperKinds::RSAssn; }
     5010#line 615 "parser.yy" /* yacc.c:1646  */
     5011    { (yyval.op) = OperKinds::AndAssn; }
     5012#line 5013 "Parser/parser.cc" /* yacc.c:1646  */
    56055013    break;
    56065014
    56075015  case 116:
    5608 
    5609 /* Line 1806 of yacc.c  */
    5610 #line 658 "parser.yy"
    5611     { (yyval.op) = OperKinds::AndAssn; }
     5016#line 616 "parser.yy" /* yacc.c:1646  */
     5017    { (yyval.op) = OperKinds::ERAssn; }
     5018#line 5019 "Parser/parser.cc" /* yacc.c:1646  */
    56125019    break;
    56135020
    56145021  case 117:
    5615 
    5616 /* Line 1806 of yacc.c  */
    5617 #line 659 "parser.yy"
    5618     { (yyval.op) = OperKinds::ERAssn; }
     5022#line 617 "parser.yy" /* yacc.c:1646  */
     5023    { (yyval.op) = OperKinds::OrAssn; }
     5024#line 5025 "Parser/parser.cc" /* yacc.c:1646  */
    56195025    break;
    56205026
    56215027  case 118:
    5622 
    5623 /* Line 1806 of yacc.c  */
    5624 #line 660 "parser.yy"
    5625     { (yyval.op) = OperKinds::OrAssn; }
     5028#line 624 "parser.yy" /* yacc.c:1646  */
     5029    { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5030#line 5031 "Parser/parser.cc" /* yacc.c:1646  */
    56265031    break;
    56275032
    56285033  case 119:
    5629 
    5630 /* Line 1806 of yacc.c  */
    5631 #line 667 "parser.yy"
    5632     { (yyval.en) = new ExpressionNode( build_tuple() ); }
     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  */
    56335037    break;
    56345038
    56355039  case 120:
    5636 
    5637 /* Line 1806 of yacc.c  */
    5638 #line 669 "parser.yy"
    5639     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     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  */
    56405043    break;
    56415044
    56425045  case 121:
    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) ); }
     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  */
    56615061    break;
    56625062
    56635063  case 126:
    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"
     5064#line 647 "parser.yy" /* yacc.c:1646  */
    56745065    { (yyval.en) = 0; }
    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"
     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  */
    56885077    {
    56895078                        Token fn;
    56905079                        fn.str = new std::string( "^?{}" ); // location undefined
    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) ) ) ) ) );
     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) ) ) ) ) );
    56925081                }
     5082#line 5083 "Parser/parser.cc" /* yacc.c:1646  */
     5083    break;
     5084
     5085  case 137:
     5086#line 673 "parser.yy" /* yacc.c:1646  */
     5087    {
     5088                        (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
     5089                }
     5090#line 5091 "Parser/parser.cc" /* yacc.c:1646  */
    56935091    break;
    56945092
    56955093  case 138:
    5696 
    5697 /* Line 1806 of yacc.c  */
    5698 #line 716 "parser.yy"
    5699     {
    5700                         (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     5094#line 680 "parser.yy" /* yacc.c:1646  */
     5095    { (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  */
     5109    break;
     5110
     5111  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  */
     5115    break;
     5116
     5117  case 143:
     5118#line 700 "parser.yy" /* yacc.c:1646  */
     5119    {   // mark all fields in list
     5120                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     5121                                iter->set_extension( true );
     5122                        (yyval.sn) = new StatementNode( (yyvsp[0].decl) );
    57015123                }
    5702     break;
    5703 
    5704   case 139:
    5705 
    5706 /* Line 1806 of yacc.c  */
    5707 #line 723 "parser.yy"
    5708     { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    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) ) ); }
    5716     break;
    5717 
    5718   case 142:
    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); } }
    5723     break;
    5724 
    5725   case 143:
    5726 
    5727 /* Line 1806 of yacc.c  */
    5728 #line 741 "parser.yy"
    5729     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5124#line 5125 "Parser/parser.cc" /* yacc.c:1646  */
    57305125    break;
    57315126
    57325127  case 144:
    5733 
    5734 /* Line 1806 of yacc.c  */
    5735 #line 743 "parser.yy"
    5736     {   // mark all fields in list
    5737                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    5738                                 iter->set_extension( true );
    5739                         (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
    5740                 }
    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) ); }
     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  */
    57485137    break;
    57495138
    57505139  case 148:
    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); } }
     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  */
    57555143    break;
    57565144
    57575145  case 149:
    5758 
    5759 /* Line 1806 of yacc.c  */
    5760 #line 761 "parser.yy"
    5761     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     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  */
    57625149    break;
    57635150
    57645151  case 150:
    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 ) ); }
     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  */
    57695155    break;
    57705156
    57715157  case 151:
    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) ) ); }
     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  */
    57765161    break;
    57775162
    57785163  case 152:
    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"
    5789     {
    5790                         StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     5164#line 730 "parser.yy" /* yacc.c:1646  */
     5165    {
     5166                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
    57915167                        // The semantics of the declaration list is changed to include associated initialization, which is performed
    57925168                        // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
     
    57945170                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    57955171                        // statement.
    5796                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
     5172                        (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
    57975173                }
     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  */
    57985181    break;
    57995182
    58005183  case 154:
    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) ) ); }
     5184#line 742 "parser.yy" /* yacc.c:1646  */
     5185    {
     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;
     5188                }
     5189#line 5190 "Parser/parser.cc" /* yacc.c:1646  */
    58055190    break;
    58065191
    58075192  case 155:
    5808 
    5809 /* Line 1806 of yacc.c  */
    5810 #line 785 "parser.yy"
    5811     {
    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;
     5193#line 752 "parser.yy" /* yacc.c:1646  */
     5194    { (yyval.en) = (yyvsp[0].en); }
     5195#line 5196 "Parser/parser.cc" /* yacc.c:1646  */
     5196    break;
     5197
     5198  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  */
     5208    break;
     5209
     5210  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  */
     5214    break;
     5215
     5216  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  */
     5220    break;
     5221
     5222  case 161:
     5223#line 766 "parser.yy" /* yacc.c:1646  */
     5224    { (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  */
     5232    break;
     5233
     5234  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  */
     5238    break;
     5239
     5240  case 165:
     5241#line 781 "parser.yy" /* yacc.c:1646  */
     5242    { (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  */
     5250    break;
     5251
     5252  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  */
     5256    break;
     5257
     5258  case 169:
     5259#line 794 "parser.yy" /* yacc.c:1646  */
     5260    { (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  */
     5268    break;
     5269
     5270  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  */
     5274    break;
     5275
     5276  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  */
     5280    break;
     5281
     5282  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  */
     5286    break;
     5287
     5288  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  */
     5296    { (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  */
     5302    { (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  */
     5310    break;
     5311
     5312  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  */
     5316    break;
     5317
     5318  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  */
     5322    break;
     5323
     5324  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  */
     5328    break;
     5329
     5330  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  */
     5334    break;
     5335
     5336  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  */
     5340    break;
     5341
     5342  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  */
     5346    break;
     5347
     5348  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  */
     5352    break;
     5353
     5354  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  */
     5358    break;
     5359
     5360  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  */
     5364    break;
     5365
     5366  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  */
     5370    break;
     5371
     5372  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  */
     5376    break;
     5377
     5378  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  */
     5382    break;
     5383
     5384  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  */
     5388    break;
     5389
     5390  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  */
     5394    break;
     5395
     5396  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  */
     5400    break;
     5401
     5402  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  */
     5406    break;
     5407
     5408  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  */
     5418    break;
     5419
     5420  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  */
     5424    break;
     5425
     5426  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  */
     5430    break;
     5431
     5432  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  */
     5436    break;
     5437
     5438  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  */
     5442    break;
     5443
     5444  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  */
     5448    break;
     5449
     5450  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  */
     5454    break;
     5455
     5456  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  */
     5460    break;
     5461
     5462  case 206:
     5463#line 904 "parser.yy" /* yacc.c:1646  */
     5464    {
     5465                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
    58145466                }
    5815     break;
    5816 
    5817   case 156:
    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) ) ); }
    5829     break;
    5830 
    5831   case 159:
    5832 
    5833 /* Line 1806 of yacc.c  */
    5834 #line 802 "parser.yy"
    5835     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    5836     break;
    5837 
    5838   case 160:
    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) ) ) ) ); }
    5843     break;
    5844 
    5845   case 161:
    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"
    5856     { (yyval.sn) = new StatementNode( build_default() ); }
    5857     break;
    5858 
    5859   case 164:
    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) )); }
    5864     break;
    5865 
    5866   case 165:
    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"
    5877     { (yyval.sn) = 0; }
    5878     break;
    5879 
    5880   case 168:
    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) ) ) ); }
    5885     break;
    5886 
    5887   case 169:
    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"
    5898     { (yyval.sn) = 0; }
    5899     break;
    5900 
    5901   case 172:
    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) ); }
    5906     break;
    5907 
    5908   case 173:
    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) ) ) ) ); }
    5913     break;
    5914 
    5915   case 174:
    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) ))); }
    5920     break;
    5921 
    5922   case 175:
    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"
    5940     { (yyval.sn) = 0; }
    5941     break;
    5942 
    5943   case 179:
    5944 
    5945 /* Line 1806 of yacc.c  */
    5946 #line 862 "parser.yy"
    5947     { (yyval.sn) = 0; }
    5948     break;
    5949 
    5950   case 180:
    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) ) ); }
    5955     break;
    5956 
    5957   case 181:
    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) ) ); }
    5962     break;
    5963 
    5964   case 182:
    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) ) ); }
    5969     break;
    5970 
    5971   case 183:
    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) ); }
    5976     break;
    5977 
    5978   case 184:
    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) ); }
    5983     break;
    5984 
    5985   case 185:
    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 ) ); }
    5990     break;
    5991 
    5992   case 186:
    5993 
    5994 /* Line 1806 of yacc.c  */
    5995 #line 887 "parser.yy"
    5996     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    5997     break;
    5998 
    5999   case 187:
    6000 
    6001 /* Line 1806 of yacc.c  */
    6002 #line 890 "parser.yy"
    6003     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    6004     break;
    6005 
    6006   case 188:
    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 ) ); }
    6011     break;
    6012 
    6013   case 189:
    6014 
    6015 /* Line 1806 of yacc.c  */
    6016 #line 897 "parser.yy"
    6017     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    6018     break;
    6019 
    6020   case 190:
    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 ) ); }
    6025     break;
    6026 
    6027   case 191:
    6028 
    6029 /* Line 1806 of yacc.c  */
    6030 #line 903 "parser.yy"
    6031     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    6032     break;
    6033 
    6034   case 192:
    6035 
    6036 /* Line 1806 of yacc.c  */
    6037 #line 905 "parser.yy"
    6038     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    6039     break;
    6040 
    6041   case 193:
    6042 
    6043 /* Line 1806 of yacc.c  */
    6044 #line 907 "parser.yy"
    6045     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    6046     break;
    6047 
    6048   case 194:
    6049 
    6050 /* Line 1806 of yacc.c  */
    6051 #line 909 "parser.yy"
    6052     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    6053     break;
    6054 
    6055   case 195:
    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 ) ); }
    6060     break;
    6061 
    6062   case 196:
    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) ) ); }
    6074     break;
    6075 
    6076   case 199:
    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 ) ); }
    6081     break;
    6082 
    6083   case 200:
    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 ) ) ); }
    6088     break;
    6089 
    6090   case 201:
    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 ) ); }
    6095     break;
    6096 
    6097   case 202:
    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 ) ) ); }
    6102     break;
    6103 
    6104   case 203:
    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) ) ); }
    6109     break;
    6110 
    6111   case 204:
    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) ) ) ); }
    6116     break;
    6117 
    6118   case 205:
    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) ) ); }
    6123     break;
    6124 
    6125   case 206:
    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"
    6136     {
    6137                         (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     5467#line 5468 "Parser/parser.cc" /* yacc.c:1646  */
     5468    break;
     5469
     5470  case 208:
     5471#line 917 "parser.yy" /* yacc.c:1646  */
     5472    {
     5473                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     5474                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    61385475                }
     5476#line 5477 "Parser/parser.cc" /* yacc.c:1646  */
    61395477    break;
    61405478
    61415479  case 209:
    6142 
    6143 /* Line 1806 of yacc.c  */
    6144 #line 960 "parser.yy"
     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  */
     5483    break;
     5484
     5485  case 210:
     5486#line 924 "parser.yy" /* yacc.c:1646  */
    61455487    {
    61465488                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6147                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     5489                        (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
    61485490                }
    6149     break;
    6150 
    6151   case 210:
    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"
     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  */
     5498    break;
     5499
     5500  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  */
     5504    break;
     5505
     5506  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  */
     5510    break;
     5511
     5512  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  */
     5516    break;
     5517
     5518  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  */
     5522    break;
     5523
     5524  case 217:
     5525#line 946 "parser.yy" /* yacc.c:1646  */
     5526    { (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  */
     5532    { (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  */
     5538    { (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  */
     5546    break;
     5547
     5548  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  */
     5552    break;
     5553
     5554  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  */
     5558    break;
     5559
     5560  case 225:
     5561#line 972 "parser.yy" /* yacc.c:1646  */
     5562    { (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  */
     5570    break;
     5571
     5572  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  */
     5576    break;
     5577
     5578  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  */
     5582    break;
     5583
     5584  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  */
     5588    break;
     5589
     5590  case 230:
     5591#line 990 "parser.yy" /* yacc.c:1646  */
     5592    { (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  */
     5600    break;
     5601
     5602  case 234:
     5603#line 1002 "parser.yy" /* yacc.c:1646  */
     5604    { (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  */
     5616    {}
     5617#line 5618 "Parser/parser.cc" /* yacc.c:1646  */
     5618    break;
     5619
     5620  case 243:
     5621#line 1024 "parser.yy" /* yacc.c:1646  */
     5622    {}
     5623#line 5624 "Parser/parser.cc" /* yacc.c:1646  */
     5624    break;
     5625
     5626  case 251:
     5627#line 1053 "parser.yy" /* yacc.c:1646  */
    61625628    {
    61635629                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6164                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
     5630                        (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
    61655631                }
    6166     break;
    6167 
    6168   case 213:
    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 ) ); }
    6173     break;
    6174 
    6175   case 214:
    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) ) ); }
    6180     break;
    6181 
    6182   case 215:
    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) ) ); }
    6187     break;
    6188 
    6189   case 216:
    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) ) ); }
    6194     break;
    6195 
    6196   case 217:
    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"
    6207     { (yyval.flag) = false; }
    6208     break;
    6209 
    6210   case 219:
    6211 
    6212 /* Line 1806 of yacc.c  */
    6213 #line 991 "parser.yy"
    6214     { (yyval.flag) = true; }
    6215     break;
    6216 
    6217   case 220:
    6218 
    6219 /* Line 1806 of yacc.c  */
    6220 #line 996 "parser.yy"
    6221     { (yyval.en) = 0; }
    6222     break;
    6223 
    6224   case 223:
    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) ); }
    6229     break;
    6230 
    6231   case 224:
    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) ) ); }
    6236     break;
    6237 
    6238   case 225:
    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"
    6249     { (yyval.en) = 0; }
    6250     break;
    6251 
    6252   case 227:
    6253 
    6254 /* Line 1806 of yacc.c  */
    6255 #line 1017 "parser.yy"
    6256     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    6257     break;
    6258 
    6259   case 228:
    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) ) ); }
    6264     break;
    6265 
    6266   case 229:
    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
     5632#line 5633 "Parser/parser.cc" /* yacc.c:1646  */
     5633    break;
     5634
     5635  case 252:
     5636#line 1060 "parser.yy" /* yacc.c:1646  */
     5637    {
     5638                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     5639                        (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
    62735640                }
    6274     break;
    6275 
    6276   case 230:
    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
     5641#line 5642 "Parser/parser.cc" /* yacc.c:1646  */
     5642    break;
     5643
     5644  case 253:
     5645#line 1065 "parser.yy" /* yacc.c:1646  */
     5646    {
     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) ) );
    62835649                }
    6284     break;
    6285 
    6286   case 231:
    6287 
    6288 /* Line 1806 of yacc.c  */
    6289 #line 1039 "parser.yy"
    6290     { (yyval.decl) = 0; }
    6291     break;
    6292 
    6293   case 234:
    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"
    6304     { (yyval.decl) = 0; }
    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"
    6318     {}
    6319     break;
    6320 
    6321   case 244:
    6322 
    6323 /* Line 1806 of yacc.c  */
    6324 #line 1073 "parser.yy"
    6325     {}
    6326     break;
    6327 
    6328   case 252:
    6329 
    6330 /* Line 1806 of yacc.c  */
    6331 #line 1102 "parser.yy"
     5650#line 5651 "Parser/parser.cc" /* yacc.c:1646  */
     5651    break;
     5652
     5653  case 254:
     5654#line 1075 "parser.yy" /* yacc.c:1646  */
     5655    {
     5656                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5657                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
     5658                }
     5659#line 5660 "Parser/parser.cc" /* yacc.c:1646  */
     5660    break;
     5661
     5662  case 255:
     5663#line 1080 "parser.yy" /* yacc.c:1646  */
     5664    {
     5665                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5666                        (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
     5667                }
     5668#line 5669 "Parser/parser.cc" /* yacc.c:1646  */
     5669    break;
     5670
     5671  case 256:
     5672#line 1085 "parser.yy" /* yacc.c:1646  */
     5673    {
     5674                        typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
     5675                        (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
     5676                }
     5677#line 5678 "Parser/parser.cc" /* yacc.c:1646  */
     5678    break;
     5679
     5680  case 257:
     5681#line 1093 "parser.yy" /* yacc.c:1646  */
    63325682    {
    63335683                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6334                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
     5684                        (yyval.decl) = (yyvsp[0].decl);
    63355685                }
    6336     break;
    6337 
    6338   case 253:
    6339 
    6340 /* Line 1806 of yacc.c  */
    6341 #line 1109 "parser.yy"
     5686#line 5687 "Parser/parser.cc" /* yacc.c:1646  */
     5687    break;
     5688
     5689  case 258:
     5690#line 1098 "parser.yy" /* yacc.c:1646  */
    63425691    {
    63435692                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6344                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
     5693                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63455694                }
    6346     break;
    6347 
    6348   case 254:
    6349 
    6350 /* Line 1806 of yacc.c  */
    6351 #line 1114 "parser.yy"
    6352     {
    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) ) );
     5695#line 5696 "Parser/parser.cc" /* yacc.c:1646  */
     5696    break;
     5697
     5698  case 259:
     5699#line 1103 "parser.yy" /* yacc.c:1646  */
     5700    {
     5701                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     5702                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
    63555703                }
    6356     break;
    6357 
    6358   case 255:
    6359 
    6360 /* Line 1806 of yacc.c  */
    6361 #line 1124 "parser.yy"
    6362     {
    6363                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6364                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5704#line 5705 "Parser/parser.cc" /* yacc.c:1646  */
     5705    break;
     5706
     5707  case 260:
     5708#line 1108 "parser.yy" /* yacc.c:1646  */
     5709    {
     5710                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     5711                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
    63655712                }
    6366     break;
    6367 
    6368   case 256:
    6369 
    6370 /* Line 1806 of yacc.c  */
    6371 #line 1129 "parser.yy"
    6372     {
    6373                         typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
    6374                         (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) );
     5713#line 5714 "Parser/parser.cc" /* yacc.c:1646  */
     5714    break;
     5715
     5716  case 261:
     5717#line 1113 "parser.yy" /* yacc.c:1646  */
     5718    {
     5719                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
     5720                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    63755721                }
    6376     break;
    6377 
    6378   case 257:
    6379 
    6380 /* Line 1806 of yacc.c  */
    6381 #line 1134 "parser.yy"
    6382     {
    6383                         typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
    6384                         (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) );
     5722#line 5723 "Parser/parser.cc" /* yacc.c:1646  */
     5723    break;
     5724
     5725  case 262:
     5726#line 1121 "parser.yy" /* yacc.c:1646  */
     5727    {
     5728                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );
    63855729                }
    6386     break;
    6387 
    6388   case 258:
    6389 
    6390 /* Line 1806 of yacc.c  */
    6391 #line 1142 "parser.yy"
    6392     {
    6393                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    6394                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     5730#line 5731 "Parser/parser.cc" /* yacc.c:1646  */
     5731    break;
     5732
     5733  case 263:
     5734#line 1144 "parser.yy" /* yacc.c:1646  */
     5735    {
     5736                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    63955737                }
    6396     break;
    6397 
    6398   case 259:
    6399 
    6400 /* Line 1806 of yacc.c  */
    6401 #line 1147 "parser.yy"
    6402     {
    6403                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    6404                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     5738#line 5739 "Parser/parser.cc" /* yacc.c:1646  */
     5739    break;
     5740
     5741  case 264:
     5742#line 1148 "parser.yy" /* yacc.c:1646  */
     5743    {
     5744                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
    64055745                }
    6406     break;
    6407 
    6408   case 260:
    6409 
    6410 /* Line 1806 of yacc.c  */
    6411 #line 1152 "parser.yy"
    6412     {
    6413                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    6414                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
     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  */
     5753    break;
     5754
     5755  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  */
     5759    break;
     5760
     5761  case 267:
     5762#line 1164 "parser.yy" /* yacc.c:1646  */
     5763    {
     5764                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     5765                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64155766                }
    6416     break;
    6417 
    6418   case 261:
    6419 
    6420 /* Line 1806 of yacc.c  */
    6421 #line 1157 "parser.yy"
    6422     {
    6423                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    6424                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
     5767#line 5768 "Parser/parser.cc" /* yacc.c:1646  */
     5768    break;
     5769
     5770  case 268:
     5771#line 1169 "parser.yy" /* yacc.c:1646  */
     5772    {
     5773                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     5774                        (yyval.decl) = (yyvsp[0].decl)->addTypedef();
    64255775                }
    6426     break;
    6427 
    6428   case 262:
    6429 
    6430 /* Line 1806 of yacc.c  */
    6431 #line 1162 "parser.yy"
    6432     {
    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) ) );
     5776#line 5777 "Parser/parser.cc" /* yacc.c:1646  */
     5777    break;
     5778
     5779  case 269:
     5780#line 1174 "parser.yy" /* yacc.c:1646  */
     5781    {
     5782                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     5783                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
    64355784                }
    6436     break;
    6437 
    6438   case 263:
    6439 
    6440 /* Line 1806 of yacc.c  */
    6441 #line 1170 "parser.yy"
    6442     {
    6443                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     5785#line 5786 "Parser/parser.cc" /* yacc.c:1646  */
     5786    break;
     5787
     5788  case 270:
     5789#line 1185 "parser.yy" /* yacc.c:1646  */
     5790    {
     5791                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     5792                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
    64445793                }
    6445     break;
    6446 
    6447   case 264:
    6448 
    6449 /* Line 1806 of yacc.c  */
    6450 #line 1193 "parser.yy"
    6451     {
    6452                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5794#line 5795 "Parser/parser.cc" /* yacc.c:1646  */
     5795    break;
     5796
     5797  case 271:
     5798#line 1190 "parser.yy" /* yacc.c:1646  */
     5799    {
     5800                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     5801                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
    64535802                }
    6454     break;
    6455 
    6456   case 265:
    6457 
    6458 /* Line 1806 of yacc.c  */
    6459 #line 1197 "parser.yy"
    6460     {
    6461                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     5803#line 5804 "Parser/parser.cc" /* yacc.c:1646  */
     5804    break;
     5805
     5806  case 272:
     5807#line 1195 "parser.yy" /* yacc.c:1646  */
     5808    {
     5809                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     5810                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
    64625811                }
    6463     break;
    6464 
    6465   case 266:
    6466 
    6467 /* Line 1806 of yacc.c  */
    6468 #line 1204 "parser.yy"
    6469     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    6470     break;
    6471 
    6472   case 267:
    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"
     5812#line 5813 "Parser/parser.cc" /* yacc.c:1646  */
     5813    break;
     5814
     5815  case 273:
     5816#line 1200 "parser.yy" /* yacc.c:1646  */
    64835817    {
    64845818                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6485                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5819                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
    64865820                }
    6487     break;
    6488 
    6489   case 269:
    6490 
    6491 /* Line 1806 of yacc.c  */
    6492 #line 1218 "parser.yy"
     5821#line 5822 "Parser/parser.cc" /* yacc.c:1646  */
     5822    break;
     5823
     5824  case 274:
     5825#line 1205 "parser.yy" /* yacc.c:1646  */
    64935826    {
    64945827                        typedefTable.addToEnclosingScope( TypedefTable::TD );
    6495                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
     5828                        (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
    64965829                }
    6497     break;
    6498 
    6499   case 270:
    6500 
    6501 /* Line 1806 of yacc.c  */
    6502 #line 1223 "parser.yy"
    6503     {
    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) ) );
    6506                 }
    6507     break;
    6508 
    6509   case 271:
    6510 
    6511 /* Line 1806 of yacc.c  */
    6512 #line 1234 "parser.yy"
    6513     {
    6514                         typedefTable.addToEnclosingScope( TypedefTable::TD );
    6515                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
    6516                 }
    6517     break;
    6518 
    6519   case 272:
    6520 
    6521 /* Line 1806 of yacc.c  */
    6522 #line 1239 "parser.yy"
    6523     {
    6524                         typedefTable.addToEnclosingScope( TypedefTable::TD );
    6525                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
    6526                 }
    6527     break;
    6528 
    6529   case 273:
    6530 
    6531 /* Line 1806 of yacc.c  */
    6532 #line 1244 "parser.yy"
    6533     {
    6534                         typedefTable.addToEnclosingScope( TypedefTable::TD );
    6535                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
    6536                 }
    6537     break;
    6538 
    6539   case 274:
    6540 
    6541 /* Line 1806 of yacc.c  */
    6542 #line 1249 "parser.yy"
    6543     {
    6544                         typedefTable.addToEnclosingScope( TypedefTable::TD );
    6545                         (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
    6546                 }
     5830#line 5831 "Parser/parser.cc" /* yacc.c:1646  */
    65475831    break;
    65485832
    65495833  case 275:
    6550 
    6551 /* Line 1806 of yacc.c  */
    6552 #line 1254 "parser.yy"
    6553     {
    6554                         typedefTable.addToEnclosingScope( TypedefTable::TD );
    6555                         (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
    6556                 }
    6557     break;
    6558 
    6559   case 276:
    6560 
    6561 /* Line 1806 of yacc.c  */
    6562 #line 1263 "parser.yy"
    6563     {
    6564                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     5834#line 1214 "parser.yy" /* yacc.c:1646  */
     5835    {
     5836                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65655837                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65665838                }
    6567     break;
    6568 
    6569   case 277:
    6570 
    6571 /* Line 1806 of yacc.c  */
    6572 #line 1268 "parser.yy"
    6573     {
    6574                         typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     5839#line 5840 "Parser/parser.cc" /* yacc.c:1646  */
     5840    break;
     5841
     5842  case 276:
     5843#line 1219 "parser.yy" /* yacc.c:1646  */
     5844    {
     5845                        typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
    65755846                        (yyval.decl) = DeclarationNode::newName( 0 ); // XXX
    65765847                }
     5848#line 5849 "Parser/parser.cc" /* yacc.c:1646  */
     5849    break;
     5850
     5851  case 281:
     5852#line 1236 "parser.yy" /* yacc.c:1646  */
     5853    {
     5854                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     5855                        (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
     5856                }
     5857#line 5858 "Parser/parser.cc" /* yacc.c:1646  */
    65775858    break;
    65785859
    65795860  case 282:
    6580 
    6581 /* Line 1806 of yacc.c  */
    6582 #line 1285 "parser.yy"
     5861#line 1241 "parser.yy" /* yacc.c:1646  */
    65835862    {
    65845863                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6585                         (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );
     5864                        (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
    65865865                }
    6587     break;
    6588 
    6589   case 283:
    6590 
    6591 /* Line 1806 of yacc.c  */
    6592 #line 1290 "parser.yy"
    6593     {
    6594                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    6595                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );
    6596                 }
    6597     break;
    6598 
    6599   case 292:
    6600 
    6601 /* Line 1806 of yacc.c  */
    6602 #line 1312 "parser.yy"
     5866#line 5867 "Parser/parser.cc" /* yacc.c:1646  */
     5867    break;
     5868
     5869  case 291:
     5870#line 1263 "parser.yy" /* yacc.c:1646  */
    66035871    { (yyval.decl) = 0; }
    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) ); }
     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  */
     5883    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     5884#line 5885 "Parser/parser.cc" /* yacc.c:1646  */
    66115885    break;
    66125886
    66135887  case 298:
    6614 
    6615 /* Line 1806 of yacc.c  */
    6616 #line 1335 "parser.yy"
    6617     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     5888#line 1288 "parser.yy" /* yacc.c:1646  */
     5889    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     5890#line 5891 "Parser/parser.cc" /* yacc.c:1646  */
    66185891    break;
    66195892
    66205893  case 299:
    6621 
    6622 /* Line 1806 of yacc.c  */
    6623 #line 1337 "parser.yy"
    6624     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     5894#line 1290 "parser.yy" /* yacc.c:1646  */
     5895    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     5896#line 5897 "Parser/parser.cc" /* yacc.c:1646  */
    66255897    break;
    66265898
    66275899  case 300:
    6628 
    6629 /* Line 1806 of yacc.c  */
    6630 #line 1339 "parser.yy"
    6631     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     5900#line 1292 "parser.yy" /* yacc.c:1646  */
     5901    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     5902#line 5903 "Parser/parser.cc" /* yacc.c:1646  */
    66325903    break;
    66335904
    66345905  case 301:
    6635 
    6636 /* Line 1806 of yacc.c  */
    6637 #line 1341 "parser.yy"
    6638     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     5906#line 1294 "parser.yy" /* yacc.c:1646  */
     5907    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     5908#line 5909 "Parser/parser.cc" /* yacc.c:1646  */
    66395909    break;
    66405910
    66415911  case 302:
    6642 
    6643 /* Line 1806 of yacc.c  */
    6644 #line 1343 "parser.yy"
    6645     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6646     break;
    6647 
    6648   case 303:
    6649 
    6650 /* Line 1806 of yacc.c  */
    6651 #line 1345 "parser.yy"
     5912#line 1296 "parser.yy" /* yacc.c:1646  */
    66525913    {
    66535914                        typedefTable.enterScope();
    66545915                }
    6655     break;
    6656 
    6657   case 304:
    6658 
    6659 /* Line 1806 of yacc.c  */
    6660 #line 1349 "parser.yy"
     5916#line 5917 "Parser/parser.cc" /* yacc.c:1646  */
     5917    break;
     5918
     5919  case 303:
     5920#line 1300 "parser.yy" /* yacc.c:1646  */
    66615921    {
    66625922                        typedefTable.leaveScope();
    6663                         (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
     5923                        (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
    66645924                }
     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  */
    66655932    break;
    66665933
    66675934  case 306:
    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) ); }
     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  */
    66795944    break;
    66805945
    66815946  case 309:
    6682 
    6683 /* Line 1806 of yacc.c  */
    6684 #line 1371 "parser.yy"
    6685     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     5947#line 1327 "parser.yy" /* yacc.c:1646  */
     5948    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     5949#line 5950 "Parser/parser.cc" /* yacc.c:1646  */
    66865950    break;
    66875951
    66885952  case 310:
    6689 
    6690 /* Line 1806 of yacc.c  */
    6691 #line 1376 "parser.yy"
    6692     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     5953#line 1329 "parser.yy" /* yacc.c:1646  */
     5954    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     5955#line 5956 "Parser/parser.cc" /* yacc.c:1646  */
    66935956    break;
    66945957
    66955958  case 311:
    6696 
    6697 /* Line 1806 of yacc.c  */
    6698 #line 1378 "parser.yy"
    6699     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     5959#line 1331 "parser.yy" /* yacc.c:1646  */
     5960    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     5961#line 5962 "Parser/parser.cc" /* yacc.c:1646  */
    67005962    break;
    67015963
    67025964  case 312:
    6703 
    6704 /* Line 1806 of yacc.c  */
    6705 #line 1380 "parser.yy"
    6706     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     5965#line 1333 "parser.yy" /* yacc.c:1646  */
     5966    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     5967#line 5968 "Parser/parser.cc" /* yacc.c:1646  */
    67075968    break;
    67085969
    67095970  case 313:
    6710 
    6711 /* Line 1806 of yacc.c  */
    6712 #line 1382 "parser.yy"
    6713     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     5971#line 1335 "parser.yy" /* yacc.c:1646  */
     5972    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     5973#line 5974 "Parser/parser.cc" /* yacc.c:1646  */
    67145974    break;
    67155975
    67165976  case 314:
    6717 
    6718 /* Line 1806 of yacc.c  */
    6719 #line 1384 "parser.yy"
    6720     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     5977#line 1337 "parser.yy" /* yacc.c:1646  */
     5978    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     5979#line 5980 "Parser/parser.cc" /* yacc.c:1646  */
    67215980    break;
    67225981
    67235982  case 315:
    6724 
    6725 /* Line 1806 of yacc.c  */
    6726 #line 1386 "parser.yy"
    6727     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     5983#line 1339 "parser.yy" /* yacc.c:1646  */
     5984    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     5985#line 5986 "Parser/parser.cc" /* yacc.c:1646  */
    67285986    break;
    67295987
    67305988  case 316:
    6731 
    6732 /* Line 1806 of yacc.c  */
    6733 #line 1388 "parser.yy"
    6734     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     5989#line 1341 "parser.yy" /* yacc.c:1646  */
     5990    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     5991#line 5992 "Parser/parser.cc" /* yacc.c:1646  */
    67355992    break;
    67365993
    67375994  case 317:
    6738 
    6739 /* Line 1806 of yacc.c  */
    6740 #line 1390 "parser.yy"
    6741     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     5995#line 1346 "parser.yy" /* yacc.c:1646  */
     5996    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     5997#line 5998 "Parser/parser.cc" /* yacc.c:1646  */
    67425998    break;
    67435999
    67446000  case 318:
    6745 
    6746 /* Line 1806 of yacc.c  */
    6747 #line 1395 "parser.yy"
    6748     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6001#line 1348 "parser.yy" /* yacc.c:1646  */
     6002    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6003#line 6004 "Parser/parser.cc" /* yacc.c:1646  */
    67496004    break;
    67506005
    67516006  case 319:
    6752 
    6753 /* Line 1806 of yacc.c  */
    6754 #line 1397 "parser.yy"
    6755     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6007#line 1350 "parser.yy" /* yacc.c:1646  */
     6008    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6009#line 6010 "Parser/parser.cc" /* yacc.c:1646  */
    67566010    break;
    67576011
    67586012  case 320:
    6759 
    6760 /* Line 1806 of yacc.c  */
    6761 #line 1399 "parser.yy"
    6762     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6013#line 1352 "parser.yy" /* yacc.c:1646  */
     6014    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6015#line 6016 "Parser/parser.cc" /* yacc.c:1646  */
    67636016    break;
    67646017
    67656018  case 321:
    6766 
    6767 /* Line 1806 of yacc.c  */
    6768 #line 1401 "parser.yy"
    6769     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6019#line 1354 "parser.yy" /* yacc.c:1646  */
     6020    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6021#line 6022 "Parser/parser.cc" /* yacc.c:1646  */
    67706022    break;
    67716023
    67726024  case 322:
    6773 
    6774 /* Line 1806 of yacc.c  */
    6775 #line 1403 "parser.yy"
    6776     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6025#line 1356 "parser.yy" /* yacc.c:1646  */
     6026    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6027#line 6028 "Parser/parser.cc" /* yacc.c:1646  */
    67776028    break;
    67786029
    67796030  case 323:
    6780 
    6781 /* Line 1806 of yacc.c  */
    6782 #line 1405 "parser.yy"
    6783     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6031#line 1358 "parser.yy" /* yacc.c:1646  */
     6032    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6033#line 6034 "Parser/parser.cc" /* yacc.c:1646  */
    67846034    break;
    67856035
    67866036  case 324:
    6787 
    6788 /* Line 1806 of yacc.c  */
    6789 #line 1407 "parser.yy"
    6790     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6037#line 1360 "parser.yy" /* yacc.c:1646  */
     6038    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6039#line 6040 "Parser/parser.cc" /* yacc.c:1646  */
    67916040    break;
    67926041
    67936042  case 325:
    6794 
    6795 /* Line 1806 of yacc.c  */
    6796 #line 1409 "parser.yy"
    6797     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6043#line 1362 "parser.yy" /* yacc.c:1646  */
     6044    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6045#line 6046 "Parser/parser.cc" /* yacc.c:1646  */
    67986046    break;
    67996047
    68006048  case 326:
    6801 
    6802 /* Line 1806 of yacc.c  */
    6803 #line 1411 "parser.yy"
    6804     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6049#line 1364 "parser.yy" /* yacc.c:1646  */
     6050    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6051#line 6052 "Parser/parser.cc" /* yacc.c:1646  */
    68056052    break;
    68066053
    68076054  case 327:
    6808 
    6809 /* Line 1806 of yacc.c  */
    6810 #line 1413 "parser.yy"
    6811     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6055#line 1366 "parser.yy" /* yacc.c:1646  */
     6056    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6057#line 6058 "Parser/parser.cc" /* yacc.c:1646  */
    68126058    break;
    68136059
    68146060  case 328:
    6815 
    6816 /* Line 1806 of yacc.c  */
    6817 #line 1415 "parser.yy"
    6818     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6061#line 1368 "parser.yy" /* yacc.c:1646  */
     6062    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6063#line 6064 "Parser/parser.cc" /* yacc.c:1646  */
    68196064    break;
    68206065
    68216066  case 329:
    6822 
    6823 /* Line 1806 of yacc.c  */
    6824 #line 1417 "parser.yy"
    6825     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6826     break;
    6827 
    6828   case 330:
    6829 
    6830 /* Line 1806 of yacc.c  */
    6831 #line 1419 "parser.yy"
     6067#line 1370 "parser.yy" /* yacc.c:1646  */
    68326068    { (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  */
    68336076    break;
    68346077
    68356078  case 332:
    6836 
    6837 /* Line 1806 of yacc.c  */
    6838 #line 1426 "parser.yy"
    6839     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    68406082    break;
    68416083
    68426084  case 333:
    6843 
    6844 /* Line 1806 of yacc.c  */
    6845 #line 1428 "parser.yy"
    6846     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    68476088    break;
    68486089
    68496090  case 334:
    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) ); }
     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  */
    68686106    break;
    68696107
    68706108  case 339:
    6871 
    6872 /* Line 1806 of yacc.c  */
    6873 #line 1445 "parser.yy"
    6874     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    68756112    break;
    68766113
    68776114  case 340:
    6878 
    6879 /* Line 1806 of yacc.c  */
    6880 #line 1447 "parser.yy"
    6881     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    68826118    break;
    68836119
    68846120  case 341:
    6885 
    6886 /* Line 1806 of yacc.c  */
    6887 #line 1449 "parser.yy"
    6888     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6121#line 1405 "parser.yy" /* yacc.c:1646  */
     6122    { (yyval.decl) = (yyvsp[-1].decl); }
     6123#line 6124 "Parser/parser.cc" /* yacc.c:1646  */
    68896124    break;
    68906125
    68916126  case 342:
    6892 
    6893 /* Line 1806 of yacc.c  */
    6894 #line 1454 "parser.yy"
    6895     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     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  */
    68966130    break;
    68976131
    68986132  case 343:
    6899 
    6900 /* Line 1806 of yacc.c  */
    6901 #line 1456 "parser.yy"
    6902     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     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  */
    69036136    break;
    69046137
    69056138  case 344:
    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) ); }
     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  */
    69176148    break;
    69186149
    69196150  case 347:
    6920 
    6921 /* Line 1806 of yacc.c  */
    6922 #line 1466 "parser.yy"
    6923     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    69246154    break;
    69256155
    69266156  case 348:
    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) ); }
     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  */
    69386166    break;
    69396167
    69406168  case 351:
    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) ); }
     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  */
    69526178    break;
    69536179
    69546180  case 354:
    6955 
    6956 /* Line 1806 of yacc.c  */
    6957 #line 1484 "parser.yy"
    6958     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     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  */
    69596184    break;
    69606185
    69616186  case 355:
    6962 
    6963 /* Line 1806 of yacc.c  */
    6964 #line 1486 "parser.yy"
    6965     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     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  */
    69666190    break;
    69676191
    69686192  case 356:
    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) ); }
     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  */
    69736196    break;
    69746197
    69756198  case 357:
    6976 
    6977 /* Line 1806 of yacc.c  */
    6978 #line 1493 "parser.yy"
    6979     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     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  */
    69806202    break;
    69816203
    69826204  case 358:
    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) ); }
     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  */
    69946214    break;
    69956215
    69966216  case 362:
    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 ); }
     6217#line 1460 "parser.yy" /* yacc.c:1646  */
     6218    {
     6219                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6220                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false );
     6221                }
     6222#line 6223 "Parser/parser.cc" /* yacc.c:1646  */
    70016223    break;
    70026224
    70036225  case 363:
    7004 
    7005 /* Line 1806 of yacc.c  */
    7006 #line 1509 "parser.yy"
    7007     {
    7008                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    7009                         (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false );
     6226#line 1465 "parser.yy" /* yacc.c:1646  */
     6227    { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
     6228#line 6229 "Parser/parser.cc" /* yacc.c:1646  */
     6229    break;
     6230
     6231  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  */
     6235    break;
     6236
     6237  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  */
     6241    break;
     6242
     6243  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  */
     6247    break;
     6248
     6249  case 367:
     6250#line 1476 "parser.yy" /* yacc.c:1646  */
     6251    { (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  */
     6257    { (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  */
     6263    { (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  */
     6281    {   // mark all fields in list
     6282                        for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6283                                iter->set_extension( true );
     6284                        (yyval.decl) = (yyvsp[-1].decl);
    70106285                }
    7011     break;
    7012 
    7013   case 364:
    7014 
    7015 /* Line 1806 of yacc.c  */
    7016 #line 1514 "parser.yy"
    7017     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    7018     break;
    7019 
    7020   case 365:
    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 ); }
    7025     break;
    7026 
    7027   case 366:
    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 ); }
    7032     break;
    7033 
    7034   case 367:
    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"
    7045     { (yyval.aggKey) = DeclarationNode::Struct; }
    7046     break;
    7047 
    7048   case 369:
    7049 
    7050 /* Line 1806 of yacc.c  */
    7051 #line 1527 "parser.yy"
    7052     { (yyval.aggKey) = DeclarationNode::Union; }
    7053     break;
    7054 
    7055   case 370:
    7056 
    7057 /* Line 1806 of yacc.c  */
    7058 #line 1532 "parser.yy"
     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  */
     6293    break;
     6294
     6295  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  */
     6299    break;
     6300
     6301  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  */
     6305    break;
     6306
     6307  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  */
     6311    break;
     6312
     6313  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  */
     6317    break;
     6318
     6319  case 381:
     6320#line 1520 "parser.yy" /* yacc.c:1646  */
     6321    { (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  */
     6329    break;
     6330
     6331  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  */
     6335    break;
     6336
     6337  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  */
     6345    { (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  */
     6353    break;
     6354
     6355  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  */
     6365    break;
     6366
     6367  case 391:
     6368#line 1552 "parser.yy" /* yacc.c:1646  */
     6369    {
     6370                        typedefTable.makeTypedef( *(yyvsp[0].tok) );
     6371                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
     6372                }
     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  */
     6380    break;
     6381
     6382  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  */
     6386    break;
     6387
     6388  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  */
     6392    break;
     6393
     6394  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  */
     6398    break;
     6399
     6400  case 396:
     6401#line 1571 "parser.yy" /* yacc.c:1646  */
     6402    { (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  */
     6410    break;
     6411
     6412  case 398:
     6413#line 1580 "parser.yy" /* yacc.c:1646  */
    70596414    { (yyval.decl) = 0; }
    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"
    7080     {   // mark all fields in list
    7081                         for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    7082                                 iter->set_extension( true );
    7083                         (yyval.decl) = (yyvsp[(2) - (3)].decl);
     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  */
     6422    break;
     6423
     6424  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  */
     6428    break;
     6429
     6430  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  */
     6440    break;
     6441
     6442  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  */
     6446    break;
     6447
     6448  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  */
     6458    break;
     6459
     6460  case 411:
     6461#line 1615 "parser.yy" /* yacc.c:1646  */
     6462    { (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  */
     6476    break;
     6477
     6478  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  */
     6488    break;
     6489
     6490  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  */
     6494    break;
     6495
     6496  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  */
     6510    {
     6511                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     6512                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    70846513                }
    7085     break;
    7086 
    7087   case 377:
    7088 
    7089 /* Line 1806 of yacc.c  */
    7090 #line 1553 "parser.yy"
    7091     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    7092     break;
    7093 
    7094   case 378:
    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) ) ); }
    7099     break;
    7100 
    7101   case 379:
    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 ) ); }
    7106     break;
    7107 
    7108   case 380:
    7109 
    7110 /* Line 1806 of yacc.c  */
    7111 #line 1562 "parser.yy"
    7112     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7113     break;
    7114 
    7115   case 381:
    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"
    7126     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    7127     break;
    7128 
    7129   case 383:
    7130 
    7131 /* Line 1806 of yacc.c  */
    7132 #line 1571 "parser.yy"
    7133     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    7134     break;
    7135 
    7136   case 384:
    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"
    7154     { (yyval.en) = 0; }
    7155     break;
    7156 
    7157   case 388:
    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); }
    7169     break;
    7170 
    7171   case 391:
    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"
    7182     {
    7183                         typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
    7184                         (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
     6514#line 6515 "Parser/parser.cc" /* yacc.c:1646  */
     6515    break;
     6516
     6517  case 430:
     6518#line 1666 "parser.yy" /* yacc.c:1646  */
     6519    {
     6520                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     6521                        (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
    71856522                }
    7186     break;
    7187 
    7188   case 393:
    7189 
    7190 /* Line 1806 of yacc.c  */
    7191 #line 1606 "parser.yy"
    7192     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    7193     break;
    7194 
    7195   case 394:
    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) ); }
    7200     break;
    7201 
    7202   case 395:
    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) ); }
    7207     break;
    7208 
    7209   case 396:
    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"
    7220     { (yyval.en) = 0; }
    7221     break;
    7222 
    7223   case 398:
    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"
     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  */
     6530    break;
     6531
     6532  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  */
     6536    break;
     6537
     6538  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  */
     6554    break;
     6555
     6556  case 451:
     6557#line 1724 "parser.yy" /* yacc.c:1646  */
     6558    { (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  */
     6566    break;
     6567
     6568  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  */
     6572    break;
     6573
     6574  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  */
     6578    break;
     6579
     6580  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  */
     6584    break;
     6585
     6586  case 456:
     6587#line 1738 "parser.yy" /* yacc.c:1646  */
     6588    { (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  */
     6596    break;
     6597
     6598  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  */
     6602    break;
     6603
     6604  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  */
     6620    break;
     6621
     6622  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  */
     6626    break;
     6627
     6628  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  */
     6632    break;
     6633
     6634  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  */
     6638    break;
     6639
     6640  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  */
     6644    break;
     6645
     6646  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  */
     6656    break;
     6657
     6658  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  */
     6662    break;
     6663
     6664  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  */
     6674    break;
     6675
     6676  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  */
     6680    break;
     6681
     6682  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  */
     6692    break;
     6693
     6694  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  */
     6698    break;
     6699
     6700  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  */
     6708    { (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  */
     6714    { (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  */
     6720    { (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  */
    72346726    { (yyval.decl) = 0; }
    7235     break;
    7236 
    7237   case 403:
    7238 
    7239 /* Line 1806 of yacc.c  */
    7240 #line 1637 "parser.yy"
    7241     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7242     break;
    7243 
    7244   case 404:
    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(); }
    7256     break;
    7257 
    7258   case 407:
    7259 
    7260 /* Line 1806 of yacc.c  */
    7261 #line 1649 "parser.yy"
    7262     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7263     break;
    7264 
    7265   case 408:
    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) ); }
    7277     break;
    7278 
    7279   case 411:
    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"
     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  */
     6734    break;
     6735
     6736  case 488:
     6737#line 1856 "parser.yy" /* yacc.c:1646  */
     6738    {
     6739                        typedefTable.openTrait( *(yyvsp[-3].tok) );
     6740                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
     6741                }
     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  */
     6749    break;
     6750
     6751  case 490:
     6752#line 1863 "parser.yy" /* yacc.c:1646  */
    72906753    { (yyval.decl) = 0; }
    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(); }
    7298     break;
    7299 
    7300   case 418:
    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) ); }
    7312     break;
    7313 
    7314   case 421:
    7315 
    7316 /* Line 1806 of yacc.c  */
    7317 #line 1689 "parser.yy"
    7318     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7319     break;
    7320 
    7321   case 422:
    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"
    7346     {
    7347                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    7348                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     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  */
     6767    break;
     6768
     6769  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  */
     6773    break;
     6774
     6775  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  */
     6779    break;
     6780
     6781  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  */
     6785    break;
     6786
     6787  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  */
     6791    break;
     6792
     6793  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  */
     6797    break;
     6798
     6799  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  */
     6803    break;
     6804
     6805  case 500:
     6806#line 1894 "parser.yy" /* yacc.c:1646  */
     6807    {
     6808                        typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
     6809                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
    73496810                }
    7350     break;
    7351 
    7352   case 431:
    7353 
    7354 /* Line 1806 of yacc.c  */
    7355 #line 1715 "parser.yy"
    7356     {
    7357                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    7358                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );
     6811#line 6812 "Parser/parser.cc" /* yacc.c:1646  */
     6812    break;
     6813
     6814  case 501:
     6815#line 1899 "parser.yy" /* yacc.c:1646  */
     6816    {
     6817                        typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
     6818                        (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
    73596819                }
    7360     break;
    7361 
    7362   case 433:
    7363 
    7364 /* Line 1806 of yacc.c  */
    7365 #line 1724 "parser.yy"
    7366     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7367     break;
    7368 
    7369   case 434:
    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) ); }
    7388     break;
    7389 
    7390   case 451:
    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"
    7401     { (yyval.in) = 0; }
    7402     break;
    7403 
    7404   case 453:
    7405 
    7406 /* Line 1806 of yacc.c  */
    7407 #line 1775 "parser.yy"
    7408     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7409     break;
    7410 
    7411   case 454:
    7412 
    7413 /* Line 1806 of yacc.c  */
    7414 #line 1777 "parser.yy"
    7415     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7416     break;
    7417 
    7418   case 455:
    7419 
    7420 /* Line 1806 of yacc.c  */
    7421 #line 1781 "parser.yy"
    7422     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7423     break;
    7424 
    7425   case 456:
    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"
    7436     { (yyval.in) = 0; }
    7437     break;
    7438 
    7439   case 459:
    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) ); }
    7444     break;
    7445 
    7446   case 460:
    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) ) ); }
    7465     break;
    7466 
    7467   case 465:
    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) ) ); }
    7472     break;
    7473 
    7474   case 466:
    7475 
    7476 /* Line 1806 of yacc.c  */
    7477 #line 1820 "parser.yy"
    7478     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    7479     break;
    7480 
    7481   case 467:
    7482 
    7483 /* Line 1806 of yacc.c  */
    7484 #line 1823 "parser.yy"
    7485     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7486     break;
    7487 
    7488   case 468:
    7489 
    7490 /* Line 1806 of yacc.c  */
    7491 #line 1825 "parser.yy"
    7492     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7493     break;
    7494 
    7495   case 469:
    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); }
    7507     break;
    7508 
    7509   case 472:
    7510 
    7511 /* Line 1806 of yacc.c  */
    7512 #line 1853 "parser.yy"
    7513     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7514     break;
    7515 
    7516   case 473:
    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) ); }
    7528     break;
    7529 
    7530   case 476:
    7531 
    7532 /* Line 1806 of yacc.c  */
    7533 #line 1863 "parser.yy"
    7534     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7535     break;
    7536 
    7537   case 477:
    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) ); }
    7549     break;
    7550 
    7551   case 480:
    7552 
    7553 /* Line 1806 of yacc.c  */
    7554 #line 1876 "parser.yy"
    7555     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    7556     break;
    7557 
    7558   case 481:
    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"
    7576     { (yyval.tclass) = DeclarationNode::Type; }
    7577     break;
    7578 
    7579   case 485:
    7580 
    7581 /* Line 1806 of yacc.c  */
    7582 #line 1891 "parser.yy"
    7583     { (yyval.tclass) = DeclarationNode::Ftype; }
    7584     break;
    7585 
    7586   case 486:
    7587 
    7588 /* Line 1806 of yacc.c  */
    7589 #line 1893 "parser.yy"
    7590     { (yyval.tclass) = DeclarationNode::Dtype; }
    7591     break;
    7592 
    7593   case 487:
    7594 
    7595 /* Line 1806 of yacc.c  */
    7596 #line 1898 "parser.yy"
    7597     { (yyval.decl) = 0; }
    7598     break;
    7599 
    7600   case 488:
    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"
    7611     {
    7612                         typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
    7613                         (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
     6820#line 6821 "Parser/parser.cc" /* yacc.c:1646  */
     6821    break;
     6822
     6823  case 502:
     6824#line 1907 "parser.yy" /* yacc.c:1646  */
     6825    {
     6826                        typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
     6827                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
    76146828                }
    7615     break;
    7616 
    7617   case 490:
    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"
    7628     { (yyval.decl) = 0; }
    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) ) ); }
    7636     break;
    7637 
    7638   case 494:
    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) ) ) ) ); }
    7643     break;
    7644 
    7645   case 495:
    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) )); }
    7650     break;
    7651 
    7652   case 496:
    7653 
    7654 /* Line 1806 of yacc.c  */
    7655 #line 1927 "parser.yy"
    7656     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7657     break;
    7658 
    7659   case 497:
    7660 
    7661 /* Line 1806 of yacc.c  */
    7662 #line 1929 "parser.yy"
    7663     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    7664     break;
    7665 
    7666   case 498:
    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) ) ); }
    7671     break;
    7672 
    7673   case 499:
    7674 
    7675 /* Line 1806 of yacc.c  */
    7676 #line 1936 "parser.yy"
    7677     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7678     break;
    7679 
    7680   case 500:
    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"
    7691     {
    7692                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
    7693                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
    7694                 }
    7695     break;
    7696 
    7697   case 502:
    7698 
    7699 /* Line 1806 of yacc.c  */
    7700 #line 1948 "parser.yy"
    7701     {
    7702                         typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
    7703                         (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
    7704                 }
     6829#line 6830 "Parser/parser.cc" /* yacc.c:1646  */
    77056830    break;
    77066831
    77076832  case 503:
    7708 
    7709 /* Line 1806 of yacc.c  */
    7710 #line 1956 "parser.yy"
    7711     {
    7712                         typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
    7713                         (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
    7714                 }
    7715     break;
    7716 
    7717   case 504:
    7718 
    7719 /* Line 1806 of yacc.c  */
    7720 #line 1961 "parser.yy"
    7721     {
    7722                         typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     6833#line 1912 "parser.yy" /* yacc.c:1646  */
     6834    {
     6835                        typedefTable.enterTrait( *(yyvsp[-6].tok) );
    77236836                        typedefTable.enterScope();
    77246837                }
    7725     break;
    7726 
    7727   case 505:
    7728 
    7729 /* Line 1806 of yacc.c  */
    7730 #line 1966 "parser.yy"
     6838#line 6839 "Parser/parser.cc" /* yacc.c:1646  */
     6839    break;
     6840
     6841  case 504:
     6842#line 1917 "parser.yy" /* yacc.c:1646  */
    77316843    {
    77326844                        typedefTable.leaveTrait();
    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) );
     6845                        typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID );
     6846                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
    77356847                }
    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) ); }
     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  */
     6859    {
     6860                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     6861                        (yyval.decl) = (yyvsp[0].decl);
     6862                }
     6863#line 6864 "Parser/parser.cc" /* yacc.c:1646  */
    77436864    break;
    77446865
    77456866  case 510:
    7746 
    7747 /* Line 1806 of yacc.c  */
    7748 #line 1986 "parser.yy"
     6867#line 1942 "parser.yy" /* yacc.c:1646  */
    77496868    {
    77506869                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7751                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6870                        (yyval.decl) = (yyvsp[0].decl);
    77526871                }
     6872#line 6873 "Parser/parser.cc" /* yacc.c:1646  */
    77536873    break;
    77546874
    77556875  case 511:
    7756 
    7757 /* Line 1806 of yacc.c  */
    7758 #line 1991 "parser.yy"
     6876#line 1947 "parser.yy" /* yacc.c:1646  */
     6877    {
     6878                        typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
     6879                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
     6880                }
     6881#line 6882 "Parser/parser.cc" /* yacc.c:1646  */
     6882    break;
     6883
     6884  case 512:
     6885#line 1955 "parser.yy" /* yacc.c:1646  */
    77596886    {
    77606887                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7761                         (yyval.decl) = (yyvsp[(1) - (1)].decl);
     6888                        (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
    77626889                }
    7763     break;
    7764 
    7765   case 512:
    7766 
    7767 /* Line 1806 of yacc.c  */
    7768 #line 1996 "parser.yy"
    7769     {
    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) ) );
     6890#line 6891 "Parser/parser.cc" /* yacc.c:1646  */
     6891    break;
     6892
     6893  case 513:
     6894#line 1960 "parser.yy" /* yacc.c:1646  */
     6895    {
     6896                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     6897                        (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
    77726898                }
    7773     break;
    7774 
    7775   case 513:
    7776 
    7777 /* Line 1806 of yacc.c  */
    7778 #line 2004 "parser.yy"
    7779     {
    7780                         typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7781                         (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
     6899#line 6900 "Parser/parser.cc" /* yacc.c:1646  */
     6900    break;
     6901
     6902  case 514:
     6903#line 1970 "parser.yy" /* yacc.c:1646  */
     6904    {}
     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  */
     6918    break;
     6919
     6920  case 518:
     6921#line 1983 "parser.yy" /* yacc.c:1646  */
     6922    { (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  */
     6928    {}
     6929#line 6930 "Parser/parser.cc" /* yacc.c:1646  */
     6930    break;
     6931
     6932  case 523:
     6933#line 1993 "parser.yy" /* yacc.c:1646  */
     6934    {
     6935                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     6936                        linkage = LinkageSpec::fromString( assign_strptr((yyvsp[0].tok)) );
    77826937                }
    7783     break;
    7784 
    7785   case 514:
    7786 
    7787 /* Line 1806 of yacc.c  */
    7788 #line 2009 "parser.yy"
    7789     {
    7790                         typedefTable.addToEnclosingScope2( TypedefTable::ID );
    7791                         (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
    7792                 }
    7793     break;
    7794 
    7795   case 515:
    7796 
    7797 /* Line 1806 of yacc.c  */
    7798 #line 2019 "parser.yy"
    7799     {}
    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);    }
    7807     break;
    7808 
    7809   case 518:
    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"
    7820     { (yyval.decl) = 0; }
    7821     break;
    7822 
    7823   case 523:
    7824 
    7825 /* Line 1806 of yacc.c  */
    7826 #line 2040 "parser.yy"
    7827     {}
     6938#line 6939 "Parser/parser.cc" /* yacc.c:1646  */
    78286939    break;
    78296940
    78306941  case 524:
    7831 
    7832 /* Line 1806 of yacc.c  */
    7833 #line 2042 "parser.yy"
    7834     {
    7835                         linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    7836                         linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );
    7837                 }
    7838     break;
    7839 
    7840   case 525:
    7841 
    7842 /* Line 1806 of yacc.c  */
    7843 #line 2047 "parser.yy"
     6942#line 1998 "parser.yy" /* yacc.c:1646  */
    78446943    {
    78456944                        linkage = linkageStack.top();
    78466945                        linkageStack.pop();
    7847                         (yyval.decl) = (yyvsp[(5) - (6)].decl);
     6946                        (yyval.decl) = (yyvsp[-1].decl);
    78486947                }
    7849     break;
    7850 
    7851   case 526:
    7852 
    7853 /* Line 1806 of yacc.c  */
    7854 #line 2053 "parser.yy"
     6948#line 6949 "Parser/parser.cc" /* yacc.c:1646  */
     6949    break;
     6950
     6951  case 525:
     6952#line 2004 "parser.yy" /* yacc.c:1646  */
    78556953    {   // mark all fields in list
    7856                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     6954                        for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
    78576955                                iter->set_extension( true );
    7858                         (yyval.decl) = (yyvsp[(2) - (2)].decl);
     6956                        (yyval.decl) = (yyvsp[0].decl);
    78596957                }
    7860     break;
    7861 
    7862   case 528:
    7863 
    7864 /* Line 1806 of yacc.c  */
    7865 #line 2068 "parser.yy"
     6958#line 6959 "Parser/parser.cc" /* yacc.c:1646  */
     6959    break;
     6960
     6961  case 527:
     6962#line 2019 "parser.yy" /* yacc.c:1646  */
    78666963    {
    78676964                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78686965                        typedefTable.leaveScope();
    7869                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6966                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78706967                }
    7871     break;
    7872 
    7873   case 529:
    7874 
    7875 /* Line 1806 of yacc.c  */
    7876 #line 2074 "parser.yy"
     6968#line 6969 "Parser/parser.cc" /* yacc.c:1646  */
     6969    break;
     6970
     6971  case 528:
     6972#line 2025 "parser.yy" /* yacc.c:1646  */
    78776973    {
    78786974                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78796975                        typedefTable.leaveScope();
    7880                         (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
     6976                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
    78816977                }
    7882     break;
    7883 
    7884   case 530:
    7885 
    7886 /* Line 1806 of yacc.c  */
    7887 #line 2083 "parser.yy"
     6978#line 6979 "Parser/parser.cc" /* yacc.c:1646  */
     6979    break;
     6980
     6981  case 529:
     6982#line 2034 "parser.yy" /* yacc.c:1646  */
    78886983    {
    78896984                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    78906985                        typedefTable.leaveScope();
    7891                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
     6986                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
    78926987                }
    7893     break;
    7894 
    7895   case 531:
    7896 
    7897 /* Line 1806 of yacc.c  */
    7898 #line 2089 "parser.yy"
     6988#line 6989 "Parser/parser.cc" /* yacc.c:1646  */
     6989    break;
     6990
     6991  case 530:
     6992#line 2040 "parser.yy" /* yacc.c:1646  */
    78996993    {
    79006994                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79016995                        typedefTable.leaveScope();
    7902                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
     6996                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
    79036997                }
    7904     break;
    7905 
    7906   case 532:
    7907 
    7908 /* Line 1806 of yacc.c  */
    7909 #line 2095 "parser.yy"
     6998#line 6999 "Parser/parser.cc" /* yacc.c:1646  */
     6999    break;
     7000
     7001  case 531:
     7002#line 2046 "parser.yy" /* yacc.c:1646  */
    79107003    {
    79117004                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79127005                        typedefTable.leaveScope();
    7913                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7006                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    79147007                }
    7915     break;
    7916 
    7917   case 533:
    7918 
    7919 /* Line 1806 of yacc.c  */
    7920 #line 2101 "parser.yy"
     7008#line 7009 "Parser/parser.cc" /* yacc.c:1646  */
     7009    break;
     7010
     7011  case 532:
     7012#line 2052 "parser.yy" /* yacc.c:1646  */
    79217013    {
    79227014                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79237015                        typedefTable.leaveScope();
    7924                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
     7016                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
    79257017                }
    7926     break;
    7927 
    7928   case 534:
    7929 
    7930 /* Line 1806 of yacc.c  */
    7931 #line 2107 "parser.yy"
     7018#line 7019 "Parser/parser.cc" /* yacc.c:1646  */
     7019    break;
     7020
     7021  case 533:
     7022#line 2058 "parser.yy" /* yacc.c:1646  */
    79327023    {
    79337024                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79347025                        typedefTable.leaveScope();
    7935                         (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
     7026                        (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
    79367027                }
    7937     break;
    7938 
    7939   case 535:
    7940 
    7941 /* Line 1806 of yacc.c  */
    7942 #line 2115 "parser.yy"
     7028#line 7029 "Parser/parser.cc" /* yacc.c:1646  */
     7029    break;
     7030
     7031  case 534:
     7032#line 2066 "parser.yy" /* yacc.c:1646  */
    79437033    {
    79447034                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79457035                        typedefTable.leaveScope();
    7946                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
     7036                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
    79477037                }
    7948     break;
    7949 
    7950   case 536:
    7951 
    7952 /* Line 1806 of yacc.c  */
    7953 #line 2121 "parser.yy"
     7038#line 7039 "Parser/parser.cc" /* yacc.c:1646  */
     7039    break;
     7040
     7041  case 535:
     7042#line 2072 "parser.yy" /* yacc.c:1646  */
    79547043    {
    79557044                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79567045                        typedefTable.leaveScope();
    7957                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7046                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79587047                }
    7959     break;
    7960 
    7961   case 537:
    7962 
    7963 /* Line 1806 of yacc.c  */
    7964 #line 2129 "parser.yy"
     7048#line 7049 "Parser/parser.cc" /* yacc.c:1646  */
     7049    break;
     7050
     7051  case 536:
     7052#line 2080 "parser.yy" /* yacc.c:1646  */
    79657053    {
    79667054                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79677055                        typedefTable.leaveScope();
    7968                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7056                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
    79697057                }
    7970     break;
    7971 
    7972   case 538:
    7973 
    7974 /* Line 1806 of yacc.c  */
    7975 #line 2135 "parser.yy"
     7058#line 7059 "Parser/parser.cc" /* yacc.c:1646  */
     7059    break;
     7060
     7061  case 537:
     7062#line 2086 "parser.yy" /* yacc.c:1646  */
    79767063    {
    79777064                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    79787065                        typedefTable.leaveScope();
    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) );
     7066                        (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
    79807067                }
    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) ) ); }
     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 543:
     7078#line 2107 "parser.yy" /* yacc.c:1646  */
     7079    { delete (yyvsp[-2].constant); }
     7080#line 7081 "Parser/parser.cc" /* yacc.c:1646  */
    79887081    break;
    79897082
    79907083  case 544:
    7991 
    7992 /* Line 1806 of yacc.c  */
    7993 #line 2156 "parser.yy"
    7994     { delete (yyvsp[(3) - (5)].str); }
    7995     break;
    7996 
    7997   case 545:
    7998 
    7999 /* Line 1806 of yacc.c  */
    8000 #line 2161 "parser.yy"
     7084#line 2112 "parser.yy" /* yacc.c:1646  */
    80017085    { (yyval.decl) = 0; }
     7086#line 7087 "Parser/parser.cc" /* yacc.c:1646  */
     7087    break;
     7088
     7089  case 547:
     7090#line 2119 "parser.yy" /* yacc.c:1646  */
     7091    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     7092#line 7093 "Parser/parser.cc" /* yacc.c:1646  */
    80027093    break;
    80037094
    80047095  case 548:
    8005 
    8006 /* Line 1806 of yacc.c  */
    8007 #line 2168 "parser.yy"
    8008     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8009     break;
    8010 
    8011   case 549:
    8012 
    8013 /* Line 1806 of yacc.c  */
    8014 #line 2174 "parser.yy"
     7096#line 2125 "parser.yy" /* yacc.c:1646  */
    80157097    { (yyval.decl) = 0; }
     7098#line 7099 "Parser/parser.cc" /* yacc.c:1646  */
     7099    break;
     7100
     7101  case 553:
     7102#line 2137 "parser.yy" /* yacc.c:1646  */
     7103    { delete (yyvsp[-1].en); }
     7104#line 7105 "Parser/parser.cc" /* yacc.c:1646  */
    80167105    break;
    80177106
    80187107  case 554:
    8019 
    8020 /* Line 1806 of yacc.c  */
    8021 #line 2186 "parser.yy"
    8022     { delete (yyvsp[(3) - (4)].en); }
     7108#line 2141 "parser.yy" /* yacc.c:1646  */
     7109    { delete (yyvsp[0].tok); }
     7110#line 7111 "Parser/parser.cc" /* yacc.c:1646  */
    80237111    break;
    80247112
    80257113  case 555:
    8026 
    8027 /* Line 1806 of yacc.c  */
    8028 #line 2190 "parser.yy"
    8029     { delete (yyvsp[(1) - (1)].tok); }
     7114#line 2142 "parser.yy" /* yacc.c:1646  */
     7115    { delete (yyvsp[0].decl); }
     7116#line 7117 "Parser/parser.cc" /* yacc.c:1646  */
    80307117    break;
    80317118
    80327119  case 556:
    8033 
    8034 /* Line 1806 of yacc.c  */
    8035 #line 2191 "parser.yy"
    8036     { delete (yyvsp[(1) - (1)].decl); }
     7120#line 2143 "parser.yy" /* yacc.c:1646  */
     7121    { delete (yyvsp[0].decl); }
     7122#line 7123 "Parser/parser.cc" /* yacc.c:1646  */
    80377123    break;
    80387124
    80397125  case 557:
    8040 
    8041 /* Line 1806 of yacc.c  */
    8042 #line 2192 "parser.yy"
    8043     { delete (yyvsp[(1) - (1)].decl); }
     7126#line 2144 "parser.yy" /* yacc.c:1646  */
     7127    { delete (yyvsp[0].decl); }
     7128#line 7129 "Parser/parser.cc" /* yacc.c:1646  */
    80447129    break;
    80457130
    80467131  case 558:
    8047 
    8048 /* Line 1806 of yacc.c  */
    8049 #line 2193 "parser.yy"
    8050     { delete (yyvsp[(1) - (1)].decl); }
    8051     break;
    8052 
    8053   case 559:
    8054 
    8055 /* Line 1806 of yacc.c  */
    8056 #line 2228 "parser.yy"
    8057     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7132#line 2179 "parser.yy" /* yacc.c:1646  */
     7133    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7134#line 7135 "Parser/parser.cc" /* yacc.c:1646  */
     7135    break;
     7136
     7137  case 560:
     7138#line 2182 "parser.yy" /* yacc.c:1646  */
     7139    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7140#line 7141 "Parser/parser.cc" /* yacc.c:1646  */
    80587141    break;
    80597142
    80607143  case 561:
    8061 
    8062 /* Line 1806 of yacc.c  */
    8063 #line 2231 "parser.yy"
    8064     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7144#line 2184 "parser.yy" /* yacc.c:1646  */
     7145    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7146#line 7147 "Parser/parser.cc" /* yacc.c:1646  */
    80657147    break;
    80667148
    80677149  case 562:
    8068 
    8069 /* Line 1806 of yacc.c  */
    8070 #line 2233 "parser.yy"
    8071     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7150#line 2189 "parser.yy" /* yacc.c:1646  */
     7151    {
     7152                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7153                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
     7154                }
     7155#line 7156 "Parser/parser.cc" /* yacc.c:1646  */
    80727156    break;
    80737157
    80747158  case 563:
    8075 
    8076 /* Line 1806 of yacc.c  */
    8077 #line 2238 "parser.yy"
    8078     {
    8079                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8080                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7159#line 2194 "parser.yy" /* yacc.c:1646  */
     7160    { (yyval.decl) = (yyvsp[-1].decl); }
     7161#line 7162 "Parser/parser.cc" /* yacc.c:1646  */
     7162    break;
     7163
     7164  case 564:
     7165#line 2199 "parser.yy" /* yacc.c:1646  */
     7166    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7167#line 7168 "Parser/parser.cc" /* yacc.c:1646  */
     7168    break;
     7169
     7170  case 565:
     7171#line 2201 "parser.yy" /* yacc.c:1646  */
     7172    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7173#line 7174 "Parser/parser.cc" /* yacc.c:1646  */
     7174    break;
     7175
     7176  case 566:
     7177#line 2203 "parser.yy" /* yacc.c:1646  */
     7178    { (yyval.decl) = (yyvsp[-1].decl); }
     7179#line 7180 "Parser/parser.cc" /* yacc.c:1646  */
     7180    break;
     7181
     7182  case 567:
     7183#line 2208 "parser.yy" /* yacc.c:1646  */
     7184    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7185#line 7186 "Parser/parser.cc" /* yacc.c:1646  */
     7186    break;
     7187
     7188  case 568:
     7189#line 2210 "parser.yy" /* yacc.c:1646  */
     7190    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7191#line 7192 "Parser/parser.cc" /* yacc.c:1646  */
     7192    break;
     7193
     7194  case 569:
     7195#line 2212 "parser.yy" /* yacc.c:1646  */
     7196    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7197#line 7198 "Parser/parser.cc" /* yacc.c:1646  */
     7198    break;
     7199
     7200  case 570:
     7201#line 2214 "parser.yy" /* yacc.c:1646  */
     7202    { (yyval.decl) = (yyvsp[-1].decl); }
     7203#line 7204 "Parser/parser.cc" /* yacc.c:1646  */
     7204    break;
     7205
     7206  case 571:
     7207#line 2219 "parser.yy" /* yacc.c:1646  */
     7208    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7209#line 7210 "Parser/parser.cc" /* yacc.c:1646  */
     7210    break;
     7211
     7212  case 572:
     7213#line 2221 "parser.yy" /* yacc.c:1646  */
     7214    { (yyval.decl) = (yyvsp[-1].decl); }
     7215#line 7216 "Parser/parser.cc" /* yacc.c:1646  */
     7216    break;
     7217
     7218  case 573:
     7219#line 2230 "parser.yy" /* yacc.c:1646  */
     7220    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7221#line 7222 "Parser/parser.cc" /* yacc.c:1646  */
     7222    break;
     7223
     7224  case 575:
     7225#line 2233 "parser.yy" /* yacc.c:1646  */
     7226    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7227#line 7228 "Parser/parser.cc" /* yacc.c:1646  */
     7228    break;
     7229
     7230  case 576:
     7231#line 2238 "parser.yy" /* yacc.c:1646  */
     7232    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7233#line 7234 "Parser/parser.cc" /* yacc.c:1646  */
     7234    break;
     7235
     7236  case 577:
     7237#line 2240 "parser.yy" /* yacc.c:1646  */
     7238    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7239#line 7240 "Parser/parser.cc" /* yacc.c:1646  */
     7240    break;
     7241
     7242  case 578:
     7243#line 2242 "parser.yy" /* yacc.c:1646  */
     7244    { (yyval.decl) = (yyvsp[-1].decl); }
     7245#line 7246 "Parser/parser.cc" /* yacc.c:1646  */
     7246    break;
     7247
     7248  case 579:
     7249#line 2247 "parser.yy" /* yacc.c:1646  */
     7250    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7251#line 7252 "Parser/parser.cc" /* yacc.c:1646  */
     7252    break;
     7253
     7254  case 580:
     7255#line 2249 "parser.yy" /* yacc.c:1646  */
     7256    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7257#line 7258 "Parser/parser.cc" /* yacc.c:1646  */
     7258    break;
     7259
     7260  case 581:
     7261#line 2251 "parser.yy" /* yacc.c:1646  */
     7262    { (yyval.decl) = (yyvsp[-1].decl); }
     7263#line 7264 "Parser/parser.cc" /* yacc.c:1646  */
     7264    break;
     7265
     7266  case 582:
     7267#line 2256 "parser.yy" /* yacc.c:1646  */
     7268    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7269#line 7270 "Parser/parser.cc" /* yacc.c:1646  */
     7270    break;
     7271
     7272  case 583:
     7273#line 2258 "parser.yy" /* yacc.c:1646  */
     7274    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7275#line 7276 "Parser/parser.cc" /* yacc.c:1646  */
     7276    break;
     7277
     7278  case 584:
     7279#line 2260 "parser.yy" /* yacc.c:1646  */
     7280    { (yyval.decl) = (yyvsp[-1].decl); }
     7281#line 7282 "Parser/parser.cc" /* yacc.c:1646  */
     7282    break;
     7283
     7284  case 588:
     7285#line 2275 "parser.yy" /* yacc.c:1646  */
     7286    { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); }
     7287#line 7288 "Parser/parser.cc" /* yacc.c:1646  */
     7288    break;
     7289
     7290  case 589:
     7291#line 2277 "parser.yy" /* yacc.c:1646  */
     7292    { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); }
     7293#line 7294 "Parser/parser.cc" /* yacc.c:1646  */
     7294    break;
     7295
     7296  case 590:
     7297#line 2279 "parser.yy" /* yacc.c:1646  */
     7298    { (yyval.decl) = (yyvsp[-1].decl); }
     7299#line 7300 "Parser/parser.cc" /* yacc.c:1646  */
     7300    break;
     7301
     7302  case 591:
     7303#line 2284 "parser.yy" /* yacc.c:1646  */
     7304    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7305#line 7306 "Parser/parser.cc" /* yacc.c:1646  */
     7306    break;
     7307
     7308  case 592:
     7309#line 2286 "parser.yy" /* yacc.c:1646  */
     7310    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7311#line 7312 "Parser/parser.cc" /* yacc.c:1646  */
     7312    break;
     7313
     7314  case 593:
     7315#line 2288 "parser.yy" /* yacc.c:1646  */
     7316    { (yyval.decl) = (yyvsp[-1].decl); }
     7317#line 7318 "Parser/parser.cc" /* yacc.c:1646  */
     7318    break;
     7319
     7320  case 594:
     7321#line 2293 "parser.yy" /* yacc.c:1646  */
     7322    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7323#line 7324 "Parser/parser.cc" /* yacc.c:1646  */
     7324    break;
     7325
     7326  case 595:
     7327#line 2295 "parser.yy" /* yacc.c:1646  */
     7328    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7329#line 7330 "Parser/parser.cc" /* yacc.c:1646  */
     7330    break;
     7331
     7332  case 596:
     7333#line 2297 "parser.yy" /* yacc.c:1646  */
     7334    { (yyval.decl) = (yyvsp[-1].decl); }
     7335#line 7336 "Parser/parser.cc" /* yacc.c:1646  */
     7336    break;
     7337
     7338  case 597:
     7339#line 2312 "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 599:
     7345#line 2315 "parser.yy" /* yacc.c:1646  */
     7346    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7347#line 7348 "Parser/parser.cc" /* yacc.c:1646  */
     7348    break;
     7349
     7350  case 600:
     7351#line 2317 "parser.yy" /* yacc.c:1646  */
     7352    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7353#line 7354 "Parser/parser.cc" /* yacc.c:1646  */
     7354    break;
     7355
     7356  case 602:
     7357#line 2323 "parser.yy" /* yacc.c:1646  */
     7358    { (yyval.decl) = (yyvsp[-1].decl); }
     7359#line 7360 "Parser/parser.cc" /* yacc.c:1646  */
     7360    break;
     7361
     7362  case 603:
     7363#line 2328 "parser.yy" /* yacc.c:1646  */
     7364    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7365#line 7366 "Parser/parser.cc" /* yacc.c:1646  */
     7366    break;
     7367
     7368  case 604:
     7369#line 2330 "parser.yy" /* yacc.c:1646  */
     7370    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7371#line 7372 "Parser/parser.cc" /* yacc.c:1646  */
     7372    break;
     7373
     7374  case 605:
     7375#line 2332 "parser.yy" /* yacc.c:1646  */
     7376    { (yyval.decl) = (yyvsp[-1].decl); }
     7377#line 7378 "Parser/parser.cc" /* yacc.c:1646  */
     7378    break;
     7379
     7380  case 606:
     7381#line 2337 "parser.yy" /* yacc.c:1646  */
     7382    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7383#line 7384 "Parser/parser.cc" /* yacc.c:1646  */
     7384    break;
     7385
     7386  case 607:
     7387#line 2339 "parser.yy" /* yacc.c:1646  */
     7388    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7389#line 7390 "Parser/parser.cc" /* yacc.c:1646  */
     7390    break;
     7391
     7392  case 608:
     7393#line 2341 "parser.yy" /* yacc.c:1646  */
     7394    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7395#line 7396 "Parser/parser.cc" /* yacc.c:1646  */
     7396    break;
     7397
     7398  case 609:
     7399#line 2343 "parser.yy" /* yacc.c:1646  */
     7400    { (yyval.decl) = (yyvsp[-1].decl); }
     7401#line 7402 "Parser/parser.cc" /* yacc.c:1646  */
     7402    break;
     7403
     7404  case 610:
     7405#line 2348 "parser.yy" /* yacc.c:1646  */
     7406    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7407#line 7408 "Parser/parser.cc" /* yacc.c:1646  */
     7408    break;
     7409
     7410  case 611:
     7411#line 2350 "parser.yy" /* yacc.c:1646  */
     7412    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7413#line 7414 "Parser/parser.cc" /* yacc.c:1646  */
     7414    break;
     7415
     7416  case 612:
     7417#line 2352 "parser.yy" /* yacc.c:1646  */
     7418    { (yyval.decl) = (yyvsp[-1].decl); }
     7419#line 7420 "Parser/parser.cc" /* yacc.c:1646  */
     7420    break;
     7421
     7422  case 613:
     7423#line 2362 "parser.yy" /* yacc.c:1646  */
     7424    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7425#line 7426 "Parser/parser.cc" /* yacc.c:1646  */
     7426    break;
     7427
     7428  case 615:
     7429#line 2365 "parser.yy" /* yacc.c:1646  */
     7430    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7431#line 7432 "Parser/parser.cc" /* yacc.c:1646  */
     7432    break;
     7433
     7434  case 616:
     7435#line 2367 "parser.yy" /* yacc.c:1646  */
     7436    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7437#line 7438 "Parser/parser.cc" /* yacc.c:1646  */
     7438    break;
     7439
     7440  case 617:
     7441#line 2372 "parser.yy" /* yacc.c:1646  */
     7442    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7443#line 7444 "Parser/parser.cc" /* yacc.c:1646  */
     7444    break;
     7445
     7446  case 618:
     7447#line 2374 "parser.yy" /* yacc.c:1646  */
     7448    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7449#line 7450 "Parser/parser.cc" /* yacc.c:1646  */
     7450    break;
     7451
     7452  case 619:
     7453#line 2376 "parser.yy" /* yacc.c:1646  */
     7454    { (yyval.decl) = (yyvsp[-1].decl); }
     7455#line 7456 "Parser/parser.cc" /* yacc.c:1646  */
     7456    break;
     7457
     7458  case 620:
     7459#line 2381 "parser.yy" /* yacc.c:1646  */
     7460    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7461#line 7462 "Parser/parser.cc" /* yacc.c:1646  */
     7462    break;
     7463
     7464  case 621:
     7465#line 2383 "parser.yy" /* yacc.c:1646  */
     7466    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7467#line 7468 "Parser/parser.cc" /* yacc.c:1646  */
     7468    break;
     7469
     7470  case 622:
     7471#line 2385 "parser.yy" /* yacc.c:1646  */
     7472    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7473#line 7474 "Parser/parser.cc" /* yacc.c:1646  */
     7474    break;
     7475
     7476  case 623:
     7477#line 2387 "parser.yy" /* yacc.c:1646  */
     7478    { (yyval.decl) = (yyvsp[-1].decl); }
     7479#line 7480 "Parser/parser.cc" /* yacc.c:1646  */
     7480    break;
     7481
     7482  case 624:
     7483#line 2392 "parser.yy" /* yacc.c:1646  */
     7484    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7485#line 7486 "Parser/parser.cc" /* yacc.c:1646  */
     7486    break;
     7487
     7488  case 625:
     7489#line 2394 "parser.yy" /* yacc.c:1646  */
     7490    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7491#line 7492 "Parser/parser.cc" /* yacc.c:1646  */
     7492    break;
     7493
     7494  case 626:
     7495#line 2396 "parser.yy" /* yacc.c:1646  */
     7496    { (yyval.decl) = (yyvsp[-1].decl); }
     7497#line 7498 "Parser/parser.cc" /* yacc.c:1646  */
     7498    break;
     7499
     7500  case 627:
     7501#line 2427 "parser.yy" /* yacc.c:1646  */
     7502    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7503#line 7504 "Parser/parser.cc" /* yacc.c:1646  */
     7504    break;
     7505
     7506  case 629:
     7507#line 2430 "parser.yy" /* yacc.c:1646  */
     7508    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7509#line 7510 "Parser/parser.cc" /* yacc.c:1646  */
     7510    break;
     7511
     7512  case 630:
     7513#line 2432 "parser.yy" /* yacc.c:1646  */
     7514    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7515#line 7516 "Parser/parser.cc" /* yacc.c:1646  */
     7516    break;
     7517
     7518  case 631:
     7519#line 2437 "parser.yy" /* yacc.c:1646  */
     7520    {
     7521                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7522                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    80817523                }
    8082     break;
    8083 
    8084   case 564:
    8085 
    8086 /* Line 1806 of yacc.c  */
    8087 #line 2243 "parser.yy"
    8088     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8089     break;
    8090 
    8091   case 565:
    8092 
    8093 /* Line 1806 of yacc.c  */
    8094 #line 2248 "parser.yy"
    8095     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8096     break;
    8097 
    8098   case 566:
    8099 
    8100 /* Line 1806 of yacc.c  */
    8101 #line 2250 "parser.yy"
    8102     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8103     break;
    8104 
    8105   case 567:
    8106 
    8107 /* Line 1806 of yacc.c  */
    8108 #line 2252 "parser.yy"
    8109     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8110     break;
    8111 
    8112   case 568:
    8113 
    8114 /* Line 1806 of yacc.c  */
    8115 #line 2257 "parser.yy"
    8116     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8117     break;
    8118 
    8119   case 569:
    8120 
    8121 /* Line 1806 of yacc.c  */
    8122 #line 2259 "parser.yy"
    8123     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8124     break;
    8125 
    8126   case 570:
    8127 
    8128 /* Line 1806 of yacc.c  */
    8129 #line 2261 "parser.yy"
    8130     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8131     break;
    8132 
    8133   case 571:
    8134 
    8135 /* Line 1806 of yacc.c  */
    8136 #line 2263 "parser.yy"
    8137     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8138     break;
    8139 
    8140   case 572:
    8141 
    8142 /* Line 1806 of yacc.c  */
    8143 #line 2268 "parser.yy"
    8144     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8145     break;
    8146 
    8147   case 573:
    8148 
    8149 /* Line 1806 of yacc.c  */
    8150 #line 2270 "parser.yy"
    8151     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8152     break;
    8153 
    8154   case 574:
    8155 
    8156 /* Line 1806 of yacc.c  */
    8157 #line 2279 "parser.yy"
    8158     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8159     break;
    8160 
    8161   case 576:
    8162 
    8163 /* Line 1806 of yacc.c  */
    8164 #line 2282 "parser.yy"
    8165     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8166     break;
    8167 
    8168   case 577:
    8169 
    8170 /* Line 1806 of yacc.c  */
    8171 #line 2287 "parser.yy"
    8172     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8173     break;
    8174 
    8175   case 578:
    8176 
    8177 /* Line 1806 of yacc.c  */
    8178 #line 2289 "parser.yy"
    8179     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8180     break;
    8181 
    8182   case 579:
    8183 
    8184 /* Line 1806 of yacc.c  */
    8185 #line 2291 "parser.yy"
    8186     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8187     break;
    8188 
    8189   case 580:
    8190 
    8191 /* Line 1806 of yacc.c  */
    8192 #line 2296 "parser.yy"
    8193     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8194     break;
    8195 
    8196   case 581:
    8197 
    8198 /* Line 1806 of yacc.c  */
    8199 #line 2298 "parser.yy"
    8200     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8201     break;
    8202 
    8203   case 582:
    8204 
    8205 /* Line 1806 of yacc.c  */
    8206 #line 2300 "parser.yy"
    8207     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8208     break;
    8209 
    8210   case 583:
    8211 
    8212 /* Line 1806 of yacc.c  */
    8213 #line 2305 "parser.yy"
    8214     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8215     break;
    8216 
    8217   case 584:
    8218 
    8219 /* Line 1806 of yacc.c  */
    8220 #line 2307 "parser.yy"
    8221     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8222     break;
    8223 
    8224   case 585:
    8225 
    8226 /* Line 1806 of yacc.c  */
    8227 #line 2309 "parser.yy"
    8228     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8229     break;
    8230 
    8231   case 589:
    8232 
    8233 /* Line 1806 of yacc.c  */
    8234 #line 2324 "parser.yy"
    8235     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8236     break;
    8237 
    8238   case 590:
    8239 
    8240 /* Line 1806 of yacc.c  */
    8241 #line 2326 "parser.yy"
    8242     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8243     break;
    8244 
    8245   case 591:
    8246 
    8247 /* Line 1806 of yacc.c  */
    8248 #line 2328 "parser.yy"
    8249     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8250     break;
    8251 
    8252   case 592:
    8253 
    8254 /* Line 1806 of yacc.c  */
    8255 #line 2333 "parser.yy"
    8256     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8257     break;
    8258 
    8259   case 593:
    8260 
    8261 /* Line 1806 of yacc.c  */
    8262 #line 2335 "parser.yy"
    8263     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8264     break;
    8265 
    8266   case 594:
    8267 
    8268 /* Line 1806 of yacc.c  */
    8269 #line 2337 "parser.yy"
    8270     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8271     break;
    8272 
    8273   case 595:
    8274 
    8275 /* Line 1806 of yacc.c  */
    8276 #line 2342 "parser.yy"
    8277     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8278     break;
    8279 
    8280   case 596:
    8281 
    8282 /* Line 1806 of yacc.c  */
    8283 #line 2344 "parser.yy"
    8284     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8285     break;
    8286 
    8287   case 597:
    8288 
    8289 /* Line 1806 of yacc.c  */
    8290 #line 2346 "parser.yy"
    8291     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8292     break;
    8293 
    8294   case 598:
    8295 
    8296 /* Line 1806 of yacc.c  */
    8297 #line 2361 "parser.yy"
    8298     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8299     break;
    8300 
    8301   case 600:
    8302 
    8303 /* Line 1806 of yacc.c  */
    8304 #line 2364 "parser.yy"
    8305     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8306     break;
    8307 
    8308   case 601:
    8309 
    8310 /* Line 1806 of yacc.c  */
    8311 #line 2366 "parser.yy"
    8312     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8313     break;
    8314 
    8315   case 603:
    8316 
    8317 /* Line 1806 of yacc.c  */
    8318 #line 2372 "parser.yy"
    8319     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8320     break;
    8321 
    8322   case 604:
    8323 
    8324 /* Line 1806 of yacc.c  */
    8325 #line 2377 "parser.yy"
    8326     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8327     break;
    8328 
    8329   case 605:
    8330 
    8331 /* Line 1806 of yacc.c  */
    8332 #line 2379 "parser.yy"
    8333     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8334     break;
    8335 
    8336   case 606:
    8337 
    8338 /* Line 1806 of yacc.c  */
    8339 #line 2381 "parser.yy"
    8340     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8341     break;
    8342 
    8343   case 607:
    8344 
    8345 /* Line 1806 of yacc.c  */
    8346 #line 2386 "parser.yy"
    8347     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8348     break;
    8349 
    8350   case 608:
    8351 
    8352 /* Line 1806 of yacc.c  */
    8353 #line 2388 "parser.yy"
    8354     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8355     break;
    8356 
    8357   case 609:
    8358 
    8359 /* Line 1806 of yacc.c  */
    8360 #line 2390 "parser.yy"
    8361     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8362     break;
    8363 
    8364   case 610:
    8365 
    8366 /* Line 1806 of yacc.c  */
    8367 #line 2392 "parser.yy"
    8368     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8369     break;
    8370 
    8371   case 611:
    8372 
    8373 /* Line 1806 of yacc.c  */
    8374 #line 2397 "parser.yy"
    8375     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8376     break;
    8377 
    8378   case 612:
    8379 
    8380 /* Line 1806 of yacc.c  */
    8381 #line 2399 "parser.yy"
    8382     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8383     break;
    8384 
    8385   case 613:
    8386 
    8387 /* Line 1806 of yacc.c  */
    8388 #line 2401 "parser.yy"
    8389     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8390     break;
    8391 
    8392   case 614:
    8393 
    8394 /* Line 1806 of yacc.c  */
    8395 #line 2411 "parser.yy"
    8396     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8397     break;
    8398 
    8399   case 616:
    8400 
    8401 /* Line 1806 of yacc.c  */
    8402 #line 2414 "parser.yy"
    8403     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8404     break;
    8405 
    8406   case 617:
    8407 
    8408 /* Line 1806 of yacc.c  */
    8409 #line 2416 "parser.yy"
    8410     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8411     break;
    8412 
    8413   case 618:
    8414 
    8415 /* Line 1806 of yacc.c  */
    8416 #line 2421 "parser.yy"
    8417     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8418     break;
    8419 
    8420   case 619:
    8421 
    8422 /* Line 1806 of yacc.c  */
    8423 #line 2423 "parser.yy"
    8424     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8425     break;
    8426 
    8427   case 620:
    8428 
    8429 /* Line 1806 of yacc.c  */
    8430 #line 2425 "parser.yy"
    8431     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8432     break;
    8433 
    8434   case 621:
    8435 
    8436 /* Line 1806 of yacc.c  */
    8437 #line 2430 "parser.yy"
    8438     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8439     break;
    8440 
    8441   case 622:
    8442 
    8443 /* Line 1806 of yacc.c  */
    8444 #line 2432 "parser.yy"
    8445     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8446     break;
    8447 
    8448   case 623:
    8449 
    8450 /* Line 1806 of yacc.c  */
    8451 #line 2434 "parser.yy"
    8452     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8453     break;
    8454 
    8455   case 624:
    8456 
    8457 /* Line 1806 of yacc.c  */
    8458 #line 2436 "parser.yy"
    8459     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8460     break;
    8461 
    8462   case 625:
    8463 
    8464 /* Line 1806 of yacc.c  */
    8465 #line 2441 "parser.yy"
    8466     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8467     break;
    8468 
    8469   case 626:
    8470 
    8471 /* Line 1806 of yacc.c  */
    8472 #line 2443 "parser.yy"
    8473     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8474     break;
    8475 
    8476   case 627:
    8477 
    8478 /* Line 1806 of yacc.c  */
    8479 #line 2445 "parser.yy"
    8480     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8481     break;
    8482 
    8483   case 628:
    8484 
    8485 /* Line 1806 of yacc.c  */
    8486 #line 2476 "parser.yy"
    8487     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8488     break;
    8489 
    8490   case 630:
    8491 
    8492 /* Line 1806 of yacc.c  */
    8493 #line 2479 "parser.yy"
    8494     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8495     break;
    8496 
    8497   case 631:
    8498 
    8499 /* Line 1806 of yacc.c  */
    8500 #line 2481 "parser.yy"
    8501     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7524#line 7525 "Parser/parser.cc" /* yacc.c:1646  */
    85027525    break;
    85037526
    85047527  case 632:
    8505 
    8506 /* Line 1806 of yacc.c  */
    8507 #line 2486 "parser.yy"
    8508     {
    8509                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8510                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
     7528#line 2442 "parser.yy" /* yacc.c:1646  */
     7529    {
     7530                        typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
     7531                        (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
    85117532                }
     7533#line 7534 "Parser/parser.cc" /* yacc.c:1646  */
    85127534    break;
    85137535
    85147536  case 633:
    8515 
    8516 /* Line 1806 of yacc.c  */
    8517 #line 2491 "parser.yy"
    8518     {
    8519                         typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
    8520                         (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
    8521                 }
     7537#line 2450 "parser.yy" /* yacc.c:1646  */
     7538    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7539#line 7540 "Parser/parser.cc" /* yacc.c:1646  */
    85227540    break;
    85237541
    85247542  case 634:
    8525 
    8526 /* Line 1806 of yacc.c  */
    8527 #line 2499 "parser.yy"
    8528     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7543#line 2452 "parser.yy" /* yacc.c:1646  */
     7544    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7545#line 7546 "Parser/parser.cc" /* yacc.c:1646  */
    85297546    break;
    85307547
    85317548  case 635:
    8532 
    8533 /* Line 1806 of yacc.c  */
    8534 #line 2501 "parser.yy"
    8535     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7549#line 2454 "parser.yy" /* yacc.c:1646  */
     7550    { (yyval.decl) = (yyvsp[-1].decl); }
     7551#line 7552 "Parser/parser.cc" /* yacc.c:1646  */
    85367552    break;
    85377553
    85387554  case 636:
    8539 
    8540 /* Line 1806 of yacc.c  */
    8541 #line 2503 "parser.yy"
    8542     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7555#line 2459 "parser.yy" /* yacc.c:1646  */
     7556    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7557#line 7558 "Parser/parser.cc" /* yacc.c:1646  */
    85437558    break;
    85447559
    85457560  case 637:
    8546 
    8547 /* Line 1806 of yacc.c  */
    8548 #line 2508 "parser.yy"
    8549     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7561#line 2461 "parser.yy" /* yacc.c:1646  */
     7562    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7563#line 7564 "Parser/parser.cc" /* yacc.c:1646  */
    85507564    break;
    85517565
    85527566  case 638:
    8553 
    8554 /* Line 1806 of yacc.c  */
    8555 #line 2510 "parser.yy"
    8556     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7567#line 2466 "parser.yy" /* yacc.c:1646  */
     7568    { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
     7569#line 7570 "Parser/parser.cc" /* yacc.c:1646  */
    85577570    break;
    85587571
    85597572  case 639:
    8560 
    8561 /* Line 1806 of yacc.c  */
    8562 #line 2515 "parser.yy"
    8563     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8564     break;
    8565 
    8566   case 640:
    8567 
    8568 /* Line 1806 of yacc.c  */
    8569 #line 2517 "parser.yy"
    8570     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     7573#line 2468 "parser.yy" /* yacc.c:1646  */
     7574    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7575#line 7576 "Parser/parser.cc" /* yacc.c:1646  */
     7576    break;
     7577
     7578  case 641:
     7579#line 2483 "parser.yy" /* yacc.c:1646  */
     7580    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7581#line 7582 "Parser/parser.cc" /* yacc.c:1646  */
    85717582    break;
    85727583
    85737584  case 642:
    8574 
    8575 /* Line 1806 of yacc.c  */
    8576 #line 2532 "parser.yy"
    8577     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7585#line 2485 "parser.yy" /* yacc.c:1646  */
     7586    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7587#line 7588 "Parser/parser.cc" /* yacc.c:1646  */
    85787588    break;
    85797589
    85807590  case 643:
    8581 
    8582 /* Line 1806 of yacc.c  */
    8583 #line 2534 "parser.yy"
    8584     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7591#line 2490 "parser.yy" /* yacc.c:1646  */
     7592    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7593#line 7594 "Parser/parser.cc" /* yacc.c:1646  */
    85857594    break;
    85867595
    85877596  case 644:
    8588 
    8589 /* Line 1806 of yacc.c  */
    8590 #line 2539 "parser.yy"
     7597#line 2492 "parser.yy" /* yacc.c:1646  */
     7598    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7599#line 7600 "Parser/parser.cc" /* yacc.c:1646  */
     7600    break;
     7601
     7602  case 645:
     7603#line 2494 "parser.yy" /* yacc.c:1646  */
     7604    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7605#line 7606 "Parser/parser.cc" /* yacc.c:1646  */
     7606    break;
     7607
     7608  case 646:
     7609#line 2496 "parser.yy" /* yacc.c:1646  */
     7610    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7611#line 7612 "Parser/parser.cc" /* yacc.c:1646  */
     7612    break;
     7613
     7614  case 647:
     7615#line 2498 "parser.yy" /* yacc.c:1646  */
     7616    { (yyval.decl) = (yyvsp[-1].decl); }
     7617#line 7618 "Parser/parser.cc" /* yacc.c:1646  */
     7618    break;
     7619
     7620  case 649:
     7621#line 2504 "parser.yy" /* yacc.c:1646  */
     7622    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7623#line 7624 "Parser/parser.cc" /* yacc.c:1646  */
     7624    break;
     7625
     7626  case 650:
     7627#line 2506 "parser.yy" /* yacc.c:1646  */
     7628    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7629#line 7630 "Parser/parser.cc" /* yacc.c:1646  */
     7630    break;
     7631
     7632  case 651:
     7633#line 2508 "parser.yy" /* yacc.c:1646  */
     7634    { (yyval.decl) = (yyvsp[-1].decl); }
     7635#line 7636 "Parser/parser.cc" /* yacc.c:1646  */
     7636    break;
     7637
     7638  case 652:
     7639#line 2513 "parser.yy" /* yacc.c:1646  */
     7640    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
     7641#line 7642 "Parser/parser.cc" /* yacc.c:1646  */
     7642    break;
     7643
     7644  case 653:
     7645#line 2515 "parser.yy" /* yacc.c:1646  */
     7646    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7647#line 7648 "Parser/parser.cc" /* yacc.c:1646  */
     7648    break;
     7649
     7650  case 654:
     7651#line 2517 "parser.yy" /* yacc.c:1646  */
     7652    { (yyval.decl) = (yyvsp[-1].decl); }
     7653#line 7654 "Parser/parser.cc" /* yacc.c:1646  */
     7654    break;
     7655
     7656  case 655:
     7657#line 2523 "parser.yy" /* yacc.c:1646  */
     7658    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     7659#line 7660 "Parser/parser.cc" /* yacc.c:1646  */
     7660    break;
     7661
     7662  case 656:
     7663#line 2525 "parser.yy" /* yacc.c:1646  */
     7664    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); }
     7665#line 7666 "Parser/parser.cc" /* yacc.c:1646  */
     7666    break;
     7667
     7668  case 658:
     7669#line 2531 "parser.yy" /* yacc.c:1646  */
     7670    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); }
     7671#line 7672 "Parser/parser.cc" /* yacc.c:1646  */
     7672    break;
     7673
     7674  case 659:
     7675#line 2533 "parser.yy" /* yacc.c:1646  */
     7676    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     7677#line 7678 "Parser/parser.cc" /* yacc.c:1646  */
     7678    break;
     7679
     7680  case 660:
     7681#line 2535 "parser.yy" /* yacc.c:1646  */
     7682    { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); }
     7683#line 7684 "Parser/parser.cc" /* yacc.c:1646  */
     7684    break;
     7685
     7686  case 661:
     7687#line 2537 "parser.yy" /* yacc.c:1646  */
     7688    { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     7689#line 7690 "Parser/parser.cc" /* yacc.c:1646  */
     7690    break;
     7691
     7692  case 663:
     7693#line 2552 "parser.yy" /* yacc.c:1646  */
     7694    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7695#line 7696 "Parser/parser.cc" /* yacc.c:1646  */
     7696    break;
     7697
     7698  case 664:
     7699#line 2554 "parser.yy" /* yacc.c:1646  */
     7700    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7701#line 7702 "Parser/parser.cc" /* yacc.c:1646  */
     7702    break;
     7703
     7704  case 665:
     7705#line 2559 "parser.yy" /* yacc.c:1646  */
    85917706    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8592     break;
    8593 
    8594   case 645:
    8595 
    8596 /* Line 1806 of yacc.c  */
    8597 #line 2541 "parser.yy"
    8598     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8599     break;
    8600 
    8601   case 646:
    8602 
    8603 /* Line 1806 of yacc.c  */
    8604 #line 2543 "parser.yy"
    8605     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8606     break;
    8607 
    8608   case 647:
    8609 
    8610 /* Line 1806 of yacc.c  */
    8611 #line 2545 "parser.yy"
    8612     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8613     break;
    8614 
    8615   case 648:
    8616 
    8617 /* Line 1806 of yacc.c  */
    8618 #line 2547 "parser.yy"
    8619     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8620     break;
    8621 
    8622   case 650:
    8623 
    8624 /* Line 1806 of yacc.c  */
    8625 #line 2553 "parser.yy"
    8626     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8627     break;
    8628 
    8629   case 651:
    8630 
    8631 /* Line 1806 of yacc.c  */
    8632 #line 2555 "parser.yy"
    8633     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8634     break;
    8635 
    8636   case 652:
    8637 
    8638 /* Line 1806 of yacc.c  */
    8639 #line 2557 "parser.yy"
    8640     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8641     break;
    8642 
    8643   case 653:
    8644 
    8645 /* Line 1806 of yacc.c  */
    8646 #line 2562 "parser.yy"
    8647     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8648     break;
    8649 
    8650   case 654:
    8651 
    8652 /* Line 1806 of yacc.c  */
    8653 #line 2564 "parser.yy"
    8654     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8655     break;
    8656 
    8657   case 655:
    8658 
    8659 /* Line 1806 of yacc.c  */
    8660 #line 2566 "parser.yy"
    8661     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8662     break;
    8663 
    8664   case 656:
    8665 
    8666 /* Line 1806 of yacc.c  */
    8667 #line 2572 "parser.yy"
     7707#line 7708 "Parser/parser.cc" /* yacc.c:1646  */
     7708    break;
     7709
     7710  case 666:
     7711#line 2561 "parser.yy" /* yacc.c:1646  */
     7712    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7713#line 7714 "Parser/parser.cc" /* yacc.c:1646  */
     7714    break;
     7715
     7716  case 667:
     7717#line 2563 "parser.yy" /* yacc.c:1646  */
     7718    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7719#line 7720 "Parser/parser.cc" /* yacc.c:1646  */
     7720    break;
     7721
     7722  case 668:
     7723#line 2565 "parser.yy" /* yacc.c:1646  */
     7724    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7725#line 7726 "Parser/parser.cc" /* yacc.c:1646  */
     7726    break;
     7727
     7728  case 669:
     7729#line 2567 "parser.yy" /* yacc.c:1646  */
     7730    { (yyval.decl) = (yyvsp[-1].decl); }
     7731#line 7732 "Parser/parser.cc" /* yacc.c:1646  */
     7732    break;
     7733
     7734  case 671:
     7735#line 2573 "parser.yy" /* yacc.c:1646  */
     7736    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7737#line 7738 "Parser/parser.cc" /* yacc.c:1646  */
     7738    break;
     7739
     7740  case 672:
     7741#line 2575 "parser.yy" /* yacc.c:1646  */
     7742    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7743#line 7744 "Parser/parser.cc" /* yacc.c:1646  */
     7744    break;
     7745
     7746  case 673:
     7747#line 2577 "parser.yy" /* yacc.c:1646  */
     7748    { (yyval.decl) = (yyvsp[-1].decl); }
     7749#line 7750 "Parser/parser.cc" /* yacc.c:1646  */
     7750    break;
     7751
     7752  case 674:
     7753#line 2582 "parser.yy" /* yacc.c:1646  */
     7754    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); }
     7755#line 7756 "Parser/parser.cc" /* yacc.c:1646  */
     7756    break;
     7757
     7758  case 675:
     7759#line 2584 "parser.yy" /* yacc.c:1646  */
     7760    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7761#line 7762 "Parser/parser.cc" /* yacc.c:1646  */
     7762    break;
     7763
     7764  case 676:
     7765#line 2586 "parser.yy" /* yacc.c:1646  */
     7766    { (yyval.decl) = (yyvsp[-1].decl); }
     7767#line 7768 "Parser/parser.cc" /* yacc.c:1646  */
     7768    break;
     7769
     7770  case 678:
     7771#line 2593 "parser.yy" /* yacc.c:1646  */
     7772    { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
     7773#line 7774 "Parser/parser.cc" /* yacc.c:1646  */
     7774    break;
     7775
     7776  case 680:
     7777#line 2604 "parser.yy" /* yacc.c:1646  */
    86687778    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8669     break;
    8670 
    8671   case 657:
    8672 
    8673 /* Line 1806 of yacc.c  */
    8674 #line 2574 "parser.yy"
    8675     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8676     break;
    8677 
    8678   case 659:
    8679 
    8680 /* Line 1806 of yacc.c  */
    8681 #line 2580 "parser.yy"
    8682     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8683     break;
    8684 
    8685   case 660:
    8686 
    8687 /* Line 1806 of yacc.c  */
    8688 #line 2582 "parser.yy"
    8689     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8690     break;
    8691 
    8692   case 661:
    8693 
    8694 /* Line 1806 of yacc.c  */
    8695 #line 2584 "parser.yy"
    8696     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8697     break;
    8698 
    8699   case 662:
    8700 
    8701 /* Line 1806 of yacc.c  */
    8702 #line 2586 "parser.yy"
    8703     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8704     break;
    8705 
    8706   case 664:
    8707 
    8708 /* Line 1806 of yacc.c  */
    8709 #line 2601 "parser.yy"
    8710     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8711     break;
    8712 
    8713   case 665:
    8714 
    8715 /* Line 1806 of yacc.c  */
    8716 #line 2603 "parser.yy"
    8717     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8718     break;
    8719 
    8720   case 666:
    8721 
    8722 /* Line 1806 of yacc.c  */
    8723 #line 2608 "parser.yy"
     7779#line 7780 "Parser/parser.cc" /* yacc.c:1646  */
     7780    break;
     7781
     7782  case 681:
     7783#line 2607 "parser.yy" /* yacc.c:1646  */
     7784    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
     7785#line 7786 "Parser/parser.cc" /* yacc.c:1646  */
     7786    break;
     7787
     7788  case 682:
     7789#line 2609 "parser.yy" /* yacc.c:1646  */
     7790    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); }
     7791#line 7792 "Parser/parser.cc" /* yacc.c:1646  */
     7792    break;
     7793
     7794  case 683:
     7795#line 2612 "parser.yy" /* yacc.c:1646  */
     7796    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
     7797#line 7798 "Parser/parser.cc" /* yacc.c:1646  */
     7798    break;
     7799
     7800  case 684:
     7801#line 2614 "parser.yy" /* yacc.c:1646  */
     7802    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
     7803#line 7804 "Parser/parser.cc" /* yacc.c:1646  */
     7804    break;
     7805
     7806  case 685:
     7807#line 2616 "parser.yy" /* yacc.c:1646  */
     7808    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); }
     7809#line 7810 "Parser/parser.cc" /* yacc.c:1646  */
     7810    break;
     7811
     7812  case 687:
     7813#line 2630 "parser.yy" /* yacc.c:1646  */
     7814    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7815#line 7816 "Parser/parser.cc" /* yacc.c:1646  */
     7816    break;
     7817
     7818  case 688:
     7819#line 2632 "parser.yy" /* yacc.c:1646  */
     7820    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
     7821#line 7822 "Parser/parser.cc" /* yacc.c:1646  */
     7822    break;
     7823
     7824  case 689:
     7825#line 2637 "parser.yy" /* yacc.c:1646  */
    87247826    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8725     break;
    8726 
    8727   case 667:
    8728 
    8729 /* Line 1806 of yacc.c  */
    8730 #line 2610 "parser.yy"
    8731     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8732     break;
    8733 
    8734   case 668:
    8735 
    8736 /* Line 1806 of yacc.c  */
    8737 #line 2612 "parser.yy"
    8738     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8739     break;
    8740 
    8741   case 669:
    8742 
    8743 /* Line 1806 of yacc.c  */
    8744 #line 2614 "parser.yy"
    8745     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8746     break;
    8747 
    8748   case 670:
    8749 
    8750 /* Line 1806 of yacc.c  */
    8751 #line 2616 "parser.yy"
    8752     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8753     break;
    8754 
    8755   case 672:
    8756 
    8757 /* Line 1806 of yacc.c  */
    8758 #line 2622 "parser.yy"
    8759     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8760     break;
    8761 
    8762   case 673:
    8763 
    8764 /* Line 1806 of yacc.c  */
    8765 #line 2624 "parser.yy"
    8766     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8767     break;
    8768 
    8769   case 674:
    8770 
    8771 /* Line 1806 of yacc.c  */
    8772 #line 2626 "parser.yy"
    8773     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8774     break;
    8775 
    8776   case 675:
    8777 
    8778 /* Line 1806 of yacc.c  */
    8779 #line 2631 "parser.yy"
    8780     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8781     break;
    8782 
    8783   case 676:
    8784 
    8785 /* Line 1806 of yacc.c  */
    8786 #line 2633 "parser.yy"
    8787     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8788     break;
    8789 
    8790   case 677:
    8791 
    8792 /* Line 1806 of yacc.c  */
    8793 #line 2635 "parser.yy"
    8794     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8795     break;
    8796 
    8797   case 679:
    8798 
    8799 /* Line 1806 of yacc.c  */
    8800 #line 2642 "parser.yy"
    8801     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8802     break;
    8803 
    8804   case 681:
    8805 
    8806 /* Line 1806 of yacc.c  */
    8807 #line 2653 "parser.yy"
    8808     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8809     break;
    8810 
    8811   case 682:
    8812 
    8813 /* Line 1806 of yacc.c  */
    8814 #line 2656 "parser.yy"
    8815     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8816     break;
    8817 
    8818   case 683:
    8819 
    8820 /* Line 1806 of yacc.c  */
    8821 #line 2658 "parser.yy"
    8822     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8823     break;
    8824 
    8825   case 684:
    8826 
    8827 /* Line 1806 of yacc.c  */
    8828 #line 2661 "parser.yy"
    8829     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8830     break;
    8831 
    8832   case 685:
    8833 
    8834 /* Line 1806 of yacc.c  */
    8835 #line 2663 "parser.yy"
    8836     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8837     break;
    8838 
    8839   case 686:
    8840 
    8841 /* Line 1806 of yacc.c  */
    8842 #line 2665 "parser.yy"
    8843     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8844     break;
    8845 
    8846   case 688:
    8847 
    8848 /* Line 1806 of yacc.c  */
    8849 #line 2679 "parser.yy"
    8850     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8851     break;
    8852 
    8853   case 689:
    8854 
    8855 /* Line 1806 of yacc.c  */
    8856 #line 2681 "parser.yy"
    8857     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7827#line 7828 "Parser/parser.cc" /* yacc.c:1646  */
    88587828    break;
    88597829
    88607830  case 690:
    8861 
    8862 /* Line 1806 of yacc.c  */
    8863 #line 2686 "parser.yy"
    8864     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     7831#line 2639 "parser.yy" /* yacc.c:1646  */
     7832    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
     7833#line 7834 "Parser/parser.cc" /* yacc.c:1646  */
    88657834    break;
    88667835
    88677836  case 691:
    8868 
    8869 /* Line 1806 of yacc.c  */
    8870 #line 2688 "parser.yy"
    8871     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     7837#line 2641 "parser.yy" /* yacc.c:1646  */
     7838    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7839#line 7840 "Parser/parser.cc" /* yacc.c:1646  */
    88727840    break;
    88737841
    88747842  case 692:
    8875 
    8876 /* Line 1806 of yacc.c  */
    8877 #line 2690 "parser.yy"
    8878     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7843#line 2643 "parser.yy" /* yacc.c:1646  */
     7844    { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
     7845#line 7846 "Parser/parser.cc" /* yacc.c:1646  */
    88797846    break;
    88807847
    88817848  case 693:
    8882 
    8883 /* Line 1806 of yacc.c  */
    8884 #line 2692 "parser.yy"
    8885     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8886     break;
    8887 
    8888   case 694:
    8889 
    8890 /* Line 1806 of yacc.c  */
    8891 #line 2694 "parser.yy"
    8892     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7849#line 2645 "parser.yy" /* yacc.c:1646  */
     7850    { (yyval.decl) = (yyvsp[-1].decl); }
     7851#line 7852 "Parser/parser.cc" /* yacc.c:1646  */
     7852    break;
     7853
     7854  case 695:
     7855#line 2651 "parser.yy" /* yacc.c:1646  */
     7856    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7857#line 7858 "Parser/parser.cc" /* yacc.c:1646  */
    88937858    break;
    88947859
    88957860  case 696:
    8896 
    8897 /* Line 1806 of yacc.c  */
    8898 #line 2700 "parser.yy"
    8899     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7861#line 2653 "parser.yy" /* yacc.c:1646  */
     7862    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
     7863#line 7864 "Parser/parser.cc" /* yacc.c:1646  */
    89007864    break;
    89017865
    89027866  case 697:
    8903 
    8904 /* Line 1806 of yacc.c  */
    8905 #line 2702 "parser.yy"
    8906     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7867#line 2655 "parser.yy" /* yacc.c:1646  */
     7868    { (yyval.decl) = (yyvsp[-1].decl); }
     7869#line 7870 "Parser/parser.cc" /* yacc.c:1646  */
    89077870    break;
    89087871
    89097872  case 698:
    8910 
    8911 /* Line 1806 of yacc.c  */
    8912 #line 2704 "parser.yy"
    8913     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7873#line 2660 "parser.yy" /* yacc.c:1646  */
     7874    { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
     7875#line 7876 "Parser/parser.cc" /* yacc.c:1646  */
    89147876    break;
    89157877
    89167878  case 699:
    8917 
    8918 /* Line 1806 of yacc.c  */
    8919 #line 2709 "parser.yy"
    8920     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8921     break;
    8922 
    8923   case 700:
    8924 
    8925 /* Line 1806 of yacc.c  */
    8926 #line 2711 "parser.yy"
    8927     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8928     break;
    8929 
    8930   case 703:
    8931 
    8932 /* Line 1806 of yacc.c  */
    8933 #line 2721 "parser.yy"
    8934     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7879#line 2662 "parser.yy" /* yacc.c:1646  */
     7880    { (yyval.decl) = (yyvsp[-1].decl); }
     7881#line 7882 "Parser/parser.cc" /* yacc.c:1646  */
     7882    break;
     7883
     7884  case 702:
     7885#line 2672 "parser.yy" /* yacc.c:1646  */
     7886    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     7887#line 7888 "Parser/parser.cc" /* yacc.c:1646  */
     7888    break;
     7889
     7890  case 705:
     7891#line 2682 "parser.yy" /* yacc.c:1646  */
     7892    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7893#line 7894 "Parser/parser.cc" /* yacc.c:1646  */
    89357894    break;
    89367895
    89377896  case 706:
    8938 
    8939 /* Line 1806 of yacc.c  */
    8940 #line 2731 "parser.yy"
    8941     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7897#line 2684 "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  */
    89427900    break;
    89437901
    89447902  case 707:
    8945 
    8946 /* Line 1806 of yacc.c  */
    8947 #line 2733 "parser.yy"
    8948     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7903#line 2686 "parser.yy" /* yacc.c:1646  */
     7904    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7905#line 7906 "Parser/parser.cc" /* yacc.c:1646  */
    89497906    break;
    89507907
    89517908  case 708:
    8952 
    8953 /* Line 1806 of yacc.c  */
    8954 #line 2735 "parser.yy"
    8955     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7909#line 2688 "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  */
    89567912    break;
    89577913
    89587914  case 709:
    8959 
    8960 /* Line 1806 of yacc.c  */
    8961 #line 2737 "parser.yy"
    8962     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7915#line 2690 "parser.yy" /* yacc.c:1646  */
     7916    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7917#line 7918 "Parser/parser.cc" /* yacc.c:1646  */
    89637918    break;
    89647919
    89657920  case 710:
    8966 
    8967 /* Line 1806 of yacc.c  */
    8968 #line 2739 "parser.yy"
    8969     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     7921#line 2692 "parser.yy" /* yacc.c:1646  */
     7922    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     7923#line 7924 "Parser/parser.cc" /* yacc.c:1646  */
    89707924    break;
    89717925
    89727926  case 711:
    8973 
    8974 /* Line 1806 of yacc.c  */
    8975 #line 2741 "parser.yy"
    8976     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     7927#line 2699 "parser.yy" /* yacc.c:1646  */
     7928    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7929#line 7930 "Parser/parser.cc" /* yacc.c:1646  */
    89777930    break;
    89787931
    89797932  case 712:
    8980 
    8981 /* Line 1806 of yacc.c  */
    8982 #line 2748 "parser.yy"
    8983     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7933#line 2701 "parser.yy" /* yacc.c:1646  */
     7934    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7935#line 7936 "Parser/parser.cc" /* yacc.c:1646  */
    89847936    break;
    89857937
    89867938  case 713:
    8987 
    8988 /* Line 1806 of yacc.c  */
    8989 #line 2750 "parser.yy"
    8990     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7939#line 2703 "parser.yy" /* yacc.c:1646  */
     7940    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7941#line 7942 "Parser/parser.cc" /* yacc.c:1646  */
    89917942    break;
    89927943
    89937944  case 714:
    8994 
    8995 /* Line 1806 of yacc.c  */
    8996 #line 2752 "parser.yy"
    8997     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7945#line 2705 "parser.yy" /* yacc.c:1646  */
     7946    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
     7947#line 7948 "Parser/parser.cc" /* yacc.c:1646  */
    89987948    break;
    89997949
    90007950  case 715:
    9001 
    9002 /* Line 1806 of yacc.c  */
    9003 #line 2754 "parser.yy"
    9004     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     7951#line 2707 "parser.yy" /* yacc.c:1646  */
     7952    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7953#line 7954 "Parser/parser.cc" /* yacc.c:1646  */
    90057954    break;
    90067955
    90077956  case 716:
    9008 
    9009 /* Line 1806 of yacc.c  */
    9010 #line 2756 "parser.yy"
    9011     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7957#line 2709 "parser.yy" /* yacc.c:1646  */
     7958    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7959#line 7960 "Parser/parser.cc" /* yacc.c:1646  */
    90127960    break;
    90137961
    90147962  case 717:
    9015 
    9016 /* Line 1806 of yacc.c  */
    9017 #line 2758 "parser.yy"
    9018     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7963#line 2711 "parser.yy" /* yacc.c:1646  */
     7964    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7965#line 7966 "Parser/parser.cc" /* yacc.c:1646  */
    90197966    break;
    90207967
    90217968  case 718:
    9022 
    9023 /* Line 1806 of yacc.c  */
    9024 #line 2760 "parser.yy"
    9025     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7969#line 2713 "parser.yy" /* yacc.c:1646  */
     7970    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7971#line 7972 "Parser/parser.cc" /* yacc.c:1646  */
    90267972    break;
    90277973
    90287974  case 719:
    9029 
    9030 /* Line 1806 of yacc.c  */
    9031 #line 2762 "parser.yy"
    9032     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     7975#line 2715 "parser.yy" /* yacc.c:1646  */
     7976    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
     7977#line 7978 "Parser/parser.cc" /* yacc.c:1646  */
    90337978    break;
    90347979
    90357980  case 720:
    9036 
    9037 /* Line 1806 of yacc.c  */
    9038 #line 2764 "parser.yy"
    9039     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     7981#line 2717 "parser.yy" /* yacc.c:1646  */
     7982    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     7983#line 7984 "Parser/parser.cc" /* yacc.c:1646  */
    90407984    break;
    90417985
    90427986  case 721:
    9043 
    9044 /* Line 1806 of yacc.c  */
    9045 #line 2766 "parser.yy"
    9046     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     7987#line 2722 "parser.yy" /* yacc.c:1646  */
     7988    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
     7989#line 7990 "Parser/parser.cc" /* yacc.c:1646  */
    90477990    break;
    90487991
    90497992  case 722:
    9050 
    9051 /* Line 1806 of yacc.c  */
    9052 #line 2771 "parser.yy"
    9053     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     7993#line 2724 "parser.yy" /* yacc.c:1646  */
     7994    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
     7995#line 7996 "Parser/parser.cc" /* yacc.c:1646  */
    90547996    break;
    90557997
    90567998  case 723:
    9057 
    9058 /* Line 1806 of yacc.c  */
    9059 #line 2773 "parser.yy"
    9060     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     7999#line 2729 "parser.yy" /* yacc.c:1646  */
     8000    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
     8001#line 8002 "Parser/parser.cc" /* yacc.c:1646  */
    90618002    break;
    90628003
    90638004  case 724:
    9064 
    9065 /* Line 1806 of yacc.c  */
    9066 #line 2778 "parser.yy"
    9067     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9068     break;
    9069 
    9070   case 725:
    9071 
    9072 /* Line 1806 of yacc.c  */
    9073 #line 2780 "parser.yy"
    9074     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    9075     break;
    9076 
    9077   case 727:
    9078 
    9079 /* Line 1806 of yacc.c  */
    9080 #line 2807 "parser.yy"
    9081     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8005#line 2731 "parser.yy" /* yacc.c:1646  */
     8006    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); }
     8007#line 8008 "Parser/parser.cc" /* yacc.c:1646  */
     8008    break;
     8009
     8010  case 726:
     8011#line 2758 "parser.yy" /* yacc.c:1646  */
     8012    { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
     8013#line 8014 "Parser/parser.cc" /* yacc.c:1646  */
     8014    break;
     8015
     8016  case 730:
     8017#line 2769 "parser.yy" /* yacc.c:1646  */
     8018    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8019#line 8020 "Parser/parser.cc" /* yacc.c:1646  */
    90828020    break;
    90838021
    90848022  case 731:
    9085 
    9086 /* Line 1806 of yacc.c  */
    9087 #line 2818 "parser.yy"
    9088     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8023#line 2771 "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  */
    90898026    break;
    90908027
    90918028  case 732:
    9092 
    9093 /* Line 1806 of yacc.c  */
    9094 #line 2820 "parser.yy"
    9095     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8029#line 2773 "parser.yy" /* yacc.c:1646  */
     8030    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8031#line 8032 "Parser/parser.cc" /* yacc.c:1646  */
    90968032    break;
    90978033
    90988034  case 733:
    9099 
    9100 /* Line 1806 of yacc.c  */
    9101 #line 2822 "parser.yy"
    9102     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8035#line 2775 "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  */
    91038038    break;
    91048039
    91058040  case 734:
    9106 
    9107 /* Line 1806 of yacc.c  */
    9108 #line 2824 "parser.yy"
    9109     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8041#line 2777 "parser.yy" /* yacc.c:1646  */
     8042    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8043#line 8044 "Parser/parser.cc" /* yacc.c:1646  */
    91108044    break;
    91118045
    91128046  case 735:
    9113 
    9114 /* Line 1806 of yacc.c  */
    9115 #line 2826 "parser.yy"
    9116     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8047#line 2779 "parser.yy" /* yacc.c:1646  */
     8048    { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
     8049#line 8050 "Parser/parser.cc" /* yacc.c:1646  */
    91178050    break;
    91188051
    91198052  case 736:
    9120 
    9121 /* Line 1806 of yacc.c  */
    9122 #line 2828 "parser.yy"
    9123     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8053#line 2786 "parser.yy" /* yacc.c:1646  */
     8054    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8055#line 8056 "Parser/parser.cc" /* yacc.c:1646  */
    91248056    break;
    91258057
    91268058  case 737:
    9127 
    9128 /* Line 1806 of yacc.c  */
    9129 #line 2835 "parser.yy"
    9130     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8059#line 2788 "parser.yy" /* yacc.c:1646  */
     8060    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8061#line 8062 "Parser/parser.cc" /* yacc.c:1646  */
    91318062    break;
    91328063
    91338064  case 738:
    9134 
    9135 /* Line 1806 of yacc.c  */
    9136 #line 2837 "parser.yy"
    9137     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8065#line 2790 "parser.yy" /* yacc.c:1646  */
     8066    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     8067#line 8068 "Parser/parser.cc" /* yacc.c:1646  */
    91388068    break;
    91398069
    91408070  case 739:
    9141 
    9142 /* Line 1806 of yacc.c  */
    9143 #line 2839 "parser.yy"
    9144     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8071#line 2792 "parser.yy" /* yacc.c:1646  */
     8072    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8073#line 8074 "Parser/parser.cc" /* yacc.c:1646  */
    91458074    break;
    91468075
    91478076  case 740:
    9148 
    9149 /* Line 1806 of yacc.c  */
    9150 #line 2841 "parser.yy"
    9151     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8077#line 2794 "parser.yy" /* yacc.c:1646  */
     8078    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8079#line 8080 "Parser/parser.cc" /* yacc.c:1646  */
    91528080    break;
    91538081
    91548082  case 741:
    9155 
    9156 /* Line 1806 of yacc.c  */
    9157 #line 2843 "parser.yy"
    9158     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8083#line 2796 "parser.yy" /* yacc.c:1646  */
     8084    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
     8085#line 8086 "Parser/parser.cc" /* yacc.c:1646  */
    91598086    break;
    91608087
    91618088  case 742:
    9162 
    9163 /* Line 1806 of yacc.c  */
    9164 #line 2845 "parser.yy"
    9165     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8089#line 2801 "parser.yy" /* yacc.c:1646  */
     8090    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
     8091#line 8092 "Parser/parser.cc" /* yacc.c:1646  */
    91668092    break;
    91678093
    91688094  case 743:
    9169 
    9170 /* Line 1806 of yacc.c  */
    9171 #line 2850 "parser.yy"
    9172     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     8095#line 2806 "parser.yy" /* yacc.c:1646  */
     8096    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); }
     8097#line 8098 "Parser/parser.cc" /* yacc.c:1646  */
    91738098    break;
    91748099
    91758100  case 744:
    9176 
    9177 /* Line 1806 of yacc.c  */
    9178 #line 2855 "parser.yy"
    9179     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     8101#line 2808 "parser.yy" /* yacc.c:1646  */
     8102    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
     8103#line 8104 "Parser/parser.cc" /* yacc.c:1646  */
    91808104    break;
    91818105
    91828106  case 745:
    9183 
    9184 /* Line 1806 of yacc.c  */
    9185 #line 2857 "parser.yy"
    9186     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9187     break;
    9188 
    9189   case 746:
    9190 
    9191 /* Line 1806 of yacc.c  */
    9192 #line 2859 "parser.yy"
    9193     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     8107#line 2810 "parser.yy" /* yacc.c:1646  */
     8108    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); }
     8109#line 8110 "Parser/parser.cc" /* yacc.c:1646  */
     8110    break;
     8111
     8112  case 748:
     8113#line 2834 "parser.yy" /* yacc.c:1646  */
     8114    { (yyval.en) = 0; }
     8115#line 8116 "Parser/parser.cc" /* yacc.c:1646  */
    91948116    break;
    91958117
    91968118  case 749:
    9197 
    9198 /* Line 1806 of yacc.c  */
    9199 #line 2883 "parser.yy"
    9200     { (yyval.en) = 0; }
    9201     break;
    9202 
    9203   case 750:
    9204 
    9205 /* Line 1806 of yacc.c  */
    9206 #line 2885 "parser.yy"
    9207     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    9208     break;
    9209 
    9210 
    9211 
    9212 /* Line 1806 of yacc.c  */
    9213 #line 9214 "Parser/parser.cc"
     8119#line 2836 "parser.yy" /* yacc.c:1646  */
     8120    { (yyval.en) = (yyvsp[0].en); }
     8121#line 8122 "Parser/parser.cc" /* yacc.c:1646  */
     8122    break;
     8123
     8124
     8125#line 8126 "Parser/parser.cc" /* yacc.c:1646  */
    92148126      default: break;
    92158127    }
     
    92338145  *++yyvsp = yyval;
    92348146
    9235   /* Now `shift' the result of the reduction.  Determine what state
     8147  /* Now 'shift' the result of the reduction.  Determine what state
    92368148     that goes to, based on the state we popped back to and the rule
    92378149     number reduced by.  */
     
    92488160
    92498161
    9250 /*------------------------------------.
    9251 | yyerrlab -- here on detecting error |
    9252 `------------------------------------*/
     8162/*--------------------------------------.
     8163| yyerrlab -- here on detecting error. |
     8164`--------------------------------------*/
    92538165yyerrlab:
    92548166  /* Make sure we have latest lookahead translation.  See comments at
     
    93018213    {
    93028214      /* If just tried and failed to reuse lookahead token after an
    9303         error, discard it.  */
     8215        error, discard it.  */
    93048216
    93058217      if (yychar <= YYEOF)
    9306         {
    9307           /* Return failure if at end of input.  */
    9308           if (yychar == YYEOF)
    9309             YYABORT;
    9310         }
     8218        {
     8219          /* Return failure if at end of input.  */
     8220          if (yychar == YYEOF)
     8221            YYABORT;
     8222        }
    93118223      else
    9312         {
    9313           yydestruct ("Error: discarding",
    9314                       yytoken, &yylval);
    9315           yychar = YYEMPTY;
    9316         }
     8224        {
     8225          yydestruct ("Error: discarding",
     8226                      yytoken, &yylval);
     8227          yychar = YYEMPTY;
     8228        }
    93178229    }
    93188230
     
    93338245     goto yyerrorlab;
    93348246
    9335   /* Do not reclaim the symbols of the rule which action triggered
     8247  /* Do not reclaim the symbols of the rule whose action triggered
    93368248     this YYERROR.  */
    93378249  YYPOPSTACK (yylen);
     
    93468258`-------------------------------------------------------------*/
    93478259yyerrlab1:
    9348   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
     8260  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    93498261
    93508262  for (;;)
     
    93528264      yyn = yypact[yystate];
    93538265      if (!yypact_value_is_default (yyn))
    9354         {
    9355           yyn += YYTERROR;
    9356           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    9357             {
    9358               yyn = yytable[yyn];
    9359               if (0 < yyn)
    9360                 break;
    9361             }
    9362         }
     8266        {
     8267          yyn += YYTERROR;
     8268          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
     8269            {
     8270              yyn = yytable[yyn];
     8271              if (0 < yyn)
     8272                break;
     8273            }
     8274        }
    93638275
    93648276      /* Pop the current state because it cannot handle the error token.  */
    93658277      if (yyssp == yyss)
    9366         YYABORT;
     8278        YYABORT;
    93678279
    93688280
    93698281      yydestruct ("Error: popping",
    9370                   yystos[yystate], yyvsp);
     8282                  yystos[yystate], yyvsp);
    93718283      YYPOPSTACK (1);
    93728284      yystate = *yyssp;
     
    93748286    }
    93758287
     8288  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    93768289  *++yyvsp = yylval;
     8290  YY_IGNORE_MAYBE_UNINITIALIZED_END
    93778291
    93788292
     
    93988312  goto yyreturn;
    93998313
    9400 #if !defined(yyoverflow) || YYERROR_VERBOSE
     8314#if !defined yyoverflow || YYERROR_VERBOSE
    94018315/*-------------------------------------------------.
    94028316| yyexhaustedlab -- memory exhaustion comes here.  |
     
    94178331                  yytoken, &yylval);
    94188332    }
    9419   /* Do not reclaim the symbols of the rule which action triggered
     8333  /* Do not reclaim the symbols of the rule whose action triggered
    94208334     this YYABORT or YYACCEPT.  */
    94218335  YYPOPSTACK (yylen);
     
    94248338    {
    94258339      yydestruct ("Cleanup: popping",
    9426                   yystos[*yyssp], yyvsp);
     8340                  yystos[*yyssp], yyvsp);
    94278341      YYPOPSTACK (1);
    94288342    }
     
    94358349    YYSTACK_FREE (yymsg);
    94368350#endif
    9437   /* Make sure YYID is used.  */
    9438   return YYID (yyresult);
     8351  return yyresult;
    94398352}
    9440 
    9441 
    9442 
    9443 /* Line 2067 of yacc.c  */
    9444 #line 2888 "parser.yy"
     8353#line 2839 "parser.yy" /* yacc.c:1906  */
    94458354
    94468355// ----end of grammar----
     
    94618370// compile-command: "make install" //
    94628371// End: //
    9463 
  • src/Parser/parser.h

    rbd9f8be r03b812d2  
    1 /* A Bison parser, made by GNU Bison 2.5.  */
     1/* A Bison parser, made by GNU Bison 3.0.2.  */
    22
    33/* Bison interface for Yacc-like parsers in C
    4    
    5       Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    6    
     4
     5   Copyright (C) 1984, 1989-1990, 2000-2013 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 
    34 /* Tokens.  */
     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
     40extern int yydebug;
     41#endif
     42
     43/* Token type.  */
    3544#ifndef YYTOKENTYPE
    3645# define YYTOKENTYPE
    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    };
     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  };
    147155#endif
    148156/* Tokens.  */
     
    254262#define THEN 363
    255263
    256 
    257 
    258 
     264/* Value type.  */
    259265#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    260 typedef union YYSTYPE
     266typedef union YYSTYPE YYSTYPE;
     267union YYSTYPE
    261268{
    262 
    263 /* Line 2068 of yacc.c  */
    264 #line 156 "parser.yy"
     269#line 115 "parser.yy" /* yacc.c:1909  */
    265270
    266271        Token tok;
     
    276281        InitializerNode *in;
    277282        OperKinds op;
    278         std::string *str;
    279283        bool flag;
    280284
    281 
    282 
    283 /* Line 2068 of yacc.c  */
    284 #line 285 "Parser/parser.h"
    285 } YYSTYPE;
     285#line 286 "Parser/parser.h" /* yacc.c:1909  */
     286};
    286287# define YYSTYPE_IS_TRIVIAL 1
    287 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    288288# define YYSTYPE_IS_DECLARED 1
    289289#endif
    290290
     291
    291292extern YYSTYPE yylval;
    292293
    293 
     294int yyparse (void);
     295
     296#endif /* !YY_YY_PARSER_PARSER_H_INCLUDED  */
  • src/Parser/parser.yy

    rbd9f8be r03b812d2  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug 22 14:30:56 2016
    13 // Update Count     : 1944
     12// Last Modified On : Thu Aug 18 23:49:10 2016
     13// Update Count     : 1909
    1414//
    1515
     
    5555#include "LinkageSpec.h"
    5656
    57 union 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
    76 DeclQualifiers declQualifiers = { 0 };
    77 
    78 union 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
    96 DeclType declTypes = { 0 };
    97 
    9857extern DeclarationNode * parseTree;
    9958extern LinkageSpec::Spec linkage;
     
    10261std::stack< LinkageSpec::Spec > linkageStack;
    10362
    104 void appendStr( std::string *to, std::string *from ) {
     63void appendStr( std::string &to, std::string *from ) {
    10564        // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
    106         to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) );
     65        to.insert( to.length() - 1, from->substr( 1, from->length() - 2 ) );
    10766} // appendStr
    10867%}
     
    167126        InitializerNode *in;
    168127        OperKinds op;
    169         std::string *str;
    170128        bool flag;
    171129}
     
    173131%type<tok> identifier  no_01_identifier  no_attr_identifier zero_one
    174132%type<tok> identifier_or_type_name  no_attr_identifier_or_type_name  no_01_identifier_or_type_name
    175 %type<constant> string_literal
    176 %type<str> string_literal_list
     133%type<constant> string_literal_list
    177134
    178135// expressions
     
    339296
    340297push:
    341                 { typedefTable.enterScope(); }
     298                {
     299                        typedefTable.enterScope();
     300                }
    342301        ;
    343302
    344303pop:
    345                 { typedefTable.leaveScope(); }
     304                {
     305                        typedefTable.leaveScope();
     306                }
    346307        ;
    347308
     
    350311constant:
    351312                // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant".
    352         INTEGERconstant                                                         { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
    353         | FLOATINGconstant                                                      { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
    354         | CHARACTERconstant                                                     { $$ = new ExpressionNode( build_constantChar( *$1 ) ); }
     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) ) ); }
    355316        ;
    356317
     
    376337        ;
    377338
    378 string_literal:
    379         string_literal_list                                                     { $$ = build_constantStr( *$1 ); }
    380         ;
    381 
    382339string_literal_list:                                                                    // juxtaposed strings are concatenated
    383         STRINGliteral                                                           { $$ = $1; } // conversion from tok to str
     340        STRINGliteral                                                           { $$ = build_constantStr( assign_strptr($1) ); }
    384341        | string_literal_list STRINGliteral
    385342                {
    386                         appendStr( $1, $2 );                                            // append 2nd juxtaposed string to 1st
     343                        appendStr( $1->get_constant()->get_value(), $2 );
    387344                        delete $2;                                                                      // allocated by lexer
    388                         $$ = $1;                                                                        // conversion from tok to str
     345                        $$ = $1;
    389346                }
    390347        ;
     
    413370        | postfix_expression '(' argument_expression_list ')'
    414371                { $$ = new ExpressionNode( build_func( $1, $3 ) ); }
    415                 // ambiguity with .0 so space required after field-selection, e.g.
     372        // ambiguity with .0 so space required after field-selection, e.g.
    416373                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    417374        | postfix_expression '.' no_attr_identifier
     
    455412        no_attr_identifier
    456413                { $$ = new ExpressionNode( build_varref( $1 ) ); }
    457                 // ambiguity with .0 so space required after field-selection, e.g.
     414        // ambiguity with .0 so space required after field-selection, e.g.
    458415                //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    459416        | no_attr_identifier '.' field
     
    473430        | constant
    474431                { $$ = $1; }
    475         | string_literal
     432        | string_literal_list
    476433                { $$ = new ExpressionNode( $1 ); }
    477434        | EXTENSION cast_expression                                                     // GCC
     
    852809fall_through_opt:                                                                               // CFA
    853810        // empty
    854                 { $$ = new StatementNode( build_branch( BranchStmt::Break ) ); } // insert implicit break
     811                { $$ = new StatementNode( build_branch( "", BranchStmt::Break ) ); } // insert implicit break
    855812        | fall_through
    856813        ;
     
    881838jump_statement:
    882839        GOTO IDENTIFIER ';'
    883                 { $$ = new StatementNode( build_branch( $2, BranchStmt::Goto ) ); }
     840                { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Goto ) ); }
    884841        | GOTO '*' comma_expression ';'                                         // GCC, computed goto
    885842                // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3);
     
    888845        | CONTINUE ';'
    889846                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    890                 { $$ = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     847                { $$ = new StatementNode( build_branch( "", BranchStmt::Continue ) ); }
    891848        | CONTINUE IDENTIFIER ';'                                                       // CFA, multi-level continue
    892849                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    893850                // the target of the transfer appears only at the start of an iteration statement.
    894                 { $$ = new StatementNode( build_branch( $2, BranchStmt::Continue ) ); }
     851                { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Continue ) ); }
    895852        | BREAK ';'
    896853                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    897                 { $$ = new StatementNode( build_branch( BranchStmt::Break ) ); }
     854                { $$ = new StatementNode( build_branch( "", BranchStmt::Break ) ); }
    898855        | BREAK IDENTIFIER ';'                                                          // CFA, multi-level exit
    899856                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    900857                // the target of the transfer appears only at the start of an iteration statement.
    901                 { $$ = new StatementNode( build_branch( $2, BranchStmt::Break ) ); }
     858                { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Break ) ); }
    902859        | RETURN comma_expression_opt ';'
    903860                { $$ = new StatementNode( build_return( $2 ) ); }
     
    973930
    974931asm_statement:
    975         ASM asm_volatile_opt '(' string_literal ')' ';'
     932        ASM asm_volatile_opt '(' string_literal_list ')' ';'
    976933                { $$ = new StatementNode( build_asmstmt( $2, $4, 0 ) ); }
    977         | ASM asm_volatile_opt '(' string_literal ':' asm_operands_opt ')' ';' // remaining GCC
     934        | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ')' ';' // remaining GCC
    978935                { $$ = new StatementNode( build_asmstmt( $2, $4, $6 ) ); }
    979         | ASM asm_volatile_opt '(' string_literal ':' asm_operands_opt ':' asm_operands_opt ')' ';'
     936        | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ')' ';'
    980937                { $$ = new StatementNode( build_asmstmt( $2, $4, $6, $8 ) ); }
    981         | ASM asm_volatile_opt '(' string_literal ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list_opt ')' ';'
     938        | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list_opt ')' ';'
    982939                { $$ = new StatementNode( build_asmstmt( $2, $4, $6, $8, $10 ) ); }
    983         | ASM asm_volatile_opt GOTO '(' string_literal ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';'
     940        | ASM asm_volatile_opt GOTO '(' string_literal_list ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';'
    984941                { $$ = new StatementNode( build_asmstmt( $2, $5, 0, $8, $10, $12 ) ); }
    985942        ;
     
    1005962
    1006963asm_operand:                                                                                    // GCC
    1007         string_literal '(' constant_expression ')'
     964        string_literal_list '(' constant_expression ')'
    1008965                { $$ = new ExpressionNode( build_asmexpr( 0, $1, $3 ) ); }
    1009         | '[' constant_expression ']' string_literal '(' constant_expression ')'
     966        | '[' constant_expression ']' string_literal_list '(' constant_expression ')'
    1010967        { $$ = new ExpressionNode( build_asmexpr( $2, $4, $6 ) ); }
    1011968        ;
     
    1014971        // empty
    1015972                { $$ = 0; }                                                                             // use default argument
    1016         | string_literal
     973        | string_literal_list
    1017974                { $$ = new ExpressionNode( $1 ); }
    1018         | asm_clobbers_list_opt ',' string_literal
     975        | asm_clobbers_list_opt ',' string_literal_list
    1019976                { $$ = (ExpressionNode *)$1->set_last( new ExpressionNode( $3 ) ); }
    1020977        ;
     
    1022979label_list:
    1023980        no_attr_identifier
    1024                 {
    1025                         $$ = new LabelNode(); $$->labels.push_back( *$1 );
    1026                         delete $1;                                                                      // allocated by lexer
    1027                 }
     981                { $$ = new LabelNode(); $$->labels.push_back( assign_strptr($1) ); }
    1028982        | label_list ',' no_attr_identifier
    1029                 {
    1030                         $$ = $1; $1->labels.push_back( *$3 );
    1031                         delete $3;                                                                      // allocated by lexer
    1032                 }
     983                { $$ = $1; $1->labels.push_back( assign_strptr($3) ); }
    1033984        ;
    1034985
     
    20421993                {
    20431994                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
    2044                         linkage = LinkageSpec::fromString( *$2 );
     1995                        linkage = LinkageSpec::fromString( assign_strptr($2) );
    20451996                }
    20461997          '{' external_definition_list_opt '}'                          // C++-style linkage specifier
Note: See TracChangeset for help on using the changeset viewer.